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 |
|
Thurs 1/25 |
In-class (50 min) |
Midterm
Exam |
|
Tues
2/6 |
In-class (1 hr 50 min) |
Quiz
#2 |
|
Thurs 3/8 |
In-class (50 min) |
Final
Exam |
|
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