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 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: Work for the majors may not be taken Pass/Non-Pass.
All of these:
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:
CS:2630 Computer Organization | 3 s.h. |
ECE:3350 Computer Architecture and Organization | 3 s.h. |
One of these:
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. |
One of Calculus I and Calculus II:
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:
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.
Bachelor of Arts students must earn at least 3 s.h. in advanced computer science electives chosen from these:
A computer science course (prefix CS) numbered 3620-5899, 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.
This course:
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.
And one of these:
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 may be approved by the department.
One of these:
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:
A computer science course (prefix CS) numbered 3620-5899, except CS:3910 and CS:3980 | |
A computer science course (prefix CS) numbered 5900 or above, with department approval |
And:
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:
BIOL:2512 Fundamental Genetics | 4 s.h. |
BIOL:3172 Evolution | 4 s.h. |
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. |
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. |
GEOG:3520 GIS for Environmental Studies | 3 s.h. |
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. |
ECON:4700 Topics in Analytical Econ: Game Theory | 3 s.h. |
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. |
PHIL:5691 Mathematical Logic | 3 s.h. |
PHIL:5692 Modal Logic | 3 s.h. |
PHYS:2703 Physics III | 4 s.h. |
PHYS:2704 Physics IV | 3 s.h. |
LING:3117 Psychology of Language | 3 s.h. |
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.
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.
ASTR:1771 General Astronomy I | 4 s.h. |
ASTR:1772 General Astronomy II | 4 s.h. |
BIOL:1411 - BIOL:1412 Foundations of Biology - Diversity of Form and Function | 8 s.h. |
CHEM:1110 Principles of Chemistry I | 4 s.h. |
CHEM:1120 Principles of Chemistry II | 4 s.h. |
EES:1080 Introduction to Environmental Science | 3-4 s.h. |
And one of these:
EES:1030 Introduction to Earth Science | 3-4 s.h. |
EES:1050 Introduction to Geology | 4 s.h. |
GEOG:1020 The Global Environment | 3 s.h. |
GEOG:1050 Foundations of GIS | 3 s.h. |
PHYS:1611 - PHYS:1612 Introductory Physics I-II (recommended) | 8 s.h. |
PHYS:1701- PHYS:1702 Physics I-II | 8 s.h. |
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.