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.

Requirements for promotion into the Upper Division Sequence depend on a student's first semester at UTCS.

There are 4 groups of students promoted from entry-level via different standards:

Group 1) Students who started any courses at UT prior to Fall 2013, and were admitted to UTCS prior to Fall 2014

Group 2) Students who started any courses at UT during the Fall 2013, Spring 2014, or Summer 2014 semesters, and were admitted to UTCS prior to Fall 2014

Group 3) Students who plan to pursue the Bachelor of Science and Arts degree in CS and began taking CS classes anytime prior to Fall 2014

Group 4) Students who started CS courses or first-semester enrolled is the Fall 2014 semester

Group 1 Standards

2.5 Entry-level GPA

Entry-Level Classes: CS 312, CS 313K/311, CS 314, M 408D/S/L

Group 2 & 3 Standards

2.65 Entry-level GPA

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

Group 4 Standards

2.75 Entry-level GPA

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

Promotion Requirements for all groups:

  • 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 (dropped courses count as an attempt, unless they are done through nonacademic drops.) 
  • 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.