Section 1: TTh 1:30-2:45 pm, LWSN B155, Prof. Sonia Fahmy
Section 2: TTh 10:30-11:45 am, LWSN B155, Prof. Xavier Tricoche
|
Sonia Fahmy Email: fahmy[at]cs.purdue.edu Tuesdays, Thursdays 1:30-2:45 pm Office: LWSN 2142H Phone: (765) 494 6183 Office hours: Tuesdays, Thursdays 3:15-4:10 pm; Wednesdays 11 am-12 noon, or by appointment |
Xavier Tricoche Email: xmt[at]cs.purdue.edu Tuesdays, Thursdays 10:30-11:45 am Office: LWSN 3154P Phone: (765) 496 9416 Office hours: Tuesdays, Thursdays 12 noon-1 pm; Wednesdays 11 am-12 noon, or by appointment |
|
Purnima Kapoor Email: cs251-ta@cs.purdue.edu Office: LWSN B116J Office hours: M 1:30-2:30 PM PSO: M 3:30-5:20 PM |
Yanshan Lu Email: cs251-ta@cs.purdue.edu Office: LWSN B116E Office hours: Th 4:30-5:30 PM PSO: M 11:30 AM-1:20 PM |
Rahul Nanda Email: cs251-ta@cs.purdue.edu Office: LWSN B116E Office hours: Th 3:30-4:30 PM PSOs: W 3:30-5:20 PM, F 9:30-11:20 AM |
Ruby Tahboub Email: cs251-ta@cs.purdue.edu Office: LWSN B116B Office hours: T 5:30-6:30 PM PSOs: F 11:30-1:20, 3:30-5:20 PM |
This course provides an introduction to the theoretical and practical aspects of data structures and algorithms. Topics will include: fundamental data structures (e.g., arrays, stacks, queues, trees, hash tables, graphs), fundamental algorithms (e.g., sorting, pattern matching, topological sorting, shortest path, minimum spanning tree), and their implementations (e.g., asymptotic and average running time analysis, pointer-based implementation of trees, and adjacency matrix implementations of graphs).
CS24000: Programming in C.
R. Sedgewick and K. Wayne (2010). Algorithms. Addison-Wesley, 4th edition. The web site for the book that includes code snippets can be found here.
There will be two written homework assignments.
There will be six programming assignments. Programming assignments should be written in Java or C++, unless otherwise noted. Assignments should be submitted on lore using "turnin." Details will be provided in the assignments.
In general, questions about the details of assignments should be directed to the Blackboard discussion group for general questions, or to the TAs/instructors (via the joint email list cs251-ta@cs.purdue.edu) for questions specific to your assignment, though you should feel free to email the instructor directly.
There will be several unannounced in-class quizzes as well as a midterm exam and a comprehensive final exam. Exams and quizzes will be closed book and closed notes.
If you are experiencing personal problems or stress, Purdue provides counseling services through the Purdue CAPS Center.
See https://www.purdue.edu/CAPS/ for
more details.
Introduction and review
Proof methods and mathematics concepts.
Program analysis
Running time analysis of algorithms and their implementations, including asymptotic and average time analysis.
One-dimensional data structures
Bags, stacks, queues. Abstract data types and their implementation.
Trees
Tree data structures, including properties, implementation, and traversal.
Heaps
Heap data structures, including properties, implementation, and construction.
Sorting algorithms
Comparison-based sorting (e.g., merge sort) and non-comparison based (e.g., bucket sort).
Search trees
Binary search tree data structures, including properties, implementation, and construction.
Hash tables
Data structures, including properties and implementation, as well as performance characteristics.
Pattern matching and text processing
Strings, Boyer-Moore algorithm, tries, Huffman's algorithm.
Graphs
Graph data structures, including properties, implementation, and search.
Directed graphs
Graph algorithms, including connected components, transitive closure, and topological sorting.
Weighted graphs
Shortest path and minimum spanning tree algorithms.
Additional selected topics
As time permits.