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 for the major. Students must maintain a g.p.a. of at least 2.00 in all courses for the major and in all UI courses for the major. A cumulative g.p.a. of at least 2.00 is required for graduation. Students also must complete the College of Liberal Arts and Sciences GE CLAS Core.
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.
Coursework for the major includes computer science courses as well as courses in mathematics, statistics, and other supporting disciplines. Work for the major may not be taken pass/nonpass.
Bachelor of Arts students considering a switch to the Bachelor of Science program should choose their GE CLAS Core Natural Sciences courses carefully since students may be able to use the same courses to satisfy the computer science major natural science sequences requirement for the B.S. degree. See "Natural Science Sequences" under Requirements in the B.S. in computer science section of the Catalog.
Students majoring in computer science may not earn a second major or a minor in business analytics and information systems, computer science and engineering, data science, or informatics.
Students who earn a B.A. in computer science must complete at least five courses (minimum of 15 s.h.) at the University of Iowa from the following: CS:2630 Computer Organization or ECE:3350 Computer Architecture and Organization, CS:2820 ObjectOriented Software Development, CS:3330 Algorithms, and at least two computer science courses numbered CS:3620CS:5899, but excluding CS:3910 Informatics Project, CS:3980 Topics in Computer Science I, and CS:4310 Design and Implementation of Algorithms; these courses are requirements for the B.A. in computer science as listed below.
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. Students must maintain a g.p.a. of at least 2.00 in all courses for the major and in all UI courses for the major. A cumulative g.p.a. of at least 2.00 is required for graduation. Students also must complete the College of Liberal Arts and Sciences GE CLAS Core.
The Bachelor of Science program is more rigorous than that of the Bachelor of Arts program; it is designed to provide indepth 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.
Coursework for the major includes computer science courses as well as courses in mathematics, statistics, and other supporting disciplines. Work for the major may not be taken pass/nonpass.
Bachelor of Science students with a computer science major should choose their GE CLAS Core Natural Sciences courses carefully since they may be able to use the same courses to satisfy the computer science major natural science sequences requirement; see "Natural Science Sequences" below.
Students majoring in computer science may not earn a second major or minor in business analytics and information systems, computer science and engineering, data science, or informatics.
Students who earn a B.S. in computer science must complete at least seven courses (minimum of 21 s.h.) at the University of Iowa from the following: CS:2630 Computer Organization or ECE:3350 Computer Architecture and Organization, CS:2820 ObjectOriented Software Development, CS:3330 Algorithms, and at least four computer science courses numbered CS:3620CS:5899, but excluding CS:3910 Informatics Project, CS:3980 Topics in Computer Science I, and CS:4310 Design and Implementation of Algorithms; these courses are requirements for the B.S. in computer science as listed below.
Note: Work for the majors may not be taken Pass/NonPass.
Computer Science Core
All of these:
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 ObjectOriented Software Development  4 s.h. 
CS:3330 Algorithms  3 s.h. 
CS:3820 Programming Language Concepts  3 s.h. 
One of these:
Course Number & Name  Semester Hours 

CS:2630 Computer Organization  3 s.h. 
ECE:3350 Computer Architecture and Organization  3 s.h. 
One of these:
Course Number & Name  Semester Hours 

CS:3620 Operating Systems  3 s.h. 
CS:3640 Introduction to Networks and Their Applications  3 s.h. 
One version of Calculus I and one version of Calculus II:
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. 
One of these:
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: Students who take MATH:2550 Engineering Mathematics III: Matrix Algebra and MATH:2560 Engineering Mathematics IV: Differential Equations can use these courses together to satisfy the linear algebra requirement.
Bachelor of Arts students must earn at least 3 s.h. in advanced computer science electives chosen from these:
Course Number & Name  Semester Hours 

A computer science course (prefix CS) numbered 36205899, except CS:3910, CS:3980, and CS:4310  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 computer science elective requirement.
Linear Algebra
This course:
Course Number & Name  Semester Hours 

MATH:2700 Introduction to Linear Algebra  4 s.h. 
Probability and Statistics
One of these:
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.
Students must complete one of the following.
Course Number & Name  Semester Hours 

CS:4330 Theory of Computation  3 s.h. 
CS:4350 Logic in Computer Science  3 s.h. 
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:
Course Number & Name 

A computer science course (prefix CS) numbered 36205899, except CS:3910, CS:3980, and CS:4310; a maximum of 3 s.h. in CS:3990 will count toward the requirement 
A computer science course (prefix CS) numbered 5900 or above, with department approval 
And:
Course Number & Name 

Remaining courses may be chosen from advanced technical elective courses in computer science (prefix CS) or in other disciplines with department approval; preapproved technical electives are these: 
Course Number & Name  Semester Hours 

BIOL:2512 Fundamental Genetics  4 s.h. 
BIOL:3172 Evolution  4 s.h. 
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. 
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. 
Course Number & Name  Semester Hours 

GEOG:3520 GIS for Environmental Studies  3 s.h. 
GEOG:3540 Introduction to Geographic Visualization  3 s.h. 
Course Number & Name  Semester Hours 

EES:2410 Mineralogy  4 s.h. 
EES:3020 Earth Surface Processes  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  4 s.h. 
EES:3840 Structural Geology  4 s.h. 
EES:4800 Survey of Geophysical Methods  3 s.h. 
Course Number & Name  Semester Hours 

ECON:4700 Topics in Analytical Econ: Game Theory  3 s.h. 
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  4 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. 
Course Number & Name  Semester Hours 

PHIL:5691 Mathematical Logic  3 s.h. 
PHIL:5692 Modal Logic  3 s.h. 
Course Number & Name  Semester Hours 

PHYS:2703 Physics III  4 s.h. 
PHYS:2704 Physics IV  3 s.h. 
Course Number & Name  Semester Hours 

LING:3117 Psychology of Language  3 s.h. 
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 Alli Rockwell.
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 a 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 GE CLAS Core 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.
Course Number & Name  Semester Hours  

ASTR:1771

4 s.h.  
ASTR:1772

4 s.h. 
Course Number & Name  Semester Hours 

BIOL:1411 Foundations of Biology  4 s.h. 
BIOL:1412 Diversity of Form and Function  4 s.h. 
Course Number & Name  Semester Hours 

CHEM:1110 Principles of Chemistry I  4 s.h. 
CHEM:1120 Principles of Chemistry II  4 s.h. 
Course Number & Name  Semester Hours 

EES:1030 Introduction to Earth Science or
EES:1050 Introduction to Geology 
34 s.h. 
EES:1080 Introduction to Environmental Science  34 s.h. 
Course Number & Name  Semester Hours 

GEOG:1020 The Global Environment  3 s.h. 
GEOG:1050 Foundations of GIS  4 s.h. 
Course Number & Name  Semester Hours 

PHYS:1611  PHYS:1612 Introductory Physics III  8 s.h. 
PHYS:1701  PHYS:1702 Physics III  8 s.h. 
Undergraduate computer science students who have 6 s.h. or less to earn toward graduation may apply for early admission to the Graduate College. Early admission allows students in their final undergraduate semester to take courses for graduate credit in addition to the courses they need to complete their bachelor's degrees.
For BA students 
For BS students 

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.