New Course Offerings - Department of Computer Science - Purdue University Skip to main content

New Course Offerings in Computer Science

CS 44100 - Data Science Capstone

CS 21100-CP1: Competitive Programming I

Pre-requisite: Undergraduate level CS 25100 Minimum Grade of C OR Instructor Permission

CP1 teaches applied algorithmic ideas and problem solving techniques to solve programming interview and competitive programming questions including usage of basic data structures such as [array, set, map, stack, queue, deque, priority queue], the four main algorithm paradigms: [complete search, greedy, divide and conquer, dynamic programming], other algorithmic ideas including [binary search the answer/bisection, meet-in-the-middle, prefix sum and difference arrays, two pointers, sliding window], and basic graph algorithms covering [strongly/connected components, floodfill, topological sort, shortest paths].

CS 31100-CP2: Competitive Programming II

Pre-requisite: Undergraduate level CS 21100 Minimum Grade of C and Undergraduate level CS 25100 Minimum Grade of C OR Instructor Permission

CP2 teaches experienced programmers additional techniques to solve interview and competitive programming problems and builds on material learned in CP1. This includes specific algorithmic techniques such as [shortest paths, topological sort, MST, union find, range queries], advanced algorithms surrounding trees and DAGs, advanced problem types in [dynamic programming, backtracking/simulation, mathematics, string processing], and more. It can be viewed as a programming complement to CS 38100, with some overlap in content.

CS 39000ATA: Advanced Topics In Algorithms

Pre-requisite: Same as CS 38100

CS 39000ATA is a faster-paced, proof-oriented version of CS 38100 offered to CS and DS majors with a strong theoretical computer science interest. The course covers the topics of CS 38100 as well as advanced algorithm topics not covered in CS 38100. The course has a stronger focus on problem-solving, proofs, and algorithmic creativity.

The 3-credit course counts as fulfilling the CS 38100 course requirement. Students who already have taken CS 38100 can take the course for credit, but cannot count the course as an elective for one of their concentrations.

CS 55100 - Cloud Computing Fundamentals

A comprehensive course that investigates all aspects of cloud computing, including: cloud data centers and infrastructure (equipment for processing, storage, communication, and special-purpose facilities); the use of virtualized servers (virtual machines and containers), virtualized storage (Storage Area Networks, Network Attached Storage, object storage), and virtual networks; automation; orchestration systems, such as Kubernetes; programming paradigms used to construct cloud-native software, such as MapReduce, microservices, controllerbased computing, and serverless computing; edge computing; security and privacy in cloud systems; software models. The course emphasizes researching new ways to use cloud computing and research into new ways to design and build cloud systems. The course includes a project. Students should have completed coursework in or have equivalent familiarity with operating systems and computer networks.

Graduate Level Seminars

Graduate Level Variable Title Courses - Department of Computer Science - Purdue University

CS 21100-CP1: Competitive Programming I

(See Fall 2023 for description) 

CS 25300: Data Structures and Algorithms for Data Science (Additional Information to Come)

  • Pre-requisite: Undergraduate level CS 18200 Grade of C AND Undergraduate level CS 38003 Grade of C AND (Undergraduate level CS 24200 Grade of C or Undergraduate level STAT 24200 Grade of C)
  • For Data Science and Artificial Intelligence students only (This course will not fulfill the CS major or minor CS 25100 requirement)
  • Answers to some questions may be found here (PDF).

CS 31100-CP2: Competitive Programming II

(See Fall 2023 for description)

CS 35100 - Cloud Computing

Pre-requisite: Undergraduate level CS 25200 Grade of C

Introduction to cloud computing: Cloud data center infrastructure, public and private clouds, servers and virtualized servers, data center networks and virtualized networks, virtualized disk, file, and object storage, the concept of scale-out, algorithms and programming systems used in the design and implementation of cloud-native software, especially using containers and orchestration systems, microservices, serverless designs, controller-based designs, edge and fog computing, security in a cloud environment, programming models.

CS 41100-CP3: Competitive Programming III

Pre-requisite: Undergraduate level CS 25100 Minimum Grade of C and Undergraduate level CS 31100 Minimum Grade of C OR Instructor Permission

CP3 teaches experienced programmers additional techniques to solve competitive programming problems and builds on material learned in CP1 and CP2. This includes algorithmic techniques in topics such as [network flow, computational geometry, graph matching, NP-hard problems]. Primarily, CP3 prepares students to compete in programming contests, which means most class time is focused on simulating contest environments and teaching teamwork and communication alongside problem practice.

CS 49000/59000 AR/VR: Augmented Reality/Virtual Reality

Pre-requisites: Programming in C, e.g. CS 24000

  • Brief tutorials on linear algebra, geometry, coordinate systems, transformations, cameras, rendering, shaders, C# programming.
  • VR: head mounted displays, tracking, redirected walking, 360 videos, haptics, collaboration, gaze tracking, foveated rendering, applications.
  • AR: optical & video see-through displays, annotation anchoring, diminished reality, apps.
  • VR and AR user studies: design, implementation, analysis, task load and cybersickness.
  • Project HW & SW: Oculus Quest, MS HoloLens, Android tablets, Unity, ARCore.
  • Grading: 4 projects x 12% + 1 midterm x 25% + 1 final project x 22% + attendance 5%.
  • Seats available: 15 undergraduates + 10 graduates.

CS 55600 - Data Security And Privacy

Data security and privacy is an important part of information security. This course provides an introduction to the fundamental principles and techniques for data security and privacy. The course covers fundamental theories of access control, discretionary access control, mandatory access control, and role-based access control, database access control approaches including grant revoke, virtual private databases and labelled databases, database encryption. On privacy, it covers data anonymization, re-identification attacks, definition, primitives, and applications of differential privacy.

CS 58500 - Theoretical Computer Science Toolkit

This course covers fundamental techniques and a range of mathematical tools that underlie today's research in theoretical computer science. The course material is essential for research in theoretical computer science as well as machine learning theory. The course is targeted at students who plan to pursue research in these areas. Topics will be chosen from four core areas: Convex Analysis and Optimization, Spectral Methods, Concentration Inequalities, and Discrete Fourier Analysis. Depending on student and instructor interest, additional topics will be chosen and may include applied analysis, coding theory, probabilistic proofs, and more advanced topics in discrete Fourier analysis. Students will read papers in theoretical computer science and machine learning theory using, exploring and extending the covered techniques and tools. Students are expected to be proficient in probability theory, have the maturity to follow and carry out basic analysis proofs, and have completed courses in calculus, linear algebra, discrete mathematics, and analysis of algorithms. More specifically, the course expects mastery of the material covered in Calculus III, Linear Algebra, Probability, Foundations of CS, and Analysis of Algorithms.

Graduate Level Seminars

Graduate Level Variable Title Courses - Department of Computer Science - Purdue University

Future New Course Offerings

Last Updated: Feb 22, 2024 12:49 PM

Department of Computer Science, 305 N. University Street, West Lafayette, IN 47907

Phone: (765) 494-6010 • Fax: (765) 494-0739

Copyright © 2024 Purdue University | An equal access/equal opportunity university | Copyright Complaints

Trouble with this page? Disability-related accessibility issue? Please contact the College of Science.