Overview
http://www.cs.iastate.edu
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:
COMS 1010 | Orientation | R |
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 |
| |
| 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 | |
| Trustworthy Healthcare Software | |
| 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 | |
| Quantum Information and Complexity | |
| 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 | |
| Fundamentals of Remote Sensing and Spatial Analysis | |
| Simulation: Algorithms and Implementation | |
| Security and Privacy in Cloud Computing | |
| Principles and Internals of Database Systems | |
| Healthcare Data Privacy, Security and Confidentiality: Principles and Algorithms | |
| AI for Healthcare | |
| 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 | |
| Cloud Computing - Software Development | |
Total Credits | 46 |
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:
The following courses meet the communication proficiency requirement:
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:
| |
COMS 1010 | Orientation | R |
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 |
| 15 |
| |
| 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 | |
| Fundamentals of Remote Sensing and Spatial Analysis | |
| Introduction to Network Programming and Cloud Computing | |
| Computer Networks | |
| |
| Construction of User Interfaces | |
| Theory of Computing | |
| Introduction to Computer Graphics | |
| Number Theory | |
| Applied Formal Methods | |
| Introduction to Computational Geometry | |
| Trustworthy Healthcare Software | |
| 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 | |
| Quantum Information and Complexity | |
| Algorithms for Large Data Sets: Theory and Practice | |
| Computer Game and Media Programming | |
| Privacy Preserving Algorithms and Data Security | |
| Simulation: Algorithms and Implementation | |
| Security and Privacy in Cloud Computing | |
| Principles and Internals of Database Systems | |
| Healthcare Data Privacy, Security and Confidentiality: Principles and Algorithms | |
| AI for Healthcare | |
| 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 | |
Total Credits | 31 |
Toward satisfying the requirements of the College of Liberal Arts and Sciences, the following courses should be included:
| |
| Calculus I | |
| Calculus II | |
| Discrete Computational Structures | |
| |
| 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 | |
| |
| 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 |
| |
The following courses meet the communication proficiency requirement:
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.
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 USCC/IP | 3 | Arts and Humanities and USCC/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 with a grade of C or higher and 3 credits must be completed at ISU. The minor must include at least 3 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 |
The Computer Science Undergraduate Minor is an LAS Minor. In addition to University policies governing minors, LAS minors require at least 6 credits in courses numbered 3000 and above, with a grade of C or higher.
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 Computer Science Department offers the following concurrent B.S/M.S. degree programs:
B.S./M.S. in Computer Science
B.S in Computer Science /M.S. in Artificial Intelligence
B.S in Software Engineering /M.S. in Computer Science
B.S. in Software Engineering /M.S. in Artificial Intelligence
These concurrent B.S./M.S. degrees offer 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 who 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 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. The department also offers graduate minors in both Computer Science and Artificial Intelligence for students majoring in other disciplines.
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.