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

 

Week #5   -    Position Oriented Abstractions and Efficiency

Program #2 due 2/5

 

 

 

 

 

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)