The University of Arizona

Undergraduate Info

Major Requirements 2007–2008

Major Degree Requirement Checklist (PDF)

Students interested in earning a Bachelor of Science (BS) in Computer Science, including transfer students, are initially admitted to the University of Arizona as pre-Computer Science (PRCS) majors. Changing to major status is competitive and requires formal application and admission to the BS program as described in the section “Admission to the Major.”

The BS program has the following components: pre-major courses (grades of A or B required for application to the major), core courses, area electives, open electives, and supporting science courses.  Pre-major courses provide students with an adequate background for work in all other courses and provide the department with information needed to make decisions on applicants for admission to the major. Core courses and electives provide both depth and breadth in the computer science discipline. Supporting science courses provide knowledge of and lab experience in other sciences.

All majors must complete the pre-major courses, the core courses, three area electives, and at least two open electives. We believe this provides a solid foundation in computer science while allowing some flexibility to accommodate students' special interests.

Beyond the four to eight units of computer science listed for the pre-major, the remaining major requirements comprise 34-35 units divided as follows:

Major Core (required courses) 17-18 units

Math 129 Calculus II or Math 215,
Linear Algebra

3

Fall/Spring
C SC 245 Introduction to Discrete Structures 4 Fall/Spring
C SC 252 Computer Organization 3 Fall/Spring
C SC 335 Object-Oriented Programming and Design 4 Fall/Spring
C SC 345 Analysis of Discrete Structures 4 Fall/Spring
*C SC 352 Systems Programming and Unix 3 Fall/Spring

*Please note that C SC 352, C SC 372, and all 400 level C SC courses cannot be taken by students in pre-computer science status.

Area Elective: Paradigms
(choose one; others can be C SC open electives - 3 units

**C SC 372 Comparative Programming Languages 3 Fall
C SC 422 Intro to Parallel & Distributed Programming 3 Spring
C SC 460 Database Design 3 Fall

Area Elective: Theory & Writing Emphasis
(choose one; others can be C SC open electives) - 3 units

C SC 437 Geometric Algorithms 3 varies
C SC 445 Algorithms 3 Spring
C SC 473 Automata, Grammars and Languages 3 Fall

Area Elective: Systems
(choose one; other can be C SC open elective) - 4 units

C SC 452 Principles of Operating Systems 4 Spring
C SC 453 Compilers and Systems Software 4 Fall

Open Electives
(choose two) - 6 units

Any C SC 400-level course listed above and not previously taken.
C SC 425 Computer Networking 3 Spring
C SC 433 Computer Graphics 3 Fall
C SC 436 Software Engineering 3 varies
C SC 477 Introduction to Computer Vision 3 Spring
ECE 369 Fundamentals of Computer Architecture 3 Fall/Spring
C SC 400-level cross-listed courses from other departments, see the catalog for more information.

Please check catalog course description for course prerequisites and other requirements at http://catalog.arizona.edu/allcats.html

NOTE:  All C SC 490 house-numbered courses (such as 492, 493, 498H, 499) are excluded as Computer Science open electives; however, they do count toward upper-division credits and total units.  In addition, students planning on graduate study in computer science are strongly advised to take both C SC 452 and C SC 453 for systems background and two of the theory courses for theory background.  The additional course in each area will count as open electives.

Major Requirement-Previous Years