• CS 4971

    Capstone Practicum II
     Rating

    4.00

     Difficulty

    2.50

     GPA

    3.45

    Last Taught

    Spring 2026

    This course is one option in the CS fourth-year thesis track and is the continuation from CS 4970. Under the practicum track, students will take two 3-credit courses, CS 4970 and CS 4971. These courses would form a year-long group-based and project-based practicum class. There would be an actual customer, which could be either internal (the course instructor, other CS professors, etc.) or external (local companies, local non-profits, etc.). Prerequisite: CS 4970 or Instructor Permission.

  • CS 1112

    Introduction to Programming
     Rating

    4.14

     Difficulty

    2.34

     GPA

    3.47

    Last Taught

    Spring 2026

    A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. Prerequisite: Students must have no previous programming experience. Note: CS 1110, 1111, 1112, 1113, and 1120 provide different approaches to teaching the same core material; students may only receive credit for one of these courses. Students may not enroll if CS 2100 or CS 3140 has been completed.

  • CS 6888

    Software Analysis and Applications
     Rating

    4.00

     Difficulty

    4.00

     GPA

    3.47

    Last Taught

    Spring 2026

    This course provides an overview of the state of the art in software analysis including static and dynamic analysis techniques and verification and validation. It explores the various ways that the analyses are used to predict software behavior. The applications include inference, symbolic execution, fault localization, model checking, security and performance. The course combines theory with practical implementation and usage. Prerequisites: CS 3240.

  • CS 3501

    Special Topics in Computer Science
     Rating

    3.63

     Difficulty

    3.75

     GPA

    3.47

    Last Taught

    Spring 2026

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

    Special Topics in Computer Science
     Rating

    3.74

     Difficulty

    2.61

     GPA

    3.57

    Last Taught

    Spring 2026

    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 6456

    Operating Systems
     Rating

    3.67

     Difficulty

    5.00

     GPA

    3.61

    Last Taught

    Spring 2026

    Covers advanced principles of operating systems. Technical topics include support for distributed OSs; microkernels and OS architectures; processes and threads; IPC; files servers; distributed shared memory; object-oriented OSs; reflection in OSs; real-time kernels; multiprocessing; multimedia and quality of service; mobile computing; and parallelism in I/O. Prerequisite: Undergraduate course in OS; CS 6354 or instructor permission.

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

    Computer Game Design
     Rating

    4.33

     Difficulty

    3.50

     GPA

    3.61

    Last Taught

    Spring 2026

    This course will introduce students to the concepts and tools used in the development of modern 2-D and 3-D real-time interactive computer video games. Topics covered in this include graphics, parallel processing, human-computer interaction, networking, artificial intelligence, and software engineering. Prerequisite: CS 3140 with a grade of C- or better