University of Iowa homepage
 

Undergraduate Program in Computer Science

Effective August 2008

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. 

Computer Science Required Courses

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

  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 OR
22C:169 Computer Security
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 at http://www.cs.uiowa.edu/Courses/TechnicalElectives.html

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.  However, carefully chosen courses may satisfy both the departmental natural science requirement and the General Education Program natural science requirement.

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 course sequences that will satisfy the departmental natural science requirement.  The CS Director of Undergraduate Studies must approve any alternative sequences.

Astronomy
029:061 General Astronomy I(GEP, lab)
4 sh
029:062 General Astronomy II (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:027-29:028 Physics I-II (GEP, lab) OR
8 sh
29:081-29:082 Introductory Physics I-II (GEP, lab)
8 sh
Geography
044:003 Introduction to Earth Systems Science (GEP, lab)
4 sh
044:005 Foundations of GIS*
3 sh
Geoscience
012:003 Earth History and Resources (GEP, lab) OR
4 sh
012:005 Introduction to Geology (GEP, lab) AND
4 sh
012:008 Introduction to Environmental Science (GEP)
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



 
 
 

For BS students




 

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: all math requirements, three more courses in the major (e.g., 22C:031, 22C:060, and either 22C:022 or a systems course), 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 the 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: at least three courses meeting the math requirement, at least three more courses in the major (e.g., 22C:031, 22C:060, and either 22C:022 or a systems course), and at least one-half of the semester hours required for graduation.

Before the seventh semester begins: any remaining math courses, at least one of the advanced courses (CS elective or technical elective), 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.  The first schedule is for BA students, but please note that there is enough flexibility in this schedule to accommodate getting a BS.  If this is a possibility, special attention should be made to choose courses satisfying both the General Education Program and the Department's natural science sequence requirement.  The second schedule is for BS students.  The third schedule is for students choosing to get a CS minor.  The minor schedule gives the option of using the first semester to take 22C:005, which gives a broad introduction to computer science, and to strengthen mathematical skills.

BA Student Schedule

  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:
    Computer Organization Elective (22C:060 or 55:035)
Math Elective
  Fourth Semester:
    Algorithms (22C:030)
Object-Oriented Software Development (22:022) OR
Systems Elective (22C:112 or 22C:113 or 22C:118 or 22C:169)
  Fifth Semester:
    Object-Oriented Software Development (22C:022) OR
Systmes Elective (22C:112 or 22C:133 or 22CL118 or 22C:169)
Advanced CS Elective
  Sixth Semester:
    Programming Language Concepts (22C:111)
  Seventh Semester:
  Eighth Semester:

BS Student Schedule

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

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.  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 and Sciences’ 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.

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: October 17, 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.