Curriculum

The honors curriculum mirrors the standard CS degree program with three exceptions:

  • An intensive, accelerated freshman year program designed to immerse students in their studies and to let them complete three semesters of work in only two semesters.
  • Special honors versions of standard CS courses in the sophomore through senior years.
  • Undergraduate research, culminating in an undergraduate honors thesis.

The following honors courses expose students to a collection of excellent teachers with a variety of teaching styles.

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 310H: Computer Organization and Design

CS 313H: Logic, Sets, and Functions

This course uses the Moore method to teach students how to think formally and to write proofs.

CS 315H: Data Structures and Algorithms

CS 315H subsumes two courses (CS 307 and CS 315) in the standard CS curriculum.  This course introduces advanced data structures while also focusing on the development of good programming skills such as test methodology.  Students are given several challenging programing projects, such as implementing the game of Tetris.

CS 336H: Analysis of Programs

CS 341H: Automata Theory

CS 345H: Programming Languages

CS 352H: Computer Architecture

CS 372H: Operating Systems

The distinguishing feature of this course is the semester-long programming project in which students work in small teams to build an operating system that is sufficiently real that it could be booted on raw x86 hardware.

Undergraduate Research

Research is an important part of our honors program.  We expect all Turing Scholars to 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; these applications can be considerably enhanced by describing significant progress toward an honors thesis.  We encourage students to get involved in research as early as possible, typically in the fall of their junior year.

To achieve this goal, we expect that in their junior year, students will typically register for CS 370 Undergraduate Reading and Research, which allows students to perform independent study under the supervision of some faculty member.  Of course, research takes many forms, and some students prefer to participate in research internships off campus, and others might get paid for on-campus research instead of taking course credit.

In their senior year, preferably in the fall, we expect that each Turing Scholar will register for CS 379H, the Computer Sciences Honors Thesis course.