Bachelor of Science in Computer Science

In the table below, P(...)=Prerequisite-courses; Co(...)=Corequisite-courses. The number of credits is in parentheses following the course number. Note: the program below is effective for students entering in or after Fall 2013. If you entered earlier, please speak with an advisor, and see this page for older curricula


SEM
Course Course Course Course Course Course
Total Credit
125

1

Humanities or Social Science (H/SS) Elective 1 (3) CSci 1111 (3)
Intro to Software Development (in Java)

Co(CSci 1010)

CSci 1010 (1)
Computer Science Orientation

(Entering SEAS freshmen also take SEAS 1001 (1))

Math Reqt 1 (3) UW 1020 (4)
University Writing

15

2

H/SS 2 (3) Csci 1112 (3)
Algorithms and Data Structures (in Java)

P(CSci 1111 with a grade of C or better, Math 1220/1231)

CSci 1311 (3)
Discrete Structures I

P(Math 1220/1231)

Math Reqt 2 (3) Science Reqt 1 (4)

16

3

H/SS 3 (3) CSci 2113 (3)
Software Engineering I
(Java+C)
P(CSci 1112 with a grade of C or better)
CSci 2312 (3)
Discrete Structures II
CSci 2461 (3)
Computer Architecture I
P(CSci 1112 with a grade of C or better, CSci 1311)
Science Reqt 2 (4)

16

4

CS Elective* (3) CSci 2441 (3)
Database Systems and Team Projects

Co(CSci 2113)

CSci 3410 Systems Programming (3)

P(CSci 2461, 2113)

Stat Reqt (3) Science Reqt 3 (4)

16

5

H/SS 4 (3) CSci 3212 (4)
Algorithms

P(CSci 1311, CSci 2113)

CSci 3313 (4)
Foundations of Computing

P(CSci 2461, CSci 2113)

CSci 3411 (4)
Operating Systems

P(CSci 2461, CSci 2113)

   

15

6

H/SS 5 (3) Unrestricted Elective (3) (3) CS Track Reqt 1 (3) Non-tech Track Elective 1 (3) Math or Science Elective (3)

15

7

H/SS 6 (3)

CSci 4243 (4)
Capstone Senior Design Project I

P(CSci 3240)


CS Track Reqt 2
(3)
Non-tech Track Elective 2 (3) Unrestricted Elective (3)  

16

8

Unrestricted Elective (3) CSci 4244 (4)
Capstone Senior Design Project II

P(CSci 4243)

CS Track Reqt 3 (3) Non-tech Track Elective 3 (3) Unrestricted Elective (3)  

16

(*) Any CS course numbered 3000 or above can be a CS elective. Also, with approval of your advisor, you may substitute for this course another technical elective from other departments. This can be useful for technical breadth or for meeting the requirements of a minor/secondary field.