CS202: Important Due Dates

Winter 2018

(The following dates are subject to change!)

 

Program

Number

Assignment Description

Due Date

Late Date

Due Time

 

Program #1

 

Design and UML Diagram[1]

 

Fri     1/19

 

Wed  1/24

 

6pm

Program #1

Program[2]

Fri   1/26

Wed  1/31

6pm

Program #2

 Program2

Fri   2/2

Wed  2/7

6pm

 

Program #3

 

Design and UML Diagram1

 

Fri 2/9

 

Wed    2/14

 

6pm

Program #3

Program2

Fri 2/16

Wed     2/21

6pm

 

Programs #4-5

 

Design and UML Diagram1

 

Fri 2/23

 

Wed   2/28

 

6pm

Program #4

 Program2

Fri 3/2

Wed     3/7

6pm

 

Program #5

 

Program2

 

Fri 3/16

No Late Program #5

 

6pm

 

Term Paper

 

OO Term Paper (4-7 pages)  

 

Mon 3/19

 

None

 

6pm

 

Quiz or Exam #

Topics

Date

Time

 

Quiz #1

 

  • Inheritance
  • Initialization Lists
  • Copy Constructors
  • Data Structures: LLL, CLL

 

Thursday

2/1

 

In-class

(50 min)

 

Midterm Exam

  • Topics 1, 3, 4 and 5
  • Data Structures: LLL, CLL, DLL, ARR

Tuesday

2/6

In-class

(1 hr 50 min)

 

Quiz #2

 

  • Operator Overloading
  • Rvalues  vs Lvalues
  • Constant Methods
  • Data Structures: BST

 

Tuesday

3/13

 

In-class

(50 min)

 

Final Exam

 

  • Comprehensive
  • Topics 1-8
  • Data Structures: LLL, BST

 

Tuesday 3/20

 

5:30pm-7:20

 

 

CS202: Course Outline: Lecture and Lab

Winter 2018

(The following dates are subject to change!)

Week: Topic:                                                                         Reading/Projects:

Week #1: Introduction

 

1/9             Introduction                                                  **Login to D2L

                  Objectives for the course                               **Get a CS Account

(For a Review of C++

                  Discuss expectations                                          examine Prata Ch 1-8)

                  Review Outline

 

Week #1: Object Oriented Design: Concept

1/11           Topic #1 Responsibility Driven Design

What is Object Oriented Design?

                  Examples of how Abstraction can help                     

                  Identifying and Assigning Responsibilities

                  Determining Collaborations and Identifying their Purpose

                  Examining Relationships between Classes

 

                  Implementing the Design: Terminology & Concept

                  Inheritance

                  Polymorphism

                  Measuring the Quality of the Design

                  Alternatives?

                  Common Design Flaws

 

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 #3.1 – vim Tips

                                       Students who have not completed the linux & vim exercises

                                        from CS162 and CS163 must start with Level #1 and 2

 

CS202 Lab #1 – Getting Started with OO Concepts

                          Read the background information prior to attending lab

                          Learn about UML Diagrams

                         There are NO Prelab Exercises for the first lab!

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

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

Advanced C++ Concepts: Inheritance and Copy Constructors

 

Week: Topic:                                                                         Reading/Projects:

Week #2

1/16, 1/18  Topic #2 Remember C++...                             Lecture Notes #1

                  Data Abstraction vs.                                       Prata Chapter 10

                  Object Oriented Programming                      

 

                  Topic #3 Introduction to Inheritance         Prata Chapters 13-14

                  Terminology, Single Inheritance                     

                  Multiple and Virtual Inheritance                    Lecture Notes #5, 6

 

 

Copy Constructors

 

 

 

Week #2 Lab Session:                                               Bring completed Prelab Exercise!                   

Linux Exercise #3.2 – vim Tips

 

CS202 Lab  #2 – Inheritance          

 

·       Bring your two Lab books and have the CS202 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

 

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

·       Bring your Pre-Lab exercise completed!

·       Examine design methodologies

·       Building an employee OO program for a local department store

 

 

 


Advanced C++ Concepts: Dynamic Binding

 

Week: Topic:                                                                                     Reading/Projects:

Week #3

           

1/23, 1/25              Topic #4 Dynamic Binding,                         Prata Chapter 13

                              Run Time Type Identification               Lecture Notes #7

 

 

 

Week #3 Lab Session:                                               Bring completed Prelab Exercise!                   

Linux Exercise #3.3 – File Types and Permissions

 

CS202 Lab  #3 – Dynamic Binding

 

 

·       Bring your Pre-Lab exercise completed!

·       Implement solutions using dynamic binding

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

·       And, remember to program every day!!

 

User Defined Conversions and Exception Handling

 

Week: Topic:                                                                                     Reading/Projects:

Week #4

1/30, 2/1    Topic #4 User Defined ConversionsLecture Notes #8

 

                              Topic #5 Exception Handling                      Prata Chapter 15

Namespaces                                                   Prata Chapter 9

 

2/1 Quiz #1

Week #4 Lab Session:                                               Bring completed Prelab Exercise!                   

Linux Exercise #3.4 – Utilities

 

CS202 Lab  #4 – Review Data Structures and Recursion

·       Bring your Pre-Lab exercise completed!

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

·       Practice recursive solutions with linear, circular, and doubly linked lists

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

·       *** Pay particular attention to the CS202 CS Midterm Proficiency Demonstration section

Building User Defined Data Types

 

Week: Topic:                                                                         Reading/Projects:

Week #5

 

 

Midterm is 2/6

 

 

2/8             Topic #6 C++ Dynamic Memory Issues & Operator Overloading  

                  Constructors allocating memory                    Lecture Notes #2

                  Destructors and Dynamic memory    

 

The Behavior of Objects                 

                  Constant Objects, Logical Constness

 

 

Midterm Proficiency Practice and Demonstrations

Demonstrations are required to pass this class and are by appointment. Watch D2L mail for an appointment schedule.  

 

Students will be demonstrating C++, data structures, recursion, and gdb at the midterm demonstration. All students should be fluent with either vi, vim, or emacs and will be asked to demonstrate features of the editors such as navigation, search and replace.

 

 

 

Week #5 Lab Session:                                               Bring completed Prelab Exercise!                   

Linux Exercise #3.5 – Searching with grep

 

CS202 Lab  #5 – Exception Handling

           

 

·       Bring your Pre-Lab exercise completed!


Building User Defined Data Types: Introduction

 

Week: Topic:                                                                         Reading/Projects:

Week #6 

 

 

 

2/13, 2/15              Continue with Topic #6

Topic #6 C++ Dynamic Memory Issues & Operator Overloading        

 

                  Operator Overloading                                  Prata Chapter 11

                  Rules, Guidelines                                           Lecture Notes #3, 4

                  Rvalues, Modifiable Lvalues 

                  Constant References                          

                  Constant Member Functions

                 

Examples

 

Week #6 Lab Session:                                               Bring completed Prelab Exercise!                   

Linux Exercise #3.6 – Make

 

CS202 Lab  #6 – Operator Overloading

 

·       Bring your Pre-Lab exercise completed!

·       Experience operator overloading


The Process of Learning other Programming Languages

 

Week: Topic:                                                                        

Week #7

 

2/20, 2/22              Topic #8 Learning Programming Languages   

Compare and contrast Java and C++

                              Discuss Garbage Collection  

                              Discuss References

                                         

Week #7 Lab Session:                       Bring completed Prelab Exercise!

                                                            Install an IDE prior to Lab!

 

Linux Exercise #3.7 –Revison Control

 

CS202 Lab  #7 – IDE Tutorial

Begin Lab #8 – Java Workshop

 

 

·       Bring your Pre-lab exercise completed!

·       Begin the Java Workship( Lab 8)

·       Aimed at first time IDE users

 

 

Object Oriented Programming in Practice

 

Week: Topic:                                                                        

Week #8

 

 

2/27, 3/1                Analyze OOP solutions  

Examine OOP solutions and design OOP alternatives in class

                                    Group activities to investigate how to learn other programming languages

 

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

 

Linux Exercise #3.8 – vim Preparation

Lab #8 – Java Workshop

 

·       Aimed at first time Java programmers 

·       Students that already know Java should assist other students

 

 

 

Preparation for the Upper Division Classes

 

Week #9

 

3/6, 3/8 Topic #7 Friends, Nesting, Static Members          Lecture Notes #9

Template Functions and Classes                             Lecture Notes #10, 11

 

Week #9 Lab Session:

Bring completed Lab #8 Prelab Exercise!

 

Linux Level #3 Self Check Exercises

 

CS202 Lab #9-Recursion in Java

 

·       Bring your Pre-Lab exercise completed!

·       Review and Practice for the final proficiency demonstration

 

 


Completion of CS202!

 

 

Week #10

3/13, 3/15 Prepare for the Final Exam

 

                              Review

3/13 Quiz #2

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

CS202 Lab #10 – BST Review

***Important to prepare for final prof. Demos!

 

 

·       Practice for Proficiency demos

·       Bring your Pre-Lab exercise for the lab being made up

·       Review and Practice for the final proficiency demonstration

 

 

Final’s Week

 

 

Comprehensive Final Exam:

·       Final Exam: Tuesday March 20th – 5:30pm-7:20pm*** Notice the time!

 

 

Final Proficiency Demos take place

BY APPOINTMENT ONLY.

 

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 UML diagram

[2] Program submission includes .cpp and .h files, Efficiency write-up (400 words) and gdb write-up (200 words); please tar your submissions.