CS162-001: Due Dates

Winter 2018

(The following dates are subject to change!)

 

Program

Number

Assignment Description

Due Date

Late Date

Due Time

 

Algorithm #1

 

Algorithm and Flowchart[1]

(Use outline form)

 

Tues  1/16

 

Thurs 1/18

 

7pm

Program #1

Program[2]

Tues 1/23

Thurs 1/25

7pm

Algorithm #2

Algorithm and Flowchart1

(Use outline form)

 

Tues 1/30

 

Thurs 2/1

 

7pm

Program #2

 Program2

Tues  2/6

Thurs 2/8

7pm

 

Algorithm #3

 

Algorithm and Data Flow Diagram4

(Use paragraph form)

 

Tues 2/13

 

Thurs 2/15

 

7pm

Program #3

Program2

Tues 2/20

Thurs 2/22

7pm

Algorithm #4

Algorithm and Data Flow Diagram4  (Use paragraph form)

 

Tues 2/27

 

Thurs 3/1

 

7pm

Program #4

Program3

Tues 3/6

Thurs 3/8

7pm

 

Program #5

 

Program3

(No Algorithm and No diagram)

 

Thurs  3/15

No Late Program #5

 

7pm

 

Quiz or Exam #

Topics

Date

Time

Quiz #1

 

  • Conditionals and Loops

Thurs 1/25

In-class

(50 min)

Midterm Exam

  • Topics 1 and 2

 

Tues  2/6

In-class

(1 hr 50 min)

 

Quiz #2

  • Structs, pointers
  • External Data Files
  • LLL Traversal

Thurs 3/8

In-class

(50 min)

 

Final Exam

 

  • Comprehensive
  • Topics 1-6
  • Linear Linked Lists

 

Thurs  3/22

 

10:15-12:05

CS162: Course Outline: (7th Edition of Malik)

 

Winter 2018

 

(the following outline is subject to change!)

WEEKS #1 and 2: Getting started with C++                          

 

Date:    Topic:                                                                                         Reading/Projects:

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

• Introduction: Syllabus, Objectives for the Course,  Malik: 1, Shk: 1

Class Introduction, and Review Outline.

 

1/11     Overview and/or Review of C++                                  Malik: 2, 3

·       Structure of C++ Programs

·       C++ Statements

·       Data Types

·       Operators

Week #1 Lab Session:                                                          By Lab#1  Get a CS Account           

                                                                        (prior to your first lab!)

Linux Lab  #1 – Getting Started with linux    

CS162 Lab #1 – Getting Started           No Prelab Exercises for the first lab!

 

 

1/16     Continue with C++ (Loops and Arrays)

                     • I/O, Conditionals, Repetition, Arrays                   Malik: 4, 5, Shk: 2

·       Branching Statements                                            

·       Loops and Relational Expressions         

·       I/O and formatting output

·       Arrays, Strings, String I/O

1/18              Demonstration: Creating a complete program in C++

·       Explore C++ assignment statements, conditionals, and truth tables

·       Explore C++ arrays of characters

Week #2 Lab Session:                                                          Bring completed Prelab Exercise!                         

Level 1 Linux Exercise #1.1 – Files and Directories

CS162 Lab #2 – Topic #1 Getting Started with C++ syntax                 

 

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

Practice creating a C++ program using assignment statements, conditionals and truth tables

Gain experience with loops

WEEK #3: Functions

 

Date:    Topic:                                                                                         Reading/Projects:

1/23     Topic #2

Overview  of C++ Functions                                                            Malik: 6, 7

·       Prototypes vs. Function Definitions

·       Pass by value, by reference, by const

·       Passing fundamental  types and arrays

 

1/25           Functions:

                        Demonstration: Designing using modularity

·       Demonstration: Writing programs using functions with arguments

·       Explore C++ functions, pass by reference, pass by value, and returning values

 

·       QUIZ #1 on Conditionals and Loops

 

 

Week #3 Lab Session:                                                          Bring completed Prelab Exercise!          

 

Level 1 Linux Exercise #1.2 – Wildcards

CS162 Lab  #3 – Arrays

 

·         Bring your Pre-Lab exercise completed!

·         Practice C++ arrays of characters, creating, reading, manipulating

·         Gain experience with cstring and cctype libraries

·         If you can’t complete the entire lab, consider attending a makeup session

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

 


WEEK # 4: Structures, External Files

 

Date:    Topic:                                                                                         Reading/Projects:

1/30        Topic #2: Structures                                                          Malik: 9, Shk: 3

·    What they are

·    How to create them

·    Working with arrays of structures

 

 

2/1           Prepare for the Midterm                                                  

·    Review concepts

·    Discuss expectations for the midterm

·    Work through sample problems

 

Week #4 Lab Session:                                                          Bring completed Prelab Exercise!          

 

Level 1 Linux Exercise #1.3 – Using Redirection

CS162 Lab  #4 – Functions and Arguments

 

·       Bring your Pre-Lab exercise completed!

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

·       Practice: Writing programs using functions with arguments

·       Explore C++ functions, pass by reference, pass by value, and returning values

·       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 and Proficiency Demos

 

Midterm Proficiency Demos Take place during Weeks #4-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             External Files and Structs

                       Lecture: External Data Files

·       Demonstration: Writing programs using structs and external files

·       Explore C++ functions working with structs

·       Experience external data files

 

 

Week #5 Lab Session:                                                         Bring completed Prelab Exercise!          

 

Level 1 Linux Exercise #1.4 – Backing-up Files

CS162 Lab  #5 – Structures and External Files

 

 

·       Bring your Pre-Lab exercise completed!

·       Practice: Writing programs using structs

·       Explore C++ functions working with structs

·       Experience using external data files

·       *** Pay particular attention to the CS162 CS Midterm Proficiency Demonstration section in the CS162 Lab manual!

 


WEEK # 6: Pointers and Dynamic Memory

 

Date:    Topic:                                                                                         Reading/Projects:

 

2/13     Topic #3 C++ Class Construct, Data Abstraction and Abstract Data Types                

• Data Abstraction and Abstract Data Types                       Malik: 10             

• The C++ Class, Class versus Structs                                      Shk: 4

• Class Constructors, Defining and Using Functions and Classes.

• General discussion of the C++ Class and creating .h files

• Constructors

 

2/15     Pointers and Dynamic Memory                                                     Malik: 12

• Introduce pointer variables, memory allocation and deallocation

             • Examples manipulating pointers                                                 Shk: 5.1-5.4

 

 

Week #6 Lab Session:                                                          Bring completed Prelab Exercise!          

 

Level 1 Linux Exercise #1.5 – Archiving Files

CS162 Lab #6 – The Class Construct

 

                                                           

·       Bring your Pre-Lab exercise completed!

·       Experience building classes and member functions

·       Pay close attention to the Linux exercises #1.4 and 1.5 on backing up and archiving

 

 


WEEK #7: Linear Linked Lists                        

Date:    Topic:                                                                                         Reading/Projects:

 

2/20     Pointers and Dynamic Memory                                                      

• Pointer Arithmetic                 

• Pointers to structs (learn about the . versus ->)                    

 

              Topic #4

              Dynamic Data Structures                                                                  Malik: 17

• Review of Pointers and the new Operator 

• Pointer Arithmetic

• Introduction to Linked Lists                                                           Shk: 5.5-5.6

• Demonstration: Using pointers and linked lists

 

2/22     Topic #4 Continued

              Dynamic Data Structures                                                  

• Insert Algorithms for Linear Linked Lists            

 

*** LAB #7 is the topic of our final proficiency demos!!!!!

THURSDAY LAB

Week #7 Lab Session:                                                          Bring completed Prelab #7 Exercise!    

 

Level 1 Linux Exercise #1.6 – Getting Started with vim

CS162 Lab #7 – Pointers and Dynamic Memory

 

 

·       Bring your Pre-Lab exercise completed!

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

·       Experience pointers and dynamic memory

·       Practice traversing linear linked lists

·       Continue exploring the use of classes

 


WEEK # 8:  Manipulating Linear Linked Lists

Date:    Topic:                                                                                         Reading/Projects:

 

 

2/27     Topic #4 Continued

              Dynamic Data Structures                                                  

• Insert and Removal Algorithms                                    

• Demonstration: Inserting and Removal

• Explore writing functions to traverse and modify a linear linked list

• Explore Classes and dynamic structures

• Intro to Recursion using a recursive destructor

 

                            

3/1        Topic #5 Recursion                                                                             Malik: 15

Shk: 4.10, 6

 

•  The Nature of Recursion, Tracing a Recursive Function,

Recursive Mathematical Functions, Recursive Functions with Array Arguments 

• Work through examples of recursion in class

• Problem solving with Recursion

 

 

 

 

Week #8 Lab Session:                                           Bring completed Prelab Exercise for Lab #7 and #8!   

 

Complete Level 1 Linux Exercise #1.6 – Getting Started with vim

Complete CS162 Lab #7 – Pointers and Dynamic Memory

 

Level 1 Linux Exercise #1.7 – vim Navigation

CS162 Lab #8 – Linear Linked Lists

 

 

·       Bring your Pre-Lab exercises completed!

·       Experience building and removing from linear linked lists

·       Continue exploring the use of classes

·       IMPORTANT – make sure to practice working with linear linked list problems daily!


WEEK #9: Recursion     

 

Date:                  Topic:                                                                                        Reading/Projects:

 

3/6, 3/8             Recursion and LLL: Practicing                                                         

• Demonstration: Recursion and LLL

• Explore writing recursive functions

 

 

3/8

QUIZ #2 on Structs, External Files, Pointers and LLL Traversal

 

 

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

 

Level 1 Linux Exercise #1.8 – Making Modifications with vim

 

CS162 Lab #9 – Recursion

 

 

·       Bring your Pre-Lab exercises completed!

·       Remember to read the background information in the CS162 Lab manual before completing the Pre-Lab exercises

·       Experience applying recursion to LLL problems

·       Practice Linear Linked lists

 

·       IMPORTANT – make sure to practice working with linear linked list problems daily!

 

 

 


WEEK #10: Advanced Pointers and Review  

 

Date:                  Topic:                                                                                        Reading/Projects:

 

 

3/13     Topic #6 Arrays with Structured Elements                                Malik: 8

• Arrays of Arrays: Multidimensional Arrays,                             Shk: 8            

Creating Arrays of Arrays, Arrays of Structs, and Arrays of Class Elements.

 

3/15     Prepare for Final Exam                                                                     

·       Review concepts

·       Discuss expectations for the midterm

·       Work through sample problems

 

 

Week #10 Lab Session:                                                       Bring completed Prelab for Lab #10

 

Level #1 Linux Self Check Exercises

 

CS162 Lab #10 – Practicing LLL

 

 

·       Bring your Pre-Lab exercises completed!

·       Remember to read the background information in the CS162 Lab manual before completing the Pre-Lab exercises

·       Experience applying recursion to LLL problems

·       Practice Linear Linked lists

 

·       IMPORTANT – make sure to practice working with linear linked list problems daily!

 

 

 

 

 

 

 

 

Finals Week:                       

 

Final Proficiency Demonstrations take place by appointment during week #10 and finals week

 

An appointment calendar link will be emailed to your pdx.edu email!

 

 

 

Final Exam Time:                        Thursday March 22nd  10:15-12:05

 

***IMPORTANT – ALL FINAL EXAMS MUST BE COMPLETED BY Thursday March 22nd, no exceptions.

***ALL DRC Exams must take place at the same time as the in-class exam

 

***IMPORTANT – ALL Proficiency demos MUST BE COMPLETED BY March 21st, no exceptions.

 



[1] Algorithm submission should be written in outline form (400-600 words); include a flow chart

[2] Program submission includes .cpp file.

3 Program submission includes .cpp and .h files. Please tar your submissions.

4 Algorithm submission should be written in paragraph form; include a data flow diagram