Course Outline 

CS163: Data Structures

Winter 2014

 

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:

 

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

 

Date:   Topic:                                                                          Reading/Projects:

 

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

 

1/9      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

 

Lab #1 – Getting Started with Abstract Data Types           By 1/10  – Get a CS Account

·         No Prelab Exercises for the first lab!

·         Practicing Linear Linked Lists

·         Lab #1 is due for self-paced students the following Monday  1/13

 

 

 

 

 

 

 

WEEK  #2:

 

1/13-1/19       Watch Topic #3 Videos                                 

 

Date:   Topic:                                                                          Reading/Projects:

 

1/14    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

 

 

1/16    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

 

Lab #2 – Building Abstract Data Types

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  1/20

·         Experience variations of linear linked lists

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #3:

 

1/21-1/26       Watch Topic #4 Videos                                 

 

By 1/23   - Assignment  #1 is Due

 

Date:   Topic:                                                                          Reading/Projects:

 

1/21    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    1/23  Queues and Abstract Data Types

 

 

• Chapter 7 - Queues

 

• The Abstract Data Type Queue

 

• Implementations of the ADT Queue

 

 

 Lab #3 – Building Stack and Queue ADTs

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  1/27

·         Implement Stack and/or  Queue abstractions

·         Implementation of a LLL of arrays and a Circular Linked List

 

 

 

 

 

 

 

 

 

 

WEEK  #4:

 

1/27-2/2         Watch Topic #5 and 6 Videos                                   

 

 

Date:   Topic:                                                                          Reading/Projects:

 

 

1/28 - Topic #5 Additional Linked List Implementations      Chapter 12.2

 

• Variations of the Linked List

 

• Doubly linked lists

 

1/30 - Topic #6 Hashing

 

•  Searching: Introduction and notation,

 

• Hash functions, resolving collisions, table traversal

• What constitutes a good hash function

 

Lab #4 – Hash Tables and Other Linked Lists

·           In-class students: Bring your Pre-Lab exercise completed!

·           Self-paced: Prelab and Lab are due the following Monday  2/3

·           Implement Array of Linked Lists

·           Experience variations of linear linked lists

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #5:

 

2/3-2/9           Watch Topic #7 Videos                                 

 

2/6      Assignment #2 Due    - Submit to the D2L Dropbox

 

 

Date:   Topic:                                                              Reading/Projects:

 

2/4 - 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

 

2/6 – Prepare for the Midterm

Review  Recursion, Coding Examples

 

 

 

Lab #5 -  Practice Recursion

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  2/10

·         Practice recursive solutions and doubly linked lists

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #6:

 

2/10-2/16       Watch Topic #8 Videos                                 

 

 

Date:   Topic:                                                                          Reading/Projects:

 

 

2/11                Midterm Exam for in-class students

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

 

 

 

2/13 – Topic #8 Tree Structures                                                 Chapter 10

•  Definitions, Introduction to Trees, Tree search

 

 

LAB #6 – PROFICIENCY DEMOS TAKE PLACE during Lab

·       No Prelab Exercises!

·       Self-paced students will complete proficiency demos by appointment and must be completed by 2/14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #7:

 

2/17-2/23       Watch Topic #9 Videos                                 

 

 

2/20    Assignment #3 Due    - Submit to the D2L Dropbox

 

Date:   Topic:                                                                          Reading/Projects:

 

2/18   - Topic # 9  Tree Structures                                           Chapter 11

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

 

2/20  - Topic #9 Tree Structures

  • Removal Algorithm of a Binary Search Tree

 

 

Lab 7 – Binary Search Trees

·      In-class students: Bring your Pre-Lab exercise completed!

·      Self-paced: Prelab and Lab are due the following Monday  2/24

·      Practice BST solutions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #8 and 9:

 

2/24-3/9         Watch Topic #10 and #11 Videos                             

 

 

Date:   Topic:                                                                          Reading/Projects:

 

2/25 – Topic #10 Advanced Trees                                           Chapters 12.1 and 14

•  Height balance, contiguous representation of binary trees:

·         2-3 Trees

·         2-3-4 Trees

 

 

 

 

2/27 – Topic #10 Continued on Advanced Trees

• Red-black trees

• AVL Trees

·         B-Trees

·         Heaps

 

Lab 8 – Balanced Trees

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  3/3

·         Practice 2-3 Tree Solutions

 

 

3/4 – Topic #10 Continued on Advanced Trees

·         B-Trees

·         Heaps

·         Deletion algorithms

 

 

3/6 – Topic #11 – Graphs                                                                   Chapter 13

 

Lab 9 – Advanced Algorithms

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  3/10

·         Experience setup of a graph

 

 

3/6      Assignment #4 Due    - Submit to the D2L Dropbox

 

 

 

 

WEEK #10:

3/10-3/16       Watch Topic #11 and 12 Videos                   

 

 

Date:   Topic:                                                                          Reading/Projects:

 

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

 

 

 

 

3/13    Prepare for the Final Exam

 

 

LAB #10 – Practice Recursion and Advanced Trees

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  3/16

·         Practice binary search trees with recursion and 2-3-4 trees

 

 

 

3/14    Homework #5 Due    (turn in early)  for ***EXTRA CREDIT

3/20    Homework #5 Due    Submit to the D2L Dropbox  ***NO LATE HOMEWORK #5’s

 

In-class Final Exam Time (Section 001):                   Tuesday March 18th 10:15-12:05

 

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

 

Final Proficiency Demonstrations take place by appointment during finals week. Read pdx email!