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

New Courses

Pending Additions and Revisions for the following:


CS 49000/59000 Augmented Reality/Virtual Reality

  • Pre-requisites: Programming in C, e.g. CS 240
  • 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.
    If interested, Fill out this pre-application survey


CS39000-CP1: Coding Practice

  • Pre-requisite: CS18000
  • CP1 teaches students to solve algorithmic problems using basic data structure. The only data structures that are needed are 1-dimensional and 2-dimensional arrays, dynamic-sized arrays (e.g., ArrayList in Java), and sets (e.g., TreeSet and HashSet in Java).
  • By the end of the course, students can comfortably solve problems such as the following. Students who can already do so should skip CP0 and take CP1.
  • Many students also find the the Competitive Programmers Union of interest (Student Organization) 

CS39000-CP2: Introduction to Competitive Programming

  • Pre-requisite: CS39000-CP1 OR CS25100 OR Prior Competitive Programming Experience (e.g., USACO Gold)
  • CP2 provides an introduction to competitive programming and programming interviews. It focuses on using data structure and basic algorithmic ideas to solve problems.
  • The topics are arranged into four groups: (1) Manipulating Linked List and Trees, and using them to solve problems. (2) Choosing the right data structures such as Set, Map, Stack, Queue, and PriorityQueue to solve problems. (How to implement these data structures will not be covered here, only when and how to use them.) (3) Problem solving techniques with arrays, including prefix sum arrays, difference arrays, two pointers, and sliding windows. (4) Searching techniques: depth-first search, breadth-first search, flood-fill, and backtracking. (5) Overview of dynamic programming. (6) Graph representation, traversal, and minimal spanning tree.

CS39000-CP3: Competitive Programming

  • Pre-requisite: CS39000-CP2 OR Significant Prior Competitive Programming Experience (E.g., USACO Platinum)
  • CP2 covers more advanced data structure and algorithmic ideas for competitive programming. It can be viewed as a programming complement to CS 381.
  • Topics include more advanced dynamic programming, application of graph algorithms (topological sort, shortest path, minimal spanning tree, traversal, completion paths, maximum flows), string algorithms, range queries (segment trees, Fenwick tree), number theory and probability, combinatorial games, and so on. The focus is on solving problems using these techniques.

CS39000-CP4: Advanced Competitive Programming

  • Pre-requisite: CS39000-CP3 OR qualifying for Purdue ICPC Training
  • CP4 can be repeated taken for credit
  • This course's primary objective is to train contestants to participate in ICPC.
  • Students participate in external programming competitions (e.g., CodeForces, USACO Platinum), discussed problems. Each student is expected to teach a lecture in CP3.
  • Course may be repeated 
Last Updated: Nov 5, 2019 2:03 PM

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

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

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

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