CS Courses
There are many courses in CS that it is possible (or recommended, or required) to take as an ORIE major. This page goes through each of them and offers some information and advice on taking each.
Note that this list is (obviously) not a complete list of CS courses, and only contains the ones that are either commonly taken in conjunction with the ORIE major or commonly taken in general. The list is not meant to be exhaustive as it is intended to focus on guiding the general student toward making decisions, not the entire student body.
Links:
Introductory CS courses
CS 1110
CS 1110 is one of two possible choices for intro CS courses offered to ORIE majors. The course is taught in Python, and is an introduction to computing and specifically to the Python language.
CS 1112
CS 1112 is the other possible choice of an intro CS course offered to ORIE majors. The course is taught in MATLAB, which is a proprietary programming language (meaning that it's not free unless your company or university is paying for it for you). [There is of course Octave, a free and open source alternative to MATLAB with very similar syntax, but it's not the same language.]
CS 1133
CS 1133 is a less-well-known 2-credit version of CS 1110 that only consists of a subset of the lab activities covered in CS 1110 (and a couple lectures). The course is designed to teach the basics of Python to someone who either:
- Needs to know the bare minimum in writing code and does not plan on going further in the CS, or
- Already has programming experience in another language and wants to learn the syntax for Python in a classroom setting.
Recommendation
It's recommended to take
CS 1110. The content of CS 1112 is rather useless unless you plan on minoring or double majoring in some area within which it is heavily used (although many fields of study are probably already moving towards the use of Python due to its versatile and open nature). CS 1133 is a possible option for students who have already taken CS 1112 and want an introduction to Python from a classroom setting, although it's probably better not to waste that time and instead spend a couple minutes reading the
tutorial on the Python website instead.
Intermediate CS courses
CS 2110/ENGRD 2110
This course (or rather, its ENGRD counterpart,
which ORIE majors must take) is an introduction to data structures and object-oriented programming, taught in Java. This course is very useful for interviews (for internships or otherwise), so it's recommended that you take it early in your academic career. It is also a prerequisite for many ORIE courses, making it even more important to get it over with early.
CS 2112
This course is a (much) harder version of CS/ENGRD 2110, also taught in Java. The material taught in this course is not more useful for the typical ORIE major, and overall it is recommended that students majoring in ORIE take CS/ENGRD 2110 instead.
CS 2800
This course is an introduction to discrete mathematics. It's not required for ORIE majors but teaches techniques (proofs) which will be useful in higher level ORIE courses (and elsewhere).
CS 3110
This course is an introduction to functional programming, taught in OCaml. The material in this course is not relevant at all in undergraduate ORIE courses, although it is a prerequisite for CS 4820.
Recommendation
It's recommended that all students majoring in ORIE take
ENGRD 2110 and CS 2800. These two courses are the most useful of the four listed above. There is no reason to take CS 3110, even given the fact that it is a prerequisite for CS 4820 (see below).
Advanced CS courses
CS 4820
This course is an introduction to the analysis of algorithms, taught in Java.
Recommendation
It is
not recommended that ORIE students take CS 4820, unless they really want to. The material in CS 4820 largely overlaps with material taught in ORIE 3310, and CS 4820 itself is a lot of work, so it does not benefit the typical ORIE student to take it.
For students planning to minor in CS, CS 4820 may be a reasonable choice of a course (along with CS 3110), as the overlap with ORIE 3310 may make the course a little easier (but will likely not decrease the workload by too much).
Relevant Links