Course Outline
CS 163 Data Structures
Spring 2009
(the following outline is subject to change!)
Reading Assignment: Chapters 1 and 2
Week
#1- Topic #1
**Login to Blackboard |
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 4/9 |
• 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 4/16 |
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 4/23 |
• 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 |
|
|
|
• 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 4/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
11
Week
#7-Topic #9 Tree Structures |
Program #3 Due 5/14
|
• 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 5/21 |
• Orchards, trees, and binary trees |
|
• Lexicographic search trees |
|
• Graphs in general |
|
Sorting
Strategies
Reading Assignment: Chapter 9
Week
#9-Topic #12 |
Program #4 Due 5/28 |
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 6/11 |
Tuesday June 9th
10:15am-12:05 Comprehensive Final Exam