CS251: Data Structures and Algorithms

 

Instructor:

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

Office and Office hours: LWSN 3177, by appt.

GTAs (all office hours in HAAS G050)

Ahmed Abdelhamid               samy@purdue.edu                  W 4:30-5:30pm

            Wenjie Bai                              bai104@purdue.edu               Th 10:00-11:00am

            Hongxin Chu                          chu159@purdue.edu               M 1:30-2:30pm

            Siddhartha Shankar Das         das90@purdue.edu                 T 3:00-4:00pm

            Ans Fida                                 afida@purdue.edu                  M 4:00-5:00pm

            Negin Karisani                       nkarisan@purdue.edu             W 9:15-10:15am

            Meher Chaitanya Pindiprolu  mpindipr@purdue.edu           T 1:30-2:30pm

 

UTA (all office hours in HAAS G050)

C++ Preferred Help Hours:

Sreekara: Monday (1:30-3:00 pm) and Friday (1:30-3:00 pm)

Tanya: Tuesdays 4.30-6.30 pm 

Ritwik: Wednesday 11:30am-1:30pm 

Ayushi: Wednesday 3:30 – 5:30 pm

Nisarg: Thursday 3:00 - 4:30 pm and Friday 2:30 - 4:00 (Updated)

Viswajeeet: Sunday 8:30-11:00 am 

Taimoor: Tuesdays 11:30am – 1:20pm

 

Java Preferred Help Hours:

Shreya: Monday 2:30 to 3:30 pm

Variant: Tuesday 3:30-5:30 pm

Kartik: Tuesdays 3:30 to 6:30 pm

Siddharth: Tuesdays (1:30 to 2:30 pm) and Thursdays (12:30 to 1:30 pm) 

Muhammad: Tuesday (11:30 – 1:30 pm)  and Thursdays (3:30 – 4:30 pm)

Sakshi: Thursday  11:30 - 1:30 pm

 

Piazza: please use Piazza (piazza.com or smart phone app “Piazza”) to ask questions and receive classwide notifications – enrolled students should be in the CS251 Piazza group already.

 

Lecture: Monday, Wednesday, Friday, 8:30-9:20am, MATH 175

 

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

 

Syllabus: here

 

Tentative Schedule:

 

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

 

Week 1: Intro & Algorithm Analysis

January 7 – Introduction, Graphics, C++

January 9, 11 –Analysis

HW1 out (Analysis) [Solution]

 

Week 2 – Analysis & Stacks/Queues

P1 out (Programming Example)

January 14 – Analysis

January 16, 18 – Stacks/Queues/Lists

HW1 due

 

Week 3 – Lists, Trees, Heaps, Priority Queues

P1 due, P2 out (Stacks/Queues/Lists)

January 23 – Lists, Trees

January 25 – Trees, Heaps, Using Trees

 

Week 4 – Hashing and Sorting Basics

January 28, 30 – Heaps

February 1 – Hashing,  Sorting

HW 2 out (Hashing/Sorting) [Solution]

 

Week 5 – Searching

P2 due, P3 out (Hashing, Heaps)

February 4 – Sorting, Binary

February 6, 8 – 2-4 & Red-Black

HW 2 due

 

Week 6 – Sorting

February 11 – Merge Sort, Quick Sort

February 13, 15 – Selection Sort, Radix Sort

 

Week 7 – Graphs

February 18 – Representation

February 20, 22 – Traversals

 

Week 8 –  Graphs

P3 due, P4 out (Searching/Sorting)

February 25, 27 – Directed Graphs,

March 1 – Shortest Path & Review

HW3 out (Graphs)

 

Week 9 – Midterm

March 4, 6, 8 – Review, Exam Explanation, TBD

Midterm (March 5th, 8-10pm, Lily 1105)

 

Week 10 – Spring Break

March 11-15 -- No classes

 

Week 11 – Graphs

March 18, 20 -- Minimum Spanning Trees

March 22 – Using Graphs, Graph Recap

HW3 due

 

Week 12 – Strings

P4 due, P5 out (Graphs)

March 25, 27, 29 – Pattern Matching

 

Week 13 – Strings

April 1, 3, 5 -- Compression

HW4 out (Strings I)

 

Week 14 – Strings

April 8, 10, 12 -- Tries

HW4 due, HW5 out (Strings II)

 

Week 15 – Finite State Automata/TBD

April 15, 17, 19

HW5 due

 

Week 16 - Review

P5 due

April 22, 24, 26

 

Final Exam --  see university calendar