Course Outline
CS 163: Data Structures
Fall 2012
(the following outline is subject
to change!)
Programming and Software Engineering
Reading Assignment: Chapters 1 and 2
9/25 -
Topic #1 |
Introduction,
Programming Paradigms |
• Introduction: Syllabus, Objectives for
the Course, Instructor Biography, Class Introduction, and Review Outline. |
• Overview of what to expect for: assignments, attendance, discussions, online quizzes, and
examinations. ***
Make sure to practice Linear Linked Lists and recursion from CS162 *** |
|
9/27 - 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 |
|
Reading Assignment: Chapter 3, 4, 5
10/2,
10/4 - Topic #3 |
|
Data
Abstraction |
|
• 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 |
|
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 |
Data
Abstraction
Reading Assignment: Chapters 6, 7
10/9,
10/11 - Stack,
Queues, Additional Linked Data structures |
Program
#1 due 10/11 |
Topic
#4 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 |
|
|
|
|
|
Table
Abstractions
Reading Assignment: Chapter 10
10/16,
10/18 - Hashing |
|
|
|||||||
|
|
|
|||||||
Topic
#5 Additional Linked List Implementations |
|
||||||||
• Variations of the Linked List |
|
||||||||
• Doubly linked lists |
|
||||||||
Topic #6 Hashing |
|
|
|||||||
• Searching: Introduction and notation,
|
|
|
|||||||
• Hash functions, resolving collisions,
table traversal |
|
|
|||||||
• What constitutes a good hash function Re-Enforce
Concepts
Prepare
for the Midterm |
|
|
|||||||
Review Recursion, Coding
Examples |
|
|
|||||||
Topic
#7 Efficiency |
|
|
|||||||
• Chapter 9 Algorithm Efficiency |
|
|
|||||||
• Measuring efficiency of algorithms:
order of magnitude analysis, Big O notation |
|
|
|||||||
• Evaluating the efficiency of algorithms |
|
|
|||||||
*** MIDTERM on 10/30***
Midterm and Proficiency Demonstrations – October 30th
through November 3rd
Demonstrations
are required to pass this class. They may
be performed early – whenever you feel confident with the material. Times for
the Midterm and Demonstrations should be available the third week of the term
(once PSU provides classrooms).
Trees
Reading Assignment: Chapters 11, 12
11/1 – Introduction
to Trees Topic #8 Tree
Structures |
|
• Chapter 10 Definitions, Tree search |
|
• Traversal of binary trees, Treesort, Building a binary search tree |
|
11/6,
11/8, 11/13, 11/15 - Topic #8, 9,
10 Tree
Structures Program #3 due 11/15 |
|
• Removal Algorithm of a Binary Search
Tree • Height balance, contiguous
representation of binary trees: heaps |
|
• 2-3 Trees, 2-3-4 trees, red-black trees |
|
• AVL Trees • B-Trees Trees • Heaps |
|
Efficiency
and Graphs
Reading Assignment: Chapter 13 and 14
11/20 - Topic
#11 |
|
Graphs |
|
• Orchards, trees, and binary trees |
|
• Lexicographic search trees |
|
Sorting
Strategies
Reading Assignment: Chapter 9
11/27 -
Topic #12 |
Program
#4 due 11/29 |
Sorting
strategies |
|
• Chapter 9: Sorting: Introduction and
notation, insertion sort, selection sort, bubble sort |
|
• Shell sort |
|
Topic
#13 |
|
• Mergesort |
|
• Quicksort for contiguous lists |
|
• Efficiency of Sorting Algorithms |
|
Prepare
for the Final Exam
Comprehensive
11/29 - Prepare for the Final Exam, Review Sample
Problems |
Program
#5 due 12/6 |
Comprehensive Final Exam |
In
class Students: Thursday December 6th 10:15-12:05 |
ONLINE Exam times will be announced
during the term (once
PSU can schedule classrooms)
FINAL Demonstrations COMPLETED by 12/7
Demonstrations
are required to pass this class. They may
be performed early – whenever you feel confident with the material.