CS Requirements

The BA Degree in Computer Science

The Bachelor of Arts with a major in computer science requires a minimum of 120 s.h., including at least 41 s.h. of work (computer science core and mathematics courses) for the major. You may use up to 15 hours of Pass/Non-pass credit for your total of 120 semester hours, as long as they are not courses for your major, or courses in the General Education Program (including four years of the same language in high school).

The computer science major for the Bachelor of Arts is designed for students who would like to gain considerable knowledge in computer science and have flexibility in choosing electives. Students preparing for careers in the computing field are encouraged to supplement the base requirements with additional computer science courses. The program's flexibility makes it suitable for combination with other majors.

The BS Degree in Computer Science

The Bachelor of Science with a major in computer science requires a minimum of 120 s.h., including at least 63 s.h. of work for the major. The BS program is more rigorous than the BA and is designed to provide in-depth training for students who would like to acquire strength in math and science in order to enhance their skills and job prospects. It also is appropriate for those who plan to pursue graduate work in computer science, although it is not required for graduate study at most universities.

BS students complete all requirements for the BA major in computer science. They also complete an additional mathematics course, a course on computation theory, an additional computer science elective, two technical electives, and the natural science requirement.

Note: students majoring in Computer Science may not earn a second major in either Informatics or Computer Science and Engineering nor minor in either of these disciplines, but may obtain the Large Data Analysis Certificate.

Course Requirements for both BA and BS

Note: Work for the majors may not be taken Pass/Non-Pass.

Computer Science Core

All of these:

Computer Science Core
Course Number & Name Semester Hours
CS:1210 Computer Science I: Fundamentals 4 s.h.
CS:2210 Discrete Structures 3 s.h.
CS:2230 Computer Science II: Data Structures 4 s.h.
CS:2820 Object-Oriented Software Development 4 s.h.
CS:3330 Algorithms 3 s.h.
CS:3820 Programming Language Concepts 3 s.h.

One of these:

Computer Science Core
Course Number & Name Semester Hours
CS:2630 Computer Organization 3 s.h.
ECE:3350 Computer Architecture and Organization 3 s.h.

One of these:

Computer Science Core
Course Number & Name Semester Hours
CS:3620 Operating Systems 3 s.h.
CS:3640 Introduction to Networks and Their Applications 3 s.h.
CS:4640 Computer Security 3 s.h.

Mathematics Core

One of Calculus I and Calculus II:

Mathematics Core
Course Number & Name Semester Hours
MATH:1550 or MATH:1850; versions of Calculus I 4 s.h.
MATH:1560 or MATH:1860; versions of Calculus II 4 s.h.

Additional Courses Required for the BA

Mathematics Core (BA)

Linear Algebra/Probability and Statistics

One of these:

Additional Courses required for the BA
Course Number & Name Semester Hours
MATH:2700 Introduction to Linear Algebra 4 s.h.
STAT:2020 Probability and Statistics for the Engineering and Physical Sciences 3 s.h.
STAT:3120 Probability and Statistics 4 s.h.

Note: MATH:2550 Engineering Mathematics III: Matrix Algebra and MATH:2560 Engineering Mathematics IV: Differential Equation together can be used to satisfy the linear algebra requirement.

Advanced Computer Science Electives (BA)

Bachelor of Arts students must earn at least 3 s.h. in advanced computer science electives chosen from these:

Advanced Computer Science Electives
Course Number & Name Semester Hours
A computer science course (prefix CS) numbered 3620-5890, except CS:3910 and CS:3980 3 s.h.
A computer science course (prefix CS) numbered 5900 or above, with department approval  

Students may count a maximum of 3 s.h. earned in CS:3990 Honors in Computer Science or Informatics toward the advanced CS elective requirement.

Additional Courses Required for the BS

Mathematics Core (BS)

Linear Algebra

This course:

Linear Algebra
Course Number & Name Semester Hours
MATH:2700 Introduction to Linear Algebra 4 s.h.

Note: MATH:2550 Engineering Mathematics III: Matrix Algebra and MATH:2560 Engineering Mathematics IV: Differential Equation together can be used to satisfy the linear algebra requirement.

Probability and Statistics

One of these:

Probability and Statistics
Course Number & Name Semester Hours
STAT:2020 Probability and Statistics for the Engineering and Physical Sciences 3 s.h.
STAT:3120  Probability and Statistics 4 s.h.

Other probability and statistics courses (prefix STAT) with a calculus prerequisite approved by the department.

Computation Theory (BS)

Students must complete one of the following.

Computation Theory (BS)
Course Number & Name Semester Hours
CS:4330 Theory of Computation 3 s.h.
CS:4350 Logic in Computer Science 3 s.h.

Advanced Technical Electives (BS)

Bachelor of Science students must earn at least 12 s.h. (four courses) in advanced technical electives, as follows.

At least 6 s.h. from these:

Advanced Technical Electives (BS)
Course Number & Name
A computer science course (prefix CS) numbered 3620-5890, except CS:3910 and CS:3980
A computer science course (prefix CS) numbered 5900 or above, with department approval

And:

Advanced Technical Electives (BS)
Course Number & Name
Advanced technical electives in computer science (prefix CS), or in other disciplines with department approval, to complete the required 12 s.h.

Students may count a maximum of 3 s.h. earned in CS:3990 Honors in Computer Science or Informatics toward the advanced technical elective requirement.

Pre-approved technical electives are as follows:

Biology
Biology
Course Number & Name Semester Hours
BIOL:2512  Fundamental Genetics 4 s.h.
BIOL:3172 Evolution 4 s.h.
Chemistry
Chemistry
Course Number & Name Semester Hours
CHEM:2210 Organic Chemistry I 3 s.h.
CHEM:2220 Organic Chemistry II 3 s.h.
CHEM:2230 Organic Chemistry I for Majors 3 s.h.
CHEM:2240 Organic Chemistry II for Majors 3 s.h.
CHEM:2410 Organic Chemistry Lab 3 s.h.
Electrical and Computer Engineering
Electrical and Computer Engineering
Course Number & Name Semester Hours
ECE:3600 Control Systems 3 s.h.
ECE:5450 Pattern Recognition 3 s.h.
ECE:5480 Digital Image Processing 3 s.h.
ECE:5600 Control Theory 3 s.h.
Geography
Geography
Course Number & Name Semester Hours
GEOG:3520 GIS for Environmental Studies 3 s.h.
Earth and Environmental Sciences
Earth and Environmental Sciences
Course Number & Name Semester Hours
EES:2410 Mineralogy 4 s.h.
EES:3020 Earth Surface Processes 3 s.h.
EES:3140 Energy and the Environment 3 s.h.
EES:3210 Principles of Paleontology 3 s.h.
EES:3300 Sedimentary Geology 3 s.h.
EES:3360 Soil Genesis and Geomorphology 3 s.h.
EES:3380 Fluvial Geomorphology 3 s.h.
EES:3390 Integrated Watershed Analysis 3 s.h. 
EES:3500 Igneous and Metamorhic Petrology (previously 012:052) 4 s.h.
EES:3840 Structural Geology (previously 012:092) 4 s.h.
EES:4800 Survey of Geophysical Methods 3 s.h. 
Economics
Economics
Course Number & Name Semester Hours
ECON:4700 Topics in Analytical Econ: Game Theory 3 s.h.
Mathematics
Mathematics
Course Number & Name Semester Hours
MATH:2560 Engineering Mathematics IV: Differential Equations 3 s.h.
MATH:2850 Calculus III 4 s.h.
MATH:3550 Eng Math V: Vector Calculus 3 s.h.
MATH:3600 Introduction to Ordinary Differential Equations 3 s.h.
MATH:3720 Introduction to Abstract Algebra I 3 s.h.
MATH:3770 Fundamental Properties of Spaces and Functions I 3 s.h.
MATH:4040 Matrix Theory 3 s.h.
MATH:4050 Introduction to Discrete Mathematics 3 s.h.
MATH:4060 Discrete Mathematical Models 3 s.h.
Philosophy
Philosophy
Course Number & Name Semester Hours
PHIL:5691 Mathematical Logic 3 s.h.
PHIL:5692 Modal Logic 3 s.h.
Physics
Physics
Course Number & Name Semester Hours
PHYS:2703 Physics III 4 s.h.
PHYS:2704 Physics IV 3 s.h.
Psychology
Psychology
Course Number & Name Semester Hours
LING:3117 Psychology of Language 3 s.h.
Statistics and Actuarial Science
Statistics and Actuarial Science
Course Number & Name Semester Hours
ACTS:3080 Mathematics of Finance I 4 s.h.
STAT:4100 Mathematical Statistics I 3 s.h.
STAT:4101 Mathematical Statistics II 3 s.h.

Note: The above list is only a fraction of the courses that may satisfy the technical elective requirement. Students who wish to have a course in another department reviewed for approval as a technical elective should contact Catherine Till.

Natural Science Sequences (BS)

Bachelor of Science students take two or more courses in a sequence (totaling at least 6 s.h.) in a cognate area of natural science. The natural science sequence is intended to enhance the student's perspective by providing a deeper understanding of the scientific method. Typically, it consists of a sequence of courses taken in the same science department. Students often choose courses that also fulfill the General Education Program Natural Sciences requirement. Some possible choices are listed below; the department chair may approve others.

CLEP/APP credit may be used to satisfy part or all of the natural science requirement only if the appropriate science department at The University of Iowa accepts the credit as equivalent to one or more of the specific courses listed below.

Astronomy
Astronomy
Course Number & Name Semester Hours
ASTR:1771 General Astronomy I 4 s.h.
ASTR:1772 General Astronomy II 4 s.h.
Biology
Biology
Course Number & Name Semester Hours
BIOL:1411 Foundations of Biology 4 s.h.
BIOL:1412 Diversity of Form and Function 4 s.h.
Chemistry
Chemistry
Course Number & Name Semester Hours
CHEM:1110 Principles of Chemistry I 4 s.h.
CHEM:1120 Principles of Chemistry II 4 s.h.
Earth and environmental sciences:
Earth and environmental sciences
Course Number & Name Semester Hours
EES:1030 Introduction to Earth Science or 

EES:1050 Introduction to Earth Science

3-4 s.h.
EES:1080 Introduction to Environmental Science 3-4 s.h.
Geographical and sustainability sciences:
Geographical and sustainability sciences
Course Number & Name Semester Hours
GEOG:1020 The Global Environment 3 s.h.
GEOG:1050 Foundations of GIS 3 s.h.
Physics - One of these sequences:
Physics
Course Number & Name Semester Hours
PHYS:1611 - PHYS:1612 Introductory Physics I-II 8 s.h.
PHYS:1701 - PHYS:1702 Physics I-II 8 s.h.

 

Prerequisite Structure of Computer Science Core Courses (Effective Fall 2017)

Prerequisite Structure of Computer Science Core Courses

For BA students

For BS students

CS Core Diagram - BA CS Core Diagram - BS

Note: A solid arrow indicates a clear prerequisite course that must be taken before the next course; a dotted arrow indicates a course that must be taken before or with the other course.