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:
2/27 – Topic #10 Continued on
Advanced Trees
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
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!