Course Outline
CS 163 Section 001: Data Structures
Fall 2007
(the following outline is subject to change!)
Reading Assignment: Chapters 1 and 2
Week #1- Topic
#1
**Login to WebCT |
Introduction,
Programming Paradigms |
• Introduction: Syllabus, Objectives for the
Course, Instructor Biography, Class Introduction, and Review Outline. |
• Overview of what to expect for homework, projects,
and examinations. |
|
Topic #2 |
• Chapter 1 - Principles of Programming and Software
Engineering |
• Review: Chapter 2 Recursion |
|
• Review: Data Abstraction through Classes |
• Discuss Abstract data types, Classes in C++, Class
scope, and Information hiding |
Data
Abstraction
Reading Assignment: Chapter 3
Week #2- Topic #3 |
|
Data Abstraction |
Homework
#1 due 10/4 |
• Chapter 3 - Data Abstraction -- The Walls |
|
• Step through an example of an abstract data type using
classes, constructors, member functions. |
|
• Quickly review the concepts
of pointers, dereferencing, and allocating/deallocating memory |
|
• Introduce new concepts of: reference types, pointer arithmetic, class destructors and
copy constructors |
|
Reading Assignment: Chapters 4 and 5
Linked Lists |
|
• Chapter 4 - Linked Lists |
|
• Chapter 5 - Recursion as a problem solving technique |
|
• Algorithms for Simple Linked Lists: list traversal,
insertion, deletion |
|
• Discuss array implementations
versus linked list implementations of an ordered list |
|
|
|
|
|
Reading Assignment: Chapters 6 and 7
Week #3- Topic #4 |
Program #1 due 10/11 |
Stacks and
Abstract Data Types |
|
• Chapter 6 - Stacks |
|
• The stack as an example of an Abstract Data Type in
Program Development |
|
• ADT Stack Operations |
|
• Implementing Stacks using arrays |
|
• Implementing Stacks using dynamic memory |
|
|
|
Queues and
Abstract Data Types |
|
• Chapter 7 - Queues |
|
• The Abstract Data Type Queue |
|
• Implementations of the ADT Queue |
|
|
|
|
|
Algorithm Analysis and Searching
Strategies
Reading Assignment: Chapter 9
Week #4-Topic #6 |
|
Topic #5 Additional Linked List Implementations |
Homework
#2 due 10/16 |
• Variations of the Linked List |
|
• Doubly linked lists |
|
Hashing |
|
• Chapter 12 Hashing |
|
• Chapter 2 Searching for Things |
|
• Searching: Introduction and notation, |
|
• Hash functions, resolving collisions, table
traversal |
|
• What constitutes a good hash function |
|
• Chaining versus Linear Probing |
|
|
|
Topic #7 Algorithm Efficiency ***to be discussed on 11/15*** |
|
|
|
• Chapter 9 Algorithm Efficiency |
|
• Measuring efficiency of algorithms: order of
magnitude analysis, Big O notation |
|
• Evaluating the efficiency of the algorithms Review for the Midterm |
|
Week #5
*** Program #2 Due 10/30 ***
Tree
Structures
Reading Assignment: Chapter 10
Week #5 and
6-Topic #8 |
|
Tree Structures |
|
• Chapter 10 Definitions, Tree search |
|
• Traversal of binary trees, Treesort, Building a
binary search tree |
|
• Binary Tree: insertion and deletion examples |
|
Reading Assignment: Chapters 11 and 12
Week #7-Topic #9 Tree Structures |
Program #3 Due 11/8
|
• Height balance, contiguous representation of
binary trees: heaps |
|
• 2-3 Trees, 2-3-4 trees, red-black trees |
|
• AVL Trees |
|
• The efficiency of searching algorithms, using trees |
|
|
|
Graphs
Reading Assignment: Chapter 13 and 14
Week #8-Topic #11 |
|
Graphs |
Homework #3 Due 11/13 |
• Orchards, trees, and binary trees |
|
• Lexicographic search trees |
|
• Graphs in general |
|
Sorting
Strategies
Reading Assignment: Chapter 9
Week #9-Topic #12 |
Program #4 Due 11/20 |
Sorting
strategies |
|
• Chapter 9: Sorting: Introduction and notation,
selection sort, bubble sort |
|
• Also, demonstrate the insertion sort |
|
|
|
|
|
• Mergesort for linked lists |
|
|
|
Topic #13 |
|
• Quicksort for contiguous lists |
|
• Shell sort |
|
• Efficiency of Sorting Algorithms |
|
|
|
Week #10-Review
and Final Exam • Question and Answer Session |
Program #5 Due 11/29 |
Tuesday December 4th 10:15-12:05 Comprehensive Final Exam