Search

Computer Science

Chair

  • James Cremer

Professors

  • Kurt Anstreicher (Management Sciences/Computer Science), Steven Bruell, James F. Cremer, Sukumar Ghosh, Ted Herman, Joseph Kearney, Gregg Oden (Psychology/Computer Science), Suely Oliveira, Teodor Rus, Alberto Segre, Padmini Srinivasan (Library and Information Science/Computer Science), Hantao Zhang

Professors emeriti

  • Donald Alton, Kendall Atkinson, Robert J. Baron, Donald Epley, Arthur Fleck

Associate professors

  • David Eichmann (Library and Information Science/Computer Science), Douglas Jones, Sriram V. Pemmaraju, W. Nick Street (Management Sciences/Computer Science), Aaron Stump, Cesare Tinelli, Kasturi Varadarajan

Adjunct associate professor

  • Jun Ni

Assistant professors

  • Juan Pablo Hourcade, Eunjin (EJ) Jung, Christopher Wyman

Adjunct assistant professor

  • Donald McClain

Lecturer

  • Ines Z. Curto

Adjunct instructor

  • Raman Aravamudhan

Adjunct lecturer

  • Kenneth Slonneger
Undergraduate degrees: B.A., B.S. in Computer Science, Informatics
Undergraduate nondegree programs: Minor in Computer Science, Informatics
Graduate degrees: M.C.S., M.S., Ph.D. in Computer Science
Web site: http://www.cs.uiowa.edu

Undergraduate Programs

The department offers a Bachelor of Arts, a Bachelor of Science, and a minor in computer science and in informatics. Both the B.A. and B.S. provide students with the necessary training for employment in careers such as software development and information management. Students who do not want to pursue a computer science career should consider earning a minor in computer science to acquire fundamental knowledge of the use and applications of computers. The department encourages students in both B.A. and B.S. programs to consider earning a second major, certificate, or minor.

Undergraduates majoring in computer science develop competence in programming principles and methodologies, problem-solving techniques, mathematics, and computer systems. Computer science training is critical for many careers in science, engineering, and business.

Qualified undergraduate students who plan to earn the Master of Computer Science degree may apply for the joint Bachelor of Arts/Master of Computer Science program or the joint Bachelor of Science/Master of Computer Science program. The joint programs allow students to count a limited amount of advanced credit toward requirements for both the undergraduate and the graduate degree, enabling them to earn both degrees in five years, less time than is required to earn them separately.

Informatics brings the computational sciences together with the arts, the humanities, and the biological, health, information, natural, and social sciences in an interdisciplinary effort to solve problems. It uses algorithmic techniques and the power of computing to acquire and manipulate data, extract new knowledge, and ultimately examine existing and new problems from broad perspectives.

The informatics major combines fundamental and practical computing knowledge with a choice of cognate areas from the liberal arts and sciences, providing students with the necessary background and specialized skills to work at the interface of computing and another discipline. The major also provides good preparation for graduate study in a variety of disciplines.

Students may declare a major in computer science or in informatics and be admitted to the department's B.A. or B.S. programs at any time on or after admission to the University. Students are admitted to the informatics B.A. program without a chosen cognate area; they may declare a cognate at any time. After admission to the major, computer science students must maintain a g.p.a. of 2.00 or higher in all course work in order to graduate; informatics students must maintain a g.p.a. of at least 2.00 in the informatics core, the statistics course, and the elective(s).

All students are advised at the Academic Advising Center until they have completed 22C:019 Discrete Structures (computer science students) or 22C:080 Programming for Informatics (informatics students). Computer science students being advised at the advising center also may consult with computer science faculty members; informatics students being advised at the center also should consult with the department's informatics program director.

Transfer students who have taken a course approved as equivalent to a required computer science or informatics course are exempt from that course. Transfer course grades are included in the computer science or informatics grade-point average.

Students should consult the Department of Computer Science web site or visit the department's office for information about general policies, elective areas, and internships, scholarships, and student groups, such as the University's chapter of the Association for Computing Machinery (ACM) and Women in Informatics and Computer Science (WICS).

Advanced Placement

The Computer Science Advanced Placement Program test can be used to gain credit for elective semester hours. See Advanced Placement Credit Policy under Prospective Students on the Department of Computer Science web site.

Early Admission to the Graduate College

Undergraduate computer science or informatics 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.

Bachelor of Arts in Computer Science

The Bachelor of Arts in computer science requires a minimum of 120 s.h., including at least 41 s.h. of work for the major. 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.

All students must complete the College of Liberal Arts and Sciences General Education Program. 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; see "Natural Science Sequences" under "Bachelor of Science," below.

The B.A. major in computer science requires the following core courses. They may not be taken pass/nonpass. Students also must take one advanced computer science elective.

COMPUTER SCIENCE CORE

All of these: 

22C:016 Computer Science I: Fundamentals 4 s.h.
22C:019 Discrete Structures 3 s.h.
22C:021 Computer Science II: Data Structures 4 s.h.
22C:022 Object-Oriented Software Development 4 s.h.
22C:031 Algorithms 3 s.h.
22C:111 Programming Language Concepts 3 s.h.

One of these: 

22C:060 Computer Organization 3 s.h.
055:035 Computer Architecture and Organization 3 s.h.

One of these: 

22C:112 Operating Systems 3 s.h.
22C:113 Introduction to Systems Software 3 s.h.
22C:118 Introduction to Networks and Their Applications 3 s.h.
22C:169 Computer Security 3 s.h.

MATHEMATICS CORE

Calculus I--one of these: 

22M:025 Calculus I 4 s.h.
22M:031 Engineering Mathematics I: Single Variable Calculus 4 s.h.

Calculus II--one of these: 

22M:026 Calculus II 4 s.h.
22M:032 Engineering Mathematics II: Multivariable Calculus 4 s.h.

Linear algebra/probability and statistics--one of these: 

22M:027 Introduction to Linear Algebra 4 s.h.
22S:039 Probability and Statistics for the Engineering and Physical Sciences 3 s.h.
22S:120 Probability and Statistics 4 s.h.
ADVANCED ELECTIVES

Bachelor of Arts students must earn at least 3 s.h. in advanced electives. 

22C:072/22M:072 Elementary Numerical Analysis 3 s.h.
22C:096 Topics in Computer Science (with department approval) arr.
22C:099 Honors in Computer Science or Informatics (may be counted once as an advanced course) arr.
Any 100-level computer science course numbered above 22C:110 

With department approval, students may count most 22C courses numbered above 200 as advanced courses.

Bachelor of Science in Computer Science

The Bachelor of Science in computer science requires a minimum of 120 s.h., including 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.

All students must complete the College of Liberal Arts and Sciences General Education Program. When chosen carefully, courses that fulfill the General Education Program natural sciences requirement also satisfy the Department of Computer Science natural science requirement (see "Natural Science Sequences," below).

B.S. students complete all requirements for the B.A. major in computer science. They also complete an additional mathematics course, a course on computation theory, another computer science elective, two technical electives, and the natural science requirement. These courses cannot be taken pass/nonpass.

COMPUTER SCIENCE CORE

All of these: 

22C:016 Computer Science I: Fundamentals 4 s.h.
22C:019 Discrete Structures 3 s.h.
22C:021 Computer Science II: Data Structures 4 s.h.
22C:022 Object-Oriented Software Development 4 s.h.
22C:031 Algorithms 3 s.h.
22C:111 Programming Language Concepts 3 s.h.

One of these: 

22C:060 Computer Organization 3 s.h.
055:035 Computer Architecture and Organization 3 s.h.

One of these: 

22C:112 Operating Systems 3 s.h.
22C:113 Introduction to Systems Software 3 s.h.
22C:118 Introduction to Networks and Their Applications 3 s.h.
22C:169 Computer Security 3 s.h.

MATHEMATICS CORE

Calculus I--one of these: 

22M:025 Calculus I 4 s.h.
22M:031 Engineering Mathematics I: Single Variable Calculus 4 s.h.

Calculus II--one of these: 

22M:026 Calculus II 4 s.h.
22M:032 Engineering Mathematics II: Multivariable Calculus 4 s.h.

Linear algebra: 

22M:027 Introduction to Linear Algebra 4 s.h.

Probability and statistics--one of these: 

22S:039 Probability and Statistics for the Engineering and Physical Sciences 3 s.h.
22S:120 Probability and Statistics 4 s.h.
Another probability and statistics course with a calculus prerequisite, approved by a computer science advisor 

ADVANCED ELECTIVES

Bachelor of Science students must earn at least 6 s.h. in advanced electives. 

22C:072/22M:072 Elementary Numerical Analysis 3 s.h.
22C:096 Topics in Computer Science (with department approval) arr.
22C:099 Honors in Computer Science or Informatics (may be counted once as an advanced course) arr.
Any 100-level computer science course numbered above 22C:110 

With department approval, students may count most 22C courses numbered above 200 as advanced courses.

COMPUTATION THEORY

One of these: 

22C:131 Limits of Computation 3 s.h.
22C:135 Theory of Computation 3 s.h.

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 an advisor, can be counted as technical electives. For a list of approved technical electives, see Technical Electives for the B.S. under Courses on the Department of Computer Science web site.

NATURAL SCIENCE SEQUENCES

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 4 s.h.
029:062 General Astronomy II 4 s.h.

Biology/Chemistry 
002:010 Principles of Biology I 4 s.h.
002:011 Principles of Biology II 4 s.h.
004:011 Principles of Chemistry I 4 s.h.

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

Geography 
044:003 Introduction to Earth Systems Science 4 s.h.
044:005 Foundations of GIS 3 s.h.

Geoscience 
012:003 Earth History and Resources 4 s.h.
or 
012:005 Introduction to Geology 4 s.h.

012:008 Introduction to Environmental Science 3-4 s.h.
Physics

One of these sequences: 

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

Bachelor of Arts, Bachelor of Science in Informatics

The Bachelor of Arts in informatics requires a minimum of 120 s.h., including at least 43-50 s.h. of work for the major. The Bachelor of Science in informatics requires a minimum of 120 s.h., including at least 53-55 s.h. of work for the major. Both majors combine informatics course work that provides a strong foundation in computing with course work in a cognate discipline. Required credit for the major depends on the choice of cognate area.

The Bachelor of Arts major offers the cognate areas of fine and applied arts (art, music), human-computer interaction, health sciences, linguistics, social sciences (economics, geography, sociology), and individualized cognates.

The Bachelor of Science major offers the cognate areas of bioinformatics and individualized cognates.

All informatics students complete the informatics core, one (B.A.) or two (B.S.) electives, a statistics course, and a set of courses in their chosen cognate area. Students also must complete the College of Liberal Arts and Sciences General Education Program.

Students are expected to possess an appropriate high school background in mathematics.

INFORMATICS CORE

The informatics core consists of six required computing courses (at least 18 s.h.) that emphasize data manipulation, databases, and networking. It provides more applications-oriented content than the traditional computer science curriculum yet is designed to offer students a sound basis in underlying computer sciences themes and techniques.

One of these:

22C:080 Programming for Informatics 4 s.h.
22C:104 Introduction to Informatics 3 s.h.

All of these: 

22C:005 Introduction to Computer Science 3 s.h.
22C:082 Human-Computer Interaction 3 s.h.
22C:084 Databases for Informatics 3 s.h.
22C:086 Networking and Security for Informatics 3 s.h.
22C:094 Informatics Project 3 s.h.

INFORMATICS ELECTIVES

B.A. students must complete at least one course (3 s.h.) and B.S. students must complete at least two (6 s.h.) from a list of approved computing informatics electives. In addition to the courses listed below, students may have additional choices from the Department of Electrical and Computer Engineering, the Department of Management Sciences, and the School of Library and Information Science; consult the informatics program director for additional choices. 

22C:096 Topics in Computer Science (section approved by advisor) 3 s.h.
22C:109 Programming Languages and Tools (section approved by advisor) 3 s.h.
A computer science course numbered above 22C:110 3 s.h.

STATISTICS COURSE

B.A. and B.S. students must complete one introductory statistics course. Some cognates require a specific statistics course or an alternative statistics course not on this list (e.g., 034:010 Quantitative Data Analysis for the human-computer interaction cognate). Students should consult with their advisor to choose a statistics course appropriate for their cognate area.

One of these (3-4 s.h.): 

22S:008 Statistics for Business 4 s.h.
22S:025 Elementary Statistics and Inference 3 s.h.
22S:030 Statistical Methods and Computing 3 s.h.
22S:039 Probability and Statistics for the Engineering and Physical Sciences 3 s.h.
22S:101 Biostatistics 3 s.h.
22S:102 Introduction to Statistical Methods 3 s.h.
22S:120 Probability and Statistics 4 s.h.

Bachelor of Arts Cognates

Detailed requirements for each cognate are listed on the Department of Computer Science web site.

ART

The informatics major with an art cognate requires 46 s.h. of work for the major, including 21 s.h. in cognate courses. Students learn about the design and maintenance of Web services, applications of modern computerized artistic tools, and benefits and limitations of computers as a digital medium. They also gain insight into computerized tool design that is guided by knowledge of an artist's requirements. The art cognate may lead to careers in web development, technology coordination for artistic productions, development of digital artistic tools, and artistic or technical development for entertainment companies. Cognate courses are primarily in art history, design, elements of art, and photography.

All of these:

01A:003 Basic Drawing 3 s.h.
01D:028 Graphic Design I 3 s.h.
01D:082 Introductory Computer Graphic Design 3 s.h.

Two of these:

01H:001 Art and Visual Culture 3 s.h.
01H:002 Arts of Africa 3 s.h.
01H:003 Art of Pre-Columbian America, Native America, and Oceania 3 s.h.
01H:004 Masterpieces: Art and Cultural Paradigms 3 s.h.
01H:005 Western Art and Culture Before 1400 3 s.h.
01H:006 Western Art and Culture After 1400 3 s.h.
01H:007 Writing About the Visual Arts 3 s.h.
01H:008 Themes in Global Art 3 s.h.
01H:010 Tutorial for Majors: Art History as a Discipline 3 s.h.
01H:016 Asian Art and Culture 3 s.h.
01H:021 Introduction to the Art of West Africa 3 s.h.
01H:022 Introduction to the Art of Central Africa 3 s.h.
01H:026 Introduction to Ancient Art 3 s.h.
01H:031 Introduction to the Art of China 3 s.h.
01H:033 Introduction to the Art of Japan 3 s.h.
01H:040 Introduction to Medieval Art 3 s.h.
01H:047 Introduction to Renaissance Art 3 s.h.
01H:053 Introduction to Baroque Visual Culture 3 s.h.
01H:062 Introduction to Nineteenth-Century Art 3 s.h.
01H:066 Introduction to American Art 3 s.h.
01H:073 Introduction to Modern/Contemporary Art 3 s.h.
01H:084 Introduction to European Architecture 3 s.h.
01H:090 Introduction to Art and Religion 3 s.h.
01H:098 Undergraduate Topics in Art History 3 s.h.
01H:099 Undergraduate Seminar in the History of Art 3 s.h.

At least 6 s.h. from these; 3 s.h. must be 100-level:

01D:064 Introduction to Computer-Aided Design for 3-D Design 3 s.h.
01D:128 Computer Graphic Design 3 s.h.
01D:133 Graphic Design II 3 s.h.
01L:040 Introduction to Digital Imaging 3-4 s.h.
01L:140 Digital Imaging 3-4 s.h.

ECONOMICS

The informatics major with an economics cognate requires at least 48 s.h. of work for the major, including 24 s.h. in cognate courses, which are primarily from economics.

All of these:

22M:017 Calculus and Matrix Algebra for Business 4 s.h.
06E:001 Principles of Microeconomics 4 s.h.
06E:002 Principles of Macroeconomics 4 s.h.
06E:104 Microeconomic Theory 3 s.h.
06E:105 Macroeconomics 3 s.h.

Two of these:

06E:111 Personnel Economics 3 s.h.
06E:113 Health Economics 3 s.h.
06E:117 Money, Banking, and Financial Markets 3 s.h.
06E:119 Policy Analysis 3 s.h.
06E:125 Global Economics and Business 3 s.h.
06E:129 Economic Growth and Development 3 s.h.
06E:133 Environmental and Natural Resource Economics 3 s.h.
06E:135 Regional and Urban Economics 3 s.h.
06E:141 Industry Analysis 3 s.h.
06E:145 Transportation Economics 3 s.h.
06E:158 American Economic History 3 s.h.
06E:160 Household Finance 3 s.h.
06E:164 Economies in Transition 3 s.h.
06E:165 Sports Economics 3 s.h.
06E:169 Introductory Topics in Economics arr.
06E:171 Antitrust Economics 3 s.h.
06E:172 Law and Economics 3 s.h.
06E:173 International Economics 3 s.h.
06E:174 Monetary Economics 3 s.h.
06E:175 Labor Economics 3 s.h.
06E:176 Public Sector Economics 3 s.h.
06E:177 Industrial Organization 3 s.h.
06E:179 History of Economic Thought 3 s.h.
06E:183 Natural Resource Economics 3 s.h.
06E:184 Introduction to Econometrics 3 s.h.
06E:187 Mathematical Economics 3 s.h.
06E:189 Advanced Topics in Economics arr.

GEOGRAPHY

The informatics major with a geography cognate requires 48 s.h. of work for the major, including 23 s.h. in cognate courses, which are primarily from geography.

All of these:

044:001 Introduction to Human Geography 4 s.h.
044:003 Introduction to Earth Systems Science 4 s.h.
044:005 Foundations of GIS 3 s.h.

 One of these:

044:010 The Contemporary Global System 4 s.h.
044:011 Population Geography 3 s.h.
044:015 Introduction to Political Geography 3 s.h.
044:019 Contemporary Environmental Issues 3 s.h.
044:030 The Global Economy 3 s.h.
044:035 World Cities 3 s.h.

One of these:

044:110 GIS for Environmental Studies: Introduction 3 s.h.
044:112 Mapping American Cities and Regions 3 s.h.
044:180 Field Methods in Physical Geography 2-4 s.h.
044:181 Field Methods: Mapping and Mobile Computing 3 s.h.

 Two of these:

044:105 Introduction to Environmental Remote Sensing 3 s.h.
044:110 GIS for Environmental Studies: Introduction 3 s.h.
044:112 Mapping American Cities and Regions 3 s.h.
044:113 Principles of Geographical Information Systems 3 s.h.
044:125 Environmental Impact Analysis 4 s.h.
044:128 GIS for Environmental Studies: Applications 3 s.h.
044:136 Planning Livable Cities 3 s.h.
044:137 Health and Environment: GIS Applications 3 s.h.
044:139 Spatial Analysis and Location Models 3 s.h.
044:145 Advanced Geographic Remote Sensing 4 s.h.

HEALTH SCIENCES

The informatics major with a health sciences cognate requires 50 s.h. of work for the major, including 25 s.h. in cognate courses. The health sciences cognate is intended for students interested in applications of computing to the health sciences. It may lead to careers in medical research or hospital settings and to graduate-level professional degree programs in public health or to graduate study in health or medical informatics. Cognate courses are from anatomy and cell biology, biology, chemistry, health and sport studies, nursing, and psychology.

One of these:

002:002 Introductory Animal Biology 4 s.h.
002:010 Principles of Biology I 4 s.h.

 One of these:

004:007 General Chemistry I 3 s.h.
004:011 Principles of Chemistry I 4 s.h.

One of these:

027:053 Human Anatomy 3 s.h.
060:110 Principles of Human Anatomy 3 s.h.

 All of these:

028:075 Health in Everyday Life 3 s.h.
028:141 Health Promotion Theory and Practice 3 s.h.
028:145 Health Promotion Processes 3 s.h.
031:001 Elementary Psychology 3 s.h.

 One of these:

031:014 Introduction to Developmental Science 3 s.h.
096:030 Human Development and Behavior 3 s.h.

HUMAN-COMPUTER INTERACTION

The informatics major with a cognate in human-computer interaction requires a minimum of 45 s.h. of work for the major, including 20-23 s.h. in cognate courses. The cognate is intended for students interested in designing useful and usable technologies. It can lead to careers in interaction design, web design, implementation of user interfaces and evaluation of human-computer interactions, as well as provide valuable skills for graduate studies in human-computer interaction.

The cognate's courses are drawn largely from psychology, sociology, and industrial engineering. Four required courses include foundational aspects of psychology or sociology, an examination of basic human abilities and performance relevant to information technology use, and an introduction to research topics in human-computer interaction.

Students must complete either the psychology area or the sociology area.

Psychology

Students who choose the psychology area must satisfy the statistics requirement for the informatics core by taking 22S:008 Statistics for Business, 22S:025 Elementary Statistics and Inference, 22S:101 Biostatistics, or 22S:102 Introduction to Statistical Methods. The psychology area requires the following courses.

All of these (14 s.h.):

031:002 Biological Psychology 4 s.h.
031:010 Research Methods in Psychology 4 s.h.
031:016 Introduction to Cognitive Psychology 3 s.h.
22C:196 Topics in Computer Science (topic must be human-computer interaction) 3 s.h.

Two of these (6 s.h.):

031:014 Introduction to Developmental Science 3 s.h.
031:015 Introduction to Social Psychology 3 s.h.
031:123 Psychology of Learning 3 s.h.
031:133 Sensation and Perception 3 s.h.

Sociology

Students who choose the sociology area must satisfy the statistics requirement for the informatics core by taking 034:010 Quantitative Data Analysis. The sociology area requires the following courses.

All of these (12-13 s.h.):

034:001 Introduction to Sociology Principles 3-4 s.h.
034:009 Sociological Theory 3 s.h.
034:011 Research Methods 3 s.h.
22C:196 Topics in Computer Science (topic must be human-computer interaction) 3 s.h.

Three of these (9-10 s.h.):

034:020 Principles of Social Psychology 3-4 s.h.
034:125 Small Group Analysis 3 s.h.
056:144 Human Factors 3 s.h.
056:147 Ergonomics 3 s.h.
056:148 Human-Centered System Design 3 s.h.
LINGUISTICS

The informatics major with a linguistics cognate requires 46 s.h. of work for the major, including at least 21 s.h. in cognate courses. Linguistics, the scientific study of human languages, is directly related to psychology, anthropology, and computer science as well as to more applied fields such as second language acquisition or speech and hearing science. The cognate focuses on computational representations of syntax and semantics for processing natural language. Cognate courses are drawn primarily from linguistics.

All of these:

103:100 Introduction to Linguistics 3 s.h.
103:110 Articulatory and Acoustic Phonetics 3 s.h.
103:111 Syntactic Analysis 3 s.h.
103:112 Phonological Analysis 3 s.h.
103:140 Introduction to Computational Linguistics 3 s.h.

Language history--one of these:

103:131/08L:131 History of the English Language 3 s.h.
103:139/039:139 Chinese Historical Phonology 3 s.h.

Old language--one of these:

008:141 Old English Beowulf 3 s.h.
103:132/008:140 Elementary Old English 3 s.h.
20E:110/039:110 First-Year Sanskrit: First Semester 4 s.h.
20E:111/039:111 First-Year Sanskrit: Second Semester 4 s.h.
20E:121/039:112 Second-Year Sanskrit: First Semester 3 s.h.
20E:122/039:113 Second-Year Sanskrit: Second Semester 3 s.h.
20G:001 Classical and New Testament Greek I 5 s.h.
20G:002 Classical and New Testament Greek II 5 s.h.
20G:011 Second-Year Greek I 3 s.h.
20G:012 Second-Year Greek II 3 s.h.
20L:001 Elementary Latin I 5 s.h.
20L:005 Accelerated Latin 3-5 s.h.
20L:002 Elementary Latin II 5 s.h.
20L:011 World of Cicero 3 s.h.
20L:012 Golden Age of Roman Poetry 3 s.h.

MUSIC

The informatics major with a music cognate requires 48 s.h. of work for the major, including 23 s.h. in cognate courses. The music cognate is intended for students interested in audio recording, manipulation of sound, and digital media. It may help students prepare for careers in the entertainment industry. Cognate courses are primarily from the music, with some from cinema and comparative literature and from theatre arts. Entering students must possess basic musicianship skills; an audition may be required for admission.

All of these:

025:001 Fundamentals of Music for Majors 3 s.h.
025:002 Musicianship and Theory I 4 s.h.
025:003 Musicianship and Theory II 4 s.h.
025:071 Group Instruction in Piano I 1 s.h.
025:072 Group Instruction in Piano II 1 s.h.
025:149 Audio Recording I 3 s.h.
025:152 Audio Recording II 3 s.h.

Students who plan to take 025:002 Musicianship and Theory I or 025:003 Musicianship and Theory II must take the music theory diagnostic examination, which is administered on the Sunday before fall semester classes begin. See Music Theory Diagnostic Exam on the School of Music web site for more information.

One of these:

025:103 World Music 3 s.h.
025:104 Music of Latin America and the Caribbean 3 s.h.
025:141 History of Jazz 3 s.h.
025:144 History of Music I 3 s.h.
025:146 History of Music II 3 s.h.
025:178 Music, Culture, and Identity 3 s.h.

At least one of these to complete 23 s.h. for the cognate:

025:007 Garage Band: The Basics 2 s.h.
025:064 Recital Attendance for Non-Majors 1 s.h.
048:053 Introduction to Film Sound 3 s.h.
048:119 Topics in Film Sound 3 s.h.
048:131 Film/Video/Audio Production: Sound Design 3 s.h.
049:140 Sound Design for the Theatre 3 s.h.
SOCIOLOGY

The informatics major with a sociology cognate requires 45 s.h. of work for the major, including 20 s.h. in cognate courses, which are drawn from sociology.

All of these:

034:001 Introduction to Sociology Principles 3-4 s.h.
034:009 Sociological Theory 3 s.h.
034:011 Research Methods 3 s.h.

At least 11 s.h. from these:

034:002 Social Problems 3-4 s.h.
034:010 Quantitative Data Analysis 3 s.h.
034:018 Gender and Society 3-4 s.h.
034:020 Principles of Social Psychology 3-4 s.h.
034:022 Introduction to Social Work 4 s.h.
034:040 Criminology 3 s.h.
034:061 The American Family 3 s.h.
034:066 Social Inequality 3 s.h.
034:100 Honors Proseminar 2 s.h.
034:125 Small Group Analysis 3 s.h.
034:126 Social Movements in the U.S. 3 s.h.
034:128 Sociology of Mental Illness 3 s.h.
034:135 Sociology of Sexuality 3 s.h.
034:141 Juvenile Delinquency 3 s.h.
034:146 Deviance and Control 3 s.h.
034:148 Internship in Criminal Justice and Corrections 1-5 s.h.
034:149 Sociology of Criminal Punishment 3 s.h.
034:150 Political Sociology 3 s.h.
034:152 African American and Latino Inequality 3 s.h.
034:153 Public Opinion 3 s.h.
034:155 Comparative Studies in Race and Ethnicity 3 s.h.
034:156 Gender Inequality 3 s.h.
034:158 Economy and Society 3 s.h.
034:159 Families in Comparative Perspective 3 s.h.
034:162 Work and Family Institutions 3 s.h.
034:164 Organizations and Modern Society 3 s.h.
034:165 Sociology of Work and Occupations 3 s.h.
034:175 Community and Urban Sociology 3 s.h.
034:179 Sociology of Education 3 s.h.
034:182 Sociology of Law 3 s.h.
034:186 Criminal Legal System 3 s.h.
034:190 Selected Topics in Sociology 3 s.h.
034:195 Capstone Course in Sociology 3 s.h.
034:196 Field Experience arr.
034:199 Honors Research arr.
INDIVIDUALIZED COGNATES

Students interested in developing individualized cognates may work with an informatics faculty advisor. Individualized cognates may be drawn primarily from one department or an appropriate mix of departments. In the Bachelor of Arts, individualized cognates require an approved set of cognate courses totaling 18-25 s.h.

Bachelor of Science Cognates

Detailed requirements for the cognate are listed on the Department of Computer Science web site.

BIOINFORMATICS

The informatics major with a bioinformatics cognate requires 55 s.h. of work for the major, including 27 s.h. in cognate courses. The bioinformatics cognate is intended for students interested in applications of computing to the biological sciences. It may lead to careers in laboratory research, data management, and other related areas. It also is preparation for graduate programs in bioinformatics or genetics. The cognate offers a choice of several areas: genome bioinformatics, phylogenics and evolution, proteomics, and systems biology. Cognate courses are drawn primarily from biology and chemistry.

All students in the bioinformatics cognate must complete the following two sequences.

002:010-002:011 Principles of Biology I-II 8 s.h.
004:011-004:012 Principles of Chemistry I-II 8 s.h.

Students also must complete one of the following four areas.

Genome Bioinformatics

Both of these:

002:128 Fundamental Genetics 3-4 s.h.
002:131 Evolution 4 s.h.

Two of these:

002:170 Bioinformatics 3 s.h.
002:174 Computational Genomics 3 s.h.
002:176 Microarray Data Analysis 3 s.h.

Phylogenetics and Evolution

Both of these:

002:128 Fundamental Genetics 3-4 s.h.
002:131 Evolution 4 s.h.

Two of these:

002:134 Ecology 4 s.h.
002:160 Molecular Phylogenetics 3 s.h.
002:162 Population Genetics and Molecular Evolution 3 s.h.

Proteomics

All of these:

002:133 Cell Biology Laboratory 3 s.h.
004:121 Organic Chemistry I 3 s.h.
099:120 Biochemistry and Molecular Biology I 3 s.h.
099:241 Biophysical Chemistry I 3 s.h.

Systems Biology

Both of these:

004:121 Organic Chemistry I 3 s.h.
061:157 General Microbiology 5 s.h.

One of these:

002:124 Animal Physiology 3 s.h.
061:147 Survey of Immunology 4 s.h.
061:160 Microbial Physiology 3 s.h.
061:170 Microbial Genetics 3 s.h.
INDIVIDUALIZED COGNATES

Individualized cognates may be drawn primarily from one department or an appropriate mix of departments. In the Bachelor of Science, individualized cognates require an approved set of cognate courses totaling 27-31 s.h. Students interested in developing individualized cognates should contact the Department of Computer Science for the name of an informatics faculty advisor.

Four-Year Graduation 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.)

B.A. in Computer Science

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

B.S. in Computer 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

B.A., B.S. in Informatics

Note: Much of the work in informatics and in the cognate area needs to be taken in sequence, so students must begin fulfilling major requirements as early as possible.

Before the third semester begins: 22C:005 Introduction to Computer Science, 22C:080 Programming for Informatics, one or two courses in the cognate area, the statistics course, and at least one-quarter of the semester hours required to graduate

Before the fifth semester begins: the three mid-level informatics courses (22C:082 Human-Computer Interaction, 22C:084 Databases for Informatics, and 22C:086 Networking and Security for Informatics), the statistics course (if not already completed), two or three more courses in the cognate area, and at least one-half of the semester hours required to graduate

Before the seventh semester begins: 22C:094 Informatics Project, an informatics elective course, two or three courses in the cognate area, and at least three-quarters of the semester hours required to graduate

Before the eighth semester begins: a second informatics elective course (for BS students) and courses in the cognate area

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

Honors

In order to pursue honors study in the Department of Computer Science, students must be members of the University of Iowa Honors Program, which requires them to maintain a cumulative University of Iowa g.p.a. of at least 3.33 (contact the University of Iowa Honors Program for more information).

To graduate with honors in computer science or informatics, students must complete 4-6 s.h. of 22C:099 Honors in Computer Science or Informatics and submit an acceptable honors thesis. Students are responsible for finding a faculty member willing to supervise their honors project. The faculty member must approve the proposed project and a timetable for the work. Students register for 22C:099 Honors in Computer Science or Informatics under the thesis supervisor's instructor number. See the Computer Science Undergraduate Student Handbook for details. Students may count 3 s.h. of 22C:099 Honors in Computer Science or Informatics toward an advanced or technical elective for the B.S. in computer science.

Minor in Computer Science

The minor in computer science requires a minimum of 17 s.h. in computer science, including 12 s.h. in courses taken at The University of Iowa. Students must maintain a g.p.a. of at least 2.00 in the minor. Course work in the minor may not be taken pass/nonpass. Students excused from courses required for the minor may substitute other computer science electives. The minor requires the following courses.

All of these: 

22C:016 Computer Science I: Fundamentals 4 s.h.
22C:019 Discrete Structures 3 s.h.
22C:021 Computer Science II: Data Structures 4 s.h.

At least one of these:

22C:022 Object-Oriented Software Development 4 s.h.
22C:031 Algorithms 3 s.h.
22C:060 Computer Organization 3 s.h.

Students choose one additional computer science course to complete the required 17 s.h.

Students may not use the following courses to satisfy requirements for the minor.

22C:001 Computer Literacy 3 s.h.
22C:002 First-Year Seminar 1 s.h.
22C:005 Introduction to Computer Science 3 s.h.
22C:080 Programming for Informatics 4 s.h.
22C:082 Human-Computer Interaction 3 s.h.
22C:084 Databases for Informatics 3 s.h.
22C:086 Networking and Security for Informatics 3 s.h.
22C:094 Informatics Project 3 s.h.
22C:104 Introduction to Informatics 3 s.h.

Students in electrical and computer engineering who have completed 055:033 Introduction to Software Design, 057:017 Computers in Engineering, and 059:006 Engineering Problem Solving II are considered to have satisfied the requirements for 22C:016 Computer Science I: Fundamentals and 22C:022 Object-Oriented Software Development.

Students may declare the computer science minor on ISIS; application triggers an audit for the minor that is available on ISIS the next day of the academic session.

Minor in Informatics

The minor in informatics requires a minimum of 16 s.h., including at least 12 s.h. in courses taken at The University of Iowa. Students must maintain a g.p.a. of at least 2.00 in the minor. Course work in the minor may not be taken pass/nonpass.

Students earning a major in computer science or in management information systems (Tippie College of Business) may not earn a minor in informatics.

The informatics minor must include the informatics core (13 s.h.) and one statistics course (3-4 s.h.), as follows.

Informatics core--all of these: 

22C:005 Introduction to Computer Science 3 s.h.
22C:080 Programming for Informatics 4 s.h.
22C:084 Databases for Informatics 3 s.h.

Informatics core--one of these: 

22C:082 Human-Computer Interaction 3 s.h.
22C:086 Networking and Security for Informatics 3 s.h.

Statistics--one of these: 

22S:008 Statistics for Business 4 s.h.
22S:025 Elementary Statistics and Inference 3 s.h.
22S:030 Statistical Methods and Computing 3 s.h.
22S:039 Probability and Statistics for the Engineering and Physical Sciences 3 s.h.
22S:101 Biostatistics 3 s.h.
22S:102 Introduction to Statistical Methods 3 s.h.
22S:120 Probability and Statistics 4 s.h.

Students may declare the informatics minor on ISIS; application triggers an audit for the minor that is available on ISIS the next day of the academic session.

Combined B.A./M.C.S. and B.S./M.C.S.

The joint Bachelor of Arts/Master of Computer Science and Bachelor of Science/Master of Computer Science programs allow qualified students to obtain an undergraduate and a graduate degree in computer science in five years. The B.A./M.C.S. and B.S./M.C.S. each require a total of 140 s.h., which is 12 s.h. less than the sum of the requirements for both degrees.

Students in the joint programs must complete all requirements for each degree. They may count a maximum of 12 s.h. (four courses) toward both degrees; the four courses must be taken during the fourth year, after admission to the joint program, and must satisfy degree requirements of both the B.A. or B.S., and the M.C.S.

When a student withdraws from the joint program before completing his or her bachelor's degree, credit earned in the four courses is counted only toward the undergraduate degree.

Students are granted the B.A. or B.S. when they complete all requirements for the undergraduate degree.

Students apply for admission to the joint program during their third year as undergraduates and enter the program at the beginning of their fourth year. They usually complete the joint program comfortably in one year after finishing their B.A. or B.S. requirements.

Applicants to the joint program must be enrolled as B.A. or B.S. students in computer science at The University of Iowa; must have completed a minimum of 80 s.h. at the time of admission to the joint program, with at least 30 s.h. earned at The University of Iowa; and must have a cumulative University of Iowa g.p.a. of at least 3.25, and a g.p.a. of at least 3.25 in the computer science major (computed on math prerequisites and core computer science course work taken at The University of Iowa).

Applicants must meet the admission requirements of the Graduate College; see the Manual of Rules and Regulations of the Graduate College or the Graduate College section of the Catalog.

Applicants must submit an application for admission to the program, a statement of purpose, three letters of recommendation, and transcripts from all colleges attended; they also must apply to the Graduate College. Graduate Record Examination scores are not required. Applicants whose first language is not English must submit scores on the Test of English as a Foreign Language (TOEFL) or the International English Testing System (IELTS).

For more detailed information, visit the Department of Computer Science web site.

Graduate Programs

The department offers three graduate degree programs: the Master of Computer Science (M.C.S.), and a Master of Science (M.S.) and Doctor of Philosophy (Ph.D.) in computer science.

The M.C.S. is a nonresearch, course-based program for students who wish to enhance their careers with advanced knowledge of computer science. The Ph.D. emphasizes preparation for research, teaching, and scholarly work in academic settings or private, industrial, or government laboratories. The M.S. is granted only to students working toward the Ph.D.

Admission decisions are based on prior academic performance, letters of reference, scores on the Graduate Record Examination (for Ph.D. applicants), and the applicant's statement about background and purpose. Students need not have a master's degree to begin the Ph.D. program or to receive the Ph.D. A student admitted without a master's degree may choose to receive an M.S. or M.C.S. while working toward the doctorate.

Applicants must meet the admission requirements of the Graduate College; see the Manual of Rules and Regulations of the Graduate College or the Graduate College section of the Catalog.

Current and prospective graduate students should consult the Computer Science Graduate Student Handbook, available from the department's office or on its web site. The handbook provides detailed information about specific degree requirements, such as required courses, examinations, and dissertation requirements. For general information about the department, faculty, and research activities, contact the Department of Computer Science or visit its web site.

Master of Computer Science

The Master of Computer Science (M.C.S.) requires a minimum of 32 s.h. of graduate credit. Students must complete at least 26 s.h. at The University of Iowa.

Basic M.C.S. requirements are as follows. Consult the Computer Science Graduate Student Handbook for detailed information about M.C.S. requirements and graduate study policies.

FOUNDATIONS

One of these: 

22C:131 Limits of Computation 3 s.h.
22C:135 Theory of Computation 3 s.h.
22C:231 Design and Analysis of Algorithms 3 s.h.

SYSTEMS

One of these: 

22C:160 High Performance Computer Architecture 3 s.h.
22C:166 Distributed Systems and Algorithms 3 s.h.
22C:181 Formal Methods in Software Engineering 3 s.h.
22C:185 Programming Language Foundations 3 s.h.
22C:186 Introduction to Compiler Construction 3 s.h.

COLLOQUIUM

M.C.S. students must earn at least 2 s.h. in 22C:399 Research Seminar: Colloquium Series.

ELECTIVES

M.C.S. students fill their remaining 24 s.h. with a combination of computer science graduate courses, reading and project courses, and non-computer science graduate courses approved by their advisor.

Students must take at least six computer science graduate courses (18 s.h.), numbered 22C:120 or above, excluding 22C:191 Research for Thesis, 22C:197 Readings in Computer Science, 22C:198 Individual Programming Projects, 22C:290 Readings for Research, and 22C:399 Research Seminar: Colloquium Series. They may count a maximum of 6 s.h. of computer science independent study courses and/or technical or quantitative non-computer science graduate courses, approved by their advisor, toward the elective requirement. Up to 3 s.h. of independent study courses (22C:191 Research for Thesis, 22C:197 Readings in Computer Science, 22C:198 Individual Programming Projects, and 22C:290 Readings for Research) may be counted toward the requirement.

Master of Science

The Master of Science in computer science is offered only to students working toward a Ph.D. in computer science. Students who are interested primarily in a master's degree and do not intend to pursue a more advanced degree should apply to the M.C.S. program.

Doctor of Philosophy

The Doctor of Philosophy in computer science requires a minimum of 72 s.h. of graduate credit, three examinations (qualifying, comprehensive, and final), and a dissertation.

Basic Ph.D. requirements are as follows. Consult the Computer Science Graduate Student Handbook for detailed information about Ph.D. requirements and graduate study policies.

CORE REQUIREMENT

Both of these: 

22C:231 Design and Analysis of Algorithms 3 s.h.
22C:135 Theory of Computation 3 s.h.

BREADTH

Ph.D. students must complete at least three of the following courses, with at least one course selected from each area (9 s.h.).

Systems and software: 

22C:160 High Performance Computer Architecture 3 s.h.
22C:169 Computer Security 3 s.h.
22C:196 Topics in Computer Science (section approved by advisor) 3 s.h.

Networks and distributed systems: 

22C:166 Distributed Systems and Algorithms 3 s.h.
22C:196 Topics in Computer Science (section approved by advisor) 3 s.h.

Programming languages and compilers: 

22C:181 Formal Methods in Software Engineering 3 s.h.
22C:185 Programming Language Foundations 3 s.h.
22C:186 Introduction to Compiler Construction 3 s.h.
22C:196 Topics in Computer Science (section approved by advisor) 3 s.h.

PRACTICE

Ph.D. students must complete at least one course (3 s.h.) with significant practical or implementation-oriented content. Each semester the department designates courses that satisfy this requirement. The following are typical selections. 

22C:144 Database Systems 3 s.h.
22C:145 Artificial Intelligence 3 s.h.
22C:151 Computer Graphics 3 s.h.
22C:174 Optimization Techniques 3 s.h.
22C:177 High Performance and Parallel Computing 3 s.h.
22C:180 Fundamentals of Software Engineering 3 s.h.
22C:198 Individual Programming Projects 3 s.h.
22C:251 Advanced Computer Graphics 3 s.h.

COGNATE AREA

Ph.D. students are required to select, in consultation with their advisor, a total of 9 s.h. in courses that constitute coherent coverage of an external cognate area. Choices include, but are not limited to, mathematics, statistics, genetics, biology, and engineering disciplines.

COLLOQUIUM

Ph.D. students must earn at least 4 s.h. in 22C:399 Research Seminar: Colloquium Series.

ELECTIVES

Ph.D. students fill their remaining semester hours with a selection of computer science graduate courses (excluding those numbered 22C:101 through 22C:119) and non-computer science graduate courses approved by their advisor.

QUALIFYING EXAM

Ph.D. students are required to pass a qualifying examination by the end of their second year of graduate study. Once students select a topic in consultation with their advisor, they are assigned a three-member faculty examination panel by the department. Then they prepare a written prospectus for review by the committee, followed by an oral presentation.

COMPREHENSIVE EXAM

The comprehensive examination is an evaluation of the student's mastery of a research area at or near completion of formal course work, and before preparation of the dissertation. The exam may be written, oral, or both, at the department's discretion, and is administered by a faculty committee. The comprehensive exam typically should be completed by the end of the student's third year and no later than the end of the fourth year in the Ph.D. program.

DISSERTATION

Each Ph.D. student must write a dissertation, a significant, original contribution to the field of computer science. Once students obtain some preliminary results and can identify and describe the boundaries of their dissertation, they prepare a written proposal for their committee's review. The dissertation must be prepared in accordance with the format specified in the Graduate College Thesis Manual.

FINAL ORAL EXAMINATION

Once the dissertation is complete and has been reviewed by the student's committee, a final oral examination is administered on campus. This examination must take place no sooner than the semester following successful completion of the comprehensive examination and no later than five years after completion of the comprehensive exam.