University of Iowa homepage
 

Undergraduate Program in Computer Science

Effective August 2009

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). 

All students must 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.  Students are enrolled in the B.A. program by default, but may switch to the B.S. program at any time. Students who are enrolled in the B.A. program but who might switch to the B.S. program should choose their General Education natural science courses carefully; courses may satisify both both the departmental natural science requirement (see "Natural Science Sequences," below) and the General Education Program natural science requirement.

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 BA Degree in Computer Science

A minimum of 41 semester hours (computer science core and mathematics courses) must be completed for this degree.  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).

The B.A. program is designed for students who wish to gain considerable knowledge in computer science and have flexibility in selecting 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.

Requirements for the BS Degree in Computer Science

The Bachelor of Science in computer science requires at least 63 s.h. of work for the major. The B.S. program is more rigorous than the B.A. and is designed to provide in-depth training for students who may pursue graduate work in computer science. However, the choice between the B.A. or the B.S. should be dictated by students' personal career goals. The B.S. is not required for graduate study, and many students not interested in graduate study may choose the B.S. to enhance their skills and job prospects. B.S. students complete all requirements for the B.A. major in computer science and also complete an additional mathematics course, a course on computation theory, another computer science elective, two technical electives, and the natural science requirement.

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 (one of these):
22C:060 Computer Organization
055:035 Computer Architecture and Organization
3 sh
  22C:031 Algorithms 3 sh
  22C:111 Programming Language Concepts 3 sh
  Systems Requirement (one of these):
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.

Mathematics 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 s.h.

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 s.h.
22S:120 Probability and Statistics  4 s.h.
   
Any other probability and statistics course with a calculus prerequisite, as approved by the Department.  

Advanced Electives

An advanced computer science elective is any 100-level Computer Science course numbered above 22C:110.  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 s.h.
22C:096 Topics in Computer Science (with departmental approval)  arr
22C:099 Honors in Computer Science (may be counted only once) arr
Any 100-level computer science course numbered above 22C:110  

With department approval, students may count most 200-level courses as advanced computer science electives.

Technical Electives

Bachelor of Science students must earn 6 s.h. in technical electives. Advanced elective courses in computer science or in any other department, approved by the Department, can be counted as technical electives. For a list of approved technical electives, see http://www.cs.uiowa.edu/Courses/TechnicalElectives.html

Natural Science Sequences

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.

For the B.S., students take two or more courses in a sequence (totaling at least 7 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.

Astronomy

029:061 General Astronomy I(GEP, lab)  4 s.h.
029:062 General Astronomy II (GEP, lab) 4 s.h.

Biology/Chemistry

002:010 Principles of Biology I (GEP, lab)  4 s.h.
002:011 Principles of Biology II (GEP, lab) 4 s.h.
004:011 Principles of Chemistry I (GEP) 4 s.h.

Chemistry

004:011 Principles of Chemistry I (GEP)  4 s.h.
004:012 Principles of Chemistry II (GEP) 4 s.h.

Geography

044:003 Introduction to Earth Systems Science (GEP, lab)  4 s.h.
044:005 Foundations of GIS* 4 s.h.

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

Geoscience

012:003 Earth History and Resources (GEP, lab)  4 s.h.
or  
012:005 Introduction to Geology (GEP, lab) 4 s.h.
and  
012:008 Introduction to Environmental Science 3-4 s.h.

Physics

One of these sequences:

029:027-029:028  Physics I-II (GEP, lab)  8 s.h.
029:081-029:082 Introductory Physics I-II (GEP, lab) 8 s.h.

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 the major (e.g., 22C:016 Computer Science I: Fundamentals, 22C:019 Discrete Structures, and 22C:021 Computer Science II: Data Structures), 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 Object-Oriented Software Development and 22C:060 Computer Organization), 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, which students usually complete as part of their General Education Program natural science component.

Before the third semester begins: math through calculus I, three courses in the major (e.g., 22C:016 Computer Science I: Fundamentals, 22C:019 Discrete Structures, and 22C:021 Computer Science II: Data Structures), 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 Object-Oriented Software Development and 22C:060 Computer Organization), 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.  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

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 8, 2009

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.