Computer Science
Overview
Computers have transformed our world technologically, economically, and socially. Although computer science has its roots in mathematics, the use of computers increasingly informs almost every academic discipline. At Occidental College, the study of Computer Science emphasizes an understanding not only of the process of computing but also of the promise and limitations of computers within an intellectual, societal, and ethical framework. A major or minor in Computer Science can help prepare students for a variety of opportunities for subsequent employment or graduate work. Moreover, the program can provide students with models of problem solving and theoretical constructs that can shed light on human intelligence and the workings of the mind.
Students must have completed COMP 131 before they declare the major, and are strongly encouraged to have also taken COMP 149 and COMP 229. Students considering the Mathematics or CS+X pathway should begin meeting with an advisor early on.
Advanced Placement
A score of 4 or 5 on the AP Computer Science exam places a student into COMP 229 (Data Structures), earning credit for completion of COMP 131. In general, to place out of COMP 131, a student should be proficient in variables, branches (if, else), loops (for, while), functions (parameters, scope, return -vs- print), and object-oriented programming (classes -vs- instances, constructors, passing familiarity with inheritance).
For students who have taken the AP Computer Science Principles exam, who have transfer credit, or are in similar situations, we will evaluate your situation individually. All other students should begin with COMP 131 as soon as possible.
Major Requirements
Computer science is a broad field, on that encompasses everything from digital logic and advanced mathematical theory, to video games and data science. Simultaneously, these foundations and applications all require fundamental knowledge of how a computer works, as well as the ability to translate processes into working programs.
The Computer science major coursework mirrors this structure. A student majoring in Computer Science must take a minimum of 12 courses (48 units) and take or pass out of Calculus I.
COURSEWORK
Required Courses
COMP 131 | Fundamentals of Computer Science | 4 units |
COMP 229 | Data Structures | 4 units |
| | |
COMP 149 | Mathematical Foundations of Computer Science | 4 units |
| Or | |
| | |
MATH 210 | Discrete Mathematics | 4 units |
| And | |
MATH 214 | Linear Algebra | 4 units |
| | |
COMP 239 | Computer Organization | 4 units |
COMP 390 | Computer Science Junior Seminar | 4 units |
COMP 490 | Senior Seminar | 4 units |
Pathways
Students should meet with an advisor early on to explore potential pathways through the major. Students will select one of the following three pathways:
Computer Science Pathway
Six courses 200-level or above in at least two different sub-fields of computer science (artificial intelligence, interfaces, security, systems, and/or theory). At least three courses must be 300-level. Students can count at most two courses from the Additional Electives (below) towards the major in this pathway.
COMP 317 is highly recommended for students interested in graduate school.
Students will graduate with broad working knowledge of the many facets of the field, while maintaining freedom to pursue specific topics in depth.
CS+X Pathway
Six courses 200-level or above, with at least three at the 300-level. Students must complete two CS courses in different sub-fields, a four-course interdisciplinary concentration around a computer science or technology theme (for a total of 24 units), plus a senior comprehensive project related to the theme.
This selection of courses - commonly known as CS+X - reflects the growing importance of computer science in many fields, and allows students to explore the intersection of technology with their other academic interests. Students who are interested in the interdisciplinary concentration option will work with an advisor to propose a concentration of four courses (including at least three outside of computer science) on a related theme. Proposals must include an intellectual rationale for the course selection, and a faculty member outside of Computer Science must approve the proposal and agree to act as an outside advisor for the senior comprehensive project. The proposal should be submitted to the Computer Science Department Chair no later than two semesters prior to the semester of graduation, at least two weeks before Advising Week. If approved, students and the Registrar's Office will be notified prior to the first day of registration. Any changes to the concentration must be done via a Petition for Special Consideration, signed by the academic advisor, the department chair, and by the outside advisor for the concentration, and submitted to the Registrar's Office no later than the week prior to registration in the semester before graduation.
Mathematics Pathway
To complete this emphasis, students must take or pass out of Calculus II. They must also take:
MATH 210 | Discrete Mathematics | 4 units |
MATH 214 | Linear Algebra | 4 units |
COMP 317 | Algorithms Analysis | 4 units |
| Two additional COMP courses at the 300-level or above | |
| Two additional MATH courses (*see below*) | 8 units |
| | |
| And | |
MATH 352/COMP 352 | Computability and Complexity | 4 units |
| Or | |
COMP 353 | Information Theory | 4 units |
*Students may apply any 4-unit Mathematics course at the 300-level towards this requirement. Students may also apply MATH 212 towards this requirement.
Sub-fields
Artificial Intelligence
Interfaces
Security
Systems
Theory
SECOND-STAGE WRITING REQUIREMENT
Students majoring in Computer Science will satisfy the college's Second-Stage Writing Requirement by receiving at least a C in COMP 390 and satisfactorily completing its writing component. The writing requirement must be completed by May of the student's junior year; students considering study abroad must coordinate with the department early to ensure that they can fulfill the writing requirement. In order to graduate, students who fail to fulfill the writing requirement by the deadline will be required to (1) take a composition course in the Writing & Rhetoric Department, approved by the Computer Science department chair and the Director of Writing Programs; and (2) include and complete a written component in their senior comprehensive that meets the approval of the Computer Science faculty.
COMPREHENSIVE REQUIREMENT
In the senior year the student carries out a project on a topic in Computer Science. The project is coordinated with the work of the Computer Science Senior Seminar (COMP 490). All majors take the Senior Seminar in the fall semester of the senior year; students considering study abroad must coordinate with the department to ensure the completion of their senior comprehensive project. At the end of COMP 490, students will present their completed project to the computer science faculty at a public showcase open to the campus community, in addition completing a thesis on their work. Example projects include a fully functional and user-tested mobile app, a research paper in computer science, or a review of technology policies and their impacts. Students who pursue the CS+X pathway must complete a comprehensive project related to their theme. Distinction will be awarded by the Computer Science faculty (and in consultation with external faculty for students pursuing CS+X) to exceptionally strong comprehensive projects.
HONORS
Honors in Computer Science may be awarded to graduating seniors who demonstrate excellence in their coursework and earn a graded of "pass with distinction" on their senior comprehensive project. To be eligible, students must have a 3.5 grade point average in the major and a 3.25 overall grade point average.
Minor Requirements
COURSEWORK
Students seeking a Computer Science Minor must complete six courses.
COMP 131 | Fundamentals of Computer Science | 4 units |
COMP 229 | Data Structures | 4 units |
| | |
COMP 149 | Mathematical Foundations of Computer Science | 4 units |
| Or | |
| | |
MATH 210 | Discrete Mathematics | 4 units |
| And | |
MATH 214 | Linear Algebra | 4 units |
| Three 4-unit COMP courses at the 200-level or above | 12 units |
Courses
Computer Science Courses
Faculty
Regular Faculty
Kathryn Leonard, chair
Professor, Computer Science
B.S., University of New Mexico; M.S., Ph.D., Brown University
On Special Appointment
Celia Chen
Full-Time Non-Tenure Track Instructor, Computer Science
B.S., Indiana University, Bloomington
Jeffrey Miller
Full-Time Non-Tenure Track Assistant Professor, Computer Science
B.S., University of California, Davis; M.A., Ph.D., University of California, Santa Barbara