This page gives basic information for CS courses, and also allows you to view the full list of classes for a given term. To view the full list of CS classes, select the term from the list below and click "Submit". The official descriptions and prerequisites for each course can be viewed in the university catalog at the following links.
Schedule of Courses
Note that for future terms, some courses may have the department chairperson listed as the instructor. The chairperson is listed as the instructor for any course if we do not know yet who the instructor will be.
Course Sequencing and Websites
The recommend order to take courses in is listed on the advising pages for undergraduates and graduate students. For undergraduate courses, the prerequisites are illustrated in the CS undergraduate course prereq map. For graduate courses, see the CS grad couse prereq map.
For each course, an indication is given whether the course is normally offered in the fall, spring, summer, or some combination. If there are no "Y" for a course, it is offered as needed. For courses listed as "even" or "fall", the course is offered only in even (or odd) numbered years. All courses are 3 credit hours unless otherwise noted. Some course numbers below are linked to documents giving a description of what material is covered by default in the course (along with links to standard references).
Note: for each course, the most recent offering of the course which has a publicly available website is listed here. Some courses exclusively use the university's blackboard website. We make no promises that the following links will work forever, but they at least are kept current while the courses are being offered.
Default content See Core Course Content below for brief notes on what the most important content is for the core courses. For a longer list of what typically goes into these courses, you can look at the spreadsheet with all ACM recommended learning outcomes for CS
|SH 199||Summer Honors (for high school students)||Y||2016, 2017|
|GH 101||General Honors (on a CS topic)||Y||Y||details coming soon|
|CS 101||Fundamentals of Computing||Y||Y||model|
|CS 110||Fast Track Programming (1-3 hrs)||model||C or Python|
|CS 201||Computer Science I||Y||Y||Y||Exoo, Kinne, Sternfeld||C|
|CS 202||Computer Science II||Y||Exoo, Kinne||C++|
|CS 220||Java Programming||Kinne||Java|
|CS 256||Principles of Structured Design||Y||Y||Baker, Basavaraj||C|
|CS 260||Object Oriented Programming||Y||Y||Baker, Carrillo, Sternfeld||Processing/Java|
|CS 303||Discrete Structures||Y||Egri|
|CS 399||Cooperative Professional Experience|
|CS 420/520||Theory of Computation||Y||Kinne, Exoo||Python|
|CS 421/521||Formal Methods||Y||ACL2, Clausal Logic, Haskell, Prolog|
|CS 440/540||Graphics Programming||even||Exoo, Kinne||C/C++|
|CS 451/551||Computer Architecture||Y||assembly|
|CS 452/552||Software Engineering||Y||UML, C++/Java|
|CS 456/556||Systems Programming||Y||Exoo||C/C++, assembly|
|CS 457/557||Data Base Processing||Y||Exoo, Kinne||C/C++/SQL|
|CS 458/558||Algorithms||Y||Exoo, Kinne, Rafiey||C/C++|
|CS 459/559||Topics in Computer Science (1-3 hrs)|
|CS 469/569||Unix/Linux Administration and Networking||Y||Baker||C/C++/Bash|
|CS 470/570||Programming Languages||Y||Prolog, Haskell, Smalltalk/Squeak|
|CS 471/571||Operating Systems||Y||Exoo||C/C++|
|CS 473/573||Computer Networks||Y||Baker, Exoo, Kinne||C/C++|
|CS 475/575||Artificial Intelligence||odd||Baker, Exoo, Kinne||C/C++|
|CS 499||Senior Seminar (1 hr)||Kinne|
|CS 500||Programming Fundamentals||Y||Y||Basavaraj, Exoo, Kinne, model||C/C++|
|CS 510||Fast Track Introduction to Programming||model||C/C++ or Python|
|CS 600||Concrete Mathematics||Y||Egri, model|
|CS 602||Mobile and Cloud Computing||odd||model|
|CS 603||Networking and Security||even||Kinne, model||C/C++|
|CS 610||Survey of Programming Languages||even||model|
|CS 611||Software Specification and Design||odd||model||VDM-SL|
|CS 617||Databases, Data Mining, and Big Data||Y||model||Kinne|
|CS 618||Computational Biology||odd||model||Python|
|CS 619||Trends in Computer Science||even||model|
|CS 620||Theory of Computation II||even||Kinne|
|CS 621||Discrete Structures II||odd||Rafiey|
|CS 650||Topics in Computer Science|
|CS 652||Software Engineering II||odd||Eiffel, Ruby, C++|
|CS 658||Algorithms II||odd||Exoo, Kinne, Rafiey|
|CS 670||Concurrent Programming||even||Exoo, Kinne||C/C++|
|CS 671||Operating Systems II||odd||Kinne||C/C++|
|CS 673||Networking II||even||Exoo, model||C/C++|
|CS 680||Readings in Computer Science|
|CS 685||Software Project (3-6 hrs)||Y||Y|
|CS 695||Computer Science Research (3-6 hrs)||Y||Y||Exoo, Kinne||LaTeX|
|CS 699||Computer Science Internship (0-3 hrs)||Y||Y||Kinne, model|
Core Course Content
The following lists the most important content for the core CS courses. These are the items that the faculty will generally stress the most.
- CS 201 Computer Science I - C/C++ish - searching/sorting algorithms, data structures (linked list, heap, binary tree), binary/hex, basic data types (2's complement, floating point), file I/O, bit operations, dynamic memory, recursion. Most important skill: C programming.
- CS 202 Computer Science II - all of C, C++ object-oriented and using STL containers, all of 201 again, any DS missed in 201, data structures from scratch in C, big O stuff, graph algorithms (a few), gdb and make, low-level file I/O? Most important skill: C/C++ programming, code for basic DS, understanding of basic DS
- CS 303 Discrete Structures - logic, sets, graphs, proof techniques (induction, contradiction), number theory, discrete probability and counting, big O stuff?, recurrence relations? Most important skill: understanding of logic/sets/graphs/probability, can do some proofs.
- CS 500 Programming Fundamentals - all of 151 that is not specific to html/web, all of 201, all of 202 (except C++). Most important skill: see 151, 201, 202.
- CS 600 Concrete Mathematics - all of 303, parts of 151/201/202 that are not programming. Most important skill: see 151, 201, 202, 303.