Dr. Sumeet Dua

Max P. & Robbie L. Watson Eminent Scholar Chair

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Ph.D. in CAM Qualifying Exam Curriculum

E-mail Print PDF

Computer Science

CSC 428 Part

Programming Languages

Different programming paradigms, such as imperative and declarative; programming language syntax and semantics; expressions and assignment statements; control statements such as selection (two-way and multiple) and iterative statements (controlled by counter and logically); subprograms (functions and procedures).

Object Orientation

Objects and classes; messages and methods; relationships (is-a, part-of, has-a); inheritance (including multiple inheritance); interface and implementation; implementation of classes, objects, and messages.

Data Structures

Linked lists, stacks and recursion; queues; trees (building, traversing, searching, implementing); binary trees.

CSC 438 Part

Advanced Data Structures

Indexing using hashing; priority queues; heaps; trees (binary search, balanced, suffix); AVL trees.


Basic algorithm analysis (O, o, ), priority queues and heaps (binary heaps, heap operations, d-heaps, leftist heaps, binomial queues); sorting algorithms (shell sort, insertion sort, quick sort, merge sort, bucket sort, external sorting); disjoint sets (dynamic equivalence problem, path compression, union/find algorithm); graph algorithms (topological sort, shortest path, Dijkstra’s algorithm, all-pairs shortest path, minimum spanning trees, depth-first search, undirected graphs, Euler circuits, directed graphs, strong components); NP completeness (definitions, example of NP-complete problem, difference between NP-complete and NP-hard problems); algorithm design (greedy algorithms such as scheduling problem, rational knapsack, Huffman codes), divide and conquer (closest-points problem, selection problem); dynamic programming and backtracking.

You are here: Teaching Past Courses