This is the first version of the 2022-23 General Catalog. The final edition and the historical PDF will be published during the fall semester.

The Bachelor of Science in Engineering (B.S.E.) program in computer science and engineering combines the technical content of a computer science degree and a computer engineering degree in a single degree program. The program curriculum is jointly taught by faculty from the Department of Electrical and Computer Engineering and the Department of Computer Science (College of Liberal Arts and Sciences). The program provides students with a strong theoretical and conceptual understanding of the principles underlying computer software and hardware along with the engineering analysis, design, and multidisciplinary teamwork skills needed to develop large and complex systems containing both software and hardware components.

The computer science and engineering program encompasses the technical rigor of a Bachelor of Science program in computer science and a Bachelor of Science program in computer engineering. This major is jointly accredited in computer science and computer engineering by the Accreditation Board for Engineering and Technology (ABET). Graduates gain the foundational knowledge provided by a computer science education together with the critical thinking, problem-solving, and system design skills at the heart of a computer engineering curriculum.

The major provides technical depth and breadth as well as flexibility and the opportunity for students to customize their programs according to their own goals and interests. Students choose one of several focus areas according to the type of job or research they plan to pursue; students also have the opportunity to work with their academic advisor to build a focus area plan that adheres to their goals and interests. Students select a focus area to personalize their curriculum and to prepare them for certain jobs or research study they intend to seek.

In their senior year, students complete a two-semester capstone design sequence culminating in the development and implementation of a significant, original project. The capstone design experience emphasizes teamwork, professionalism, open-ended problem solving, and the ability to work within real-world constraints and engineering standards.

Educational Objectives

Graduates of the computer science and engineering program will:

  • exhibit leadership and vision in contributing to the computing-related technical and policy decisions of industry, government, and research enterprises;
  • demonstrate computing skills and problem-solving abilities that permit them to contribute in a variety of technical, business, and academic careers;
  • thrive in diverse, global, and multidisciplinary environments;
  • possess the ability to communicate effectively and participate collaboratively in interactions with other computing and engineering professionals; and
  • understand the importance of participating in lifelong learning activities that enhance their professional and personal development.

The Bachelor of Science in Engineering with a major in computer science and engineering requires a minimum of 129 s.h. of credit. Students must have a g.p.a. of at least 2.00 on all college work used to satisfy degree requirements as well as on all coursework attempted at the University of Iowa.

All B.S.E. students are required to take the same collegiate curriculum. For information about these collegiate requirements, see the Bachelor of Science in Engineering, B.S.E. in the Catalog. Students completing the major in computer science and engineering fulfill the collegiate statistics requirement by completing STAT:2020 Probability and Statistics for the Engineering and Physical Sciences.

The major in computer science and engineering requires the following coursework.

Collegiate Curriculum50
Major Requirements59
Focus Area20
Total Hours129

Major Requirements

Major requirements include a set of common courses (52 s.h.), one departmental seminar (1 s.h.), and two capstone design courses (6 s.h.).

All of these:
ECE:2400Linear Systems I3
ECE:2410Principles of Electronic Instrumentation4
ECE:3320Introduction to Digital Design3
ECE:3330Introduction to Software Design3
ECE:3350Computer Architecture and Organization3
ECE:3360Embedded Systems3
ECE:3540Communication Networks3
CS:1210Computer Science I: Fundamentals4
CS:2210Discrete Structures3
CS:2230Computer Science II: Data Structures4
CS:3330Algorithms3
CS:3620Operating Systems3
CS:3820Programming Language Concepts3
ENGR:2120Electrical Circuits3
ENGR:2730Computers in Engineering3
PHYS:1612Introductory Physics II (with lab)4

Departmental Seminar

This course:
ECE:3000Electrical and Computer Engineering Professional Seminar1

Capstone Design Courses

In their senior year, students complete a two-semester capstone design sequence culminating in the development and implementation of a significant, original project.

Both of these:
ECE:4880Principles of Electrical and Computer Engineering Design3
ECE:4890Senior Electrical and Computer Engineering Design3

Focus Area

Students must select focus area courses according to guidelines established by the Department of Electrical and Computer Engineering. A number of established focus areas are available, and students also may work with their academic advisor to create a customized plan tailored to their goals and interests.

Students complete a minimum of 17 s.h. in elective courses for the focus area (typically six courses) and one complementary theory elective course (3 s.h.). Carefully selected elective and general education courses may contribute to earning a minor and/or certificate, including the Certificate in Sustainability (University College) or the Certificate in Technological Entrepreneurship.

For a complete list of focus areas and course selection guidelines, see Focus Areas on the Department of Electrical and Computer Engineering website. Although general guidelines and requirements for elective courses are listed below, course recommendations for specific focus areas differ. While some courses may apply to more than one focus area requirement, a single course may only count once toward completing a focus area.

Electrical and Computer Engineering Electives

Students choose two focus area electives from courses with prefix ECE not already required for the major. Students must consult an academic advisor and gain approval from the undergraduate curriculum chair to count ECE:5998 Individual Investigations: Electrical and Computer Engineering toward this requirement.

Both of these:
Technical course in the Department of Electrical and Computer Engineering numbered ECE:3400 or above, excluding ECE:3998, ECE:5000, and ECE:59993-4
Advanced course in the Department of Electrical and Computer Engineering numbered ECE:5001-ECE:59953

Computer Science Electives

Students choose two focus area electives from computer science courses not already required for the major. At least one course must be considered advanced for the elective—courses numbered CS:4330 and above, as defined in the table below.

Students may be able to complete computer science courses not listed here; see the Approved Computer Science Elective Courses web page on the Department of Electrical and Computer Engineering website for more information.

Two of these:
CS:3700/MATH:3800Introduction to Numerical Methods3
Computer science course numbered CS:4330-CS:5980, excluding CS:4510, CS:5110, and CS:56303-4

Additional Electives

Students select additional courses to reach a minimum of 17 s.h. in focus area electives. Courses may be from the electrical and computer engineering (prefix ECE) or computer science (prefix CS) categories above, or they may be chosen from outside of those lists with approval of an academic advisor.

Theory Elective

One of these:
ECE:5330/IGPI:5331Graph Algorithms and Combinatorial Optimization3
ECE:5450/IGPI:5450Machine Learning3
ECE:5520Introduction to Information and Coding Theories3
ECE:5810/CS:5810Formal Methods in Software Engineering3
ECE:5995Contemporary Topics in Electrical and Computer Engineering (when topic is cryptography)3
CS:4330Theory of Computation3
CS:4350Logic in Computer Science3
CS:4720/MATH:4820Optimization Techniques3
CS:5340Limits of Computation3
CS:5360Randomized Algorithms3
CS:5370Computational Geometry3
CS:5430Machine Learning3
CS:5620Distributed Systems and Algorithms3
CS:5860Lambda Calculus and Applications3

Double Major in Computer Science and Engineering/Electrical Engineering

Students may earn a double major in computer science and engineering (CSE) and electrical engineering (EE). They must satisfy all requirements of the electrical track of the EE major and all requirements of the CSE major.

B.S.E./M.S. in Electrical and Computer Engineering

The College of Engineering offers a Bachelor of Science in Engineering/Master of Science for computer science and engineering undergraduate students who intend to earn a M.S. in electrical and computer engineering. B.S.E./M.S. students may take up to 12 s.h. of graduate-level coursework and do thesis-level research while they are still undergraduates. They may count 9 s.h. of graduate coursework toward both degrees. Once students complete the requirements for the bachelor's degree, they are granted the B.S.E., and they normally complete the M.S. one year later.

To be admitted to the degree program, students must have completed at least 80 s.h., must have a cumulative g.p.a. of at least 3.25, and must submit a letter of application to the chair of the Department of Electrical and Computer Engineering. For more information, see Joint B.S./M.S. Degree Undergraduate to Graduate (U2G) program on the Department of Electrical and Computer Engineering website.

B.S.E./M.C.S.

The College of Engineering and the Department of Computer Science (College of Liberal Arts and Sciences) offer a combined Bachelor of Science in Engineering/Master of Computer Science for computer science and engineering undergraduate students.

The combined degree program allows students to count a limited amount of credit toward both degrees. For more information, see the Master of Computer Science, M.C.S. in the Catalog.

Students who earn a major in computer science and engineering work in research, design, development, manufacturing, sales, market analysis, consulting, field service, and management. They are employed in computer, semiconductor, software, aerospace, telecommunication, medical, radio, television, and power industries, and many graduates pursue entrepreneurial ventures.

The major also prepares students for further study in many areas demanding computational and engineering skill sets.

Engineering Career Services develops and promotes experiential education and professional opportunities for students in the College of Engineering. Professional staff coordinate the college's co-op and internship program, engage in employer outreach, and provide opportunities for students to network with employers, including engineering career fairs and other programming related to career development. 

Engineering Career Services offers individual advising and class presentations on résumé and cover letter preparation, job and internship search strategies, interviewing skills, job offer evaluation, and much more. Engineering Career Services partners with the Pomerantz Career Center to facilitate on-campus interviewing, postgraduation outcome collection, and the University's online recruiting system, Handshake.

Sample Plan of Study

Sample plans represent one way to complete a program of study. Actual course selection and sequence will vary and should be discussed with an academic advisor. For additional sample plans, see MyUI.

Computer Science and Engineering, B.S.E.

This sample plan is being reviewed and will be updated at a later date.