• CS 3100

    Data Structures and Algorithms 2
     Rating

    3.24

     Difficulty

    4.34

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

     Difficulty

    4.20

     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

  • CS 3130

    Computer Systems and Organization 2
     Rating

    3.13

     Difficulty

    4.48

     GPA

    3.28

    Last Taught

    Fall 2025

    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 3140

    Software Development Essentials
     Rating

    3.43

     Difficulty

    3.27

     GPA

    3.26

    Last Taught

    Fall 2025

    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 3205

    HCI in Software Development
     Rating

    2.54

     Difficulty

    2.93

     GPA

    3.51

    Last Taught

    Fall 2025

    Human-computer interaction and user-centered design in the context of software engineering. Examines the fundamental principles of human-computer interaction. Includes evaluating a system's usability based on well-defined criteria; user and task analysis, as well as conceptual models and metaphors; the use of prototyping for evaluating design alternatives; and physical design of software user-interfaces, including windows, menus, and commands.Prerequisite: CS 2110 or CS 2100 with a grade of C- or better

  • CS 3240

    Software Engineering
     Rating

    3.30

     Difficulty

    2.66

     GPA

    3.70

    Last Taught

    Fall 2025

    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 2150 or CS 3140 with a grade of C- or better

  • CS 3250

    Software Testing
     Rating

    3.22

     Difficulty

    2.56

     GPA

    3.50

    Last Taught

    Fall 2025

    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 2150 or (CS 2100 and CS 2120) with a grade of C- or better

  • CS 3501

    Special Topics in Computer Science
     Rating

    3.63

     Difficulty

    3.75

     GPA

    3.47

    Last Taught

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

    Introduction to Cybersecurity
     Rating

    4.20

     Difficulty

    1.87

     GPA

    3.74

    Last Taught

    Fall 2025

    Introduces students to the fields of cybersecurity. Both non-technical issues, such as ethics and policy, and technical issues are covered. Students see and experiment with a wide range of areas within cybersecurity, including: binary exploitation, encryption, digital forensics, networks, and modern threats. Prerequisites: CS 2150 or (CS 2100 or CS 2100 place out test and CS 2130) with a grade of C- or better

  • CS 4260

    Internet Scale Applications
     Rating

    3.78

     Difficulty

    3.67

     GPA

    3.74

    Last Taught

    Fall 2025

    A survey of methods for building large-scale internet websites and mobile apps, with a focus on how theory meets practice. Topics covered include performance engineering, scaling, security, and large team software engineering. Results in students building a working scalable online application. Prerequisites: CS 3240 with a grade of C- or better