University of Iowa homepage
 

Undergraduate Program in Computer Science

Effective August 2004, revised January 2007

Earning a computer science degree requires a mixture of skills in mathematics, programming languages, and theory.  Students may pursue either a Bachelor of Arts (BA) or a Bachelor of Science (BS).  The BA is offered in the spirit of a traditional liberal arts education, while the BS puts greater emphasis on the depth of study in this field, thereby requiring a greater background in natural sciences and mathematics.  Students who plan on pursuing a BS should pay particular attention to how they satisfy the Natural Sciences requirement of the General Education Program. 

Degree Requirements

Requirements for the major in computer science have changed, effective Fall 2004.  Students who declared or entered the major before 5 p.m. on Aug. 20, 2004, may choose to complete the old requirements, but to graduate under the old requirements students must graduate in August 2008 or before.  All students who enter the College in summer 2004, or who declare or enter the major on or after the first day of fall semester 2004, must complete the new requirements, described below.  Requirements for the minor have also changed.  Students should consult the department if they are interested in the minor in computer science.

The BA program is mostly unchanged except for the addition of a required advanced computer science elective.  Students currently enrolled in the major should determine if they want to opt into the new requirements.  To do so, an email must be sent to cs_info@cs.uiowa.edu with name and ID number, requesting to be switched to the new curriculum.  The degree evaluation will subsequently be changed.

For students in the BS program, the requirements have increased by 9 semester hours.  This increase includes a new requirement of a course in computation theory and two technical electives.  Thus, many students currently pursuing a BS may wish to remain under the old program requirements.  A more in-depth discussion of the issues in the new degree requirements can be found on the department web site.

Please note:  students under the old requirements may use 22C:112 Operating Systems, or 22C:118 Introduction to Networks and Their Applications, to satisfy the current requirement for 22C:113 Introduction to Systems Software.

Computer Science Required Courses

Note: None of these courses may be taken Pass/Non-Pass.

Computer Science Required Courses Checklist

  Course Name/Number
Credit Hours
Computer Science core (both degrees)
  22C:016 Computer Science I: Fundamentals 4 sh
  22C:019 Discrete Structures 3 sh
  22C:021 Computer Science II: Data Structures 4 sh
  22C:022 Object-Oriented Software Development 4 sh
  Computer Organization Requirement:
22C:060 Computer Organization OR
055:035 Computer Architecture and Organization
3 sh
  22C:031 Algorithms 3 sh
  22C:111 Programming Language Concepts 3 sh
  Systems Requirement:
22C:112 Operating Systems OR
22C:113  Introduction to Systems Software OR
22C:118 Introduction to Networks and Their Applications
3 sh
  One Advanced Computer Science Elective 3 sh
Mathematics (both degrees)
  22M:025 or 22M:031; versions of Calculus I 4 sh
  22M:026 or 22M:032; versions of Calculus II 4 sh
  Math Elective #1 3 or 4 sh
(minimum) TOTAL FOR BA = 41 sh
Additional Courses Required for BS
  Natural Science 7-8 sh
  Math Elective #2 3 or 4 sh
  22C:131 Limits of Computation OR
22C:135 Theory of Computation
3 sh
  One Advanced Computer Science Elective 3 sh
  Two Advanced Technical Electives
(includes advanced CS electives and other approved electives)
6 sh
(minimum) TOTAL FOR BS = 63 sh.

Math Electives

Besides some version of Calculus I and Calculus II, BA students are required to take one math elective from either the linear algebra or the probability and statistics group listed below.  BS students must take Calc I, Calc II, and take a course from both groups below.  

Group 1: Linear Algebra
22M:027 Introduction to Linear Algebra 
4 sh
22M:047 Linear Algebra and Differential Equations for Scientists
3 sh


The sequence of 22M:033 (Engineering Math III: Matrix Algebra) and 22M:034 (Engineering Math IV: Differential Equations) can be substituted for 22M:027 (Introduction to Linear Algebra).  If 22M:033/22M:034 is used, the grades of the two courses will be averaged for departmental GPA computations.


Group 2: Probability and Statistics
22S:039 Probability & Statistics for the Engineering and Physical Sciences
3 sh
22S:120 Probability and Statistics
4 sh

Any other probability and statistics course with a calculus prerequisite, as approved by a computer science adviser.

Advanced Computer Science and Technical Electives

An advanced computer science elective is any 100-level or above Computer Science course except those courses numbered between 22C:100-22C:109.  With instructor approval, most 22C courses numbered above 200 may be counted as advanced courses.  BA students must take one advanced computer science elective.  BS students must take two. 

These courses also count as advanced computer science electives:

22C:072/22M:072 Elementary Numerical Analysis 3 sh
22C:096 Topics in Computer Science (with departmental approval)   arr
22C:099 Honors in Computer Science (may be counted only once) arr

A technical elective for BS students is either an advanced computer science elective or a 100-level course in any other department approved by an advisor.  The list of approved technical electives is posted on the department web site. 

Departmental Natural Science Requirements

For students in the BS program, the departmental requirements for natural sciences is stricter than those required by the College of Liberal Arts and Sciences.  Even if you satisfy the Liberal Arts General Education Program in natural sciences, you may still need additional course work to satisfy the departmental requirement for additional course work in natural science for the BS in computer science.  However, if you and your advisor plan carefully, both the departmental natural science requirement and the General Education Program natural science requirement may be satisfied by selecting appropriate courses.

This natural science requirement for the BS in computer science has several purposes.  The primary intention of this requirement is to direct you to complete the Liberal Arts General Education Program in natural sciences in a way that best enhances perspective in the study of Computer science.  Taking such a sequence of courses should provide you with a deeper understanding of the scientific method.  For the BS, students take two or more courses in a sequence required of majors in a chosen area of natural science.  The first course is usually a pre- or co-requisite to the second.  It is typical, but not required, that these courses be taken in the same science department.  This cognate sequence must total at least 7 semester hours.

Following are some BS course sequences that will satisfy the departmental natural science requirement.  The CS Director of Undergraduate Studies must approve alternatives suggested by a student.

Astronomy
029:061 General Astronomy (GEP, lab)
4 sh
029:062 General Astronomy (GEP, lab)
4 sh
Biology
004:011 Principles of Chemistry I (GEP)
4 sh
002:010 Principles of Biology I (GEP, lab)
4 sh
002:011 Principles of Biology II (GEP, lab)
4 sh
Chemistry
004:011 Principles of Chemistry I (GEP)
4 sh
004:012 Principles of Chemistry II (GEP)
4 sh
Physics
29:081 Introductory Physics I (GEP, lab)
4 sh
29:082 Introductory Physics II (GEP, lab)
4 sh
Geography
044:003 Introduction to Earth Systems Science
4 sh
044:005 Foundations of GIS*
3 sh
Geoscience
012:005 Introduction to Geology
4 sh
012:008 Introduction to Environmental Science
3 or 4 sh

* NOTE: 44:005 does not satisfy the Natural Sciences General Education Requirement

Prerequisite Structure of Computer Science Core Courses

For BA students

Mathematics:
Calc I & II
Stats or Linear Algebra
 
 
 
An advanced CS elective

For BS students

Mathematics:
Calc I & II
Stats
Linear Algebra

Two advanced CS electives
 
Two approved natural science courses
Two advanced technical electives

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

Please note that a grade of C-or higher must be earned in a prerequisite course before enrolling in the subsequent course.

The Four-Year Plan

The following checkpoints list the minimum requirements students must complete by certain semesters in order to stay on the University's four-year graduation plan.  Courses in the major are those required to complete the major; they may be offered by departments other than the major department.

Bachelor of Arts

Before the third semester begins: math through Calculus I, three courses in major (e.g., 22C:016, 22C:019 and 22C:021), and at least one-quarter of the semester hours required for graduation.

Before the fifth semester begins: math through Calculus II, two more courses in the major (e.g., 22C:022 and 22C:060), and at least one-half of the semester hours required for graduation.

Before the seventh semester begins: at least two more courses in the major and at least three-quarters of the semester hours required for graduation.

Before the eighth semester begins: at least one more course in the major.

During the eighth semester: enrollment in all remaining course work in the major, all remaining General Education courses, and a sufficient number of semester hours to graduate.

Bachelor of Science

These checkpoints do not include the required natural science sequence, in which students usually enroll as they complete the General Education Program natural science component.

Before the third semester begins: math through Calculus I, three courses in major (e.g., 22C:016, 22C:019 and 22C:021), and at least one-quarter of the semester hours required for graduation

Before the fifth semester begins: math through Calculus II, at least two more courses in the major (e.g., 22C:022 and 22C:060), and at least one-half of the semester hours required for graduation

Before the seventh semester begins: at least three more courses in the major and at least three-quarters of the semester hours required for graduation

Before the eighth semester begins: at least two more courses in the major

During the eighth semester: enrollment in all remaining course work in the major, all remaining General Education courses, and a sufficient number of semester hours to graduate

"IDEAL" Four-Year Plan

The University of Iowa four-year plan is the minimum deadlines required to complete a degree in four years.  We encourage students to pursue their course work at a faster pace. There are three different schedules for students to follow.  The first schedule is for BS students.  In this schedule, you are encouraged to take your natural science sequence and calculus sequence early in the program.  The second schedule is for BA students who may want to eventually get a BS.  This schedule postpones the natural science sequence and other BS requirements until after the BA requirements are finished.  A student who completes the BA by the end of their sixth semester should be able to satisfy the additional requirements of a BS in their final year.  The third schedule is for students that are tentative BA or CS minors.  This schedule uses the first semester to take 22C:005, which gives a broad introduction to computer science, and to strengthen mathematical skills.  Students starting this schedule can still complete a BA or BS in 4 years.

BS Student Schedule

  First Semester:
    Computer Science I: Fundamentals (22C:016)
Calculus I (22M:025)
Natural Science Sequence (BS students)
  Second Semester:
    Computer Science II: Data Structures (22C:021)
Discrete Structures (22C:019)
Calculus II (22M:026)
Natural Science Sequence (BS students)
  Third Semester:
    Object-Oriented Software Development (22C:022)
Computer Organization Elective (22C:060 or 055:035)
  Fourth Semester:
    Algorithms (22C:031)
Systems Elective (22C:112 or 22C:113 or 22C:118)
Math Elective
  Fifth Semester:
    Programming Language Concepts (22C:111)
Required CS Elective #1 (BA and BS)
  Sixth Semester:
    Required CS Elective #2 (BS)
Limits of Computation (22C:131 or 22C:135) (BS students)
  Seventh Semester:
    Required Technical Elective #1 (BS students)
Math Elective #2 (BS students)
  Eighth Semester:
    Required Technical Elective #2 (BS students)

BA Student Schedule (with possible BS in final year)

  First Semester:
    Computer Science I: Fundamentals (22C:016)
Calculus I (22M:025)
  Second Semester:
    Computer Science II: Data Structures (22C:021)
Discrete Structures (22C:019)
Calculus II (22M:026)
  Third Semester:
    Object-Oriented Software Development (22C:022)
Computer Organization Elective (22C:060 or 055:035)
  Fourth Semester:
    Algorithms (22C:031)
Systems Elective (22C:112 or 22C:113 or 22C:118)
Math Elective
  Fifth Semester:
    Programming Language Concepts (22C:111)
Required CS Elective #1 (BA and BS)
  Sixth Semester:
    Required CS Elective #2 (for students who decide for BS)
Limits of Computation (22C:131 or 22C:135) (for students who decide for BS)
  Seventh Semester:
    Required Technical Elective #1 (for students who decide for BS)
Math Elective #2 (for students who decide for BS)
Natural Science Sequence (for students who decide for BS)
  Eighth Semester:
    Required Technical Elective #2 (for students who decide for BS)
Natural Science Sequence (for students who decide for BS)

Tentative BA Schedule

  First Semester:
    Introduction to Computer Science (22C:005)
Pre-calculus
  Second Semester:
    Computer Science I: Fundamentals (22C:016)
Calculus I (22M:025)
  Third Semester:
    Computer Science II: Data Structures (22C:021)
Discrete Structures (22C:019)
Calculus II (22M:026)
  Fourth Semester:
    Object-Oriented Software Development (22C:022)
Computer Organization Elective (22C:060 or 055:035)
  Fifth Semester:
    Algorithms (22C:031)
Systems Elective (22C:112 or 22C:113 or 22C:118)
Math Elective
  Sixth Semester:
    Programming Language Concepts (22C:111)
Required CS Elective #1
  Seventh Semester:
    Required CS Elective #2 (for students who decide for BS)
Limits of Computation (22C:131 or 22C:135) (for students who decide for BS)
Required Technical Elective #1 (for students who decide for BS)
Natural Science Sequence (for students who decide for BS)
  Eighth Semester:
    Required Technical Elective #2 (for students who decide for BS)
Natural Science Sequence (for students who decide for BS)
Math Elective #2 (for students who decide for BS)

There is considerable scheduling flexibility in the later part of this sequence. Calculus II and Linear Algebra can be deferred until later, so long as no technical elective requires them. The natural science requirement for the BS degree can also be taken in earlier semesters and can also satisfy the General Education Requirements.

CS Minor Student Schedule

  First Semester:
    Computer Science I: Fundamentals (22C:016)
or Introduction to Computer Science (22C:005) but then take 22C:016 in 2nd semester)
  Second Semester:
    Discrete Structures (22C:019)
Computer Science II: Data Structures (22C:021)
  Third Semester:
    Object-Oriented Software Development (22C:022)
  Fourth Semester:
    CS Elective #1 (if not using 22C:005 as elective)

Requirements for the BA Degree in Computer Science

A minimum of 41 semester hours (computer science core and mathematics courses) must be completed for this degree.  Students must also meet the requirements set by The University of Iowa and the College of Liberal Arts and Sciences, as outlined in the Schedule of Courses.  This includes earning 120 semester hours of credit, meeting a residency requirement, and completing the General Education Program.  You may use up to 16 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).

All students must earn a minimum GPA of 2.00 in:

  1. all college work attempted;
  2. all work undertaken at the University of Iowa;
  3. all University of Iowa major work, and
  4. all work attempted in the major field.

Requirements for the BS Degree in Computer Science

To receive a BS in computer science, you must meet all of the BA degree requirements and complete additional coursework in natural science, mathematics/statistics, and advanced computer science.

Departmental GPA Requirements

To satisfy the College of Liberal Arts’ major GPA requirements, you must have a GPA of 2.00 or higher in the following courses to receive a BA or BS degree in computer science:

  • All 22C courses except those numbered below 22C:016 and those numbered 22C:100 through 22C:109 and
  • Mathematics (22M) and Statistics (22S) courses which are required as an integral part of the major requirements. (For the BA degree, such courses would be 22M:025, 22M:026, and 22M:027, or their equivalents. For the BS degree, this would include 22M:025, 22M:026, and 22M:027, or their equivalents, and 22S:120 or 22M:072 or 22S:039.)

After each session (including summer sessions), the Registrar’s Office calculates a computer science major GPA for each student.  This average appears on your degree evaluation.  The computer science major GPA is based on the courses that you have taken to date and include transfer grades for any transfer courses approved as substitutes for such courses.

Last modified: April 11, 2008

University of Iowa Logo College of Liberal Arts and Sciences Logo Computing Research Association Logo Association for Computing Machinery Logo
Translate this page automatically.
 
©2005 The University of Iowa, All Rights Reserved.