Computer Science & Engineering

About Computer Science & Engineering

The field of computer science and engineering studies the design, analysis, implementation and application of computation and computer technology. Computing plays an important role in virtually all fields, including science, medicine, music, art, business, law and human communication; hence, the study of computer science and engineering can be interdisciplinary in nature. Whether a student's goal is to become a practitioner or to take a few courses to develop a basic understanding of computing for application to another field, the Department of Computer Science & Engineering at Washington University is committed to helping students gain the background they need.

People are attracted to the study of computing for a variety of reasons. Consequently, the department offers a wide variety of academic programs, including a five-course minor, a second major, five undergraduate degrees, combined undergraduate and graduate programs, and several undergraduate research opportunities. Each academic program can be tailored to a student's individual needs.

The breadth of computer science and engineering may be best understood in terms of the general areas of applications, software systems, hardware and theory.

Applications are the ways in which computer technology is applied to solve problems, often in other disciplines. Most applications courses provide background not only in the applications themselves but also in how the applications are designed and implemented. Examples of application areas include artificial intelligence, computer graphics, game design and computational biology.

Software systems are collections of interacting software components that work together to support the needs of computer applications. Courses in this area help students gain a solid understanding of how software systems are designed and implemented. During the process, students develop their own software systems. Examples include operating systems, which manage computational resources; network protocols, which are responsible for the delivery of information; programming languages, which support the construction of software systems and applications; and compilers, which translate computer programs into executable form.

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, which carry out basic computations; computer architecture, which defines the organization of functional components in a computer system; and peripheral devices such as disks, robot arms that are controlled by the computer system, and sensor systems that gather the information that computer systems use to interact with the physical world.

Theory is the study of the fundamental capabilities and limitations of computer systems. A knowledge of theory helps students choose among competing design alternatives on the basis of their relative efficiency and helps them to verify that their implementations are correct. Theory courses provide background in algorithms, which describe how a computation is to be carried out; data structures, which specify how information is to be organized within the computer; analytical techniques to characterize the time or space requirements of an algorithm or data structure; and verification techniques to prove that solutions are correct.

A well-rounded study of computing includes training in each of these areas. However, depending on a student's educational goals, the student may prefer to concentrate on certain areas for greater depth of knowledge. To help students balance their elective courses, most upper-level departmental courses are classified into one of the following categories: S for software systems, M for machines (hardware), T for theory, or A for applications. If a student's interests are concentrated in the first two areas, a computer engineering degree might be best. Students are encouraged to meet with a faculty advisor in the Department of Computer Science & Engineering to discuss their options and develop a plan consistent with their goals.

Undergraduate Programs

The Department of Computer Science & Engineering (CSE) offers an array of courses that can be taken as requirements or electives for any of the undergraduate degree programs. We offer a Bachelor of Science in Computer Science (BSCS), a Bachelor of Science in Computer Engineering (BSCoE), a Bachelor of Science in Business and Computer Science (CS+Business), a Bachelor of Science in Computer Science + Mathematics (CS+Math), a Bachelor of Science in Computer Science + Economics (CS+Econ), and a Second Major in Computer Science. In addition to these six programs, CSE offers a pre-medical option and combined undergraduate/graduate programs. As a part of our program, each student is assigned an advisor who can help to design an individualized program, monitor a student's progress, and consult about curriculum and career options. Additional information can be found on our CSE website, or any of the CSE faculty can offer further guidance and information about our programs.

BSCS: The computer science major is designed for students planning a career in computing.

BSCoE: The computer engineering major encompasses studies of hardware, software and systems issues that arise in the design, development and application of computer systems. 

CS+Business:  This joint major provides students with the fundamental knowledge and perspectives of computer science and business and of the unique opportunities created by combining them.

CS+Econ: This applied science major allows students interested in both economics and computer science to combine these two complementary disciplines efficiently.

CS+Math: This applied science major efficiently captures the intersection of the complementary studies of computer science and math.

Second Major in Computer Science: The second major provides an opportunity to combine computer science with another degree program. A second major in computer science can expand a student's career options and enable interdisciplinary study in areas such as cognitive science, computational biology, chemistry, physics, philosophy and linguistics. The second major is also well suited for students planning careers in medicine, law, business, architecture and fine arts.

Pre-Medical Option within Computer Science: Students may pursue a pre-medicine curriculum in conjunction with either the BS degree or the second major in computer science programs. Students interested in the pre-medical option should refer to the McKelvey School of Engineering Bulletin page for details.

Combined Undergraduate and Graduate Study

The Department of Computer Science & Engineering offers in-depth graduate study in many areas. Students entering the graduate programs require a background in computer science fundamentals. Washington University undergraduates seeking admission to the graduate degree program to obtain a master's degree in computer science or computer engineering do not need to take the Graduate Record Examination (GRE). For more information, contact the department office by email at or by phone at 314-935-6132.

The Joint Bachelor's/Master's Program

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 computing studies in a more comprehensive educational framework. Consistent with the general requirements defined by the McKelvey School of Engineering, a minimum of 144 units is required for completion of the bachelor's/master's program. Provided that the 144-unit requirement is satisfied, up to 6 units of course work acceptable for the master's degree can be counted toward both the bachelor's and master's requirements. Students in the bachelor's/master's program can take advantage of the program's flexibility by taking graduate courses toward the graduate degree while still completing the undergraduate degree requirements.

The bachelor's/master's program offers early admission to the graduate programs in computer science and computer engineering and allows a student to complete the master's degree, typically in only one additional year of study (instead of the usual three semesters). Undergraduate financial support is not extended for the additional semesters to complete the master's degree requirements; however, scholarship support based on the student's cumulative grade-point average, calculated at the end of the junior year, will be awarded automatically during the student's final year of study. Students are classified as graduate students during their final year of study, and their tuition charges are at the graduate student rate. For information about scholarship amounts, please visit the Bachelor's/Master's Program in Engineering webpage.

If students plan to apply to this program, it is recommended that they complete at least an undergraduate minor in computer science, three additional computer science courses at the 400 level, and one additional course at the 500 level during their first four years. Applicants should apply during their final undergraduate year to the semester their graduate studies will begin. Applications will open on July 1. Students are encouraged to apply to this program by October 1 of the first semester of their senior year, and a minimum GPA of 3.0 is required of all applicants. Bachelor's/master's applications will be accepted until the last day of classes the semester prior to the student beginning the graduate program. 

BS/MBA 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.

Students should apply to this joint program by February 1 of their junior year. The application for admission to Olin Business School is available through the business school. Applicants are judged on undergraduate performance, GMAT scores, summer and/or co-op work experience, recommendations and a personal interview.

Undergraduate Courses

Course requirements for the minor and majors may be fulfilled by CSE 131 Introduction to Computer ScienceCSE 132 Introduction to Computer EngineeringCSE 240 Logic and Discrete MathematicsCSE 247 Data Structures and AlgorithmsCSE 347 Analysis of Algorithms, and CSE courses with a letter suffix in any of the following categories: software systems (S), hardware (M), theory (T) and applications (A). In addition, with approval of the instructor, up to 6 units of CSE 400E Independent Study can be used toward the CSE electives of any CSE degree. Other CSE courses provide credit toward graduation but not toward the CSE elective requirements for the second major or the BSCS, BSCoE, CS+Math or CS+Business degrees. Undergraduates are encouraged to consider 500-level courses. If a student is interested in taking a course but is not sure if they have the needed prerequisites, the student should contact the instructor.

Broadening Experiences

If a student wants to become involved in computer science or computer engineering research or to gain experience in industry while they are an undergraduate, there are many opportunities to do so. A few of these are listed below.

Co-op: The Cooperative Education Program allows a student to get valuable experience working in industry while an undergraduate. A co-op experience can give students another perspective on their education and may lead to full-time employment. Numerous companies participate in this program. More information is available from the Engineering Co-op and Internship Program that is part of the Career Center in the Danforth University Center, Suite 110.

Research: Participating in undergraduate research is a great way to learn more about a specific area. Research projects are available either for pay or for credit through CSE 400E Independent Study.

Study Abroad: Students in the McKelvey School of Engineering can study abroad in a number of countries and participate in several global experiences to help broaden their educational experience. These opportunities will help students become global citizens who are better able to address current issues.

The study of computer science and engineering is especially well suited and popular for study abroad. Students from our department routinely study abroad in Europe, the United Kingdom, Australia, Israel and many other places. Our department works closely with students to identify courses suitable for computer science credit.

For more information about these programs, please visit the McKelvey School of Engineering website.

Research Opportunities

The Department of Computer Science & Engineering actively promotes a culture of strong undergraduate participation in research. Many undergraduates work in research labs with state-of-the-art equipment that provides them the opportunity to take part in computer science and computer engineering research. Sensor networks, high-speed routers, specialized FPGA hardware, wireless devices, RF tags, digital cameras, robots, large displays and multiprocessors are just a few of the hardware devices undergraduates often use in their projects. Opportunities for exploring modern software development techniques and specialized software systems further enrich the range of research options and help undergraduates sharpen their design and programming skills.

Advanced Placement/Proficiency

Students receiving a 4 or 5 on the AP Computer Science A exam are awarded credit for CSE 131 Introduction to Computer Science. Any student can take the CSE 131 proficiency exam, and a suitable score will waive CSE 131 as a requirement.

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. Questions should be directed to the associate chair at