CS 633: Parallel Computing

Credits: 3-0-0-9
Prerequisites: Instructor’s Consent

Exposure to CS330 (Operating Systems), CS422 (Computer Architecture) and CS425 (Computer Networks) is desirable.

Who Can Take The Course:

Phd, Masters, 3rd and 4th year UG Students

Departments That May Be Interested:


Course Objective:

Parallel programming is ubiquitous in today’s multi-core era and solves many real-world scientific problems. Massive parallelism entails significant hardware and software challenges. The course is structured so that the participants understand challenges in efficient execution of large-scale parallel applications. The assignments will be designed to strengthen understanding of parallel programming. The course will also involve a research-based project component.

CS 628: Computer Systems Security

The Basics

  • Course Number : CS 628
  • Course Title : Computer Systems Security
  • Location: RM-101
  • Class time: Monday/Thursday 10:35 AM -- 11:50 AM

Contact Information

  • Instructor: Pramod Subramanyan

  • Teaching assistants

    • Bidya Sarkar (bidya@)
    • Dixit Kumar (dixit@)
    • Hariom (hariom@)
    • Mayank Rawat (mayankr@)
    • M. Jeevan Kumar (jeevank@)
    • Nirjhar Roy (nirjhar@)
    • Krishna Kumar Tayal (ktayal@)
    • Supriya Suresh (ssuresh@)
  • Please enroll in Piazza by clicking on this link.

  • There will also be a Moodle course. We will add everyone to this by the end of the week.


Your grade will be based on the following components:

  • (50%) Projects/assignments
  • (20%) Midterm Exam
  • (20%) Final Exam
  • (10%) Class/piazza participation (includes attendance)


There are no specific textbooks. I will add references to the schedule page as appropriate.

CS 300: Technical Communication

Course Objectives

Improving skills for
  1. learning technical/non-technical communication
  2. technical and non-technical writing
  3. editing your own work
  4. giving presentations
  5. to listen and critique other's presentations

Data Structure and Algorithms: What is an algorithm, complexity of algorithms: order notation, Divide and Conquer Paradigm: Examples of algorithms via the divide and conquer method, Heaps and Priority Queue, Binary Search Trees, Nearly balanced binary search trees- Red-black trees and applications. Graphs and their representation on computers, BFS and DFS and their applications, Topological Sort, Shortest Path in Graphs  and Dijkstra's Algorithm, Bellman Ford, Kruskal and Prim's Spanning tree algorithm, Dynamic Programming. 

Text Book: Cormen, Leiserson, Rivest, Stein: Algorithms  (Indian Edition)

Reference Books:

Algorithm Design By Kleinberg, Tardos

Algorithms by Dasgupta, Papadimitriou, Vazirani