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

 

10/23, 10/25   -    Position Oriented Abstractions and Efficiency

Program #2 due 10/25

 

 

 

 

 

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.