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 300/400 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. diversity 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:
COM S 101 | Orientation | R |
COM S 127 | Introduction to Computer Programming | 3 |
COM S 227 | Object-oriented Programming | 4 |
COM S 228 | Introduction to Data Structures | 3 |
COM S 309 | Software Development Practices | 3 |
COM S 311 | Introduction to the Design and Analysis of Algorithms | 3 |
COM S 321 | Introduction to Computer Architecture and Machine-Level Programming | 3 |
COM S 327 | Advanced Programming Techniques | 3 |
COM S 331 | Theory of Computing | 3 |
COM S 342 | Principles of Programming Languages | 3 |
COM S 352 | Introduction to Operating Systems | 3 |
COM S 402 | Computer Science Senior Project | 3 |
At least 15 credits, including at least 6 credits of 400-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 | ||
Programming Languages | ||
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 |
Com S 414 may not be applied towards fulfilling the 400-level electives.
Toward satisfying the requirements of the College of Liberal Arts and Sciences, the following courses should be included:
PHIL 343 | Philosophy of Technology | 3 |
SP CM 212 | Fundamentals of Public Speaking | 3 |
LAS 203 | Professional Career Preparation | 1 |
At least 17 credits of Math and Statistics | 17 | |
MATH 165 | Calculus I | 4 |
MATH 166 | Calculus II | 4 |
COM S 230 | Discrete Computational Structures | 3 |
One Statistics course from: | ||
STAT 305 | Engineering Statistics | 3 |
STAT 330 | Probability and Statistics for Computer Science | 3 |
STAT 341 | Introduction to the Theory of Probability and Statistics I | 4 |
STAT 347 | Probability and Statistical Theory for Data Science | 4 |
At least one Math course from: | ||
MATH 207 | Matrices and Linear Algebra | 3 |
MATH 265 | Calculus III | 4 |
MATH 266 | Elementary Differential Equations | 3 |
MATH 267 | Elementary Differential Equations and Laplace Transforms | 4 |
MATH 304 | Combinatorics | 3 |
MATH 314 | Graph Theory | 3 |
MATH 317 | Theory of Linear Algebra | 4 |
One of the following 2-course Natural Science sequences (with labs): | ||
BIOL 211 & 211L & BIOL 212 & BIOL 212L | Principles of Biology I and Principles of Biology Laboratory I and Principles of Biology II and Principles of Biology Laboratory II | 8 |
Or | ||
BIOL 255 & 255L & BIOL 256 & BIOL 256L | Fundamentals of Human Anatomy and Fundamentals of Human Anatomy Laboratory and Fundamentals of Human Physiology and Fundamentals of Human Physiology Laboratory | 8 |
Or | ||
CHEM 177 & 177L & CHEM 178 & CHEM 178L | General Chemistry I and Laboratory in General Chemistry I and General Chemistry II and Laboratory in College Chemistry II | 9 |
Or | ||
GEOL 100 & 100L & GEOL 102 & GEOL 102L | How the Earth Works and How the Earth Works: Laboratory and History of the Earth and History of the Earth: Laboratory | 8 |
Or | ||
PHYS 231 & 231L & PHYS 232 & PHYS 232L | 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 160 | Introduction to College Level Research | 1 |
ENGL 150 | Critical Thinking and Communication | 3 |
ENGL 250 | Written, Oral, Visual, and Electronic Composition | 3 |
One of the following | ||
ENGL 302 | Business Communication | 3 |
ENGL 305 | Creative Writing: Nonfiction | 3 |
ENGL 309 | Proposal and Report Writing | 3 |
ENGL 314 | 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: | ||
COM S 101 | Orientation | R |
COM S 127 | Introduction to Computer Programming | 3 |
COM S 227 | Object-oriented Programming | 4 |
COM S 228 | Introduction to Data Structures | 3 |
COM S 309 | Software Development Practices | 3 |
COM S 311 | Introduction to the Design and Analysis of Algorithms | 3 |
Advanced Computer Science, five 300/400-level courses chosen from lists (a) and (b) below, with at least one at the 400-level and at least two chosen from list (a). COM S 414 may not be applied towards fulfilling the 400-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 | ||
Programming Languages | ||
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 | 31 |
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 | ||
SP CM 212 | Fundamentals of Public Speaking | 3 |
Natural Sciences: minimum 8 credits from approved College list |
The following courses meet the communication proficiency requirement:
LIB 160 | Introduction to College Level Research | 1 |
ENGL 150 | Critical Thinking and Communication | 3 |
ENGL 250 | Written, Oral, Visual, and Electronic Composition | 3 |
One of the following | ||
ENGL 302 | Business Communication | 3 |
ENGL 305 | Creative Writing: Nonfiction | 3 |
ENGL 309 | Proposal and Report Writing | 3 |
ENGL 314 | 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 165, Math 166, 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 300 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 250. The Department requires a C or higher in the upper-level ENGL course (302, 305, 309, 314).
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 300 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 300 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 |
COM S 101 | R | COM S 227 | 4 |
COM S 127 | 3 | MATH 166 | 4 |
MATH 165 | 4 | ENGL 250 | 3 |
ENGL 150 | 3 | LIB 160 | 1 |
SOCIAL SCIENCE | 3 | ARTS & HUMANITIES | 3 |
13 | 15 | ||
Sophomore | |||
Fall | Credits | Spring | Credits |
COM S 228 | 3 | COM S 321 | 3 |
COM S 230 | 3 | COM S 311 | 3 |
SCIENCE SEQUENCE PART 1 | 4 | COM S 300/400 ELECTIVE | 3 |
SOCIAL SCIENCE | 3 | SCIENCE SEQUENCE PART 2 | 4 |
WORLD LANGUAGE 101/ELECTIVE | 3-4 | WORLD LANGUAGE 102/ELECTIVE | 3-4 |
LAS 203 | 1 | ||
17-18 | 16-17 | ||
Junior | |||
Fall | Credits | Spring | Credits |
COM S 309 | 3 | COM S 327 | 3 |
COM S 300/400 ELECTIVE | 3 | COM S 331 | 3 |
MATH ELECTIVE | 3 | STAT 300 ELECTIVE | 3 |
SP CM 212 | 3 | ENGL 300 ELECTIVE | 3 |
ARTS & HUMANITIES | 3 | PHIL 343 | 3 |
15 | 15 | ||
Senior | |||
Fall | Credits | Spring | Credits |
COM S 342 | 3 | COM S 402 | 3 |
COM S 300/400 ELECTIVE | 3 | COM S 352 | 3 |
COM S 400 ELECTIVE | 3 | COM S 400 ELECTIVE | 3 |
SOCIAL SCIENCE & USD/IP | 3 | ARTS & HUMANITIES & USD/IP | 3 |
ELECTIVE | 2-3 | ELECTIVE | 3 |
14-15 | 15 | ||
Total Credits: 120-123 |
Computer Science, B.A.
Freshman | |||
---|---|---|---|
Fall | Credits | Spring | Credits |
COM S 101 | R | COM S 227 | 4 |
COM S 127 | 3 | MATH 166 | 4 |
MATH 165 | 4 | ENGL 250 | 3 |
ENGL 150 | 3 | Arts and Humanities | 3 |
Social Science | 3 | LIB 160 | 1 |
13 | 15 | ||
Sophomore | |||
Fall | Credits | Spring | Credits |
COM S 228 | 3 | COM S 311 | 3 |
COM S 230 | 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 203 | 1 | ||
17-18 | 16-17 | ||
Junior | |||
Fall | Credits | Spring | Credits |
COM S 309 | 3 | COM S 300/400-level Elective | 3 |
MATH Elective | 3-4 | English 300-level Elective | 3 |
SP CM 212 | 3 | Elective | 3 |
Arts and Humanities | 3 | STAT 300-level Elective | 3 |
Elective | 3 | Social Science | 3 |
15-16 | 15 | ||
Senior | |||
Fall | Credits | Spring | Credits |
COM S 300/400-level Elective | 3 | COM S 300/400-level Elective | 3 |
COM S 300/400-level Elective | 3 | COM S 300/400-level Elective | 3 |
Social Science and US Diversity/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. COM S 414 cannot be used to fulfill minor requirements.
A minimum grade of C- is required in COM S 227 and COM S 228. A minimum grade of C is required in both COM S 311 and the three credits of 300-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 300 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.
COM S 227 | Object-oriented Programming | 4 |
COM S 228 | Introduction to Data Structures | 3 |
COM S 230 | Discrete Computational Structures | 3 |
COM S 311 | Introduction to the Design and Analysis of Algorithms | 3 |
3 credits in ComS courses at the 300 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 (MS) and Doctor of Philosophy (PhD) 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 (MS) 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 is 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 PhD 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.