COSC 2436 Data Structures

Fall 2023

MW 1 - 2.30 PM, MS Teams/PGH 232

Instructor: Arjun Mukherjee


Overview

This is a undergraduate level course in data structures. The course in intended for developing foundations in data structures with a focus on solving problems and building core data structures. The broader goal is to understand how data strucres are leveraged in problems and tasks that have a relevance to realistic situations. Throughout the course, large emphasis will be placed on tying data structure building techniques, their underlying concept and mathematical constructs to specific applications through hands-on experience.


Administrative details

If class is full or you are a non-CS major, please register as a waitlist student or UHCS undergraduate academic advisor to be added to the waitlist. Depending upon several admin factors if course enrollment is increased, students will be enrolled according to the initial wait list order.

Office hours

Instructor office hours: M 2.30 - 3.30 PM, MS Teams (please schedule and wait in queue) or by Appointment (please schedule at least 4 days in advance)
TA office hours: Sadat Shahriar (sshahria@CougarNet.UH.EDU) Thu 3-5 PM, Fri 3-4 PM; Navid Ayoobi (nayoobi@cougarnet.uh.edu) Wed 9-11 AM


Prerequisites

The course requires background in mathematics and sufficient programming skills. It expects the student has completed COSC 1430 with at least a C grade. Sufficient programming experience is required.

Reading Materials

Textbook:
Goodrich, M. T., Tamassia, R., Goldwasser, M. H. Data Structures and Algorithms in C++, Second Edition.

Required Reference Material:
Course materials (contains all Lecture notes, slides and a full length sample exam)
Syllabus
Competitive Programming Handbook for Data Structures (additional textbook)
Math Background for Data Structures [Chapters 1, 5, 6, 9]


Grading

Component Contribution Due date
HW 1 15% 9/11
HW 2 15% 9/28
HW 3 15% 10/16
HW 4 15% 11/3
HW 5 15% 11/24
EC Project - Building a Search Engine 30% 12/2
Exams 1, 2 15%, 15% 10/18, TBA
Classwork/Lab 10% -
Attendance 5% -


Rules and policies

Late Assignments: Late assignments will not, in general, be accepted. They will never be accepted if the student has not made special arrangements with me at least one week before the assignment is due. It also needs to be a justifiable reason owing to exacting circumstances. If a late assignment is accepted it is subject to a reduction in score as a late penalty.
Cheating: All submitted work (code, homeworks, exams, etc.) must be your own. If evidence of code sharing is found, you will receive an F grade in the course. Please refer to the student handbook for details on academic honesty
Statute of limitations: Grading questions or complaints or revaluation, will in general not be attended to beyond one week after the item in question has been returned.


Schedule of topics


Topic(s) Resources: Readings, Slides, Lecture notes, Papers, etc.
Introduction
Course administrivia, semester plan, course goals
C++ Primer
Review of OOP Design Principles
Required Readings: Chapter 1, 2
Fundamental Data Sturctures
The need for data strucutres
Arrays
Singly, Circularly, and Doubly Linked Lists
Required Readings: Chapter 3 (3.1, 3.2, 3.3, 3.4)
Algorithm Analysis
Basic Concepts of Analysis
Functional Growth Rates
Asymptotic Analysis
Comparitive Analysis
Required Readings: Chapter 4 (4.1, 4.2, 4.3)
Recursion
Basic Concepts and Examples of Recursion
Analyzing and Designing Recursive Algorithms
Required Readings: Chapter 5 (5.1, 5.2, 5.3, 5.4)
Stacks, Queues
Basic Concepts and Examples
Analyzing and Designing Stacks and Queues
Required Readings: Chapter 6 (6.1, 6.2)
Trees
General Trees
Binary Trees
Tree Traverals
Binary Search Trees
Required Readings: Chapter 8 (8.1, 8.2, 8.3), Chapter 11 (11.1)
Priority Queues
Priority Queues
Heaps and Sorting
Required Readings: Chapter 9 (9.1, 9.2, 9.3, 9.4)
Maps and Hash Tables
Maps
Hash and Compression Functions
Required Readings: Chapter 10 (10.1, 10.2)
Sorting and Selection
Basic Concepts behind Comparative Sorting
Merge and Quick Sort
Required Readings: Chapter 12 (12.1, 12.2, 12.3, 12.4)
Graph Algorithms
Basic Concepts and Data Structures for Graphs
Traversals and Search
Shortest Paths and Spanning Trees
Required Readings: Chapter 14 (14.1, 14.2, 14.3, 14.6, 14.7)