Skip to Main Content

CS-BS - Computer Science (BS)

Download as PDF

Computer ScienceUndergraduate MatriculatedBS - Bachelor of Science

Preparing for the Major

Guide to Choosing Introductory Courses

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

For students whose principal interest is exposure to the fundamental ideas behind computer science and programming, course or course are the most appropriate courses. They are intended for students in nontechnical disciplines who expect to make some use of computers but do not expect to go on to more advanced courses. course and course meet the Ways of Thinking Ways of Doing breadth requirements in Formal Reasoning and include an introduction to programming and the use of modern Internet-based technologies. Students interested in computer use should consider course, Introduction to Computing at Stanford.

Students who intend to pursue a serious course of study in computer science may enter the program at various 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 course, followed by course. Students in course need not have prior programming experience. Students with significant previous exposure to programming or those who want an intensive introduction to the field may start directly in coursecourse uses Python as its programming language; course uses C++. No prior knowledge of these languages is assumed, and the previous programming experience required for course 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 needing a significant computer science background for related engineering majors should take coursecourse, and course or coursecourse offers an introduction to the mathematical and theoretical foundations of computer science. course exposes students to various programming concepts that illustrate critical strategies used in systems development; course and course build on this material, focusing on the development of larger-scale software, using systems and networking abstractions.

In summary:

For Exposure:

  • CS1C: Introduction to Computing at Stanford

For nontechnical use:

  • CS101: Introduction to Computing Principles OR CS105: Introduction to Computers

For scientific use and a technical introduction:

For significant use:

  • CS106A: Programming Methodology & course: Programming Abstractions

  • CS103: Mathematical Foundations of Computing

  • CS107: Computer Organization and Systems

  • course: Principles of Computer Systems OR CS111: Operating Systems Principles

Overseas Studies Courses in Computer Science

See the listings in ExploreCourses or the Bing Overseas Studies website for course descriptions and additional offerings. Students should consult their department or program’s student services office for the applicability of Overseas Studies courses to a major or minor program.

See the Handbook for Undergraduate Engineering Programs (UGHB) for additional information and sample programs,

Declaring the Major

Declaring the major is a straightforward process, and there are no specific course or major requirements you need to complete beforehand. Please note that processing can take up to two weeks, and we’re unable to expedite requests. We encourage students to plan ahead, especially if you have a target date for declaring. Additionally, keep in mind that we do not process declarations during finals week, academic breaks, or the Summer quarter. To get started, please follow the how to declare steps outlined on the CS website.