• CS 3100

    Data Structures and Algorithms 2
     Rating

    3.10

     Difficulty

    4.38

     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 2130

    Computer Systems and Organization 1
     Rating

    2.62

     Difficulty

    4.40

     GPA

    3.20

    Last Taught

    Fall 2025

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

    Capstone Research
     Rating

     Difficulty

     GPA

    3.91

    Last Taught

    Fall 2025

    This course is one option in the CS fourth-year thesis track. Students will seek out a faculty member as an advisor, and do an independent project with said advisor. Instructors can give the 3 credits across multiple semesters, if desired. This course is designed for students who are doing research, and want to use that research for their senior thesis. Note that this track could also be an implementation project, including a group-based project. Prerequisite: CS 3140 with a grade of C- or higher, and BSCS major.

  • CS 4998

    Distinguished BA Majors Research
     Rating

     Difficulty

     GPA

    Last Taught

    Fall 2025

    Required for Distinguished Majors completing the Bachelor of Arts degree in the College of Arts and Sciences. An introduction to computer science research and the writing of a Distinguished Majors thesis. Prerequisites: CS 2150 or CS 2501 topic DSA2 with a grade of C- or higher, and BSCS major

  • CS 6111

    Cloud Computing
     Rating

     Difficulty

     GPA

    3.78

    Last Taught

    Fall 2025

    This course introduces a basic grounding in designing and implementing cloud systems. It aims to acquaint students with principles and technologies of server clusters, virtualized datacenters, Internet clouds, and applications. Students will gain hands-on experience on public cloud such as Amazon EC2. Prerequisites: CS2150 Program and Data Representation or CS 111x Introduction to Programming, CS 4457 Computer Networks or equivalent background.

  • CS 6222

    Introduction to Cryptography
     Rating

     Difficulty

     GPA

    3.76

    Last Taught

    Fall 2025

    This course will provide an introduction to modern cryptography and its applications to computer security. This course will cover the fundamentals of symmetric cryptography (i.e., encryption and message authentication) and public-key cryptography (i.e., key-exchange and signatures) as well as cryptographic protocols like zero-knowledge proof systems. Recommended prerequisites: CS 2102, 3102, and 4102 (or equivalent experience).

  • CS 6316

    Machine Learning
     Rating

     Difficulty

     GPA

    3.87

    Last Taught

    Fall 2025

    This is a graduate-level machine learning course. Machine Learning is concerned with computer programs that automatically improve their performance through experience. This course covers introductory topics about the theory and practical algorithms for machine learning from a variety of perspectives. Topics include supervised learning, unsupervised learning and learning theory. Prerequisite: Calculus, Basic linear algebra, Basic Probability and Basic Algorithm. Statistics is recommended. Students should already have good programming skills.

  • CS 6354

    Computer Architecture
     Rating

     Difficulty

     GPA

    3.73

    Last Taught

    Fall 2025

    Study of representative digital computer organization with emphasis on control unit logic, input/output processors and devices, asynchronous processing, concurrency, and parallelism. Memory hierarchies. Prerequisite: CS 3330 or proficiency in assembly language programming.

  • CS 6780

    Cyber-Physical Systems Technology and Ethics
     Rating

     Difficulty

     GPA

    Last Taught

    Fall 2025

    This course is designed to develop cross-competency in the technical, analytical, and professional capabilities necessary for the emerging field of Cyber-Physical Systems (CPS). It provides convergence learning activities based around the applications, technologies, and system designs of CPS as well as exploring the ethical, social, and policy dimensions of CPS work. The course also emphasizes the importance of communication as a necessary skill.