Course Outline
CS 163: Data Structures
Summer 2012
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: Programming
and Software Engineering
Date: Topic:
6/26-7/2 Watch Topics #1 and 2
Videos
Reading: Chapters 1-3
6/29 - Lecture
on 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, inclass
lab activities and examinations. ***
Make sure to practice Linear Linked Lists and recursion from CS162 *** |
|
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 |
|
6/29 - Lecture Preview of 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 |
|
WEEK #2: Data Abstraction
Date: Topic:
7/2-7/6 Watch Topic #3 and 4 Videos
Reading: Chapters 3-7
7/6
Review 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 |
7/6 - Required Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own
device, then make arrangements with your instructor so that one will be
provided during this lab session. 24 hour advanced notice is required.
·
Review from
required videos on Data Abstraction
·
Demonstration:
Creating classes as ADTs
·
Practicing
Data structures (LLL)
7/6 Introduce
Stack and Queues |
|
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 |
|
7/6 Preview
of Topic #5 Additional Linked
List Implementations |
|
Variations of the Linked List |
|
Doubly linked lists |
|
WEEK #3: Table
Abstractions: Hash Tables
Date: Topic:
7/9-7/13 Watch Topic #5 and 6
Videos
Reading: Chapter 10
7/10 Assignment
#1 Due (Homework & Program) -
Submit to the D2L Dropbox
7/13 - Lecture Introducing Hashing |
|
|
|
Topic #6 Hashing |
|
Searching: Introduction and notation,
|
|
Hash functions, resolving collisions,
table traversal |
|
What constitutes a good hash function |
|
7/13 - Required Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own
device, then make arrangements with your instructor so that one will be
provided during this lab session. 24 hour advanced notice is required.
o
Review from
required videos on Variations of Data Structures and Tables
o
Demonstration:
Building a Hash table
o
Introduce
Variations of Data structures (CLL and DLL)
o
Practice
Recursion
7/13 - Prepare for the
Midterm
WEEK #4: Table
Abstractions: Tree Introduction and Midterm
Reading: Chapter 10
7/20 Assignment
#2 Due (Homework & Program) -
Submit to the D2L Dropbox
7/20 Midterm Exam ***Coding Proficiency Demonstration Must
be completed
7/20 Preview:
Introduction to Trees Topic #8 Tree
Structures |
|
Chapter 10 Definitions, Tree search |
|
Removal Algorithm of a Binary Search
Tree Height balance, contiguous
representation of binary trees: heaps |
|
WEEKS #5: Table
Abstractions: Trees
Date: Topic:
7/20-7/27 Watch Topics #8 and 9 Videos
Reading: Chapter 12
7/27 - Required Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own
device, then make arrangements with your instructor so that one will be
provided during this lab session. 24 hour advanced notice is required.
o
Review from
required videos on Trees
o
Demonstration:
Building a Binary Search Tree
o
Write
algorithms (and code) for tree traversal, height calculation, etc.
o
Practice
Recursion
7/27 - Lecture - Topic #9 on Advanced Trees |
|
||||
2-3 Trees, 2-3-4 trees, red-black trees |
|
||||
AVL Trees
|
|
WEEK #6: Table
Abstractions: Advanced
Trees and Graphs
Date: Topic:
7/30-8/3 Watch Topics #10 and
11 Videos
Reading: Chapters 13 and 14
7/31 Assignment
#3 Due (Homework & Program) -
Submit to the D2L Dropbox
8/3 - Required Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own
device, then make arrangements with your instructor so that one will be
provided during this lab session. 24 hour advanced notice is required.
o
Review from
required videos on Advanced Trees
o
Demonstration:
Creating Advanced Trees
o
Write
recursive algorithms for advanced trees
o
Practice
Recursion
8/3 - Lecture
on Topic #11 |
|
Graphs |
|
Orchards, trees, and binary trees |
|
Lexicographic search trees Preview of Efficiency |
|
Chapter 9 Algorithm Efficiency |
|
Measuring efficiency of algorithms:
order of magnitude analysis, Big O notation |
|
Evaluating the efficiency of algorithms |
|
WEEK #7: Sorting
Strategies
Date: Topic:
8/6 8/10 Watch Topics #12 and 13 Videos
Reading: Chapter 9
8/7 Assignment
#4 Due (Homework & Program) -
Submit to the D2L Dropbox
8/10 - Lecture
on Topic #12 |
|
|
|
Sorting
strategies |
|
|
|
Chapter 9: Sorting: Introduction and
notation, insertion sort, selection sort, bubble sort |
|
||
Shell sort |
|
||
|
|
||
Lecture on Topic #13 |
|
||
Mergesort |
|
||
Quicksort for contiguous lists |
|
||
Efficiency of Sorting Algorithms |
|
||
|
|
||
Prepare
for the Final Exam
8/16
Assignment #5 Due - Submit to the D2L Dropbox ***NO LATE HOMEWORK #5s
Final Exam
Time:
Comprehensive Final Exam Friday August 17th at 9:15-11:05
Coding Proficiency
Demonstrations must be completed by 5pm August 17th