Course Outline
CS 163: Data Structures
Winter 2013
(the following outline is subject
to change!)
Programming and Software Engineering
Reading Assignment: Chapters 1 and 2
Week #1
-
Topic #1 |
1/8 - 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 *** |
|
1/10 - 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
Week #2
- Topic #3 |
|
1/15 - 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 |
|
1/17 = 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
Week #3
- Topic
#4 Stack
and Queues |
Program
#1 due 1/22 |
1/22 - 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 |
|
|
|
1/24 - Queues and Abstract Data Types |
|
• Chapter 7 - Queues |
|
• The Abstract Data Type Queue |
|
• Implementations of the ADT Queue |
|
Table
Abstractions
Reading Assignment: Chapter 10
Week #4 - Topic
#5 and #6 – Other Linked Lists
and Hashing |
|
|
|||||||
|
|
|
|||||||
1/29 - Topic
#5 Additional Linked List Implementations |
|
||||||||
• Variations of the Linked List |
|
||||||||
• Doubly linked lists |
|
||||||||
1/31 - Topic #6 Hashing |
|
|
|||||||
• Searching: Introduction and notation,
|
|
|
|||||||
• Hash functions, resolving collisions,
table traversal |
|
|
|||||||
• What constitutes a good hash function Re-Enforce
Concepts
2/5 - Prepare
for the Midterm |
|
|
|||||||
Review Recursion, Coding
Examples |
|
|
|||||||
2/7 - Topic
#7 Efficiency |
|
|
|||||||
• Chapter 9 Algorithm Efficiency |
|
|
|||||||
• Measuring efficiency of algorithms:
order of magnitude analysis, Big O notation |
|
|
|||||||
• Evaluating the efficiency of algorithms |
|
|
|||||||
Week #6
– Proficiency Demonstrations |
|
*** In-Class MIDTERM
on 2/12***
Midterm Proficiency
Demonstrations 2/13 and 2/14
ONLINE Exam times will be announced
during the term (once PSU can schedule classrooms)
Trees
Reading Assignment: Chapters 11, 12
|
Week #7
– Introduction to Trees 2/19 - Topic #8 Tree Structures |
|
|
|
• Chapter 10 Definitions, Tree search |
|
|
2/21 - Topic # 9 Tree
Structures Program #3 due 2/21 |
|||
|
• Traversal of binary trees, Treesort, Building a binary search tree |
|
|
|
Week #8
– Tree Efficiency and Balancing 2/26
- Topic #9 Tree Structures |
|
|
|
• Removal Algorithm of a Binary Search
Tree 2/28 – Topic #10 Advanced Trees • Height balance, contiguous
representation of binary trees: heaps |
|
|||
• 2-3 Trees, 2-3-4 trees, red-black trees |
|
|||
• AVL Trees |
|
|||
Graphs
and Advanced Trees
Reading Assignment: Chapter 13 and 14
Week #9
– Graphs and Advanced Trees 3/5 - Topic
#10 • B-Trees, Heaps, Graphs 3/7 – Topic #11
|
Program
#4 due 3/5 |
Graphs |
|
• Orchards, trees, and binary trees |
|
• Lexicographic search trees |
|
Sorting
Strategies and Final Prep
Reading Assignment: Chapter 9
Week
#10 – Sorting Strategies and Final Prep 3/12 - Prepare
for the Comprehensive Final Exam, Review Sample Problems 3/12 - Topic
#12 |
|
Sorting
strategies |
|
• Chapter 9: Sorting: Introduction and
notation, insertion sort, selection sort, bubble sort |
|
• Shell sort |
|
3/14 Topic
#13 |
Program
#5 due 3/15 |
• Mergesort |
|
• Quicksort for contiguous lists |
|
• Efficiency of Sorting Algorithms |
|
Week
#10 – FINAL PROFICENCY DEMONSTRATIONS FOR inclass
Students. Online students will take the final proficiency demonstration at
assigned times. Demonstrations are required to pass this class. They may be performed early – whenever you
feel confident with the material. |
|
Comprehensive Final Exam |
Inclass
Students: Thursday March 21stth 8am-9:50am |
ONLINE
Exam times will be announced during the term (once PSU can schedule
classrooms)