Courses
Our undergraduate and graduate curricula provide a timely and well-rounded view of the field, with special emphasis on the practical aspects of building useful software. Our strengths lie in the traditional mainstream areas of computer science: algorithms, programming languages, operating systems, distributed computing, networks, databases and theory of computing. We also offer courses in several subfields: graphics, artificial intelligence and the software aspects of computer architecture. The department's programs prepare students for positions in the design and development of computer systems and applications in business and industry, and for scientific positions in industrial and academic computing research.
Curriculum
Classes and research experience in both the experimental and theoretical
aspects of computation prepare students for the accelerating pace of
advancement in computing and its applications. The core CS curriculum covers
software development and design, object-oriented and systems programming,
computational theory, discrete mathematics, and computer design. Advanced and
elective courses cover a wide-range of topics including databases, networking,
compilers, algorithm design and analysis, software engineering, operating
systems, parallel computing, computer vision, and graphics. Students are
strongly encouraged to take advantage of research opportunities that allow them
to join with faculty and graduate students on cutting-edge computer science
work.