• CS 4630

    Defense Against the Dark Arts
     Rating

    3.23

     Difficulty

    3.31

     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 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 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

  • CS 3140

    Software Development Essentials
     Rating

    3.43

     Difficulty

    3.27

     GPA

    3.26

    Last Taught

    Spring 2026

    A first course in software engineering and software construction, this course focuses on bringing the programming concepts learned in a first course in data structures and algorithms together to begin to teach students how to build more complex systems. The course covers introductory topics in testing, software design principles, design patterns, functional programming, and data storage and manipulation. Completed CS 2100 with a C- or better.

  • CS 4750

    Database Systems
     Rating

    3.47

     Difficulty

    2.29

     GPA

    3.74

    Last Taught

    Spring 2026

    Introduces the fundamental concepts for design and development of database systems. Emphasizes relational data model and conceptual schema design using ER model, practical issues in commercial database systems, database design using functional dependencies, and other data models. Develops a working relational database for a realistic application. Prerequisite: CS 2120 and 3140 with a grade of C- or better

  • CS 4457

    Computer Networks
     Rating

    3.50

     Difficulty

    3.00

     GPA

    3.34

    Last Taught

    Spring 2026

    A first course in communication networks for upper-level undergraduate students. Topics include the design of modern communication networks; point-to-point and broadcast network solutions; advanced issues such as Gigabit networks; ATM networks; and real-time communications.  Prerequisite: CS 3130 with a grade of C- or better.