your adventure in

Computer Science

View PDF

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:

  1. An ability to analyze a complex computing problem, and to apply principles of computing and other relevant disciplines to identify solutions. 
  2. 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. 
  3. An ability to communicate effectively in a variety of professional contexts. 
  4. An ability to recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.  
  5. An ability to function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. 
  6. 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 (formerly 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:

Orientation
COMS 1270Introduction to Computer Programming3
COMS 2270Object-oriented Programming4
COMS 2280Introduction to Data Structures3
COMS 3090Software Development Practices3
COMS 3110Introduction to the Design and Analysis of Algorithms3
COMS 3210Introduction to Computer Architecture and Machine-Level Programming3
COMS 3270Advanced Programming Techniques3
COMS 3310Theory of Computing3
COMS 3420Principles of Programming Languages3
COMS 3520Introduction to Operating Systems3
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 4410Programming Languages3
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 Credits49

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 3430Philosophy of Technology3
SPCM 2120Fundamentals of Public Speaking3
LAS 2030Professional Career Preparation1
At least 17 credits of Math and Statistics17
MATH 1650Calculus I4
MATH 1660Calculus II4
COMS 2300Discrete Computational Structures3
One Statistics course from:
STAT 3050Engineering Statistics3
STAT 3300Probability and Statistics for Computer Science3
STAT 3410Introduction to the Theory of Probability and Statistics I4
STAT 3470Probability and Statistical Theory for Data Science4
At least one Math course from:
MATH 2070Matrices and Linear Algebra3
MATH 2650Calculus III4
MATH 2660Elementary Differential Equations3
MATH 2670Elementary Differential Equations and Laplace Transforms4
MATH 3040Combinatorics3
MATH 3140Graph Theory3
MATH 3170Theory of Linear Algebra4
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 1600Introduction to College Level Research1
ENGL 1500Critical Thinking and Communication3
ENGL 2500Written, Oral, Visual, and Electronic Composition3
One of the following
ENGL 3020Business Communication3
ENGL 3050Creative Writing: Nonfiction3
ENGL 3090Proposal and Report Writing3
ENGL 3140Technical Communication3

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 1270Introduction to Computer Programming3
COMS 2270Object-oriented Programming4
COMS 2280Introduction to Data Structures3
COMS 3090Software Development Practices3
COMS 3110Introduction to the Design and Analysis of Algorithms3
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 4410Programming Languages3
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 Credits34

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 2120Fundamentals of Public Speaking3
Natural Sciences: minimum 8 credits from approved College list

The following courses meet the communication proficiency requirement:

LIB 1600Introduction to College Level Research1
ENGL 1500Critical Thinking and Communication3
ENGL 2500Written, Oral, Visual, and Electronic Composition3
One of the following
ENGL 3020Business Communication3
ENGL 3050Creative Writing: Nonfiction3
ENGL 3090Proposal and Report Writing3
ENGL 3140Technical Communication3

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
FallCreditsSpringCredits
COMS 1010RCOMS 22704
COMS 12703MATH 16604
MATH 16504ENGL 25003
ENGL 15003LIB 16001
SOCIAL SCIENCE3ARTS & HUMANITIES3
 13 15
Sophomore
FallCreditsSpringCredits
COMS 22803COMS 32103
COMS 23003COMS 31103
SCIENCE SEQUENCE PART 14COMS 3000/4000 ELECTIVE3
SOCIAL SCIENCE3SCIENCE SEQUENCE PART 24
WORLD LANGUAGE 1010/ELECTIVE3-4WORLD LANGUAGE 1020/ELECTIVE3-4
LAS 20301 
 17-18 16-17
Junior
FallCreditsSpringCredits
COMS 30903COMS 32703
COMS 3000/4000 ELECTIVE3COMS 33103
MATH ELECTIVE3STAT 3000 ELECTIVE3
SPCM 21203ENGL 3000 ELECTIVE3
ARTS & HUMANITIES3PHIL 34303
 15 15
Senior
FallCreditsSpringCredits
COMS 34203COMS 35203
COMS 3000/4000 ELECTIVE3COMS 40202-3
COMS 4000 ELECTIVE3COMS 4000 ELECTIVE3
SOCIAL SCIENCE & U.S. Cultures and Communities (formerly U.S. Diversity)/IP3ARTS & HUMANITIES & USD/IP3
ELECTIVE2-3ELECTIVE3
 14-15 14-15
Total Credits: 119-123

Computer Science, B.A.

Freshman
FallCreditsSpringCredits
COMS 1010RCOMS 22704
COMS 12703MATH 16604
MATH 16504ENGL 25003
ENGL 15003Arts and Humanities3
Social Science3LIB 16001
 13 15
Sophomore
FallCreditsSpringCredits
COMS 22803COMS 31103
COMS 23003Arts and Humanities3
Natural Science 14Natural Science 24
Elective3Elective3
World Languages 13-4World Languages 23-4
LAS 20301 
 17-18 16-17
Junior
FallCreditsSpringCredits
COMS 30903COMS 3000/4000-level Elective3
MATH Elective3-4ENGL 3000-level Elective3
SPCM 21203Elective3
Arts and Humanities3STAT 3000-level Elective3
Elective3Social Science3
 15-16 15
Senior
FallCreditsSpringCredits
COMS 3000/4000-level Elective3COMS 3000/4000-level Elective3
COMS 3000/4000-level Elective3COMS 3000/4000-level Elective3
Social Science and U.S. Cultures and Communities (formerly U.S. Diversity)/IP3Arts and Humanities and US Diveristy/IP3
Elective3Elective3
Elective2-3Elective3
 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 2270Object-oriented Programming4
COMS 2280Introduction to Data Structures3
COMS 2300Discrete Computational Structures3
COMS 3110Introduction to the Design and Analysis of Algorithms3
3 credits in COMS courses at the 3000 level or above3

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.