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.
Course work 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 BA 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 Object-Oriented Software Development, CS:3330 Algorithms, and at least two computer science course numbered CS:3620-CS:5899, but excluding CS:3910 Informatics Project and CS:3980 Topics in Computer Science I; 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 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.
Course work 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 Object-Oriented Software Development, CS:3330 Algorithms, and at least four computer science course numbered CS:3620-CS:5899, but excluding CS:3910 Informatics Project and CS:3980 Topics in Computer Science I; these courses are requirements for the B.S. in computer science as listed below.
Note: Work for the majors may not be taken Pass/Non-Pass.
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 Object-Oriented 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 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.
Linear Algebra
This course:
Course Number & Name | Semester Hours |
---|---|
MATH:2700 Introduction to Linear Algebra | 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.
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 3620-5899, except CS:3910 and CS:3980 |
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, 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:
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. |
GEOG:3550 Integrating Time into GIS | 3 s.h. |
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 | 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 | 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. |
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 Catherine Till.
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 General Astronomy I | 4 s.h. |
ASTR:1772 General Astronomy II | 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 |
3-4 s.h. |
EES:1080 Introduction to Environmental Science | 3-4 s.h. |
Course Number & Name | Semester Hours |
---|---|
GEOG:1020 The Global Environment | 3 s.h. |
GEOG:1050 Foundations of GIS | 3 s.h. |
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. |
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.