|
|
Computer Science Chair: James F. Cremer Professors: Steven Bruell, James F. Cremer, Sukumar Ghosh, Joseph Kearney, Gregg Oden (Psychology/Computer Science), Teodor Rus, Alberto Segre, 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), Ted Herman, Douglas Jones, Suely Oliveira, Sriram V. Pemmaraju, Cesare Tinelli, Kasturi Varadarajan Adjunct associate professors: William Decker, Jun Ni Assistant professors: Juan Pablo Hourcade, Eunjin (EJ) Jung, Christopher Wyman, Hwanjo Yu Adjunct assistant professor: Donald McClain Lecturer: Ines Z. Curto Undergraduate degrees: B.A., B.S. in Computer Science Undergraduate nondegree program: Minor in Computer Science 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. 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. Students interested in pursuing graduate work in computer science should strongly consider seeking the B.S.; it provides more intensive concentration in computer science and greater emphasis in science and mathematics. The B.A. requires fewer courses in computer science and mathematics, allowing for a wider choice of electives. 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 a computer science minor to gain fundamental knowledge of the use and applications of computers. The department encourages students in both B.A. and B.S. programs to consider adding another major, certificate, or minor to their graduation plans. Students may declare a major in computer science and be admitted to the department's B.A. or B.S. program at any time on or after admission to the University. After admission to the major, students must maintain a g.p.a. of 2.00 or higher in all course work to receive a degree in computer science. All computer science students are advised at the Academic Advising Center until they have completed 22C:019. Students who are being advised at the advising center also may consult with computer science faculty members. Transfer students who have taken a course approved as equivalent to one of the computer science courses are exempt from that course. Transfer grades are included in the computer science grade-point average. Majors should consult the department's
Computer
Science Undergraduate Student Handbook, available on the department's
web site. The handbook details department policies, suggests possible
elective areas, and discusses internships, scholarships, and student groups,
such as the University's chapter of the Association
for Computing Machinery and Women
in Computer Science.
Advanced Placement The Computer Science Advanced Placement Program test can be used to gain credit for elective semester hours. See the Computer Science Undergraduate Student Handbook for more details. Bachelor of Arts The Bachelor of Arts in computer science requires a minimum of 41 s.h. in 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 computer careers in business may pursue the B.A., but they are encouraged to supplement the base requirements with additional computer science courses. The flexibility of the program 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 natural science courses carefully; see "Natural Science Sequences" under "Bachelor of Science," below. The B.A. program 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:021 Computer Science II: Data Structures |
4 s.h. |
| 22C:022 Object-Oriented Software Development |
4 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:113 Introduction to Systems Software |
3 s.h. |
| 22C:118 Introduction to Networks and Their Applications |
3 s.h. |
MATHEMATICS CORE Calculus I--one of these:
| 22M:031 Engineering Mathematics I: Single Variable Calculus |
4 s.h. |
Calculus II--one of these:
| 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. |
| 22M:047 Linear Algebra and Differential Equations for Scientists |
3 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:096 Topics in Computer Science (with advisor's approval) |
arr. |
| 22C:099 Honors in Computer Science (may be counted once as an advanced course) |
arr. |
| Any 100-level computer science course numbered above 22C:110 |
|
With instructor's approval, most 22C courses numbered above 200 may be counted as advanced courses. Bachelor of Science The Bachelor of Science in computer science requires a minimum of 63 s.h. in the major. The B.S. program is more rigorous than the B.A. and is designed to give 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 complete the General Education Program natural sciences component also satisfy the Department of Computer Science natural science requirement (see "Natural Science Sequences," below). B.S. students complete all department requirements for the B.A. 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. Students with certain special elective programs may petition for additional courses to be accepted for this requirement. COMPUTER SCIENCE CORE All of these:
| 22C:016 Computer Science I: Fundamentals |
4 s.h. |
| 22C:021 Computer Science II: Data Structures |
4 s.h. |
| 22C:022 Object-Oriented Software Development |
4 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:113 Introduction to Systems Software |
3 s.h. |
| 22C:118 Introduction to Networks and Their Applications |
3 s.h. |
MATHEMATICS CORE Calculus I--one of these:
| 22M:031 Engineering Mathematics I: Single Variable Calculus |
4 s.h. |
Calculus II--one of these:
| 22M:032 Engineering Mathematics II: Multivariable Calculus |
4 s.h. |
Linear algebra--one of these:
| 22M:027 Introduction to Linear Algebra |
4 s.h. |
| 22M:047 Linear Algebra and Differential Equations for Scientists |
3 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:096 Topics in Computer Science (with advisor's approval) |
arr. |
| 22C:099 Honors in Computer Science (may be counted once as an advanced course) |
arr. |
| Any 100-level computer science course numbered above 22C:110 |
|
With instructor's approval, most 22C courses numbered above 200 may be counted 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, visit 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 complete the General Education Program natural sciences component. 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: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. |
Geoscience
| 012:005 Introduction to Geology |
4 s.h. |
| 012:008 Introduction to Environmental Science |
3 s.h. |
Physics One of these sequences:
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.) Bachelor of Arts 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: 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, 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, 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 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, students must complete 4-6 s.h. of 22C:099 Honors in Computer Science 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 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 toward an advanced or technical elective for the B.S. Combined B.A./M.C.S. and B.S./M.C.S. The combined Bachelor of Arts/Master of Computer Science and Bachelor of Science/Master of Computer Science 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 combined 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 combined 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 combined 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 combined program during their third year as undergraduates and enter the program at the beginning of their fourth year. They usually complete the combined program comfortably in one year after finishing their B.A. or B.S. requirements. Applicants to the combined 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 combined 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 their 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. International applicants 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. Minor The minor in computer science requires a minimum of 18 s.h. Students must maintain a g.p.a. of at least 2.00 on all work attempted in the minor. No course accepted toward the minor may be taken pass/nonpass. The following courses are required.
| 22C:016 Computer Science I: Fundamentals |
4 s.h. |
| 22C:021 Computer Science II: Data Structures |
4 s.h. |
| 22C:022 Object-Oriented Software Development |
4 s.h. |
| One computer science elective |
3 s.h. |
Any computer science course except 22C:001, 22C:002, 22C:104, and 22C:109 may be used as an elective. To avoid regression, 22C:005 may be used as an elective only if taken before 22C:021. Students in electrical and computer engineering who have completed 055:033, 057:017, and 059:006 are considered to have satisfied the requirements for 22C:016 and 22C:022; they receive 8 s.h. of credit toward a computer science minor. Students may apply a maximum of 6 s.h. of transfer course work toward the minor. Students excused from the minor courses may substitute other computer science electives. Students apply for a minor in computer science when they apply for a degree. 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 M.S. is granted only to students working toward the Ph.D., which emphasizes preparation for research, teaching, and scholarly work in academic settings or private, industrial, or government laboratories. Admission decisions are based on prior academic performance, letters of reference, scores on the Graduate Record Examination, and the applicant's statement about background and purpose. Students need not have a master's degree either to begin the Ph.D. program or to be eligible to receive the Ph.D. A student admitted without a master's degree may choose to receive an M.S. while working toward the doctorate. 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. ALGORITHMS AND THEORY 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:162 Advanced Operating Systems |
3 s.h. |
| 22C:166 Distributed Systems and Algorithms |
3 s.h. |
| 22C:168 Computer Communications |
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.), excluding 22C:190 through 22C:199, 22C:290 through 22C:299, and 22C:390 through 22C:399. They may take only one computer science graduate course (3 s.h.) numbered 22C:190 through 22C:199, 22C:290 through 22C:299, or 22C:390 through 22C:398. Students may not count computer science graduate courses numbered 22C:101 through 22C:119 toward the elective requirement. Students may count no more than two non-computer science graduate courses (6 s.h.) of a technical or quantitative nature, approved by their advisor, toward the elective 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. ALGORITHMS AND THEORY 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:162 Advanced Operating Systems |
3 s.h. |
Networks and distributed systems:
| 22C:166 Distributed Systems and Algorithms |
3 s.h. |
| 22C:168 Computer Communications |
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. |
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:145 Artificial Intelligence |
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. |
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. Graduate Service Courses Competence and exposure to computer science are not only useful, they often are prerequisite to advanced study and research in many disciplines. For most graduate students from other disciplines, an appropriate first course is 22C:104 Introduction to Informatics.
|