|
Interdisciplinary Major in Computer Science |
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.
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)College Area Requirements (see Undergraduate Record, p. 64, for details)Second Writing Requirement: typically a 3-credit course
Foreign Language: 0-14 credits (through 202 level, 212 in Portuguese)
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)
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)Core CoursesIntroduction 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
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.CS 2150: Program and Data Representation (offered Spring and Fall semesters) (previously CS 216)
Prerequisite: CS 1110, CS 1111, CS 1112, or CS1120
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.CS 3330: Computer Architecture (offered Spring and Fall semesters) (previously CS 333)
Prerequisite: CS 2220 (or CS 2110) and C 2102 with grades of C- or higher.
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.CS 4102: Algorithms (offered Fall semesters) (previously CS 432)
Prerequisite: CS 2150 and CS 2330
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
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 |