Interdisciplinary Major in Computer Science

Curriculum

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 major 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 in areas that integrate the arts and sciences with computing. The Computer Science major is designed to provide students entering the University without previous background in computing with an opportunity to major in Computer Science, while taking courses in arts, humanities, and sciences to develop broad understanding of other areas and their connections to computing. 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 core curriculum focuses on developing methods and tools for describing, implementing, and analyzing information processes and for managing complexity including abstraction, specification, and recursion.

The interdisciplinary major in Computer Science is administered by the Joint Computer Science BA Committee which is appointed by the CLAS Dean and Computer Science Department. The BA Committee is responsible for the BA curriculum, student advising, and deciding on exceptions to the major requirements.

Requirements for Major

The major requires all the College Competency and Area Requirements, 30 credits in Computer Science courses, 12 credits in computing-related College courses.

College Competency Requirements (see Undergraduate Record, p. 64, for details)

First Writing Requirement: ENWR 105/106 (6 credits) or ENWR 110 (3) or ENWR 210 (3)

Second Writing Requirement: typically a 3-credit course

Foreign Language: 0-14 credits (through 202 level, 212 in Portuguese)

College Area Requirements (see Undergraduate Record, p. 64, for details)
Natural Science and Mathematics (12 credits)
Social Sciences (6 credits)
Humanities (6 credits)
Historical Studies (3 credits)
Non-Western Perspectives (3 credits, may satisfy other requirements)

Major Subject Requirements

Gateway Courses
CS 1120: Computing from Ada and Euclid to Quantum Computing the World Wide Web (offered Spring and Fall semesters) (previously CS 150 and CS 200)
Introduction to computer science for students with no previous background. Focuses on describing and reasoning about information processes using language and logic. Uses motivating examples from liberal arts and sciences areas such as art, biology, economics, narrative, physics, and sociology.
CS2220: Engineering Software (offered Fall semesters) (previously CS 205)
Covers tools and techniques used to manage complexity needed to build, analyze, and test complex software systems including abstraction, analysis, and specification.
Prerequisite: CS 1120
Core Courses

CS2102: Discrete Mathematics I (offered Spring and Fall semesters) (previously CS 202)

Introduces discrete mathematics and proof techniques involving first order predicate logic and induction. Application areas include sets (finite and infinite), elementary combinatorial problems, and finite state automata. Development of tools and mechanisms for reasoning about discrete problems.
Prerequisite: CS 1110, CS 1111, CS 1112, or CS1120
CS 2150: Program and Data Representation (offered Spring and Fall semesters) (previously CS 216)
Introduces programs and data representation at the machine level. Data structuring techniques and the representation of data structures during program execution. Operations and control structures and their representation during program execution. Representations of numbers, arithmetic operations, arrays, records, recursion, hashing, stacks, queues, trees, graphs, and related concepts.
Prerequisite: CS 2220 (or CS 2110) and C 2102 with grades of C- or higher.
CS 3330: Computer Architecture (offered Spring and Fall semesters) (previously CS 333)
Includes the organization and architecture of computer systems hardware; instruction set architectures; addressing modes; register transfer notation; processor design and computer arithmetic; memory systems; hardware implementations of virtual memory, and input/output control and devices.
Prerequisite: CS 2150 and CS 2330
CS 4102: Algorithms (offered Fall semesters) (previously CS 432)
Introduces the analysis of algorithms and the effects of data structures on them. Algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide- and-conquer, and dynamic programming. Data structures include heaps and search, splay, and spanning trees. Analysis techniques include asymptotic worst case, expected time, amortized analysis, and reductions between problems.
Prerequisite: CS 2150

Computing Electives

Four computing-intensive electives selected from a list of approved courses. The list of approved courses will initially comprise current Computer Science courses at 300-level or above as well as CS 2330. Additional courses that may be jointly offered by CLAS and CS departments will be added to the list of approved computing electives based on approval by the BA committee.

Integration Electives

Four courses 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. See http://www.cs.virginia.edu/ba/integration.html for a list of approved integration electives.

Distinguished Majors Program

Distinguished majors complete the major requirements in addition to a fourth year thesis project that is approved by two readers, one from Computer Science and one from CLAS. Both advisors must approve the student's plan of study, thesis proposal, and thesis report.

As with all College DMPs, to receive a degree with distinction, high distinction, or highest distinction requires a grade point average of 3.400 or higher and completion of a DMP thesis.

Computer Science Major
University of Virginia
evans@cs.virginia.edu