• CS 3205

    HCI in Software Development
     Rating

    2.56

     Difficulty

    2.93

     GPA

    3.51

    Last Taught

    Spring 2026

    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 2100 with a grade of C- or better OR successfully completed the CS 2100 place out test.

  • CS 2130

    Computer Systems and Organization 1
     Rating

    2.64

     Difficulty

    4.37

     GPA

    3.20

    Last Taught

    Spring 2026

    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 4740

    Cloud Computing
     Rating

    2.88

     Difficulty

    2.24

     GPA

    3.61

    Last Taught

    Spring 2026

    Investigates the architectural foundations of the various cloud platforms, as well as examining both current cloud computing platforms and modern cloud research. Student assignments utilize the major cloud platforms. Prerequisite: CS 3140 with a grade of C- or better

  • CS 4720

    Mobile Application Development
     Rating

    3.05

     Difficulty

    3.14

     GPA

    3.67

    Last Taught

    Spring 2026

    Mobile computing devices have become ubiquitous in our communities. In this course, we focus on the creation of mobile solutions for various modern platforms, including major mobile operating systems. Topics include mobile device architecture, programming languages, software engineering, user interface design, and app distribution. Prerequisite: CS 3140 with a grade of C- or better

  • CS 4414

    Operating Systems
     Rating

    3.06

     Difficulty

    4.32

     GPA

    2.95

    Last Taught

    Spring 2026

    Analyzes process communication and synchronization; resource management; virtual memory management algorithms; file systems; and networking and distributed systems. Prerequisite: CS 3130 with a grade of C- or better.

  • CS 3120

    Discrete Mathematics and Theory 2
     Rating

    3.08

     Difficulty

    4.19

     GPA

    3.14

    Last Taught

    Spring 2026

    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 3250

    Software Testing
     Rating

    3.12

     Difficulty

    2.36

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