• CS 3130

    Computer Systems and Organization 2
     Rating

    3.13

     Difficulty

    4.48

     GPA

    3.28

    Last Taught

    Spring 2026

    A second course in computer systems, this course will explore a more realistic model of processors and how they and the operating system work together to provide various functionality we depend on as application programmers. Course topics include permission models, system architecture, concurrency, virtual memory, cryptographic primitives, and TCP/IP networking. Prereq CS 2100 and CS 2130 with a grade of C- or better

  • CS 6501

    Special Topics in Computer Science
     Rating

    3.19

     Difficulty

    2.43

     GPA

    3.80

    Last Taught

    Spring 2026

    Course content varies by section and is selected to fill timely and special interests and needs of students. See CS 7501 for example topics. May be repeated for credit when topic varies. Prerequisite: Instructor permission.

  • CS 2120

    Discrete Mathematics and Theory 1
     Rating

    3.22

     Difficulty

    2.82

     GPA

    3.44

    Last Taught

    Spring 2026

    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 3100

    Data Structures and Algorithms 2
     Rating

    3.24

     Difficulty

    4.29

     GPA

    3.32

    Last Taught

    Spring 2026

    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. Background in topics covered in a first course in Calculus is required. CS 3140 is recommended.

  • CS 2100

    Data Structures and Algorithms 1
     Rating

    3.27

     Difficulty

    3.07

     GPA

    3.62

    Last Taught

    Spring 2026

    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 4774

    Machine Learning
     Rating

    3.28

     Difficulty

    3.05

     GPA

    3.75

    Last Taught

    Spring 2026

    An introduction to machine learning: the study of algorithms that improve their performance through experience. Covers both machine learning theory and algorithms. Introduces algorithms, theory, and applications related to both supervised and unsupervised learning, including regression, classification, and optimization and major algorithm families for each. Prerequisites: CS 3100 with a grade of C- or better. Background in topics covered in Probability and Linear Algebra is required.

  • CS 4630

    Defense Against the Dark Arts
     Rating

    3.33

     Difficulty

    3.29

     GPA

    3.32

    Last Taught

    Spring 2026

    Viruses, worms, and other malicious software are an ever-increasing threat to computer systems. There is an escalating battle between computer security specialists and the designers of malicious software. This course provides an essential understanding of the techniques used by both sides of the computer security battle. Prerequisite: CS 3710 with a grade of C- or better

  • CS 4991

    Capstone Technical Report
     Rating

    3.33

     Difficulty

    1.00

     GPA

    Last Taught

    Spring 2026

    Supports the writing of the technical report component of the fourth-year thesis, credit for which is given in STS 4600. Students will write the report assuming a non-technical audience. The course is part of the CS 4XXX elective option in the fourth-year CS thesis track. Student must be a 4th Year BS Computer Science (First or Second Major) and must have completed or be currently enrolled in STS 4500

  • CS 3240

    Software Engineering
     Rating

    3.34

     Difficulty

    2.65

     GPA

    3.70

    Last Taught

    Spring 2026

    Analyzes modern software engineering practice for multi-person projects; methods for requirements specification, design, implementation, verification, and maintenance of large software systems; advanced software development techniques and large project management approaches; project planning, scheduling, resource management, configuration control, and documentation. Prerequisite: CS 3140 with a grade of C- or better

  • CS 4710

    Artificial Intelligence
     Rating

    3.35

     Difficulty

    3.19

     GPA

    3.63

    Last Taught

    Spring 2026

    Introduces artificial intelligence. Covers fundamental concepts and techniques and surveys selected application areas. Core material includes state space search, logic, and resolution theorem proving. Application areas may include expert systems, natural language understanding, planning, machine learning, or machine perception. Provides exposure to AI implementation methods, emphasizing programming in Common LISP. Prerequisite: CS 3100 with a grade of C- or better