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.


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


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

Promotion Requirements

2.75 Entry-level GPA in all CS entry-level classes

Entry-Level Classes: CS 312, CS 311, CS 314

Additional Promotion Requirements:

  • 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 (students may appeal to receive a third, and final attempt at an entry-level course if they have a verified non-academic Q-drop within the semester the course was taken).
  • Maintain UT GPA of 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:


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


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


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.