Computer Science Program

From Undergraduate Engineering Handbook

Revision as of 16:25, 14 February 2012 by Dlazar (Talk | contribs)
Jump to: navigation, search

Looking at technology today, it is hard to believe that the first computers were developed only seventy years ago. Computers are everywhere, and much of modern engineering involves the application of computer technology. The undergraduate major in computer science offers a broad and rigorous training for students interested in the science of computing. The track structure of the CS program also allows you to pursue the area(s) of CS you find most interesting while giving you a solid overall foundation in the field.

Many students obtaining a BS in CS will go on to work in industry or 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.

The minimum major in computer science consists of 96 units, including 26 units of math, 11 units of science, 13 units of engineering fundamentals, one course in TIS (Technology in Society), and 43 units of core depth. After learning essential programming techniques in CS106 (via the CS106A/B/X courses) and the mathematical foundations of computer science in CS103, the computer science major offers coursework in areas such as artificial intelligence, biocomputation, computer engineering, graphics, human-computer interaction, information, systems, and theory.

The Computer Science Department also participates in two interdisciplinary majors: Mathematical and Computational Sciences, and Symbolic Systems.



In addition to the honors program in CS (discussed later in this handbook), there are many opportunities for undergraduates to get involved in research. Here is a partial list:

CURIS (Undergraduate Research in Computer Science)
Each summer undergraduates work with CS faculty through the summer research college. Interested students apply for positions during the winter quarter, and CURIS decisions are then made and offers sent out before spring quarter begins. These positions are fully-funded and provide invaluable experience in cutting-edge research. All CS students are notified via email of CURIS opportunities and the application process.

Research Opportunities for Computer Science Undergraduates
At the beginning of each academic year CS faculty are asked to provide a list of ongoing research projects that are appropriate for undergraduate involvement. Descriptions of the projects are listed at

Research Tour/Lunch Series
Each year the CS department offers research lab tours and luncheons specifically geared toward undergraduates. These tours allow students to experience first-hand what goes on in a lab, and the luncheons provide an opportunity for students to discuss interests with research faculty. Past tours included the AI Robotics Lab, the IRoom and the Graphics Lab.

Research Seminars and Talks
At various times throughout the year the CS department hosts talks and presentations on various research and technology topics. In addition to these one-time events, there are regularly scheduled seminars which are open to undergraduates. Many of these seminars are available as 1 unit, 500-level courses, but enrollment is not required for attendance.

For Students Interested in Pursuing a Research-Oriented Undergraduate Program:
Freshman and Sophomore Year
Students interested in pursuing research should plan to finish the majority of the CS core (CS 103, 106, 107, 109, 110, and 161) by the end of the sophomore year. If you already have an idea of the area in CS you'd like to pursue, you may find these course suggestions useful:
If you’re considering…
Possible AI courses: make sure to take CS 109 freshman/sophomore year
Possible graphics courses: make sure to take Math 51 and/or Math 104 freshman/sophomore year
Possible theory courses: make sure to take CS 109, CS 154, or CS 161 freshman/sophomore year

Students doing summer research through CURIS should expect to take a course or two spring quarter to prepare them for their research project.

Junior Year
During the junior year students considering research can take one of the following sequences, depending upon your field of interest:

  • Artificial Intelligence: Autumn: CS 221, Winter: Any 22X, Spring: Coursework suggested by CURIS advisor
  • Databases: Autumn: CS 145, Winter: CS 245, Spring: Coursework suggested by CURIS advisor
  • Graphics: Autumn: CS 148, Winter: CS 248, Spring: Coursework suggested by CURIS advisor
  • Human-Computer Interaction: Autumn: CS 147, Winter: CS 247, Spring: Coursework suggested by CURIS advisor
  • Systems: Autumn: CS 144, Winter: CS 140, Spring: Coursework suggested by CURIS advisor
  • Theory: Autumn: CS 157 & 161, Winter: CS 258, Spring: Coursework suggested by CURIS advisor

Students doing summer research through CURIS should expect to take a course or two spring quarter to prepare them for their research project.

Senior Year
At the end of the junior year students who qualify are encouraged to apply for the CS honors program (see the Computer Science ‘honors’ section in Chapter 6). Students who are accepted spend the senior year exploring a research topic in depth and writing an honors thesis. Alternatively, students may choose to take CS 294 if they do not have a specific project in mind but wish to contribute to active research.

Note: The above are meant to be taken only as suggestions. If you have questions, contact the CS course advisor at

CS Requirements


(26 units minimum; see program sheet footnotes for options and restrictions)

  • MATH 41 & 42. Calculus, 10 units, Aut-Wtr (or MATH 19, 20, 21 or AP credit) -- Freshman year
  • CS 103. Mathematical Foundations of Computing, 5 units, Aut-Wtr-Spr -- Freshman year
  • CS 109. Introduction to Probability for Computer Scientists, 5 units, Wtr-Spr -- Sophomore year
  • Mathematics electives, 6 units -- see footnotes on program sheets


(11 units minimum)

  • PHYSICS 41 (or 21 or 61). Mechanics, 4 units, Wtr -- Freshman year
  • PHYSICS 43 (or 23 or 63). Electricity and Magnetism, 4 units, Spr -- Freshman year
  • Science Elective (see footnotes on program sheets for options and restrictions)

Engineering Fundamentals

(13 units minimum)

  • ENGR 40 or ENGR 40N. Introductory Electronics or Engineering Wireless Networks, 5 units -- Sophomore year
  • CS 106B or CS 106X. Programming Abstractions or Accelerated version. 5 units -- Freshman or Sophomore year
  • Fundamentals Elective (see list of approved courses in Fig. 3-4; may not be 106A, B or X)

Technology in Society

(One course, 3-5 units) See list of approved courses in Figure 3-3.

Writing in the Major

One course:


(14 units) See Program Sheet footnotes for more detail
CS 107. Computer Organization and Systems, 5 units, Aut-Spr -- Sophomore year
CS 110. Principles of Computer Systems, 7 5 AW So/Jr
CS 161. Design and Analysis of Algorithms, 8 5 AS So/Jr
Senior Project: CS 191, 191W, 194, 194W, 210B, 294, or 294W 9 3 Sr
Depth: Choose one of the following tracks: minimum of 7 courses (26 units minimum required)
Artificial Intelligence Track:
a) CS 221
b) Any two of: CS 223A, 224M, 224N, 226, 227, 228, 229, 231A
c) One additional course from category (b) or the following: CS 124, 205A, 222, 224S, 224U, 224W, 225A 225B, 227B, 231B, 262, 276, 277, 279, 321, 326A, 327A, 329 (with advisor approval), 331, 374, 379 (with advisor approval); EE 263, 376A; Eng 205, 209A; MS&E 251, 339, 351; Stat 315A, 315B
d) Track Electives: At least three additional courses selected from (b), (c), the general CS electives list10, or the following: CS 275, 278; EE 364A, 364B; Econ 286; MS&E 252, 352, 355; Phil 152; Psych 202, 204A, 204B; Stat 200, 202, 205

Personal tools