CS163: Due Dates

Winter 2018

(The following dates are subject to change!)

 

Program

Number

Assignment Description

Due Date

Late Date

Due Time

 

Design #1

 

Design & Test Plan[1]

 

Wed 1/17

 

Mon 1/22

 

7pm

Program #1

Program[2]

Wed 1/24

Mon 1/29

7pm

 

Design #2

 

Design and Test Plan1

 

Wed 1/31

 

Mon 2/5

 

7pm

Program #2

 Program2

Wed 2/7

Mon 2/12

7pm

 

Design #3

 

Design and Test Plan1

 

Wed 2/14

 

Mon 2/19

 

7pm

Program #3

Program2

Wed 2/21

Mon 2/26

7pm

 

Design #4

 

Design and Test Plan1

 

Wed 2/28

 

Mon 3/5

 

7pm

Program #4

 Program2

Wed 3/7

Mon 3/12

7pm

 

Program #5

 Program2

(No Design and Test Plan)

 

Fri 3/16

No Late Program #5

 

7pm

 

Quiz or Exam #

Topics

Date

Time

 

Quiz #1

 

      Pointer Arithmetic

      ADTs

      Data Structures: LLL

 

Tuesday 1/30

 

In-class

(50 min)

 

Midterm Exam

      Topics 1-5

      Data Structures:

LLL, CLL, DLL

Tuesday

2/6

 

In-class

(1 hr 50 min)

 

Quiz #2

 

      Recursion

      BST Traversal Algorithms and Coding

 

Tuesday

3/6

 

In-class

(50 min)

 

Final Exam

 

      Comprehensive

      Topics 1-13

      Data Structures:

LLL, CLL, DLL, Arrays of LLL, BST

 

Tuesday

3/20

 

10:15-12:05

 

 

 

CS163: Course Outline (6th and 7th Editions of Carrano)

Winter 2018

(The following dates are subject to change!)

 

 

Lecture and Lab Content

 

WEEK  #1:

 

Date:    Topic:                                                                                         Reading/Projects:

1/9, 1/11          Topic #1                                                                      *** Please read the syllabus ***

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

Class Introduction, and Review Outline.                        (Data Abstraction, Classes and

• Overview of what to expect for:                                    Recursion)

 assignments, attendance, discussions, quizzes, and examinations.

 

*** Make sure to practice Linear Linked Lists and recursion from CS162 ***

 

 

Week #1 Lab session:                                            By Lab#1  – Get a CS Account

                                                            (prior to your first lab!)

 

Linux Lab  #1 – For students new to PSU:

                            Putting the pieces together of a C++ Program

 

Linux Level #2.1 – Review vim

                                         Students who have not completed the linux & vim exercises

                                        from CS162 must start with Level #1 

 

CS163 Lab #1 – Getting Started with LLL and Practicing

                            Read the background information prior to attending lab

                         There are NO Prelab Exercises for the first lab!

 

        If you can’t complete the entire lab, consider attending a makeup session; we grade the lab manuals on completeness, relevance, and readability

        Complete the self-check quiz in the CS163 lab manual after you have finished the lab! Remember to work on the self-check quiz as closed-book, closed notes!

 

 

 

WEEK  #2:

 

Date:    Topic:                                                                                         Reading/Projects:

 

1/16      Topic #2                     

• Chapter 1 - Principles of Programming and Software Engineering

• Discuss Abstract data types, Classes in C++, Class scope, and Information hiding

• Review: Chapter 2 Recursion

• Review: Data Abstraction through Classes

 

1/18     Topic #3 – Data Abstraction                                              Chapters 3, 4, 5

• 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 Lab session:                                                          Bring completed Prelab Exercise!                         

Linux Exercise #2.2 – Backups and Archives

 

CS163 Lab  #2 – Building ADTs            

 

      Bring your two Lab books and have the CS163 Lab #2 Pre-Lab exercises completed!

      Remember to read the background information before attending lab

      In review, pay close attention to the Linux exercises #1.4 and 1.5 on backing up and archiving

 

      Experience ADTs using multiple classes with linear linked lists

      Complete the self-check quiz in the CS163 lab manual after you have finished the lab! Remember to work on the self-check quiz as closed-book, closed notes!

 

 

 

 

 

 

 

 

WEEK  #3:

 

Date:    Topic:                                                                                         Reading/Projects:

 

 

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

 

 

1/25     Topic #4 – Stack and Queue Abstract Data Types     Chapters 6, 7, 13.1, 13.2, 14.1

Stacks and Abstract Data Types                                                (Stacks and Queues)

• 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 13.1 and 14.1 - Queues

• The Abstract Data Type Queue

• Implementations of the ADT Queue

 

Week #3 Lab session:                                                          Bring completed Prelab Exercise!                    

Linux Exercise #2.3 – Search and Replace

 

CS163 Lab  #3 – Stacks and LLL of Arrays      

 

 

      Bring your Pre-Lab exercise completed!

      Implement Stack abstractions

      Implementation of a LLL of arrays

      And, remember to program every day!!

 

 

 

 

 

WEEK  #4:

 

Date:    Topic:                                                                                         Reading/Projects:

 

1/30 - Topic #5 Additional Linked List Implementations      Chapters 8 and 9 (Lists)

• Variations of the Linked List

• Doubly linked lists

• Circular linked lists

 

                Quiz #1 on Pointer arithmetic, ADTs, and LLL

2/1 – Review Recursion from CS162

               Prepare for the Midterm

 

 

Week #4 Lab session:                                                          Bring completed Prelab Exercise!                   

Linux Exercise #2.4 – Using gdb

 

CS163 Lab  #4 – Queues and Circular Linked Lists

KEEP PRACTICING DATA STRUCTURES!

WORK AHEAD on Lab #5 or finish Lab #1

      Bring your Pre-Lab exercise completed!

      Remember to read the background information in the lab manual prior to completing the prelab exercises

      Implement Queue abstractions

      Implementation of a Circular Linked List

      Use the self-check quiz after the lab is over to determine your level of proficiency!

      And, remember to program every day!!

 

 

WEEK  #5:

 

Midterm Proficiency Demos Take place during Week #5

      Midterm Proficiency Demos are by appointment

      You will receive an appointment calendar link through PSU (pdx.edu) email

 

Date:    Topic:                                                                                   Reading/Projects:

 

2/6                      Midterm Exam

 

 

2/8       Topic #7        The Efficiency of Algorithms       Chapter 10 (Measuring Efficiency)

                                           -Big O Notation

                                           -Review ADT algorithms and their efficiency

 

 

 

Week #5 Lab session:                                                          Bring completed Prelab Exercise!                   

Linux Exercise #2.5 – Copy and Paste with vim

 

CS163 Lab  #5 – Recursion and Doubly Linked Lists

             

 

Practice Recursion

      Bring your Pre-Lab exercise completed!

      Practice recursive solutions and doubly linked lists

      *** Pay particular attention to the CS163 CS Midterm Proficiency Demonstration section

 

*** PROFICIENCY DEMOS are scheduled by Appointment ***

 

 

 

 

 

 

 

 

 

WEEK  #6:

 

Date:    Topic:                                                                                         Reading/Projects:

 

2/13 – Topic #6 Hashing                                                              Chapter 18.4 (Hashing)

      Searching: Introduction and Notation

      Hash Functions, Collisions, Table traversal

      Discussion of what constitutes a good hash function

 

 

2/15 – Topic #8 Tree Structures                                                 Chapter 15 (Trees)

•  Definitions, Introduction to Trees, Tree search

 

 

Week #6 Lab session:                                                          Bring completed Prelab Exercise!                    

Linux Exercise #2.6 – Tabbed Editing

 

CS163 Lab  #6 – Hash Tables and Other Linked Lists             

 

 

  Bring your Pre-Lab exercise completed!

         Remember to read the background information before attending lab!

        Implement Array of Linked Lists

        Experience variations of linear linked lists

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #7:

 

Date:    Topic:                                                                                         Reading/Projects:

 

2/20 – Topic #9 Tree Structures

      Applying Recursion                                                       Chapter 16 (ADT Table)

      Insert Algorithm

      Overview of the removal algorithm

 

 

2/22 - Topic #9 Tree Structures

      Removal Algorithm of a Binary Search Tree

 

 

 

 

THURSDAY                   

Week #7 Lab session:                                                   Bring completed Prelab Exercise!

 

Linux Exercise #2.7 – Split Screen

CS163 Lab  #7 – Binary Search Trees        

 

 

                              

 

      Bring your Pre-Lab exercise completed!

      Remember to read the background information prior to completing the Pre-Lab exercises!

      Practice BST solutions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEK  #8:

 

Date:    Topic:                                                                                         Reading/Projects:

 

2/27 – Topic #10 Advanced Trees                                           Chapter 19 (Balanced Trees)

   Height balance, contiguous representation of binary trees:

   2-3 Trees

   2-3-4 Trees

   Red-black trees

   AVL Trees

 

 

 

3/1– Topic #11 Graphs                                                                Chapter 20 (Graphs)

                                                                                            Chapter 17 (Heaps)

• B-Trees                                                                           Chapter 21.3.3, 21.2.5 (B-Trees)

• Heaps

• Deletion Algorithms

 

 

Week #8 Lab:                        Bring completed Prelab Exercise for Lab 8

 

 

Linux Exercise #2.8 – Unexpected Situations (Swap Files)

CS163 Lab #8 - Balanced Trees

      Bring your Pre-Lab exercise completed!

      Experience setup of a graph

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEEKS  #9 and 10:

                              

 

Date:    Topic:                                                                                         Reading/Projects:

3/6, 3/8 - Sorting Algorithms                                                          Chapter 11 (Sorting)

 

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

• Shell sort

• Mergesort

• Quicksort for contiguous lists

• Efficiency of Sorting Algorithms

 

Discuss what to study for the Final Exam

 

3/6 Quiz #2 on BST Traversal

 

 

3/13 - Prepare for the Final Exam

 

 

3/15 - Review and Practice BST Algorithms

 

 

Week #9 Lab Session:               Bring completed Prelab Exercise for Lab 9!                

               

Level #2 Linux Self Check Exercises

CS163 Lab #9 – Balanced Trees

 

 

 

 

Week #10 Lab Session:            Bring completed Prelab Exercise for Lab 9!                                            

               

CS163 Lab #10 – Tree Review  ** Important for the final proficiency demo

 

 

 

 

 

Final Exam Time                         Tuesday March 20th -  10:15-12:05

               

Final Proficiency Demonstrations take place by appointment during finals week.

 

All Testing Center exams must be completed by Tuesday March 20th and should be taken at the same time as the in-class students.

 

All Proficiency Demos must be completed by Friday March 23rd



[1] Design submission includes a 600 word write-up and a Test Plan

[2] Program submission includes .cpp and .h files and an Efficiency write-up (600 words); tar all files