Requirements for a CS major
St. Olaf's Computer Science (CS) major is a balanced liberal-arts program that satisfies national curricular expectations, builds on a breadth-first, hands-on introduction to the discipline, takes a team-based approach to software design including interdisciplinary team projects, integrates ethical and social analysis in a distinctive way, and emphasizes written and oral communication skills and other aspects of a liberal arts education. See the page on curricular objectives for more information about these goals. See also the most recent catalog description of the major.
A CS major is arranged by individual contract between the program and
a student, which helps both the student and the program with academic
planning and builds in the potential to adapt requirements according
to special circumstances and particular educational objectives. See
Dick Brown (rab@stolaf.edu) to arrange a contract.
The CS major ordinarily requires a total of 11 credits in CS, with exceptions for double majors with Mathematics or Physics. Further information about the courses is provided in summary or detailed format; see also additional documents related to the curriculum.
- Foundation courses (3-4 required)
- CS1: CS CS 121 Principles of Computer Science. [AQR]. No prerequisite.
- MFC: CS CS 231
Mathematical Foundations of Computing. Prerequisites: CS1, average
mathematics background.
Alternative: Math 232, Discrete mathematics - HD: CS CS 241 Hardware Design. Prerequisite: CS1.
- SD: CS CS 251 Software Design and Implementation. Prerequisite: CS1.
- CS1+: CS CS 225 Accelerated Principles of Computer Science. [AQR]. Prerequisite: Advanced placement in Computer Science or comparable experience.
Alternative. The following course (offered through Fall 2008) replaces both CS1 and SD:
- Core courses (4 required)
- ADS: CS CS 253 Algorithms and Data Structures. Prerequisites: SD, MFC.
- ESD: CS CS 263 Ethical Issues in Software Design. [ORC, EIN]. Prerequisite: SD.
- Languages. One of the following:
- PL: CS CS 276 Programming Languages. Prerequisites: HD, SD.
- TC: CS CS 333 Theory of Computation. Prerequisite: MFC.
- Systems. One of the following:
- OS: CS CS 273 Operating Systems. Prerequisites: HD, SD.
- CSA: CS CS 284 Client-Server Applications. Prerequisite: SD.
- Capstone course (1 credit required)
- CAP: CS CS 390 Senior Capstone Seminar. [WRI]. Prerequisite: Senior CS major with all core courses taken or currently enrolled.
- Elective courses (2 required)
- Additional core courses (among TC, PL, CSA, OS)
- TOP: CS CS 300 Topics in Computer Science.
- BI: CS CS 315 Bioinformatics. Prerequisites vary for Biology, CS, and Mathematics students.
- LP: CS CS 336 Logic Programming. Prerequisites: PL or ADS.
- ATP: CS CS 350 Advanced Team Project.
