COSC 2436: Programming and Data Structures

General Information

Instructor:

Nouhad Rizk

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

Syllabus:

https://uh.simplesyllabus.com/doc/jt084sybj/Fall-2026-COSC-2436-14470-Programming-and-Data-Structures?mode=view


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.

 

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