Curriculum

The CS faculty revised the curriculum, because computer science has become too large to learn in four years. The faculty decided that the best response is to reduce the set of classes that students are required to take, so as to enable students to pursue their interests by choosing upper-division elective courses. The old curriculum had eleven CS courses that students were required to take, leaving little time for electives. The new curriculum has only six. This gives students the opportunity to dive into concentration areas, or to study computer science more broadly by sampling from various subareas.

General

Our Entry-Level courses and prerequisites require students to take our CS courses in a specific order for their first few semesters. You can see the flowchart below:

Undergraduate course flow graphic

Entry-Level

Every CS student begins as Entry-Level until they complete the requirements to be promoted into the Upper Division Sequence.

Requirements for promotion into the Upper Division Sequence:

  • Complete all CS Entry-Level courses (CS 312, CS 313K/311, CS 314 and M 408D or M 408S or M 408L).
  • Complete all CS Entry-Level sequence courses with no grade lower than a “C-”.
  • Complete all CS Entry-Level courses in no more than 2 attempts (including dropped attempts, unless they are done through non-academic procedures)*
  • Achieve a GPA of at least 2.50 in the CS Entry-Level courses. 
  • Achieve a minimum overall UT GPA of at least 2.0.

Students' records will be reviewed following the posting of grades at the conclusion of summer and after each long semester.  Students who meet the requirements for promotion will be automatically promoted into the major.

*Please note: University policy states that you may NOT for any reason retake a course if you have made a C- or better. That is true of our Entry-level courses as well.

Core CS Classes

All CS students are required to take six core classes, two of each in Programming, Systems and Theory:

Programming

1) CS 312 Intro to Programming
2) CS 314 Data Structures or CS 314H Data Structures: Honors

Systems

3) CS 429 Computer Organization & Architecture or CS 429H Computer Organization & Architecture:Honors
4) CS 439 Principals of Computer Systems or CS 439H Principals of Computer Systems: Honors

Theory

5) CS 311* Discrete Mathematics for Computer Science or CS 311H* Discrete Mathematics for Computer Science: Honors
6) CS 331* Algorithms & Complexity or CS 331H* Algorithms & Complexity: Honors

*Starting in Fall 2013, CS 311 and CS 311H replace the old CS 313K Logic, Sets and Functions and CS 313H Logic, Sets and Functions. Also, CS 331 and CS 331H replace the old CS 378 Algorithms and Complexity and CS 378H Algorithms and Complexity: Honors.