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

    Special Topics in Computer Science
     Rating

    3.81

     Difficulty

    3.00

     GPA

    3.62

    Last Taught

    Spring 2026

    Content varies annually, depending on instructor interests and the needs of the department. Similar to CS 5501 and CS 7501, but taught strictly at the undergraduate level. Prerequisite: Must have completed CS 2100 with a grade of C- or better. Additional specific requirements vary with topics.

  • CS 2910

    CS Education Practicum
     Rating

    3.83

     Difficulty

    1.00

     GPA

    3.96

    Last Taught

    Spring 2026

    An overview of computer science education for undergraduate students. Topics include ethics, diversity, tutoring and teaching techniques, and classroom management. Students enrolled in this course serve as a teaching assistant for a computer science course as part of their coursework.

  • CS 1110

    Introduction to Programming
     Rating

    3.97

     Difficulty

    3.13

     GPA

    3.41

    Last Taught

    Spring 2026

    A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. No previous programming experience required. 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 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 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 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 3710

    Introduction to Cybersecurity
     Rating

    4.20

     Difficulty

    1.87

     GPA

    3.74

    Last Taught

    Spring 2026

    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 2100 and CS 2130 or (CS 2100 place out test and CS 2130) with a grade of C- or better.