Turing Scholars take a specific honors curriculum. The honors curriculum offers these benefits on top of the traditional CS degree:
- An intensive, accelerated set of classes in freshman year designed to let students complete three semesters of work in only two.
- Small class sizes (< 60 people) which offer room for students to engage in discussion with professors directly in-class.
- Special upper division CS elective courses for which honors students get priority.
- Two undergraduate research courses that culminate in an undergraduate honors thesis.
To see a typical four-year plan, check out the Honors degree plan at the UTCS degree plan page.
Following is a list of courses Honors students are required to take. Note that this list only includes required courses, which are a fraction of the total Honors and department level courses offered.
CS 314H: Data Structures
Students are introduced to advanced data structures and trained in software engineering techniques such as test methodology and agile workflow. Students complete a set of diverse and challenging programming projects, such as building a basic search engine or building a basic genetic algorithm to play Tetris.
CS 311H: Discrete Mathematics for Computer Science
Students are taught how to think formally and write proofs. Students are exposed to the the fundamentals of Computer Science theory, such as graph theory, combinatorics, and mathematical induction.
CS 429H: Computer Organization and Architecture
Students learn about how a computer works - from transistors and logic gates to the compiler level - and how hardware and software work together. This is an intensive project based class, which includes projects like building a simulated processor, creating a basic compiler, or implementing virtual memory.
CS 439H: Principles of Computer Systems
Students learn how Operating Systems work from the ground-up. This is also a project-based class, and projects in the past have included building basic operating systems from scratch.
CS 331H: Algorithms and Complexity
Students learn fundamental algorithms and complexity theory. This course is heavily proof-based and focuses on theory. Topics covered include dynamic programming, maximum flow, and NP-completeness.
CS 178H: Introduction to CS Research
This course helps students make the transition from classroom learning to the type of faculty-advised independent learning that is necessary to complete an honors thesis.
CS 379H: Computer Science Honors Thesis
This course gives students course credit for writing their honors thesis. It gives students room for writing their thesis during the last few semesters of their studies.
Research is an important part of our honors program. An expectation of the program is that Turing Scholars get involved in a research project with a member of our faculty. The CS 178H class that students typically take in the second semester of their freshman year provides an introduction to the department's research faculty and their research interests.
Students interested in graduate school should note that graduate school applications are typically submitted in the fall semester of their last year; accordingly, doing an honors thesis greatly helps with graduate school admissions. The program heavily encourages students to get involved in research as early as possible - usually no later than the spring of their junior year.
To achieve that goal, students typically register for CS 370 Undergraduate Reading and Research, which allows students to perform independent study under the supervision of some faculty member. However, research takes many forms - students also participate in research internships off campus, or are paid for on-campus research. Finally, in the fall of their senior year Turing Scholars typically register for CS 379H, the Computer Sciences Honors Thesis course.