Overview
The department of Computer Science offers Bachelor of Science and Bachelor of Arts degrees in Computer Science in the College of Liberal Arts and Sciences.
The undergraduate curriculum in Computer Science leading to the Bachelor of Science degree is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org. This degree equips students with a sound knowledge of the foundations of Computer Science as well as problem-solving and system design skills necessary to create robust, efficient, reliable, scalable, and flexible software systems. The B.S. degree in Computer Science prepares students for graduate study in Computer Science and for various business, industry, and government positions including computer scientists, information technologists, and software developers.
The purpose of the Bachelor of Arts degree in Computer Science is to accommodate students who wish to pursue a major in Computer Science while taking more courses outside of the major than a Bachelor of Science degree program permits. This will include students pursuing double majors, students pursuing one or more strong minors, and students pursuing broader liberal educations. The B.A. program retains the rigor of our B.S. program while allowing students to spread the breadth of their education over other disciplines in addition to Computer Science.
The main educational objectives of the B.S. degree program in Computer Science at Iowa State University are that its graduates demonstrate expertise, engagement, and learning within two to five years after graduation.
- Expertise: Graduated students should have the ability to establish peer-recognized expertise in the discipline. They should have the ability to articulate this expertise by formulating and solving problems of interest, by creating or deriving value through the application of technology, and by using mathematical foundations, algorithmic principles, and computer science theory in designing, implementing and evaluating computer-based systems and processes which meet the desired needs of their employers.
- Engagement: Graduated students should have the ability to be engaged in the profession through the practice of computer science in industry, academia, or the public sector. They should demonstrate effective teaming and commitment to working with others by applying communications skills and professional knowledge.
- Learning: Graduated students should have the ability to engage in sustained learning through graduate work, professional improvement opportunities, and self-study so that they can adapt to the role played by information processing in ever-changing areas of science, technology, and society.
Student Learning Outcomes
Upon graduation, students should have:
- An ability to analyze a complex computing problem, and to apply principles of computing and other relevant disciplines to identify solutions.
- An ability to design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- An ability to communicate effectively in a variety of professional contexts.
- An ability to recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- An ability to function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- An ability to apply computer science theory and software development fundamentals to produce computing-based solutions.
Undergraduate Curriculum in Software Engineering
The Department of Computer Science, together with the Department of Electrical and Computer Engineering, also offer a curriculum leading to an undergraduate degree in Software Engineering. The Software Engineering curriculum offers emphasis areas in Software Engineering principles, process, and practice. Students may also take elective courses in Computer Engineering and Computer Science.
Degree Requirements
As majors in the College of Liberal Arts and Sciences, students pursuing both the B.A. and the B.S. in Computer Science must meet College of Liberal Arts and Sciences and University-wide requirements for graduation in addition to those stated below for the major.
LAS majors require a minimum of 120 credits, including a minimum of 45 credits at the 3000/4000 level. You must also complete the LAS world language requirement and career proficiency requirement.
Students in all ISU majors must complete a three-credit course in U.S. cultures and communities and a three-credit course in international perspectives. Check (http://www.registrar.iastate.edu/courses/div-ip-guide.html) for a list of approved courses. Discuss with your advisor how the two courses that you select can be applied to your graduation plan.
Degree requirements for the B.S. in Computer Science:
The B.S. departmental requirements consist of a minimum of 49 credits in Computer Science and satisfaction of written and oral requirements.
The following courses are required:
Orientation | ||
COMS 1270 | Introduction to Computer Programming | 3 |
COMS 2270 | Object-oriented Programming | 4 |
COMS 2280 | Introduction to Data Structures | 3 |
COMS 3090 | Software Development Practices | 3 |
COMS 3110 | Introduction to the Design and Analysis of Algorithms | 3 |
COMS 3210 | Introduction to Computer Architecture and Machine-Level Programming | 3 |
COMS 3270 | Advanced Programming Techniques | 3 |
COMS 3310 | Theory of Computing | 3 |
COMS 3420 | Principles of Programming Languages | 3 |
COMS 3520 | Introduction to Operating Systems | 3 |
COMS 4020 | ||
At least 15 credits, including at least 6 credits of 4000-level courses, all with a grade of C- or better, from the following: | 15 | |
Construction of User Interfaces | ||
Introduction to Computer Graphics | ||
Object-Oriented Analysis and Design | ||
Introduction to Database Management Systems | ||
Applied Formal Methods | ||
Software Requirements Engineering | ||
Distributed Development of Software | ||
Formal Methods in Software Engineering | ||
Program Analysis | ||
Software System Safety | ||
Software Testing | ||
Introduction to Computational Geometry | ||
Logic for Mathematics and Computer Science | ||
Introduction to High Performance Computing | ||
High Performance Computing for Scientific and Engineering Applications | ||
Introduction to Parallel Algorithms and Programming | ||
Concurrent Programming in Practice | ||
Molecular Programming of Nanoscale Devices and Processes | ||
Algorithms for Large Data Sets: Theory and Practice | ||
Computer Game and Media Programming | ||
Principles and Practice of Compiling | ||
COMS 4410 | Programming Languages | 3 |
Privacy Preserving Algorithms and Data Security | ||
Distributed Systems | ||
Simulation: Algorithms and Implementation | ||
Principles and Internals of Database Systems | ||
Principles of Artificial Intelligence | ||
Introduction to Machine Learning | ||
Motion Planning for Robotics and Autonomous Systems | ||
Foundations of Robotics and Computer Vision | ||
Numerical Methods for Differential Equations | ||
Introduction to Network Programming and Cloud Computing | ||
Computer Networks | ||
Software Evolution and Maintenance | ||
Software Tools for Large Scale Data Analysis | ||
Network Protocols and Security | ||
Basics of Information System Security | ||
Real Time Systems | ||
Computer Networking and Data Communications | ||
Total Credits | 49 |
COMS 4140 may not be applied towards fulfilling the 4000-level electives.
Toward satisfying the requirements of the College of Liberal Arts and Sciences, the following courses should be included:
PHIL 3430 | Philosophy of Technology | 3 |
SPCM 2120 | Fundamentals of Public Speaking | 3 |
LAS 2030 | Professional Career Preparation | 1 |
At least 17 credits of Math and Statistics | 17 | |
MATH 1650 | Calculus I | 4 |
MATH 1660 | Calculus II | 4 |
COMS 2300 | Discrete Computational Structures | 3 |
One Statistics course from: | ||
STAT 3050 | Engineering Statistics | 3 |
STAT 3300 | Probability and Statistics for Computer Science | 3 |
STAT 3410 | Introduction to the Theory of Probability and Statistics I | 4 |
STAT 3470 | Probability and Statistical Theory for Data Science | 4 |
At least one Math course from: | ||
MATH 2070 | Matrices and Linear Algebra | 3 |
MATH 2650 | Calculus III | 4 |
MATH 2660 | Elementary Differential Equations | 3 |
MATH 2670 | Elementary Differential Equations and Laplace Transforms | 4 |
MATH 3040 | Combinatorics | 3 |
MATH 3140 | Graph Theory | 3 |
MATH 3170 | Theory of Linear Algebra | 4 |
One of the following 2-course Natural Science sequences (with labs): | ||
BIOL 2110 & 2110L & BIOL 2120 & BIOL 2120L | Principles of Biology I and Principles of Biology Laboratory I and Principles of Biology II and Principles of Biology Laboratory II | 8 |
Or | ||
BIOL 2550 & 2550L & BIOL 2560 & BIOL 2560L | Fundamentals of Human Anatomy and Fundamentals of Human Anatomy Laboratory and Fundamentals of Human Physiology and Fundamentals of Human Physiology Laboratory | 8 |
Or | ||
CHEM 1770 & 1770L & CHEM 1780 & CHEM 1780L | General Chemistry I and Laboratory in General Chemistry I and General Chemistry II and Laboratory in College Chemistry II | 9 |
Or | ||
GEOL 1000 & 1000L & GEOL 1020 & GEOL 1020L | How the Earth Works and How the Earth Works: Laboratory and History of the Earth and History of the Earth: Laboratory | 8 |
Or | ||
PHYS 2310 & 2310L & PHYS 2320 & PHYS 2320L | Introduction to Classical Physics I and Introduction to Classical Physics I Laboratory and Introduction to Classical Physics II and Introduction to Classical Physics II Laboratory | 10 |
The following courses meet the communication proficiency requirement:
LIB 1600 | Introduction to College Level Research | 1 |
ENGL 1500 | Critical Thinking and Communication | 3 |
ENGL 2500 | Written, Oral, Visual, and Electronic Composition | 3 |
One of the following | ||
ENGL 3020 | Business Communication | 3 |
ENGL 3050 | Creative Writing: Nonfiction | 3 |
ENGL 3090 | Proposal and Report Writing | 3 |
ENGL 3140 | Technical Communication | 3 |
Degree requirements for the B.A. in Computer Science:
The B.A. departmental requirements consist of a minimum of 31 credits in Computer Science and satisfaction of written and oral requirements.
The following courses are required:
Computer Science core: | ||
Orientation | ||
COMS 1270 | Introduction to Computer Programming | 3 |
COMS 2270 | Object-oriented Programming | 4 |
COMS 2280 | Introduction to Data Structures | 3 |
COMS 3090 | Software Development Practices | 3 |
COMS 3110 | Introduction to the Design and Analysis of Algorithms | 3 |
Advanced Computer Science, five 3000/4000-level courses chosen from lists (a) and (b) below, with at least one at the 4000-level and at least two chosen from list (a). COMS 4140 may not be applied towards fulfilling the 4000-level electives. | 15 | |
(a) Software and Hardware Systems: | ||
Introduction to Computer Architecture and Machine-Level Programming | ||
Advanced Programming Techniques | ||
Principles of Programming Languages | ||
Introduction to Operating Systems | ||
Object-Oriented Analysis and Design | ||
Introduction to Database Management Systems | ||
Software Requirements Engineering | ||
Distributed Development of Software | ||
Formal Methods in Software Engineering | ||
Program Analysis | ||
Software System Safety | ||
Software Testing | ||
Principles and Practice of Compiling | ||
COMS 4410 | Programming Languages | 3 |
Distributed Systems | ||
Introduction to Network Programming and Cloud Computing | ||
Computer Networks | ||
(b) Other Advanced Computer Science: | ||
Theory of Computing | ||
Introduction to Computer Graphics | ||
Introduction to Computational Geometry | ||
Logic for Mathematics and Computer Science | ||
Molecular Programming of Nanoscale Devices and Processes | ||
Algorithms for Large Data Sets: Theory and Practice | ||
Computer Game and Media Programming | ||
Simulation: Algorithms and Implementation | ||
Principles of Artificial Intelligence | ||
Introduction to Machine Learning | ||
Motion Planning for Robotics and Autonomous Systems | ||
Foundations of Robotics and Computer Vision | ||
Total Credits | 34 |
Toward satisfying the requirements of the College of Liberal Arts and Sciences, the following courses should be included:
Mathematics Core (3 courses): | ||
Calculus I | ||
Calculus II | ||
Discrete Computational Structures | ||
Additional Mathematics (1 course from the following): | ||
Theory of Computing | ||
Matrices and Linear Algebra | ||
Calculus III | ||
Elementary Differential Equations | ||
Elementary Differential Equations and Laplace Transforms | ||
Combinatorics | ||
Graph Theory | ||
Theory of Linear Algebra | ||
Statistics (1 course from the following): | ||
Engineering Statistics | ||
Probability and Statistics for Computer Science | ||
Introduction to the Theory of Probability and Statistics I | ||
Probability and Statistical Theory for Data Science | ||
SPCM 2120 | Fundamentals of Public Speaking | 3 |
Natural Sciences: minimum 8 credits from approved College list |
The following courses meet the communication proficiency requirement:
LIB 1600 | Introduction to College Level Research | 1 |
ENGL 1500 | Critical Thinking and Communication | 3 |
ENGL 2500 | Written, Oral, Visual, and Electronic Composition | 3 |
One of the following | ||
ENGL 3020 | Business Communication | 3 |
ENGL 3050 | Creative Writing: Nonfiction | 3 |
ENGL 3090 | Proposal and Report Writing | 3 |
ENGL 3140 | Technical Communication | 3 |
The following pertains to both the B.S. and the B.A. in Computer Science:
Students must earn at least a C- in MATH 1650, MATH 1660, and each Computer Science course taken to fulfill the Degree Program. The LAS College requires the major must contain at least 8 credits in courses taken at Iowa State University that are numbered 3000 or above and in which the student’s grade is C or higher.
According to the university-wide Communication Proficiency Grade Requirement, students must demonstrate their communication proficiency by earning a grade of C or better in ENGL 2500. The Department requires a C or higher in the upper-level ENGL course (3020, 3050, 3090, 3140).
To obtain a bachelor's degree from the College of Liberal Arts and Sciences, curriculum in liberal arts and sciences, a student must earn at least 45 credits at the 3000 level or above taken at a four-year college. All such credits, including courses taken on a pass/not pass basis, may be used to meet this requirement.
Students must take at least 15 credits of Computer Science courses at the 3000 level or higher at Iowa State University while resident here. Computer Science transfer courses need to be a minimum grade of C or higher to be considered for course substitution.
Four Year Plan
Computer Science, B.S.
Freshman | |||
---|---|---|---|
Fall | Credits | Spring | Credits |
COMS 1010 | R | COMS 2270 | 4 |
COMS 1270 | 3 | MATH 1660 | 4 |
MATH 1650 | 4 | ENGL 2500 | 3 |
ENGL 1500 | 3 | LIB 1600 | 1 |
SOCIAL SCIENCE | 3 | ARTS & HUMANITIES | 3 |
13 | 15 | ||
Sophomore | |||
Fall | Credits | Spring | Credits |
COMS 2280 | 3 | COMS 3210 | 3 |
COMS 2300 | 3 | COMS 3110 | 3 |
SCIENCE SEQUENCE PART 1 | 4 | COMS 3000/4000 ELECTIVE | 3 |
SOCIAL SCIENCE | 3 | SCIENCE SEQUENCE PART 2 | 4 |
WORLD LANGUAGE 1010/ELECTIVE | 3-4 | WORLD LANGUAGE 1020/ELECTIVE | 3-4 |
LAS 2030 | 1 | ||
17-18 | 16-17 | ||
Junior | |||
Fall | Credits | Spring | Credits |
COMS 3090 | 3 | COMS 3270 | 3 |
COMS 3000/4000 ELECTIVE | 3 | COMS 3310 | 3 |
MATH ELECTIVE | 3 | STAT 3000 ELECTIVE | 3 |
SPCM 2120 | 3 | ENGL 3000 ELECTIVE | 3 |
ARTS & HUMANITIES | 3 | PHIL 3430 | 3 |
15 | 15 | ||
Senior | |||
Fall | Credits | Spring | Credits |
COMS 3420 | 3 | COMS 3520 | 3 |
COMS 3000/4000 ELECTIVE | 3 | COMS 4020 | 2-3 |
COMS 4000 ELECTIVE | 3 | COMS 4000 ELECTIVE | 3 |
SOCIAL SCIENCE & U.S. Cultures and Communities/IP | 3 | ARTS & HUMANITIES & USD/IP | 3 |
ELECTIVE | 2-3 | ELECTIVE | 3 |
14-15 | 14-15 | ||
Total Credits: 119-123 |
Computer Science, B.A.
Freshman | |||
---|---|---|---|
Fall | Credits | Spring | Credits |
COMS 1010 | R | COMS 2270 | 4 |
COMS 1270 | 3 | MATH 1660 | 4 |
MATH 1650 | 4 | ENGL 2500 | 3 |
ENGL 1500 | 3 | Arts and Humanities | 3 |
Social Science | 3 | LIB 1600 | 1 |
13 | 15 | ||
Sophomore | |||
Fall | Credits | Spring | Credits |
COMS 2280 | 3 | COMS 3110 | 3 |
COMS 2300 | 3 | Arts and Humanities | 3 |
Natural Science 1 | 4 | Natural Science 2 | 4 |
Elective | 3 | Elective | 3 |
World Languages 1 | 3-4 | World Languages 2 | 3-4 |
LAS 2030 | 1 | ||
17-18 | 16-17 | ||
Junior | |||
Fall | Credits | Spring | Credits |
COMS 3090 | 3 | COMS 3000/4000-level Elective | 3 |
MATH Elective | 3-4 | ENGL 3000-level Elective | 3 |
SPCM 2120 | 3 | Elective | 3 |
Arts and Humanities | 3 | STAT 3000-level Elective | 3 |
Elective | 3 | Social Science | 3 |
15-16 | 15 | ||
Senior | |||
Fall | Credits | Spring | Credits |
COMS 3000/4000-level Elective | 3 | COMS 3000/4000-level Elective | 3 |
COMS 3000/4000-level Elective | 3 | COMS 3000/4000-level Elective | 3 |
Social Science and U.S. Cultures and Communities/IP | 3 | Arts and Humanities and US Diveristy/IP | 3 |
Elective | 3 | Elective | 3 |
Elective | 2-3 | Elective | 3 |
14-15 | 15 | ||
Total Credits: 120-124 |
Note: The B.A. in Computer Science, like other B.A. degrees in LAS, gives students more freedom than the B.S. to design their own curricula. However, LAS degree requirements impose some rigor on this freedom. For example, the B.A. requires 24 upper-level credits in Computer Science, Mathematics, and Statistics, but LAS requires at least 45 upper-level credits, so a substantial fraction of B.A. students' extra freedom will be confined to upper-level courses.
Undergraduate Minor in Computer Science
The Department of Computer Science offers an undergraduate minor in Computer Science. The minor requires at least 16 credits in computer science courses. COMS 4140 cannot be used to fulfill minor requirements.
A minimum grade of C- is required in COMS 2270 and COMS 2280. A minimum grade of C is required in both COMS 3110 and the three credits of 3000-level Computer Science courses and above. Students must meet all prerequisites for Computer Science courses taken to fulfill the minor. At least 6 credits of the minor must be in courses numbered 3000 and above and taken at ISU with a grade of C or higher. The minor must include at least 9 credits that are not used to meet any other department, college, or university requirement.
COMS 2270 | Object-oriented Programming | 4 |
COMS 2280 | Introduction to Data Structures | 3 |
COMS 2300 | Discrete Computational Structures | 3 |
COMS 3110 | Introduction to the Design and Analysis of Algorithms | 3 |
3 credits in COMS courses at the 3000 level or above | 3 |
Certificate in Computing Applications
Students interested in the computing applications, may want to explore the Certificate in Computing Applications; it is a cross-disciplinary course of study in the Colleges of Liberal Arts and Sciences, Engineering, and Business.
Concurrent Bachelors and Masters Degrees
The concurrent B.S./M.S. degree in Computer Science offers highly motivated and focused students the opportunity for accelerated study. Students will be allowed to double count up to 12 credits. This program will pair undergraduate students in the concurrent program with research teams of graduate students and dedicated faculty members prominent in their fields of expertise. Students that declare concurrent enrollment will be considered graduate-level students, and therefore eligible for graduate research assistantships and scholarships. Click here for application instructions.
More information can be found here: https://www.cs.iastate.edu/cs.iastate.edu/concurrent-comajor-transfer.
Graduate Programs
The department offers graduate programs leading to degrees of Master of Science (M.S.) and Doctor of Philosophy (Ph.D.) with a major in Computer Science. The Doctor of Philosophy degree may also be earned with computer science as a co-major with some other discipline. Additionally, the department offers a minor for the students majoring in other disciplines. The department also offers a Master of Science (M.S.) in Artificial Intelligence. This program is for graduate-level students with strong quantitative backgrounds who are interested in learning AI and machine-learning techniques.
Established research areas include algorithms, artificial intelligence, computational complexity, computer architecture, bioinformatics, computational biology, computer networks, database systems, formal methods, information assurance, machine learning and neural networks, multimedia, operating systems, parallel and distributed computing, programming languages, robotics, and software engineering. There are also numerous opportunities for interdisciplinary research.
Typically, students beginning graduate work in the Department of Computer Science have completed a bachelor’s degree or equivalent in Computer Science. However, some students with undergraduate majors in other areas, such as Mathematical, physical, or biological science or engineering become successful graduate students in Computer Science.
For the degree Master of Science, 31 - 34 semester credits are required. A thesis or a creative component demonstrating research and the ability to organize and express significant ideas in computer science is required.
The purpose of the doctoral program is to train students to do original research in Computer Science. Each student is also required to attain knowledge and proficiency commensurate with a leadership role in the field. The Ph.D. requirements are governed by the student’s program of study committee within established guidelines of the department and the graduate college. They include coursework (demonstrating breadth and depth of knowledge), a research skills requirement, a preliminary examination, and a doctoral dissertation and final oral examination. The department recommends that all graduate students majoring in Computer Science teach as part of their training for an advanced degree.