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