CS251: Data Structures and Algorithms



Daniel G. Aliaga (aliaga@cs.purdue.edu, www.cs.purdue.edu/~aliaga)

Office and Office hours: LWSN 3177, by appt.

GTAs and Office Hours

Elkindi Rezig (erezig@purdue.edu); Thursday, 12:30pm - 1:30pm, LWSN 2149#15

Negin Karisani (nkarisan@purdue.edu); Thursday, 3pm - 4pm, HAAS 151

Hafiz Kamran Khalil (khalilh@purdue.edu); Tuesday, 12pm - 2pm, HAAS G050

Seunghoon Lee (lee2856@purdue.edu); Monday, 3:30pm - 5:30pm, HAAS G050

Christopher May (may5@purdue.edu); Monday, 2pm - 3pm, HAAS G050

Meher C. Pindiprolu (mpindipr@purdue.edu); Wednesday, 1pm - 2pm, HAAS G050

Rajkumar Pujari (rpujari@purdue.edu); Monday, 2.30-3.30 PM, HAAS G050

K M A Solaiman (ksolaima@purdue.edu); Thursday, 11:00pm - 12:00pm, LWSN B105

Meng-lin Wu (wu223@purdue.edu); Tuesday, 10am - 12pm, LWSN 3151#21

UTAs and Office Hours

Varun Gupta (gupta298@purdue.edu), Monday, 4:30 pm - 6:00 pm HAAS G050

Prashast Vaidya (vaidya1@purdue.edu)

Darpan Tanna (dtanna@purdue.edu), Tuesday 7:00 pm - 9:00 pm HAAS G050

Connor Borzello (cborzell@purdue.edu), Tuesday 7:00 pm - 9:00 pm HAAS G050

Adrian G Raj (raj5@purdue.edu)

Rohan Gupta (gupta326@purdue.edu), Tuesday 3:30pm - 5:00pm HAAS G050

Parshwa Shah (shah334@purdue.edu)


Lecture: Tuesday, Thursday, 4:30-5:45pm, MATH 175


Book: Data Structures and Algorithms in C++, 2nd Edition, M. T. Goodrich, R. Tamassia, D. M. Mount, February 2011.


Syllabus: here


Homeworks: all distributed via Blackboard and given in by due date/time on Blackboard.

Projects: all distributed via Blackboard but given in by the turnin command.


Questions: email or via Piazza group.

Tentative Schedule:


*** [course slides so far] ***


Week 1: Intro & Algorithm Analysis

January 9 Introduction, using Trees, using Graphs, C++

January 11 - Analysis

HW1 out (Analysis)


Week 2 Analysis & Stacks/Queues

P1 out (Hello World)

January 16 Analysis

January 18 Stacks/Queues [Arith Stack Demo] [Resizing Array Stacks]

HW1 due


Week 3 Lists, Trees, Heaps, Priority Queues

P1 due, P2 out (Stacks/Queues)

January 23 Lists, Trees

January 25 Trees, Heaps


Week 4 Hashing and Sorting Basics

January 30 -- Hashing

February 1 Hashing, Sorting Basics, Sorting Lower Bound

HW 2 out (Hashing/Sorting)


Week 5 Searching

P2 due, P3 out (Hashing, Heaps)

February 6 Binary, 2-4

February 8 2-4, Red-Black

HW 2 due


Week 6 Sorting

February 13 Merge Sort, Quick Sort

February 15 Selection Sort, Radix Sort

HW3 out (Trees and Graphs)


Week 7 Graphs

February 20 Representation

February 22 Traversals


Week 8 Graphs

P3 due, P4 out (Searching/Sorting)

February 27 Directed Graphs,

March 1 Review

HW 3 due


Week 9 Midterm

March 6 -- Shortest Path (class held in WTHR 172)

March 6 Midterm 8-10pm in WTHR 200

March 8 -- TBA


Week 10 Spring Break

March 12-16 -- No classes


Week 11 Graphs

March 20 -- Minimum Spanning Trees

March 22 Using Graphs, Graph Recap


Week 12 Strings

P4 due, P5 out (Graphs)

March 27 Pattern Matching

March 29 - Pattern Matching


Week 13 Strings

April 3 Compression (Huffman Encoding)

April 5 Compression (LZW, BWT) [BWT not in final exam]

HW4 out (Strings I)


Week 14 Strings

April 10 -- Finite State Automata

April 12 Tries

HW4 due, HW5 out (Strings II)


Week 15 -- TBA

April 17 Union Find, Computational Displays and Graphics (CDG) [CDG not in final exam]

April 19 Review


Week 16 Review

April 24 Review

April 26 -- Review

P5 and H5 due