• CS 1110

    Introduction to Programming
     Rating

    3.97

     Difficulty

    3.13

     GPA

    3.41

    Last Taught

    Fall 2025

    A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. No previous programming experience required. Note: CS 1110, 1111, 1112, 1113, and 1120 provide different approaches to teaching the same core material; students may only receive credit for one of these courses. Students may not enroll if CS 2100 or CS 3140 has been completed.

  • CS 1111

    Introduction to Programming
     Rating

    3.86

     Difficulty

    2.42

     GPA

    3.48

    Last Taught

    Fall 2025

    A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. Prerequisite: Students should have some experience with programming. Note: CS 1110, 1111, 1112, 1113, and 1120 provide different approaches to teaching the same core material; students may only receive credit for one of these courses. Students may not enroll if CS 2100 or CS 3140 has been completed.

  • CS 1112

    Introduction to Programming
     Rating

    4.13

     Difficulty

    2.37

     GPA

    3.47

    Last Taught

    Fall 2025

    A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. Prerequisite: Students must have no previous programming experience. Note: CS 1110, 1111, 1112, 1113, and 1120 provide different approaches to teaching the same core material; students may only receive credit for one of these courses. Students may not enroll if CS 2100 or CS 3140 has been completed.

  • CS 2100

    Data Structures and Algorithms 1
     Rating

    3.31

     Difficulty

    3.05

     GPA

    3.62

    Last Taught

    Fall 2025

    A second course in computing with an emphasis on foundational data structures and program analysis. The course provides a introduction to object oriented programming and the Java programming language, concurrency, and inheritance / polymorphism. Additionally, foundational data structures and related algorithms / analysis are studied. These include lists, stacks, queues, trees, hash tables, and priority queues. Prereq: CS 1110 or CS 1111 or CS 1112 or CS 1113 or place out test for CS 1110 or CS 2100  

  • CS 2120

    Discrete Mathematics and Theory 1
     Rating

    3.36

     Difficulty

    2.67

     GPA

    3.44

    Last Taught

    Fall 2025

    Introduces discrete mathematics and proof techniques involving first order predicate logic and induction. Application areas include sets, tuples, functions, relations, and combinatorial problems. Prereq: Must have completed CS 1110 or CS 1111 or CS 1112 or CS 1113 with a grade of C- or better OR successfully completed the CS 1110 or CS 2100 place out test.

  • CS 2130

    Computer Systems and Organization 1
     Rating

    2.62

     Difficulty

    4.40

     GPA

    3.20

    Last Taught

    Fall 2025

    This course covers topics on the computer architecture abstraction hierarchy ranging from a step above silicon to a step below modern programming languages. Students in this course will learn to write low-level code in C and Assembly, how data is stored in memory, the basics of hardware design from gates and registers through general-purpose computers, and legal, ethical, and security issues related to these topics. CS 1100 - CS 1199 and either familiarity with Java, C++, or another C-like language, or concurrent enrollment in CS 2100

  • CS 2501

    Special Topics in Computer Science
     Rating

    3.71

     Difficulty

    2.69

     GPA

    3.57

    Last Taught

    Fall 2025

    Content varies, depending on instructor interests and the needs of the Department. Taught strictly at the undergraduate level. Prerequisite: Instructor permission; additional specific requirements vary with topics.

  • CS 2910

    CS Education Practicum
     Rating

    3.83

     Difficulty

    1.00

     GPA

    3.96

    Last Taught

    Fall 2025

    An overview of computer science education for undergraduate students. Topics include ethics, diversity, tutoring and teaching techniques, and classroom management. Students enrolled in this course serve as a teaching assistant for a computer science course as part of their coursework.

  • CS 3100

    Data Structures and Algorithms 2
     Rating

    3.10

     Difficulty

    4.38

     GPA

    3.32

    Last Taught

    Fall 2025

    Builds upon previous analysis of algorithms and the effects of data structures on them. Algorithms selected from areas such as searching, shortest paths, greedy algorithms, backtracking, divide-and-conquer, dynamic programming, and machine learning. Analysis techniques include asymptotic worst case, expected time, amortized analysis, and reductions. Prerequisites: CS 2100 & CS 2120; APMA 1090 or MATH 1310 or MATH 1210 or equivalent. CS 3140 is recommended.

  • CS 3120

    Discrete Mathematics and Theory 2
     Rating

    3.13

     Difficulty

    4.23

     GPA

    3.14

    Last Taught

    Fall 2025

    The goal of this course is to understand the fundamental limits on what can be efficiently computed. These limits reveal properties about information, communication, and computing, as well as practical issues about how to solve problems. Introduces computation theory including grammars, automata, and Turing machines. Prereq: CS 3100 with a grade of C- or better