Course Outline 

CS163: Data Structures

Fall 2013

 

Supplemental lecture videos will be required and assigned during the term on a weekly basis. These videos will be announced and posted on the D2L Course Content

 

 (the following outline is subject to change!)

 

WEEK  #1:

 

10/1-10/6       Watch Topic #1 and 2 Videos                                   

 

Date:   Topic:                                                                          Reading/Projects:

 

10/1    Topic #1                                                          *** Please read the syllabus ***

• Introduction: Syllabus, Objectives for the Course,  Chapters 1 and 2

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 ***

 

10/3    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

 

10/4     Lab 1 – Getting Started and Review  (Optional)

·      Practicing Linear Linked Lists

 

Lab 2 – Getting Started with Abstract Data Types

·         Building a Journal ADT

 

 

 

 

 

 

 

WEEK  #2:

 

10/7-10/13     Watch Topic #3 Videos                                 

 

By 10/8   Get a CS Account

 

Date:   Topic:                                                                          Reading/Projects:

 

10/8    Topic #3 – Data Abstraction                                     Chapters 3, 4, 5

• 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

 

 

10/9 Topic #3 – Various implementations of List Abstractions   

• 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

 

 

10/10   Lab 3 – Building an Ordered List Abstract Data Type

·         In-class Lab: The pre-lab worksheet must be brought to the lab to attend.

·         Self-Paced Lab: Submit your pre-lab answers to D2L’s Dropbox

·         Implement an Ordered List ADT

·         Implementation of a flexible array (a LLL of arrays)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #3:

 

10/14-10/20   Watch Topic #4 Videos                                 

 

By 10/15   - Program #1 is Due

 

Date:   Topic:                                                                          Reading/Projects:

 

10/15  Topic #4 – Stack and Queue Abstract Data Types  Chapters 6, 7

 

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

 

 

 

 

 

10/1    10/17  Queues and Abstract Data Types

 

 

• Chapter 7 - Queues

 

• The Abstract Data Type Queue

 

• Implementations of the ADT Queue

 

 

10/18   Lab 4 – Building Stack and Queue ADTs

·         In-class Lab: The pre-lab worksheet must be brought to the lab to attend.

·         Self-Paced Lab: Submit your pre-lab answers to D2L’s Dropbox

·         Implement Stack and/or  Queue abstractions

 

 

 

 

 

 

 

 

 

 

WEEK  #4:

 

10/21-10/27   Watch Topic #5 and 6 Videos                                   

 

 

Date:   Topic:                                                                          Reading/Projects:

 

 

10/22 - Topic #5 Additional Linked List Implementations      Chapter 12.2

 

• Variations of the Linked List

 

• Doubly linked lists

 

10/24 - Topic #6 Hashing

 

•  Searching: Introduction and notation,

 

• Hash functions, resolving collisions, table traversal

• What constitutes a good hash function

 

10/25  Lab 5 – Hash Tables and Other Linked Lists

·         In-class Lab: The pre-lab worksheet must be brought to the lab to attend.

·         Self-Paced Lab: Submit your pre-lab answers to D2L’s Dropbox

·         Implement Array of Linked Lists

·         Experience variations of linear linked lists

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #5:

 

10/28-11/3     Watch Topic #7 Videos                                 

 

By 10/29  - Program #2 is Due

 

 

Date:   Topic:                                                                          Reading/Projects:

 

10/29 - Topic #7 Efficiency                                                         Chapter 9

 

 

• Chapter 9 Algorithm Efficiency

 

• Measuring efficiency of algorithms: order of magnitude analysis, Big O notation

• Evaluating the efficiency of algorithms

 

10/31 – Prepare for the Midterm

Review  Recursion, Coding Examples

 

 

 

11/1 Lab 6 -  Practice Recursion

·         In-class Lab: The pre-lab worksheet must be brought to the lab to attend.

·         Self-Paced Lab: Submit your pre-lab answers to D2L’s Dropbox

·         Practice recursive solutions

 

 

WEEK  #6:

 

11/4-11/10     Watch Topic #8 Videos                                 

 

11/5                Midterm Exam for in-class students

TBD                 Midterm Exam for online students (date/time announced during 3rd week)

 

 

Date:   Topic:                                                                          Reading/Projects:

 

11/7 – Topic #8 Tree Structures                                                 Chapter 10

•  Definitions, Introduction to Trees, Tree search

 

 

11/8 – NO LAB – PROFICIENCY DEMOS TAKE PLACE by Appointment

 

 

WEEK  #7:

 

11/12-11/17   Watch Topic #9 Videos                                 

 

November 11th is a Holiday – No Office Hours

 

By 11/12  - Program #3 is Due

 

Date:   Topic:                                                                          Reading/Projects:

 

11/12   - Topic # 9  Tree Structures                                           Chapter 11

  • Applying Recursion
  • Insert Algorithm
  • Overview of the removal algorithm

 

11/14  - Topic #9 Tree Structures

•  Removal Algorithm of a Binary Search Tree

 

 

11/15   Lab 7 – Binary Search Trees

·         In-class Lab: The pre-lab worksheet must be brought to the lab to attend.

·         Self-Paced Lab: Submit your pre-lab answers to D2L’s Dropbox

·         Practice BST solutions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #8 and 9:

 

11/18-12/1     Watch Topic #10 and #11 Videos                             

 

 

Date:   Topic:                                                                          Reading/Projects:

 

11/19 – Topic #10 Advanced Trees                                           Chapters 12.1 and 14

•  Height balance, contiguous representation of binary trees:

·         2-3 Trees

·         2-3-4 Trees

 

 

11/21 – Topic #10 Continued on Advanced Trees

• Red-black trees

• AVL Trees

·         B-Trees

·         Heaps

 

11/22  Lab 8 – Balanced Trees

·         In-class Lab: The pre-lab worksheet must be brought to the lab to attend.

·         Self-Paced Lab: Submit your pre-lab answers to D2L’s Dropbox

·         Practice 2-3 Tree Solutions

 

Lab 9 – Advanced Trees  (Optional)

·         Code 2-3-4 and red-black Tree algorithms

 

 

By 11/26 - Program #4 is Due

 

 

11/26 – Topic #11 – Graphs                                                                   Chapter 13

 

 

 

Holiday on November 28th and November 29th – Thanksgiving  *** PSU is Closed ***

 

 

 


 

WEEK #10:

11/25-12/6     Watch Topic #11 and 12 Videos                   

 

 

Date:   Topic:                                                                          Reading/Projects:

 

12/3    Sorting Algorithms                                                    Chapter 9

• Chapter 9: Sorting: Introduction and notation, insertion sort, selection sort, bubble sort

• Shell sort

• Mergesort

• Quicksort for contiguous lists

• Efficiency of Sorting Algorithms

 

 

 

 

12/5    Prepare for the Final Exam

 

 

12/6    Program #5 Due    - Submit to the D2L Dropbox  ***NO LATE HOMEWORK #5’s

 

In-class Final Exam Time (Section 001):                   Thursday December 12th 8am-9:50

 

Final Exam for online students                                 TBD (date/time announced during 7th week)