CS 2230 Computer Science II: Data Structures

(Fall 2016) 2:30-3:20PM, 101 BBE

Instructor

Sukumar Ghosh, 201P MLH, sukumar-ghosh@@uiowa.edu, 319-335-0738
Office Hours: 10:30AM - 12:00PM Mondays and Fridays, or by appointment

Teaching Assistants and their Office Hours

Discussion Sections

Each student is also enrolled in a discussion section that meets once a week, and will be led a TA as listed below:

Course Webpage

homepage.cs.uiowa.edu/∼ghosh/2116.html This page is also accessible from ICON


Objective

During a computation, programs often store, query, and update large volumes of information. There are usually different ways to design a program to do this information processing, some of which are efficient, and others are not. The objective of this course is to learn about the different ways of doing this information processing, and to learn the distinction between the good and the bad ways from the perspective of usability and efficiency. The topics to be covered are as follows:

Textbook

Goodrich, Tamassia, and Goldwasser: Data Structures and Algorithms in Java (sixth edition), Wiley, ISBN 978-1-118-77133-4.

Prerequisites

Computer Science I (CS: 1210 / 22C:016/ ENGR 2730), Discrete Structures (CS: 2210 /22C: 019) is a corequisite if not taken as a prerequisite.

Handouts

Eight homeworks (30%), two quizzes (2X5%=10%), two midterm exam (2x20%=40%), and a final exam (20%).

Tentative scale for letter grades
A+ = 95-100     B+ = 80-84     C+ = 65-69     D+ = 50-54    F = 0-39
A  = 90-94      B  = 75-79     C  = 60-64     D  = 45-49
A- = 85-89      B- = 70-74     C- = 55-59     D- = 40-44

The instructor reserves the right to make minor modifications in the above grading scale.

Lecture Notes

August 22-27, 2016
Introductory Materials
August 29-September 02, 2016
Arrays and Linked List
September 5-9, 2016
Inheritance (Lecture by Kyle Diederich, see ICON)
September 12-16, 2016
Complexity of Algorithms
September 19-23, 2016
Complexity of Algorithms (continued)
September 26-30, 2016
Abstract Data Types
Doubly Linked List (see the files under ICON)
October 3-7, 2016
Stack and Queue
October 10-14, 2016
Tree
October 17-21, 2016
Priority Queue
Iterators (Lecture by Kyle Diederich)
October 24-28, 2016
Sorting: Heapsort, Quicksort etc.
October 31 - November 4, 2016
Hash table
Collections (Lecture by Kyle Diederich)
November 7-11, 2016
Sets, Binary Search Tree
Huffman Coding
November 14-18, 2016
AVL Tree, Red-Black Tree
November 28 - December 2, 2016
Graphs

Additional resources