COMPUTER SCIENCE

If you look at technology today, it is hard to believe that the first computers were developed only half a century ago. Computers are everywhere, and much of modern engineering involves application of computer technology. The undergraduate major in computer science offers a broad and rigorous training for students interested in the science of computing.
Many students obtaining a BS in CS will go on to do graduate work in a branch of CS such as artificial intelligence, robotics, software design, graphics, theory, or hardware design. But CS is not just for future computer scientists. There is an increasing demand for people trained in CS and some other field. If you are interested in working as a manager of a high-tech company, a BS in CS along with an MBA is a great combination. If you want to work on court cases involving software piracy, you will be well served by a BS in CS combined with a JD. Similar opportunities exist for those who combine a BS in CS with an MD or other graduate degree.
Beginning in 1997-98, the Computer Science Department requirements have been revised to offer students more flexibility. The two-quarter Introduction to CS theory sequence (CS109A/B) has been modified and is now offered as a one-quarter course (CS109). In addition, the number of CS elective units has increased from 6 to 9. The total number of required units remains more or less the same as in the past. The minimum major in computer science consists of 100 units, including 27 units of math, 12 units of science, 10 units of basic engineering, one course in TIS (Technology in Society), 45 units of depth, and 3 units of project work. After learning essential programming techniques in CS106 (taken either as the two-quarter sequence CS106A/B or as the intensive CS106X), serious study of computer science begins with CS107/CS108 and CS109. Together these courses provide a broad exposure to computer science as a discipline, examining such topics as: logic, data models, analysis of algorithms, assembly language, computer architecture, and theory of programming languages. The depth sequence consists of four parallel paths that emerge from CS107/CS108/CS109, exploring hardware, software, artificial intelligence, and theoretical computer science.
The Computer Science Department also participates in three interdisciplinary majors: Computer Systems Engineering, Mathematical and Computational Sciences, and Symbolic Systems.
COMPUTER SCIENCE PROGRAM REQUIREMENTS 1997/98

COURSE TYPICAL AVAILABLE
UNITS YEAR QUARTERS
MATHEMATICS (27 UNITS MINIMUM)
Math 41 Calculus 5 Fr A
Math 42 Calculus 5 Fr AW
Math 51 Calculus 5 Fr AWS
Math 103 Matrix Theory & Applications1 3 So AWS
or
Math 113 Linear Algebra & Matrix Theory1 So AW
CS157 Logic and Automated Reasoning 4 Jr AW
or
Phil 160A First-order Logic Jr W
Stat 116 Theory of Probability 5 So/Jr AS
SCIENCE (12 UNITS MINIMUM)
Phys. 41 Mechanics 3 Fr A
Phys. 43 Electricity 3 Fr W
Phys. 45 Magnetism 3 Fr S
Science Elective2 3 So/Jr
ENGINEERING FUNDAMENTALS (10 UNITS)
Engr. 40 Introductory Electronics 5 So AS
CS106X Programming Meth & Abstract 5 Fr/So AWS
or
CS106A and CS106B AWS
TECHNOLOGY IN SOCIETY (1 COURSE, 3-5 UNITS)
See list of approved courses in front of Handbook3
WRITING IN THE MAJOR (1 COURSE)
CS191W, CS194, and CS201 fulfill the "Writing in the Major" requirement.
COMPUTER SCIENCE COURSES (48 UNITS)
CS107 Programming Paradigms 5 So/Jr AS
CS108 Object-Oriented Systems Design 4 So/Jr AW
CS109 Intro to Computer Science 4 So AW
CS143 Compilers 4 Jr/Sr AS
CS154 Intro to Automata & Complex Th 4 Jr/Sr AS
CS161 Data Structures & Algorithms 4 Jr/Sr AS
CS121 or 221.Intro to Artificial Intel 3 Jr/Sr S/A
CS240A Operating Sys & Sys Prog 4 Jr/Sr AW
EE182 Computer Organization & Design 4 So/Jr AW
Electives4 9 Jr/Sr
Senior Project (3 units of CS191, 191W, 194, or 195B)5 3 Sr
Notes
1 Math 52 or 53 may be taken in place of the Math 103/113 requirement. Math 19, 20, and 21 may be taken instead of Math 41 and 42, as long as a total of 27 math units are taken.
2 Any course of 3 or more units from the SOE Handbook's list of "Courses Approved for the Science Requirement," plus Psych. 30, 40, or AP Biology or Chemistry credit may be used. Physics 61 and 63, or Physics 21 and 23, may be taken instead of Physics 41, 43 and 45 as long as a total of 12 science units are taken.
3 CS201 also fulfills this requirement.
4 9 units from the following: CS110, 137, 145, 147, 148 or 248, 195A, 222, 223A, 223B, 224, 225, 227, 228, 229, 240B, 242, 243, 244A, 245A, 245B, 247A, 247B, 249, 256, 257, 258, 261, and EE282.
5 CS191 and 191W independent study projects require faculty sponsorship and must be approved, in advance, by the advisor, faculty sponsor, and the CS program advisor (Eric Roberts). A form bearing these signatures, along with a brief description of the project, should be filed with the department representative in Gates room 182 at least two quarters before graduation.
SAMPLE PROGRAMS FOR COMPUTER SCIENCE

Because students declare CS at different times in their undergraduate careers and vary widely in their interests and background, it is difficult to show a single "typical schedule." Below are three typical schedules, but even these are not representative of the possible variety. Only the major requirements are indicated in the programs; electives and University requirements like Western Culture and Freshman English are not indicated.
______________________________________________________________________________
The following program satisfies most of the major requirements in the first two years. Such a program provides significant flexibility in the junior and senior years for exploring other disciplines or for taking more advanced computer science courses.


Autumn
Math 41 5
Physics 41 3


Freshman Year
Winter
Math 42 5
Physics 43 3



Spring
Math 51 5
Physics 45 3
CS106X 5



Autumn
CS107 5
E40 5
Science Elective 3


Sophomore Year
Winter
CS108 4
CS109 4
Math 103 3



Spring
CS Elective 3
TIS 3-5
Stat 116 5



Autumn
CS143 4
CS154 4


Junior Year
Winter
CS157 4
EE182 4



Spring
CS121 3
CS161 4



Autumn
CS191W 3
CS240A 4


Senior Year
Winter
CS Elective 3
Advanced CS 3



Spring
CS Elective 3
Advanced CS 3



This program progresses through the major somewhat more slowly, starting with CS106A/B in the sophomore year. Even so, most quarters include only two courses towards the major.


Autumn
Math 41 5
Physics 41 3


Freshman Year
Winter
Math 42 5
Physics 43 3



Spring
Math 51 5
Physics 45 3



Autumn
CS106A 5
Science Elective 3


Sophomore Year
Winter
CS106B 5
Math 103 3



Spring
CS107 5
TIS 3-5
E40 5



Autumn
CS108 4
CS109 4


Junior Year
Winter
CS157 4
CS Elective 3
EE182 4



Spring
CS143 4
CS154 4
Stat 116 5



Autumn
CS161 4
CS Elective 3


Senior Year
Winter
CS240A 4
CS Elective 3



Spring
CS194 3
CS121 3



The final sample program shows that the program can be completed even if begun late. This hypothetical student doesn't start taking any significant courses towards the major until the middle of the sophomore year.


Autumn
Math 41 5


Freshman Year
Winter
Math 42 5



Spring
Math 51 5



Autumn
CS106A 5
Physics 41 3


Sophomore Year
Winter
CS106B 5
Physics 43 3
Math 103 3



Spring
CS107 5
Physics 45 3



Autumn
CS108 4
CS109 4
Science Elective 3


Junior Year
Winter
CS157 4
CS Elective 3
TIS 3-5



Spring
CS Elective 3
E40 5
Stat 116 5



Autumn
CS161 4
CS221 3
EE182 4


Senior Year
Winter
CS154 4
CS240A 4
CS Elective 3



Spring
CS143 4
CS194 3


Page 97
CS Flow Chart