Course
Outline
CS162:
Introduction to Computer Science
Winter
2014
(the
following outline is subject to change!)
WEEKS
#1 and 2:
1/6-1/19 Watch
Topic #1 Videos
Date: Topic: Reading/Projects:
1/7 Topic #1 ***
Please read the syllabus ***
• Introduction:
Syllabus, Objectives for the Course, Malik: 1, Shk: 1
Class
Introduction, and Review Outline.
1/9 • Overview and/or Review of C++ Malik: 2, 3
· Structure of C++ Programs
· C++ Statements
· Data Types
· Operators
Lab #1 - Putting the pieces together of a C++
Program By 1/10
– Get a CS Account
·
No Prelab Exercises for the first lab!
· Demonstration: Using Unix, Editing and Compiling programs
· Demonstration: connecting via PCs and MACs
· Lab #1 is due for self-paced students the following Monday 1/13
1/14 • 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/16 Demonstration: Creating a complete program in C++
· Explore C++ assignment statements, conditionals, and truth tables
· Explore C++ arrays of characters
Lab
#2 – Topic #1 Getting Started
·
In-class students: Bring your Pre-Lab exercise completed!
· Self-paced: Prelab and Lab are due the following Monday 1/20
·
Practice
creating a C++ program using assignment statements, conditionals and truth
tables
·
Gain
experience with loops
WEEKS #3 and 4:
1/21-2/2 Watch
Topic #2 Videos – Functions, Structures, External Files
1/23 Homework #1 Due - Submit to the D2L Dropbox
Date: Topic: Reading/Projects:
1/21 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/23 Functions:
•
Demonstration: Designing using modularity
· Demonstration: Writing programs using functions with arguments
· Explore C++ functions, pass by reference, pass by value, and returning values
Lab #3 – Topic 1 - Arrays of Characters
·
In-class students: Bring your Pre-Lab exercise completed!
· Self-paced: Prelab and Lab are due the following Monday 1/27
·
Practice
C++ arrays of characters, creating, reading, manipulating
·
Gain
experience with cstring and cctype
libraries
1/28 Topic
#2: Structures Malik: 11, Shk: 3
·
What
they are
·
How
to create them
·
Working
with arrays of structures
1/30 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
Lab #4 – Topic 2 - Modularity
·
In-class students: Bring your Pre-Lab exercise completed!
· Self-paced: Prelab and Lab are due the following Monday 2/3
·
Practice: Writing programs using functions with
arguments
· Explore C++ functions, pass by reference, pass by value, and returning values
WEEKS #5 and 6:
2/3 – 2/16 Watch Topic #3 – Classes
2/6 Homework #2 Due - Submit to the D2L Dropbox
Date: Topic: Reading/Projects:
2/4 Topic
#3 C++ Class Construct, Data Abstraction and Abstract Data Types
• Data Abstraction and Abstract Data
Types Malik: 12
• 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/6 More on Classes
• Demonstration: Designing a system that uses classes and structs
· Explore the C++ class construct
·
REVIEW for the Midterm Exam
Lab #5 – Topic 2 - Structures and External Data Files
·
In-class students: Bring your Pre-Lab exercise completed!
· Self-paced: Prelab and Lab are due the following Monday 2/10
· Practice: Writing programs using structs
· Explore C++ functions working with structs
·
Experience
using external data files
2/11 Midterm Exam for in-class
students
TBD Midterm Exam for online
students (date/time announced during 3rd
week)
2/13 Pointers and Dynamic Memory Malik:
14
•
Introduce pointer variables, memory allocation and deallocation
• Examples manipulating pointers Shk: 5.1-5.4
Lab
#6 – Topic 3 - Classes
·
In-class students: Bring your Pre-Lab exercise completed!
· Self-paced: Prelab and Lab are due the following Monday 2/17
· Experience building classes and member functions
Midterm Proficiency Demos
· In-class lab students: Midterm Proficiency Demos are available during lab time or by appointment
· Self Paced: Make an appointment for your Midterm Proficiency Demo
WEEKS #7 and 8:
2/17-3/2 Watch Topic #4 – Part
I Videos
2/20 Homework #3 Due - Submit to the D2L Dropbox
Date: Topic: Reading/Projects:
2/18 Topic #4
Dynamic
Data Structures Malik:
18
•
Review of Pointers and the new Operator
•
Pointer Arithmetic
2/20 Experience Pointers and Dynamic Memory
•
Introduction to Linked Lists Shk: 5.5-5.6
•
Demonstration: Using pointers and linked lists
•
Explore Classes and dynamic structures
Lab #7 – Topic 4 - Intro to Linear Linked Lists
·
In-class students: Bring your Pre-Lab exercise completed!
·
Self-paced:
Prelab and Lab are due the following Monday 2/24
·
Experience
pointers and dynamic memory
·
Practice
traversing linear linked lists
·
Continue
exploring the use of classes
2/25 Topic #4 Continued
Dynamic
Data Structures
•
Insert and Removal Algorithms
2/27 Dynamic Data Structures
•
Demonstration: Inserting and Removal
•
Explore writing functions to traverse and modify a linear linked list
Lab #8
– Topic 4 - Manipulating Linear Linked Lists
·
In-class students: Bring your Pre-Lab exercise completed!
·
Self-paced:
Prelab and Lab are due the following Monday 3/3
·
Building
and removing from linear linked lists
·
Continue
exploring the use of classes
WEEKS #9 and 10:
3/3-3/16 Watch
Topic #4 – Part II Videos on LLL
3/6 Homework #4 Due - Submit to the D2L Dropbox
Date: Topic: Reading/Projects:
3/4 Topic #5 Recursion Malik: 17
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
3/6 Recursion and LLL: Practicing
•
Demonstration: Recursion and LLL
•
Explore writing recursive functions
Lab #9 – Topic 5 - Recursion
·
In-class students: Bring your Pre-Lab exercise completed!
·
Self-paced:
Prelab and Lab are due the following Monday 3/10
·
Build
recursion solutions
·
Practice
Linear Linked lists
3/11 Topic #6 Arrays with Structured Elements Malik: 9
• Arrays of Arrays: Multidimensional
Arrays, Shk: 8
Creating
Arrays of Arrays, Arrays of Structs, and Arrays of
Class Elements.
3/13 Prepare for the Final Exam
Lab #10 – Prepare for Final Proficiency Demo
·
In-class students: Bring your Pre-Lab exercise completed!
·
Self-paced:
Prelab and Lab are due the following Monday 3/17
·
Practice
Linear Linked lists
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): Thursday
March 20th 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!