Introductory computer programming in BASIC, for students with no prior knowledge of programming. Examples and exercises require no mathematics beyond high school algebra.
2 units
Computer Science
Overview | Requirements | Courses | Faculty
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, 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 minor in Computer Science can help prepare students for a variety of opportunities for subsequent employment or graduate work. Moreover, the minor can provide students with models of problem solving and theoretical constructs that can shed light on human intelligence and the workings of the mind.
Requirements
MINOR:The requirements for the minor consist of demonstration of proficiency in programming, four fundamental courses, and one elective course, as follows.
* Proficiency in Programming.
This requirement may be satisfied by completion of four units of programming courses (listed below). Two of these four units must be in CS 157 or CS 161; and only one of these two courses may be taken for credit. Proficiency in Programming may also be demonstrated by examination.
- CS 155, Web design and programming (2 units; no prerequisite)
- CS 157, Programming in C++ (2 units; no prerequisite)
- CS 161, Programming in Java (2 units; no prerequisite)
- CS 165, Programming in Mathematica (2 units; no prerequisite)
* Four fundamental courses
- Math 210: Discrete Mathematics (prerequisite: Calculus 2)
- Math 352: Computability and Complexity (prerequisite: Math 210)
- CS 211: Introduction to Computer Science (prerequisite: CS 161, or equivalent)
- CS 311: Data Structures and Algorithms (prerequisite: CS 211)
* Elective courses
- Chemistry 355: Introduction to Bioinformatics (prerequisites: Chem 221 and Bio 130, note that those courses have other prerequisites as well)
- Cognitive Science 210: Introduction to Artificial Intelligence (prerequisite: Cog Sci 242, Math 186 or Math 210, plus some programming experience)
- Cognitive Science 242: Computational Approaches to Cognition (prerequisite: Cog Sci 101, Computer Science 211, Math 210, or Math 352)
- Cognitive Science 343: Probabilistic Models of Cognition (prerequisite: Cog Sci 242)
- Math 186: Network Models (no prerequisite)
- Math 370: Numerical Analysis (prerequisite: Math 212 or Math 214)
- Math 372: Operations Research (prerequisite: Math 210 and 214)
- Geo 355: Paleomagnetism (prerequisite: Geo 105)
- Physics 261: Simulations in Physics (prerequisites: Physics 110 or 115, and pre- or co-requisite of Physics 120 or 125)
- Physics 361: Computational Physics (prerequisite: Physics 340)
COMPUTER SCIENCE PLACEMENT: Advanced placement is available to students with qualifying scores on the College Board Advanced Placement Examinations in Computer Science. Those scoring 4 or 5 on the A Examination or 4 on the AB Examination may enroll in Computer Science 211 without the Computer Science 161 prerequisite. Students scoring 5 on the AB Examination do not have to take Computer Science 211.
RELATED COURSES: Additional mathematics courses relevant to computer science include Mathematics 150, 320, 322, 350, and 380.
Courses
151 - Programming in Basic
155 - Web Design and Programming
Principles of web design. Tools and techniques of elementary web programming, including HTML, XHTML, CSS, Javascript, HTTP, SSL, XML, SQL. Introduction to network architecture and programming.
2 units
157 - Programming in C++
Programming in C++, including procedures, functions, control structures, files, structs, and elementary uses of pointers, objects, and classes. Does not assume any prior knowledge of C. Given in alternate years. Not open to students who have taken or are taking CS 161.
2 units
161 - Programming in Java
Programming in Java, including classes and objects, applets, simple graphics and animation. Not open to students who have taken or are taking CS 157.
2 units
165 - Mathematica
Introduction to using Mathematica for mathematical calculation and programming. Prior programming experience in any language, OR any of the following Math courses: 109, 110, 114, 120, 128, 210, 212, OR 214.
2 units
167 - Matlab
Introduction to Matlab for scientific computation and programming, including scripts and functions, control structures, arrays and cell arrays, logical indexing, and vectorizing algorithms. Introduction to object-oriented programming. Prerequisite: One 100 level science or mathematics course, or permission of instructor. Given in alternate years.
2 units
197 - Independent Study in Computer Science
Directed individual study. Prerequisite: permission of instructor.
2 units
211 - Introduction to Computer Science
Programming with linked data structures, including stacks, queues, trees and linked lists. Object-oriented programming. Programming methodology. Computer systems. Ethics in computing. Weekly lab. Prerequisite: CS 161 or instructor permission.
CORE REQUIREMENT MET: MATH/SCI
311 - Data Structures and Algorithms
Comparative data structures and analysis of algorithms. Abstract data types. Uses of object-oriented classes. Structures and techniques for programming applications. Introduction to computational complexity. Weekly lab. Prerequisite: CS 211.
CORE REQUIREMENT MET: MATH/SCI
397 - Independent Study in Computer Science
Directed individual study of advanced topics. Prerequisite: permission of instructor.
2 or 4 units