151 Engineer’s Way
University of Virginia
PO Box 400740
Charlottesville, VA 22904-4740
Overview Computer Science is the study of information processes. Computer scientists learn how to describe information processes, how to reason about and predict properties of information processes, and how to implement information processes elegantly and efficiently in hardware and software. The Computer Science curriculum concentrates on developing the deep understanding of computing and critical thinking skills that will enable graduates to pursue a wide variety of possible fields and to become academic, cultural, and industrial leaders. The core curriculum focuses on developing methods and tools for describing, implementing, and analyzing information processes and for managing complexity including abstraction, specification, and recursion. Computing connects closely with a wide range of disciplines including, but not limited to, the visual arts, music, life sciences including biology and cognitive science, the physical sciences, linguistics, mathematics, and the social sciences. The Computer Science major provides students with a strong foundation in computer science, combined with courses in arts, humanities, and sciences, in order to develop broad understanding of other areas and their connections to computing.
Faculty The Computer Science department has twenty-six faculty members. Our faculty is strongly committed to teaching as well as conducting world-class research. Faculty interests span major areas of computer science with particular strengths in algorithms, programming languages, security, sensor networks, software engineering, and theory. The Computer Science major is administered by the Computer Science BA Committee, composed of faculty from various departments in the College and the Computer Science Department. The BA Committee is responsible for the BA curriculum, student advising, and deciding on exceptions to the major requirements.
Students Computer Science majors are not expected to enter the University with any previous background in computing. To enroll in the major, students must submit an application form (see http://www.cs.virginia.edu/ba/ for details). We expect to enroll approximately 25 majors each year.
Requirements for Major Computer Science majors must complete two gateway courses, four core courses, four computing electives, and four integration electives. The two gateway courses are CS 150 and CS 205; CS 201 can be substituted for the CS 205 requirement. The four core courses are CS 202, CS 216, CS 333, and CS 432. The four computing electives are computing-intensive courses selected from a list of approved courses. The list of approved courses includes CS 230 and all Computer Science courses at 300-level or above (except the core courses). The four integration electives are selected with the approval of the student’s advisor from the list of computing-related courses approved by the BA CS committee. These courses are offered by departments other than Computer Science, and should either provide fundamental computing depth and background or explore applications of computing to arts and sciences fields. The list of approved integration electives is available from http://www.cs.virginia.edu/ba/.
Distinguished Majors Program Distinguished majors complete the BA degree requirements in addition to a fourth year thesis project that is approved by two advisors, one from Computer Science and one from Arts and Sciences. Both advisors must approve the student’s plan of study, thesis proposal, and thesis report.
Requirements of Minor The Computer Science minor consists of six courses: CS 101 or CS 150; CS 201 or CS 205; CS 202; CS 216; and two 300-level or higher CS electives.
Course Descriptions Descriptions of Computer Science courses appear in the School of Engineering and Applied Science section.