• CS 3100

    Data Structures and Algorithms 2
     Rating

    3.26

     Difficulty

    4.28

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

    Machine Learning
     Rating

    3.37

     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 3240

    Software Engineering
     Rating

    3.37

     Difficulty

    2.63

     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 3250

    Software Testing
     Rating

    3.38

     Difficulty

    2.23

     GPA

    3.50

    Last Taught

    Spring 2026

    An introduction to testing for assuring software quality. Covers concepts and techniques for testing software, including testing at the unit, module, subsystem, and system levels; automatic and manual techniques for generating and validating test data; the testing process; static vs. dynamic analysis; functional testing; inspections; testing in specific application domains; and reliability assessment. Prerequisite: CS 2100 and CS 2120 (OR CS 2100 place out test and CS 2120) with a grade of C- or better

  • CS 3140

    Software Development Essentials
     Rating

    3.43

     Difficulty

    3.26

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

  • CS 4750

    Database Systems
     Rating

    3.52

     Difficulty

    2.28

     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