What's the difference between Computer Science and Software Engineering?

It's a common question, what's the difference between the Computer Science (CS) and Software Engineering (SE) majors at Iowa State? You may have been told that CS has more theory and SE has more practical software classes, that is true to an extent, but it doesn't fully explain the difference between these majors. This site is designed to give potential students a detailed side-by-side comparison of these two majors.

All opinions are my own and not those of the CS or SE departments, this site is not an official list of class requirements for either major. Visit CS Curriculum and SE Curriculum for official information.

TL;DR They are very similar majors, depending on the electives you chose you can make them nearly overlap and employers consider them equivalent. In my opinion, the most informative difference is that CS is a liberal arts style major and SE is an engineering style major. The difference is that engineering majors require a larger number of core technical classes and provide less flexibility (to a greater extent, your path is laid out), while liberal arts have more arts, humanities and social science requirements but also more flexibility in choosing your own path. Both approaches have advantages and disadvantages.

The following is a side-by-side comparison of the required topics for each major. Only topic descriptions are provided, course numbers and names are intentionally omitted, the purpose of this site is to help potential students compare majors, this is not an official list of class requirements, consult the department websites and your advisor before registering for any classes.

Math and Statistics

The requirements for math and statistics are similar, but SE requires one extra math class.

CS SE
Calculus I Calculus I
Calculus II Calculus II
  Differential Equations
Math Options Math Options
Probability and Statistics Options Probability and Statistics

4


5 classes

Science

The number of required science classes is the same, but with CS you chose from a biology, chemistry, geology or physics sequence, while the engineering basic program requires chemistry I and physics I.

CS SE
Science Option I with Lab  
Science Option II with Lab  
  Chemistry I
  Physics I with Lab

2


2 classes

Liberal Arts

As expected, CS requires more classes in the liberal arts, but also has more open elective options, particularly if you have completed 3 years of a world language in high school. This can help with completing a minor or if you just want to take more CS classes!

CS SE
Philosophy  
  Economics Options
Arts and Humanities Options x3 Arts and Humanities Options x2
Social Science Options x3 Social Science Options
  Arts and Humanities or Social Science Options
World Language I or open elective if qualified  
World Language II or open elective if qualified  
Public Speaking Public Speaking
English Communication English Communication
English Composition English Composition
English Technical Composition English Technical Composition

13


9 classes

Core CS/SE

Here we see the difference with CS having a couple of extra theory classes while SE has 6 extra computer and software engineering classes required. Be aware that a SE student can still take the CS theory classes as electives and likewise a CS student can take SE classes as electives (some restrictions apply). One advantage of SE is that they have the option of taking the computer engineering (CPRE) versions of some classes that are similar to CS classes.

CS SE
Intro to Computer Programming (can test out) SE Problem Solving
Object-Oriented Programming Object-Oriented Programming
Data Structures Data Structures
Discrete Structures Discrete Structures or Theoretical Foundations of Computer Engineering (CPRE)
Algorithms Algorithms
Software Development Practices Software Development Practices
Advanced Programming Advanced Programming or Embedded Systems (CPRE)
Computer Architecture Computer Architecture or Organization (CS or CPRE option)
Operating Systems Operating Systems (CS or CPRE option)
Theory of Computing  
Principles of Programming Languages  
  Digital Logic
  User Interface
  Database
  Software Testing
  Software Architecture
  Software Analysis and Verification

11


15 classes

CS/SE Electives

CS and SE have different rules on what classes can be used as electives, but for the most part, students from both majors often end up taking similar sets of classes.

CS SE
5 upper level CS/SE/CPRE/MATH classes from a pre-approved list, restrictions apply 5 upper level CS/SE/CPRE/STAT classes from pre-approved lists, restrictions apply

5


5 classes

Senior Design Project

Pro tip: Don't slack off on senior design, being able to clearly explain what you did for your project can be a big bonus in a job interview. A sharp technical interviewer will quiz you on your understanding of the details, so don't rely on your team to do all the work.

CS SE
Senior Project Senior Design Project 1
  Senior Design Project 2

1


2 classes

Open Electives

Open electives allow you to chose basically anything. Use them to broaden your horizons, complete a minor or take more CS/SE classes. Did you know there is a class that does wine tasting? Not kidding, HSP M 383.

CS SE
Any non-remedial class x2 Any class

2


1 classes

So there we are, now what to make of this? Both CS and SE are excellent choices and you really can't go wrong with either one. Employers consider them as essentially equivalent for software industry jobs and it's ultimately the experience and skills that you can demonstrate in an interview that matters. In SE you will take a larger number of technical courses, while in CS you will be able to explore broader interests. The purpose of making software is to solve problems using computers. Having a board general education is beneficial to being able to learn new problem domains and effectively solve problems and communicate ideas, but honing technical skills is also important. CS gives more flexibility, but with that comes the responsibility to make sure you are developing the right marketable technical skill, chose your electives wisely. These majors are different flavors, pick the one that suits you best. Good luck and enjoy your time at Iowa State.