skip to content

Bulletin Archive

This archived information is dated to the 2008-09 academic year only and may no longer be current.

For currently applicable policies and information, see the current Stanford Bulletin.

Undergraduate Programs in Computer Science

The mission of Stanford's undergraduate program in Computer Science is to provide a foundation of mathematics, science, and engineering knowledge. Building on Stanford's core ideals of liberal education, the program combines fundamentals with practical experience in problem solving, programming, communication, and collaboration, allowing each student to realize his or her individual potential.

Graduates of the program are prepared to pursue graduate study at the highest academic level, or advance into leadership positions in industry. The program creates an atmosphere that promotes innovative thinking, values mutual respect and diversity, supports scholarship and research, instills ethical behavior, and cultivates lifelong learning.

The department offers both a major and a minor in Computer Science. The requirements for these programs are outlined in the "School of Engineering" section of this bulletin and described in more detail in the Handbook for Undergraduate Engineering Programs published by the School of Engineering. The Computer Science major offers a number of tracks (programs of study) from which students can choose, allowing them to focus their program on the areas of most interest. These tracks also reflect the broad diversity of areas in computing disciplines. The department has an honors program, which is described in the following section.

In addition to Computer Science itself, Stanford offers several interdisciplinary degrees with a substantial computer science component. The Computer Systems Engineering major (also in Engineering) allows the study of areas requiring a knowledge of both computer hardware and software, bridging the gap between traditional CS and Electrical Engineering majors. The Symbolic Systems major (in the School of Humanities and Sciences) offers an opportunity to explore computer science and its relation to linguistics, philosophy, and psychology. Finally, the Mathematical and Computational Sciences major (also Humanities and Sciences) allows students to explore computer science along with more mathematics, statistics, and operations research.

HONORS PROGRAM

The Department of Computer Science (CS) offers an honors program for undergraduates whose academic records and personal initiative indicate that they have the necessary skills to undertake high-quality research in computer science. Admission to the program is by application only. To apply for the honors program, students must be majoring in Computer Science, have a grade point average (GPA) of at least 3.6 in courses that count toward the major, and achieve senior standing (135 or more units) by the end of the academic year in which they apply. Coterminal master's students are eligible to apply as long as they have not already received their undergraduate degree. Beyond these requirements, students who apply for the honors program must also find a Computer Science faculty member who agrees to serve as the thesis adviser for the project. Thesis advisers must be members of Stanford's Academic Council.

Students who meet the eligibility requirements and wish to be considered for the honors program must submit a written application to the CS undergraduate program office by May 1 of the year preceding the honors work. The application must include a letter describing the research project, a letter of endorsement from the faculty sponsor, and a transcript of courses taken at Stanford. Each year, a faculty review committee selects the successful candidates for honors from the pool of qualified applicants.

In order to receive departmental honors, students admitted to the honors program must, in addition to satisfying the standard requirements for the undergraduate degree, do the following:

  1. Complete at least 9 units of CS 191 or 191W under the direction of their project sponsor.
  2. Attend a weekly honors seminar Winter and Spring quarters.
  3. Complete an honors thesis deemed acceptable by the thesis adviser and at least one additional faculty member.
  4. Present the thesis at a public colloquium sponsored by the department.
  5. Maintain the 3.6 GPA required for admission to the honors program.

GUIDE TO CHOOSING INTRODUCTORY COURSES

Students arriving at Stanford have widely differing backgrounds and goals, but most find that the ability to use computers effectively is beneficial to their education. The department offers many introductory courses to meet the needs of these students.

For students whose principal interest is an exposure to the fundamental ideas behind computer science and programming, CS 105 is the most appropriate course. It is intended for students in nontechnical disciplines who expect to make some use of computers, but who do not expect to go on to more advanced courses. CS 105 meets the General Education Disciplinary Breadth Requirement in Engineering and Applied Sciences and includes an introduction to programming and the use of modern Internet-based technologies. Students interested in learning to use the computer should consider CS 1C, Introduction to Computing at Stanford.

Students who intend to pursue a serious course of study in computer science may enter the program at a variety of levels, depending on their background. Students with little prior experience or those who wish to take more time to study the fundamentals of programming should take 106A followed by 106B. Students in 106A need not have prior programming experience. Students with significant prior exposure to programming or those who want an intensive introduction to the field should take 106X or may start directly in 106B. CS106A uses Java as its programming language; CS106B and X use C++. No prior knowledge of these languages is assumed, and the prior programming experience required for 103B or X may be in any language. In all cases, students are encouraged to discuss their background with the instructors responsible for these courses.

After the introductory sequence, Computer Science majors and those who need a significant background in computer science for related majors in engineering should take 103, 107 and 110. CS 103 offers an introduction to the mathematical and theoretical foundations of computer science. CS 107 exposes students to a variety of programming concepts that illustrate critical strategies used in systems development; 110 builds on this material, focusing on the development of larger-scale software making use of systems and networking abstractions. in

In summary:

For exposure: 1C

For nontechnical use: 105

For scientific use: 106A

For a technical introduction: 106A

For significant use: 106A,B or 106X, along with 103, 107, and 110

© Stanford University - Office of the Registrar. Archive of the Stanford Bulletin 2008-09. Terms of Use | Copyright Complaints