2019-2020 Catalog

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 concentration should begin meeting with an advisor early on. Students in the CS+X concentration should submit a proposal using this webform to the Department Chair for approval prior to the beginning of their Junior year.

Major Requirements

Computer science is a broad field, encompassing topics from digital logic and advanced mathematical theory to video games and data science. At the same time, these foundations and applications 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 131Fundamentals of Computer Science

4 units

COMP 229Data Structures

4 units

 

COMP 149Mathematical Foundations of Computer Science

4 units

Or

 

MATH 210Discrete Mathematics

4 units

And

MATH 214Linear Algebra

4 units

 

COMP 239Computer Organization

4 units

COMP 390Computer Science Junior Seminar

4 units

COMP 490Senior Seminar

4 units

Concentrations

Students should meet with an advisor early on to explore potential pathways through the major. Students will select one of the following three concentrations:

Computational Mathematics Concentration

To complete this concentration, students must take or pass out of Calculus II. They must also take:

MATH 210Discrete Mathematics

4 units

MATH 214Linear Algebra

4 units

COMP 317Algorithms Analysis

4 units

Two additional COMP courses at the 300-level or above

8 units

Two additional MATH courses (*see below*)

8 units

 

And

MATH 352/COMP 352Computability and Complexity

4 units

Or

COMP 353Information 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.

Computer Science Concentration

Six courses 200-level or above in at least two different sub-fields of computer science (artificial intelligence, interfaces, security, systems/software, and/or theory). At least three of those courses must be at the 300-level. COMP 317 is highly recommended for students interested in graduate school. Students can count at most two courses from the Additional Electives (below) towards the major in this pathway.

This pathway is designed to give students broad working knowledge of the many facets of the field, while maintaining freedom to pursue specific topics in depth.

CS+X Concentration

Six courses 200-level or above, with at least three of those courses 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. At least three of the four courses in the interdisciplinary concentration must be outside of and not cross-listed with Computer Science, and at most two of these courses can be double-counted for another major/minor.

This pathway 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 CS+X option will work with an advisor to propose the interdisciplinary concentration of four courses on a related theme. Proposals must include an intellectual rationale for the course selection. 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 department using this form no later than two semesters prior to the semester of graduation, and at least two weeks before Advising Week. 

Any changes to the pathway must be approved via a Petition for Special Consideration, signed by the academic advisor, the department chair, and the outside advisor for the CS+X theme, and submitted to the Registrar's Office no later than the week prior to registration in the semester before graduation.

Sub-fields

Interfaces

COMP 313Computer Graphics

4 units

COMP 340/COGS 340Human Computer Interaction

4 units

COMP 349Robotics

4 units

Security

COMP 383Computer Security

4 units

COMP 389Cryptography

4 units

Artificial Intelligence

COMP 325/COGS 325Topics in Artificial Intelligence

4 units

COMP 331Natural Language Processing

4 units

COMP 347Machine Learning

4 units

Theory

COMP 317Algorithms Analysis

4 units

COMP 352/MATH 352Computability and Complexity

4 units

COMP 353Information Theory

4 units

Software

COMP 357Networking

4 units

COMP 367Practicum in Computer Science

4 units

COMP 373Databases

4 units

COMP 379Operating Systems

4 units

The name of this sub-field has changed from "Systems" to "Software." This is not an additional sub-field. Students that have taken courses listed as satisfying the Systems sub-field will apply these toward the Software sub-field.

Additional Electives


Students may select courses from the list below to satisfy a major elective.

BIO 268Biostatistics

4 units

BIO 373Computational Biology

4 units

COGS 242Computational Approaches to Cognition

4 units

ECON 305Game Theory

4 units

GEO 255Spatial Analysis with Geographic Information Science

4 units

KINE 302Biomechanics

4 units

KINE 310/PSYC 310Motor Learning and Control

4 units

MAC 230Narrative Design and Worldbuilding for Media

4 units

MATH 322Number Theory

4 units

MATH 330Probability

4 units

MATH 332Mathematical Statistics

4 units

MATH 354Set Theory and Foundations of Mathematics

4 units

MATH 370Numerical Analysis

4 units

MATH 372Operations Research

4 units

MATH 380Combinatorics

4 units

MATH 396Mathematical Modeling

2 units

PHIL 150Formal Logic

4 units

PHIL 341Philosophy of Space and Time

4 units

PHIL 350Metalogic

4 units

PSYC 301Learning

4 units

PSYC 302Perception

4 units

PSYC 444Thinking and Reasoning

4 units

UEP 305Urban Data Analysis

4 units

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, typically offered in spring, 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. We recommend that students do not study abroad in the spring of their junior year or the fall of their senior year. 

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 will complete 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, but we recommend not studying abroad during fall of senior year. 

To earn credit for 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.

College Honors

Honors in Computer Science may be awarded to graduating seniors who demonstrate excellence in their coursework and perform additional research related to their senior comprehensive project during the spring semester of their senior year. Intent to propose an honors project is due the first Friday of December, with a full proposal due two weeks before the start of the spring semester. Decision to accept or reject the proposal will be communicated to the student before the first day of classes in the spring semester. Course credit will be awarded through independent study or directed research. Honors will be awarded based on evaluation of the honors project by Computer Science faculty. 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 (24 credits) which satisfy the following:

  1. Two courses are required: COMP 131 and COMP 229.
  2. At least four (16 credits) of the six courses (24 credits)  in the Minor must be COMP courses at the 200-level or higher.
  3. One of the following two choices is also required to fulfill the mathematics component of the Minor: COMP 149 or MATH 210 and MATH 214.

COMP 131Fundamentals of Computer Science

4 units

COMP 229Data Structures

4 units

Three 4-unit COMP courses at the 200-level or above

12 units

 

COMP 149Mathematical Foundations of Computer Science

4 units

Or

 

MATH 210Discrete Mathematics

4 units

And

MATH 214Linear Algebra

4 units

Transfer Credit Policies

The Computer Science Department policy on transfer credit conforms to College policy. Students should reference the Transfer Credit section for details. A score of 4 or 5 on the AP Computer Science examination is equivalent to COMP 131, and places a student into COMP 229 (Data Structures). For students who have taken the AP Computer Science Principles examination, who have taken IB or A-Level examinations in Computer Science, who have transfer credit, or are in similar situations, the department will evaluate each student’s situation individually. 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 versus print), and object-oriented programming (classes versus instances, constructors, passing familiarity with inheritance). All other students should begin with COMP 131 as soon as possible. Note that Computer Science majors and minors who place out of COMP 131 through means other than the AP Computer Science examination will need to take additional COMP units to make up for the four units otherwise earned with COMP 131.

Students receiving a 4 or 5 on the AP Statistics Examination are exempt from COMP 146; MATH 150 is recommended for these students wanting to take further statistics courses.

Information that can be included in this section include:
  • specific policies for majors/minors
  • AP/IB Exam credit - course equivalencies?
  • Online courses
  • Policies specifically for matriculating frosh, transfer students, returning students after a leave of absence
Information that can be included in this section include:
  • specific policies for majors/minors
  • AP/IB Exam credit - course equivalencies?
  • Online courses
  • Policies specifically for matriculating frosh, transfer students, returning students after a leave of absence

Courses

Computer Science Courses

Faculty

Regular Faculty

Kathryn Leonard, chair

Professor

B.S., University of New Mexico; M.S., Ph.D., Brown University

Celia Chen

Assistant Professor

B.S., Indiana University, Bloomington

Justin Li

Assistant Professor

B.S., University of New Mexico; M.S., Ph.D., Brown University

On Special Appointment

Hsing-Hau Chen

Non-Tenure Track Assistant Professor

BA., B.S., M.S., National Taiwan University; M.S., Ph.D., University of Southern California

Jeffrey Miller

Non-Tenure Track Assistant Professor

B.S., University of California, Davis; M.A., Ph.D., University of California, Santa Barbara

Umit Yalcinalp

Non-Tenure Track Assistant Professor

B.A., Middle East Technical University; M.S., Ph.D.,Case Western Reserve University