Chair and Professor
Gruia-Catalin Roman (1976)Assistant Chair and Professor
Ph.D., University of Pennsylvania, 1976
Distributed and concurrent systems, software engineering, mobile computing,visualization
Sally A. Goldman (1990)Hugo F. and Ina Champ Urbauer Professor of Engineering
Ph.D., Massachusetts Institute of Technology, 1990
Computational learning theory, machine learning, algorithm design and analysis
Mark A. Franklin (1970)Henry Edwin Sever Professor of Engineering
(Electrical Engineering)
Ph.D., Carnegie Mellon University, 1970
Computer architecture, systems analysis and parallel processing, VLSI design
Jonathan S. Turner (1983)Professor
Ph.D., Northwestern University, 1982
Networking and communications, algorithms and complexity, VLSI applications
Ron K. Cytron (1993)Associate Professors
Ph.D., University of Illinois, 1984
Programming language optimization, parallel computations
Michael R. Brent (1999)Assistant Professors
Ph.D., Massachusetts Institute of Technology, 1991
Probabilistic modeling applied to language, speech and genomics,
empirical study of native language learning by humansKenneth J. Goldman (1990)
Ph.D., Massachusetts Institute of Technology, 1990
Distributed programming environments, distributed applications,
distributed algorithmsRonald P. Loui (1988)
Ph.D., University of Rochester, 1988
Artificial intelligence, legal reasoning, philosophy of computing,
web agentsWeixiong Zhang (2000)
Ph.D., University of California-Los Angeles, 1994
Solving computation-intensive problems in computer science,
operations research and molecular biology
Jeremy Buhler (2001)
Ph.D., University of Washington, 2001.
Computational Biology, genomics, algorithms for comparing and
annotating large biosequencesJason E. Fritts (2000)
Ph.D., Princeton University, 2000.
Media processors, computer architecture, optimizing compilers,
parallel processing, multimedia signal processingChristopher D. Gill (2001)
D.Sc., Washington University, 2002.
Distributed object computing, real-time systems, middleware
for ubiquitous and robotics systemsCindy M. Grimm (2000)
Ph.D., Brown University, 1996.
Surface modeling, image-based rendering, user-interfaces
texture generationJohn W. Lockwood (2001)
Ph.D., University of Illinois, 1995.
Reprogrammable hardware, high speed networksRobert Pless (2000)
Ph.D., University of Maryland, 2000.
Computational video geometry (geometry, statistics and
computation for constructing video representations
of a geometric nature)William D. Smart (2001)
Ph.D., Brown University, 2001.
Reinforcement learning for real world problems,
robotics: robot-human interfacesLihao Xu (1999)
Ph.D., California Institute of Technology, 1999.
Distributed computing and storage systems, reliable and
high performance computing, error control codes
Senior Professors Harold B. and Adelaide G. Welge Professor of Computer Science
Jerome R. Cox, Jr. (1955)In certain cases research and teaching for the department are carried out by other professionals at Washington University. They are affiliated with the Department of Computer Science and are classified as either affiliate faculty or research associates.
Sc.D., Massachusetts Institute of Technology, 1954
Computer visualization, digital communication, biomedical computingRichard A. Dammkoehler (1960)
M.S., Washington University, 1959
Computer programming theory, information retrieval, computer systems
architectureTakayuki D. Kimura (1978)
Ph.D., University of Pennsylvania, 1971
Communication and computation, visual programming languages,
multimedia, user interfaces
Affiliate Professors
Robert J. Benson (1965)Affiliate Associate Professors
J.D., Washington University, 1968
Information systems, systems analysis, database designG. James Blaine III (1974)
(Electrical Engineering, Mallinckrodt Institute of Radiology)
D.Sc., Washington University, 1974
Biomedical computing, digital communications, Picture Archive and
Communications Systems (PACS)I. Norman Katz (1967)
(Systems Science and Mathematics)
Ph.D., Massachusetts Institute of Technology, 1959
Numerical analysis, finite element methods, locational equilibrium problems,
algorithms for parallel computation
Affiliate Assistant ProfessorsKeith Bennett (1993)
M.S., Washington University, 1985
System/software engineering, virtual reality and visualization, space
applicationsRoger D. Chamberlain (1989)
(Electrical Engineering)
D.Sc., Washington University, 1989
Computer engineering, parallel computation, computer architecture,
multiprocessor systemsL. Andrew Oldroyd (1981)
(The Boeing Company)
Ph.D., University of Oklahoma, 1977
Image understanding and remote sensing, robotics, programming languagesPaul S. Min (1990)
(Electrical Engineering)
Ph.D., University of Michigan, 1987
Routing and control of telecommunications networks, fault-tolerance and
reliability, software systems, network managementRobert A. Rouse (1977)
(School of Medicine)
Ph.D., Northwestern University, 1968
Corporate strategic technology planning, expert systems/artificial intelligence
Senior Research AssociatesThomas L. Bugnitz (2000)
M.B.A., Washington University, 1974
Information systems, systems analysisC. David Butler (2000)
M.B.A., University of Iowa, 1991.
Web design, database systemsSean R. Eddy (2000)
(Genetics)
Ph.D., University of Colorodo, Boulder, 1991
Probabilistic modeling and formal grammars, genome analysis,
RNA computational molecular archaeology
Fred Kuhns (1997)Professor Emeritus
M.S., Washington University, 1991
Operating systems, networking, software frameworks,
extensible architecturesStan C. Kwasny (1987)
Ph.D., Ohio State University, 1980
Natural language processing, connectionism, artificial intelligence,
speech-understanding systemsKenneth F. Wong (1984)
(Applied Research Laboratory)
D.Sc., Washington University, 1985
Computer communications, networking, software architecture
Seymour V. Pollack (1966)
M.S. Brooklyn Polytechnic Institute, 1960
Intellectual property, information systems.
Computer science is an interdisciplinary field, both in its origin and in its application. Computer science plays an important role in virtually all fields, including science and medicine, music and art, business, law, and human communication. Whether your goal is to become a practicing computer scientist or to take a few courses to develop an basic understanding of computer science for application to another field, the Department of Computer Science at Washington University is committed to helping you gain the computing background you need.
People are attracted to the study of computer science for a variety of reasons. Consequently, the department offers a wide variety of academic programs, including a five-course minor, a second major, several undergraduate degrees, combined undergraduate and graduate programs, as well as undergraduate research opportunities and an undergraduate honors program. Each academic program can be tailored to your individual needs.
The field of computer science is very broad, encompassing all aspects of the design, analysis, implementation and use of computer technology. These aspects may be best understood in terms of the general categories of software systems, hardware, theory and applications.
Software systems are collections of interacting software components that work together to support the needs of computer applications. Courses in this area help you gain a solid understanding of how software systems are designed and implemented. Examples include operating systems that manage computational resources, network protocols that are responsible for the delivery of information, compilers that translate computer programs into executable form, and programming languages that support the construction of software systems and applications.
Hardware is the term used to describe the physical and mechanical components of a computer system. Courses in this area provide background in logic circuits that carry out basic computations, computer architecture that defines the organization of circuitry in a computer system, and peripheral devices such as disks and robot arms that are controlled by the computer system.
Theory is the study of fundamental possibilities and limitations of computer systems. A background in theory will help you choose among competing design alternatives on the basis of their relative efficiency, and will help you to verify that your implementations satisfy the specified requirements. Theory courses provide background in algorithms that describe how a computation is to be carried out, data structures that specify how information is to be organized within the computer, analysis that is used to understand the time or space requirements of a problem or solution, and verification techniques for proving that solutions are correct.
Applications are the ways in which computer technology is applied to support work in other disciplines. Most applications courses provide background not only in the applications themselves, but also in how the applications are designed and implemented. Applications areas include artificial intelligence, computer graphics, database systems, and others.
A typical well-rounded study of computer science will include background in each of these areas. However, depending on your educational goals, you may prefer to concentrate on certain areas for greater depth of knowledge. If you are planning to take the CS GRE then you are strongly recommended to take CS 422S, CS 431S, and CS 507T. To help you balance your elective courses, most upper-level computer science courses are numbered with a designation in one of these categories: S for software systems, M for machines (hardware), T for theory, and A for applications. You are encouraged to meet with a faculty advisor in the Department of Computer Science to discuss your options and develop a plan consistent with your goals.
Below we describe the Minor in Computer Science, the second major, the premedical option, the BS degree, the BSCS degree, the BS in Computer Engineering, combined undergraduate and graduate programs, the Undergraduate Research Opportunities Program, the cooperative-education program, and the CS honors program.
If you are interested in learning about computer technology but are
not sure where to start, there are several options you might consider.
If you are interested in the use of computer and networking tools for application
to other areas or just to be computer-literate, we offer CS
100, a one unit hands-on introduction. If you are interested in a more
in-depth study on using computer technology and applications software, we
suggest you consider CS 152. Finally, if you
are interested in an introduction to computer science and computer programming
we recommend starting with CS 101G.
Minor in Computer Science
If your goal is a basic foundation in computer science for application
to another field, but you are not planning a career as a practicing computer
scientist, the Minor in Computer Science is a good choice. The minor consists
of five CS courses, including three core courses and two electives.
The core courses provide an introduction to computer science concepts and
problem-solving techniques. The electives offer flexibility to integrate
your computer science studies with your major area. You select the
courses that are most important to you, whether your interests are in fine
arts, linguistics, psychology, philosophy, law, business, medicine, the
natural sciences, or anything else.
The requirements for the CS minor are:
Core: CS 101G, CS
102G and CS 241.
CS electives: Any two additional CS courses selected
among CS 201 and CS courses with an S, M, T or A suffix.
(See "About Computer Science" above for an explanation of the suffix designations.)
For the CS electives, you may choose two related electives for depth
of coverage, or you may choose two very different courses for breadth of
exposure. Please be aware of prerequisites in selecting elective courses.
Should you decide to go further in the field, all courses in the CS minor
can be counted toward a CS major. All courses used for the CS minor
must be taken for a grade and you must earn a C- or better.
The minor can be declared any time after the five courses to be taken
are selected. A declaration of a CS minor form can be obtained
in Lopata 324 or the CS office (Bryan 509).
Second Major
A second major is ideal for interdisciplinary study in areas such
as cognitive science, computational biology, chemistry, physics,
philosophy, or linguistics. The second major option is also
well-suited for students planning careers in medicine, law, business,
architecture, and fine arts. If you are earning a degree in another
division (such as Business or Arts and Sciences), you earn a second
major in computer science by completing the computer science and
math requirements for the Bachelor of Science
(BS) degree program. It is not necessary to complete other
distribution requirements (i.e. natural science requirement,
humanities and social sciences electives, Ecomp 100, and EP 310) of
the School of Engineering to complete the second major.
If you are in the School of Engineering earning a degree in computer
science, you can also earn a second major in any department in the School
of Arts and Sciences simply by completing the departmental requirements.
For example, to complete a second major in psychology, you need only satisfy
the Psychology Department's requirements. You do not need to satisfy
the School of Arts and Sciences breadth requirements, and the second major
requires only the standard 120 units.
Premedical Option within Computer Science
Students may
pursue a pre-medicine curriculum in conjunction with either the BS or
BSCS degree options (described below) for computer science
majors. We we have provided a sample
schedule for a student pursuing the BS degree option. The
BSCS option may result in some semesters with an 18-credit hour load;
however, students may reduce this load by taking physics over the
summer. Additional details are available from your advisor and
from the university office for pre-professional advising.
Dual Degree
Another way to combine study in two different fields is through the
Combined Degree program. In this program, by satisfying all requirements
for two individual degrees, you earn two separate bachelor's degrees, one
in Computer Science and the other in another discipline (from any of the
five schools). If your second degree is from College of Arts and
Sciences then 150 units are required.
Bachelor of Science (BS) with a major in Computer Science
The most flexible degree option in computer science is the Bachelor
of Science (BS). The BS degree is designed for students who want
a solid background for a career in computer science, with additional flexibility
to choose a well-rounded variety of courses. Because it has fewer
specific course requirements than the BSCS and does not require the SEAS
common studies (such as advanced mathematics, physics, chemistry, etc.),
the BS degree program leaves room for you to select courses according to
your particular needs and interests. Also, the BS works well if you want
to complete another major along with computer science. (See "Second
Major.") This program is also well-suited for students planning to
enter medical school or law school.
Students working toward a BS Degree must meet all requirements for a
Bachelor of Science Degree, and the following course requirements:
Computer Science Core Requirements: CS 101G,
102G,
201,
241,
342S
and either CS 422S, 431S, or 455S. Each of these core courses must be passed with a
grade of C- or better.
Computer Science Electives: At least 24 units of
computer science electives, selected from any computer science course with
an S, M, T or A suffix. Students may use up to 6 units of approved
independent work (CS 400, 493-494, CS 499) as part of their computer science
electives.
Math Requirement: Math 131-132-233 (or Math 141-142)
and Probability (SSM 326A, Math 320, or the sequence QBA 120/QBA 121).
Upon completing a course in the calculus sequence (Math 131,132,233)
with a grade of C- or better, you may apply to receive credit for the
preceding courses in the calculus sequence.
Additional Requirements: 8 units in natural sciences or
psychology, C+ or better in Ecomp 100 or 199 (unless waived), EP 310 (or
comparable demonstration of technical writing ability), and the humanities
and social sciences electives.
All computer science and math courses taken for the above requirements
as well as Ecomp 100 or 199 and EP 310 cannot be taken on a pass/fail basis.
Bachelor of Science in Computer Science (BSCS)
The Bachelor of Science in Computer Science (BSCS) is the traditional
computer science degree in the School of Engineering. It is designed
for students planning a career in computer science and desiring a degree
with an engineering flavor. Students working toward a B.S.C.S. degree
must meet all requirements for a professional degree. In
addition, there are the following departmental course requirements:
Common Studies Program Requirement: Includes C+ or
better in Ecomp 100 or 199 (unless waived), Math 131-132-233 (or Math
141-142), Math 217, Physics 117A-118A, Chem 111A-151, EP 310,
humanities and social sciences electives, and an engineering breadth
course. Upon completing a course in the calculus sequence (Math
131,132,233) with a grade of C- or better, you may apply to receive
credit for the preceding courses in the calculus sequence.
Computer Science Core Requirements: CS
101G, 102G, 201, 241,
342S, and 456S; either CS
260M or 306S; and either CS
422S, 431S, or 455S.
Each of these core courses must be passed with a grade of C- or better.
Computer Science Elective Requirements: At least 18
additional units in computer science or computer science-related
courses with an S, M, T or A suffix of which at least one must be a
theory (T) course and at least one must be a systems (S) course and at
least one must be a Machine (M) or Application (A) course. Students
may use up to 6 units of approved independent work (CS
400, 493-494, CS 499) as part of their computer science
electives. Such independent work is not classified as S, M, T or
A.
Additional Departmental Requirements: SSM 317 and SSM 326A.
All courses taken to meet the above requirements (with the exception
of the humanities and social sciences electives) cannot be taken on a pass/fail
basis.
Bachelor of Science in Computer Engineering
(BSCoE)
Computer Engineering is an interdepartmental program sponsored by the
Departments of Computer Science and Electrical Engineering with the goal
of providing a solid education in the engineering of computer systems.
The program encompasses studies of hardware, software, and systems questions
that arise in the design, development, and application of computers. It
is supervised by a Computer Engineering program director and committee.
Upon successful completion of the program, the student receives the degree
Bachelor of Science in Computer Engineering. Students with a strong interest
in both computer science and computer engineering may choose to pursue
the dual degree combination of a BSCS and a BSCoE.
Combined Undergraduate and Graduate Study
The Department of Computer Science offers in depth graduate study in
many areas, including networking, distributed systems, algorithms, and
artificial intelligence. Students entering the graduate programs
require a background in computer science fundamentals equivalent to at
least the Minor in Computer Science. Washington University undergraduates
seeking admission to the graduate degree program to obtain a master's in
computer science must take the general Graduate Record Examination (GRE).
We also recommend that you take the GRE subject test in computer science
or a related subject. For more information, contact the department office,
(314) 935-6160.
The Joint B.S.-M.S.
This five-year program that leads to both the bachelor's and
master's degrees offers the student an excellent opportunity to
combine undergraduate and graduate studies in an integrated
curriculum. The combination of the two programs extends the
flexibility of the undergraduate curriculum to more advanced studies,
thereby enabling students to plan their entire spectrum of computer
science studies in a more comprehensive educational framework.
Consistent with the general requirements defined by the School of
Engineering and Applied Science, a minimum of 150 units of academic
credit is required for completion of the BSMS program. In addition,
courses must be selected so that the department's undergraduate and
graduate requirements are both independently met. Students in
the BSMS program can exploit the program's flexibility by taking
graduate courses toward the graduate degree while still completing the
undergraduate degree requirements. We have provided a
sample schedule for the B.S.-M.S. program.
The BSMS program offers early admission to the graduate program in computer
science in the junior or senior year and they allow you to complete the
master's degree in only one additional year of study (instead of the usual
3 semesters). Each master's level computer science course that you
take at Washington University that is not counted toward your undergraduate
degree can be counted toward the 30 units required for the MS. Taking
advantage of this program can also
result in a financial advantage, since the total time to completion
is shortened and undergraduate tuition is lower than graduate tuition.
Also, if you choose to do a Master's Project or Master's Thesis, this gives
you the flexibility to spread the research work over a longer period.
If you plan to apply to this program, it is recommended that you
complete at least an undergraduate minor in computer science, three
additional computer science courses at the 400 level, and one at the
500 level during your first four years. See the
sample schedule for the B.S.-M.S. program.
Combined Bachelor/Master's Program
This program is designed to enable students in other
Washington University Schools to pursue a coordinated five-year
study leading to a bachelor degree outside enginnering and a master's
degree in the School of Engineering and Applied Science. The admissions
process and the graduation requirements for this program are identical
to those for the B.S.-M.S. program described above.
Students in this program usually complete a CS minor to obtain the
background needed for their M.S. course work. Ideally students will
take CS 101G, CS 102G, CS 201 (or some discrete mathematics course),
CS 241, CS 306S and CS 342S as part of the undergraduate program
(typically using these courses as free electives).
B.S.-D.Sc. Program
The School of Engineering and Applied Science has established a
new combined Bachelor of Science/Doctor of Science program. This program
is designed to enable highly motivated students of exceptional talent
to embark on an accelerated course of studies and research leading to
a Doctor of Science degree within seven years. The degree requirements
for B.S.-D.Sc. degree are those associated with the B.S. and D.Sc.
degree programs. However, graduate courses at the 500-level or above
may be counted toward both degrees subject to departmental approval.
Students may be admitted to the program upon entry to Washington University
but no later than the junior year.
More information about the doctoral program can be found in
our Guide
to the Doctoral Program and a
sample schedule for the B.S.-D.Sc. program.
B.S.-M.B.A. Program
The growing importance of computer-based information systems in the
business environment has produced a sustained high demand for graduates
with master's degrees in business administration and undergraduate majors
in computer science and engineering. A
sample curriculum showing a "typical" schedule for a B.S.-M.B.A. student.
Research and Industry Experience
If you want to become involved in computer science research or get experience
in industry while you are an undergraduate, there are many opportunities
to do so. A few of these are listed below.
CO-OP: The Cooperative Education Program allows you to get valuable
experience working in industry while an undergraduate. Doing a CO-OP
can help give you another perspective on your education, and may lead to
full-time employment. A large number of companies participate in
this program. More information is available from the CO-OP office
in Lopata 204.
UROP: The Undergraduate Research Opportunities Program in the Department
of Computer Science helps to match undergraduates with faculty and research
groups. Research projects are available either for pay or for credit
through CS 400 (Independent Study). See http://www.cs.wustl.edu/cs/cs/urop/urop.html
for details.
Advanced
Placement/Proficiency
Students recieving a 4 or 5 on the AB Computer Science AP exam are
awarded 4 units of credit equivalent to CS 136G. Students continuing
their study of Computer Science should enroll in CS 101G. Students
with unusually strong background beyond the scope of the AP exam
should consult Dr. Sally Goldman (sg@cs.wustl.edu; 5-7545)
for guidance on appropriate placement. No credit is given for the A
Computer Science AP exam.
Upon request, the Computer Science department will evaluate a student
for proficiency for any of our introductory courses. If a student is
determined to be proficient in a given course, that course will be
waived (without awarding credit) in the student's degree requirements
and the student will be offered guidance in selecting a more advanced
course.
As discussed in the earlier section "About Computer Science" the letter
suffix indicates if a course is classified in the general category of software
systems (S), ardware (M), theory (T) or applications (A). The only
exceptions are its introductory courses CS 101G,
102G, 201, 241
and service courses which cannot
be taken for credit towards the CS course requirement for minors or
majors.
Course Descriptions for all
courses offered by the Department of Computer Science.
On the following pages are some sample schedules for several of the
Computer Science degree options. These schedules demonstrate
some of the many course schedules that can be selected in completing
your CS degree. Some students choose to take some courses during the
summer to reduce their course loads during the fall and spring
semesters. Your adviser can help you design a program tailored to
your individual needs.
Note: If you want to take CS 342S by the end of your sophomore year then
take the CS courses as given by the next schedule --
BS starting Freshman year.
Honors Program: If you maintain a 3.5 GPA and complete a thesis describing
research that you have performed while an undergraduate, then you will
graduate "with distinction" and your thesis title will appear on your transcript.
Besides being a valuable experience, completing a thesis can be advantageous
if you apply to graduate school. When selecting this option you should
register for CS499 Undergraduate Honors Thesis.
Students in the honors program are encouraged to take several graduate
level courses and to serve as undergraduate teaching assistants for upper-level
undergraduate courses.
Computing Facilities
The School of Engineering and Applied Science has numerous undergraduate
laboratories. The computer science laboratories including a UNIX
lab, 4 Pentium labs and an Open-Shop lab with Pentiums and Macintoshes.
In addition, many computer science undergraduates join research groups
and for this work they use state-of-the-art equipment such as Silicon Graphics
Workstations, our ATM computer network testbed, and a visualization laboratory
with state-of-the-art video production and multimedia publication capabilities.
The Bachelor of Science in Computer Science Degree (BSCS)
Sample Schedule for a First-year Student Beginning Computer
Science
| Units | ||
| Fall | Spring | |
| First Year
|
||
| Calculus II, III (Math 132, 233) or
Accelerated Calculus I, II (Math 141, 142) |
3 or 4 | 4 |
| General Physics I, II (Physics 117A, 118A) | 4 | 4 |
| Computer Science I, II (CS 101G,102G) | 4 | 4 |
| Humanities/social sciences electives | 3 | - |
| Ecomp 100 or 1991 | - | 3 |
| -----
14 or 15 |
---
15 |
|
| Second Year
|
||
| General Chemistry I (Chem 111A) | 3 | - |
| General Chemistry Laboratory I (Chem 151) | 2 | - |
| Differential Equations (Math 217) | 4 | - |
| Engineering Mathematics (SSM 317) | - | 4 |
| Formal Foundations of Computer Science (CS 201) | 3 | - |
| Algorithms and Data Structures (CS 241) | - | 3 |
| Digital Computers I: Organizational and Logical Design (CS 260M)
or
Processing Systems and Structures (CS 306S) |
- | 3 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | - | 3 |
| ---
15 |
---
16 |
|
| Third Year
|
||
| Object-Oriented Software Development Lab (CS 342S) | 3 | - |
| Computer science electives | 3 | 6 |
| Technical Writing (EP 310) | 3 | - |
| Probability and Statistics for Engineering (SSM 326A) | 3 | - |
| Common Studies breadth electives | - | 3 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | - | 3 |
| ---
15 |
---
15 |
|
| Fourth Year
|
||
| Operating Systems Organization (CS 422S) or
Translation of Computer Languages (CS 431S) or Programming Systems and Languages (CS 455S) |
3 | - |
| Computer science electives | 3 | 6 |
| Software Engineering Workshop (CS 456S) | - | 3 |
| Free electives | 9 | 6 |
| ----
15 |
----
15 |
|
The Bachelor of Science (BS) with a major in Computer
Science
Sample Schedule for a First-Year Student
Beginning Computer Science
This schedule also applies to a student doing a second major by just replacing the natural science courses, humanities/social sciences electives, Ecomp, and EP 310 by the distribution requirements for your major.
| Units | ||
| Fall | Spring | |
| First Year
|
||
| Calculus II, III (Math 132, 233) 1
or
Accelerated Calculus I, II (Math 141, 142) |
3 or 4 | 4 |
| Computer Science I, II (CS 101G,102G) | 4 | 4 |
| Formal Foundations of Computer Science (CS 201) | - | 3 |
| Humanities/social sciences electives | 3 | - |
| Free electives | 3 | - |
| Ecomp 100 or 199 2 | - | 3 |
| -----
13 or 14 |
---
14 |
|
| Second Year
|
||
| Algorithms and Data Structures (CS 241) | 3 | - |
| Object-Oriented Software Development Laboratory (CS 342S) | - | 3 |
| Computer science elective | - | 3 |
| Natural Science or Psychology | 4 | 4 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | 6 | 3 |
| ---
16 |
---
16 |
|
| Third Year
|
||
| Computer science electives | 6 | 6 |
| Technical Writing (EP 310) | 3 | - |
| Probability and Statistics for Engineering (SSM 326A) | - | 3 |
| Natural Science or Psychology or
free electives |
3 | - |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | - | 3 |
| ---
15 |
---
15 |
|
| Fourth Year
|
||
| Operating Systems Organization (CS 422S) or
Translation of Computer Languages (CS 431S) or Programming Systems and Languages (CS 455S) |
3 | - |
| Computer science electives | 3 | 6 |
| Humanities/social sciences electives | 3 | - |
| Free electives | 6 | 9 |
| ---
15 |
---
15 |
|
1 Upon completing Math 132 with a C- or better you may apply
to receive credit for Math 131.
2 If Ecomp 100 is waived, this course can be replaced
bya free elective.
The Bachelor of Science (BS) with a major in Computer
Science
Sample Schedule for a Student Beginning
Computer Science in Third Semester
This schedule
also applies to a student doing a second major by just replacing the
natural science courses, humanities/social sciences electives,
Ecomp, and EP 310 by the distribution requirements for your major.
| Units | ||
| Fall | Spring | |
| First Year
|
||
| Calculus II, III (Math 132, 233) or
Accelerated Calculus I, II (Math 141, 142) |
3 or 4 | 4 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | 9 | 9 |
| -----
15 or 16 |
---
16 |
|
| Second Year
|
||
| Natural science or psychology | 3 or 4 | 3 or 4 |
| Computer Science I (CS 101G) | 4 | - |
| Computer Science II (CS 102G) | - | 4 |
| Formal Foundations of Computer Science (CS 201) | - | 3 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | 3 | - |
| Ecomp 100 or 1991 | 3 | - |
| -----
16 or 17 |
-----
13 or 14 |
|
| Third Year
|
||
| Algorithms and Data Structures (CS 241) | 3 | - |
| Digital Computers I: Organizational and Logical Design (CS 260M)
or
Processing Systems and Structures (CS 306S) |
3 | - |
| Object-Oriented Software Development Laboratory (CS 342S) | - | 3 |
| Computer science electives | - | 6 |
| Technical Writing (EP 310) | - | 3 |
| Natural science or psychology or
free electives |
3 | - |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | 3 | - |
| ---
15 |
---
15 |
|
| Fourth Year
|
||
| Operating Systems Organization (CS 422S) or
Translation of Computer Languages (CS 431S) or Programming Systems and Languages (CS 455S) |
3 | - |
| Computer science electives | 6 | 9 |
| Probability and Statistics for Engineering (SSM 326A) | 3 | - |
| Free electives | 3 | 6 |
| ----
15 |
----
15 |
|
The Bachelor of Science (BS) with a major in Computer
Science
Sample schedule for a premedical
student
This schedule also applies to a student doing a second major by just replacing the natural science courses, humanities/social sciences electives, Ecomp, and EP 310 by the distribution requirements for your major.
| Units | ||
| Fall | Spring | |
| First Year
|
||
| Calculus II, III (Math 132, 233) or
Accelerated Calculus I, II (Math 141,142) |
3 or 4 | 4 |
| Computer Science I, II (CS 101G,102G) | 4 | 4 |
| General Chemistry I, II (Chem 111A,112A) | 3 | 3 |
| General Chmistry Laboratory I, II (Chem 151,152) | 2 | 2 |
| Fundamentals of Biology I (Bio 296A) | - | 4 |
| Humanities/social sciences electives | 3 | - |
| ------
15 or 16 |
---
17 |
|
| Second Year
|
||
| Formal Foundations of Computer Science (CS 201) | 3 | - |
| Algorithms and Data Structures (CS 241) | - | 3 |
| Fundamentals of Biology II (Bio 297A) | 4 | - |
| Fundamentals of Biology III: Genetics (Bio 3051) | - | 4 |
| General Physics I, II (Physics 117A, 118A) | 4 | 4 |
| Humanities/social sciences electives | - | 3 |
| Ecomp 100 or 199 1 | 3 | - |
| ---
14 |
---
14 |
|
| Third Year
|
||
| Object-Oriented Software Development Laboratory (CS 342S) | 3 | - |
| Computer science electives | 3 | 9 |
| Organic Chemistry I, II (Chem 251, 252) | 3 | 3 |
| Organic Chemistry Laboratory I (Chem 257) | - | 2 |
| Biology elective with lab | 5 | - |
| Probability and Statistics for Engineering (SSM 326A) | - | 3 |
| ---
14 |
---
17 |
|
| Fourth Year
|
||
| Operating Systems Organization (CS 422S) or
Translation of Computer Languages (CS 431S) or Programming Systems and Languages (CS 455S) |
3 | - |
| Computer science electives | 6 | 9 |
| Technical Writing (EP 310) | 3 | - |
| Humanities/social sciences electives 2 | 3 | 6 |
| ---
15 |
---
15 |
|
The B.S.-M.S. Program
Sample schedule 1
| Units | ||
| Fall | Spring | |
| Third Year
|
||
| Computer Science electives (for B.S.) | 6 | 6 |
| Computer Science electives (for M.S.) | 3 | 3 |
| Technical Writing (EP 310) | 3 | - |
| Probability and Statistics for Engineering (SSM 326A) | - | 3 |
| Natural science or psychology or free elective | 3 | - |
| Free electives | - | 3 |
| --
15 |
--
15 |
|
| Fourth Year 2
|
||
| Operating Systems Organization (CS 422S)
or
Translation of Computer Languages (CS 431S) or Programming Systems and Languages (CS 455S) |
3 | - |
| Computer Science electives (for B.S.) | 3 | 6 |
| Computer Science electives (for M.S.) | 3 | 3 |
| Humanities/social science electives | 3 | 3 |
| Free electives | 3 | 3 |
| ---
15 |
---
15 |
|
| Fifth Year
|
||
| Computer Science electives (for M.S.) | 9 | 9 |
| Free electives | 6 | 6 |
| ---
15 |
---
15 |
|
The B.S.-D.Sc. Program
Sample Schedule 1
| Units | ||
| Fall | Spring | |
| First Year
|
||
| Calculus II, III (Math 132, 233) 2 | 3 | 4 |
| Computer Science I, II (CS 101G,102G) | 4 | 4 |
| Formal Foundations of Computer Science (CS 201) | - | 3 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | 6 | - |
| Ecomp 100 or 199 3 | - | 3 |
| ---
16 |
---
17 |
|
| Second Year
|
||
| Algorithms and Data Structures (CS 241) | 3 | - |
| Processing Systems and Structures (CS 306S) | 3 | - |
| Object-Oriented Software Development Laboratory (CS 342S) | - | 3 |
| Computer science elective | - | 3 |
| Physics 117-118 | 4 | 4 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | 3 | 3 |
| ---
16 |
---
16 |
|
| Third Year
|
||
| Independent Study (CS 400) | 3 | 3 |
| Operating Systems Organization (CS 422S) or
Programming Systems and Languages (CS 455S)4 |
3 | - |
| Introduction to Formal Languages and Automata (CS 507T)4 | - | 3 |
| Computer Systems Organization (CS 521M)4 | - | 3 |
| Technical Writing (EP 310) | 3 | - |
| Probability and Statistics for Engineering (SSM 326A) | - | 3 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | 3 | - |
| ---
15 |
---
15 |
|
| Fourth Year
|
||
| Operating Systems Organization (CS 422S) or
Translation of Computer Languages (CS 431S)4 |
3 | - |
| Advanced Algorithms (CS 539T)4 | 3 | - |
| DSc 500-level Application Breadth Course4 | - | 3 |
| CS 500-level elective | - | 3 |
| Free electives | 9 | 6 |
| Doctoral Research (CS 690) | - | 3 |
| ---
15 |
---
15 |
|
| Fifth Year
|
||
| CS 500-level elective | 6 | 6 |
| Doctoral Research (CS 690) | 3 | 3 |
| ---
9 |
---
9 |
|
| Sixth Year
|
||
| CS 500-level elective | 6 | 3 |
| Doctoral Research (CS 690) | 3 | 6 |
| ---
9 |
---
9 |
|
| Seventh Year
|
||
| Doctoral Research (CS 690) | 9 | 9 |
1 The B.S.C.S. could instead be used if desired. It is typical
for a student, after the third year, to spend summers working on his/her
research. It is assumed that the student completes the requirements for
the Faculty Review by the start of the fifth year, completes the oral qualifying
exam in the fifth year, completes and defends the dissertation proposal in
the sixth year, and completes and defends the dissertation in the seventh
year.
2 Upon completing Math 132 with a C- or better, you may apply to
receive credit for Math 131.
3 If Ecomp 100 is waived, this course can be replaced
by a free elective.
4 This course satisfies one of the six courses required by the D.Sc.
Breadth Requirement.
The B.S.-M.B.A. Program
Sample schedule 1
| Units | ||
| Fall | Spring | |
| Third Year
|
||
| Object-Oriented Software Development Lab (CS 342S) | 3 | - |
| Management Information Systems (CS 467A) | 3 | - |
| Operating Systems Organization (CS 422S)
or
Translation of Computer Languages (CS 431S) or Programming Systems and Languages (CS 455S) |
- | 3 |
| Advanced Algorithms (CS 441T) | - | 3 |
| Technical Writing (EP 310) | 3 | - |
| Probability and Statistics for Engineering (SSM 326A) | - | 3 |
| Humanities/social sciences electives | 3 | 3 |
| Free electives | 3 | 3 |
| --
15 |
--
15 |
|
| Fourth Year 2
|
||
| Introduction to Financial Accounting (Acct 5001) | 1.5 | - |
| Financial Management (Fin 5200) | 2 | - |
| Professional Development Planning (Mgt 5300) | 0.5 | - |
| Introduction to Management and Strategy (Mgt 5301) | 1.5 | - |
| Integrating Case Experience (Mgt 5303) | 1 | - |
| Managerial Economics (MEC 5400) | 3 | - |
| Managerial Statistics (MEC 5410) | 2 | - |
| Marketing Management (Mkt 5500) | 2 | - |
| Organizational Behavior and Design (OB 5600) | 2 | - |
| Operations Management (OMM 5700) | 2 | - |
| Strategy Cost Analysis (ACT 5002) | - | 1.5 |
| M.B.A. electives | - | 9 |
| CS electives | - | 3 |
| Free electives | - | 3 |
| ---
17.5 |
---
16.5 |
|
| Fifth Year
|
||
| Strategic Management (Mgt 5302) | - | 2 |
| M.B.A. electives | 9 | 6 |
| Software Engineering Workshop (CS 456S) | 3 | - |
| 400-level (or above) CS electives | 3 | 6 |
| ---
15 |
---
14 |
|
2 Schedule presumes that computer science students will
pass proficiency examinations in MEC 5300, MEC 5310 and MEC 5320.