COSC 2436: Programming and Data Structures
General Information
Instructor:
Nouhad Rizk
Class Location:
PGH 232
Class Time:
Section 14894: Tuesdays and Thursdays 8:30am - 10:00am
Section 14063: Tuesdays and Thursdays 10:00am - 11:30am
Readings:
"Data Structures and Algorithms in C++", by M. T. Goodrich, R. Tamassia, and D. Mount, 2nd ed., 2011, Wiley, ISBN 13-978-0-470-38327-8
TA Information
Name | Office Hours | Assignment |
Arvin | Mondays: 10:30am - 11:30am on MS Teams and Fridays: 10:00am - 11:00am on MS Teams | Homeworks |
Alan | Fridays: 9:00am - 12:00pm on MS Teams | Extras and TLV |
Kevin | Tuesdays: 8:00am - 11:00am on MS Teams | Labs |
Alina | Thursdays: 8:30pm - 11:30am on MS Teams | Labs |
Kishan | Wednesdays: 11:00am - 2:00pm and Fridays: 12:00pm - 3:00pm on MS Teams and in-person (PGH, message on MS teams for location) | Fun Fridays |
Course Description
Catalog Description: Introduction to fundamental data structures: arrays, lists, stacks, queues, hash tables, trees; sorting and searching; graph algorithms; design, analysis, and comparison of algorithms. Correctness verification techniques such as assertions and invariants. Review program specification, unit testing, and debugging.
Extended Description: The course is designed to develop skills to design and analyze simple linear and nonlinear data structures. It strengthens the ability to the students to identify and apply the suitable data structure for the given real-world problem. It enables them to gain knowledge in practical applications of data structures. A strong background in C++ programming will be helpful in this course.
Grading
Graded Work | Weight |
Homeworks | 25% |
Labs | 10% |
Exam 1 | 15% |
Exam 2 | 15% |
Final Exam | 25% |
Group Assignments and/or In-Class Quizzes | 10% |
Calendar
Dates | Event |
February 22 | Exam 1 |
March 28 | Exam 2 |
April 25 | Final Exam |
Schedule Lectures
Dates | Topic |
Week 1 | Basic C++ and Recursion |
Week 2 | Array-Based and Linked-Based Implementations |
Week 3 | Dynamic Array |
Week 4 | Analysis of Algorithms |
Week 5 | Sorting (bubble, insertion, and selection) |
Week 6 | Exam 1 |
Week 7 | Merge Sort, Priority Queue and Heap |
Week 8 | Quicksort and Hashing |
Week 9 | Spring Break (No Classes) |
Week 10 | Binary Search Trees |
Week 11 | Exam 2 |
Week 12 | AVL and B-Trees |
Week 13 | Graphs |
Week 14 | Graphs |
Week 15 | Graphs and Huffman Code |