CS 333 - Summer 2011 - Old Dominion University


Topics Lecture Notes Readings Assignments & Quizzes
1 Part I. Coding in C++
1.1 Overview

slides: Course Policies and Themes

1.2 Primitive Data Types and Assignments

slides: Straight-Line Computation in C++

reading: Chapters 1, "An Overview...", and 2, "Basic Elements of C++"

lab: CS 333: Account Setup (06/13/2011 - 06/14/2011)

quiz: Self-test (ungraded)

1.3 I/O

slides: Input/Output (IO)

reading: Chapter 3, "Input/Output"

lab: Projects in Code::Blocks

quiz: Self-test (ungraded)

1.4 Control Flow

slides: Operators

reading: Chapters 4 and 5, "Control Structures"

quiz: Self-test (ungraded)

asst: CS333: Loan Calculator

1.5 Function Calls and Parameter Passing

slides: Functions

slides: Parameters and Arguments

reading: Chapters 6 and 7, "User-Defined Functions"

quiz: Self-test (ungraded)

quiz: Self-test (ungraded)

lab: CS333 Lab: Supplying Inputs to Programs

asst: CS333: Play Time

1.6 Strings

slides: The std::string Class

reading: Chapter 8, "User-Defined Simple Data Types, ..."

quiz: Self-test (ungraded)

lab: Lab: I/O, Control Flow, & Strings

1.7 The Structure of a C++ Program

slides: The Structure of a C++ Program

lab: Lab: Multi-File Projects in Code::Blocks

asst: Modules

1.8 Basic Arrays

slides: Basic Arrays

reading: Chapter 9, "Arrays and Strings"

quiz: Self-test (ungraded)

1.9 End of Part I

exam: Exam 1 (06/29/2011 - 06/30/2011)

asst: All assignments from Part I are due by the end of the day (06/29/2011)

exam: Exam 1 (06/29/2011 - 06/30/2011)

2 Part II. Programming in C++
2.1 Overview

slides: Coding Versus Programming

lab: Lab: Using the Code::Blocks Debugger

2.2 Programming I: Filling & Searching Arrays

slides: Pointers

slides: Patterns: Working with Arrays

slides: Working with Ordered Data

reading: Chapter 14, "Pointers, Classes, ...", through section "Dereferencing Operator (*)"; and sections "Initializing Pointer Variables" through "Shallow versus Deep Copy and Pointers"

reading: Chapter 10, "Applications of Arrays..."

unix: Files and Directories

asst: Assignment 4: Array Manipulation

2.3 Testing I

slides: Black-Box Testing

unix: File Transfer

asst: Assignment 5: Black-Box Testing

asst: Project: Test Specifications (07/10/2011)

2.4 Design I: Top-Down Design

slides: Software Development: The Waterfall Model

slides: Stepwise Refinement

asst: Assignment 6a: Stepwise Refinement, Part 1 (Design)

asst: Assignment 6: Stepwise Refinement, Part 2 (Implementation)

asst: Project: Top-Down Design (07/18/2011)

2.5 Programming II: Records

slides: Structured Data

slides: Function Members

reading: Chapter 11, "Records (structs)"

asst: Assignment 7: From Parallel Arrays to Structs

2.6 Design II: Abstract Data Types

slides: Information Hiding and ADTs

2.7 Programming III: Classes & ADTS

slides: Encapsulation

slides: Default and Copy Constructors

slides: Common Modifications of Class Members

lecture: Project: ADT Discussion

reading: Chapter 12, "Classes and Data Abstraction"

reading: Chapter 14, "Pointers, Classes, ...", sections "Shallow versus Deep Copy" through "Classes and Pointers: Some Peculiarities"

asst: Assignment 8: ADT Implementation

asst: Assignment 9: Working with ADTs

asst: Project: ADT Interfaces (07/25/2011)

asst: Project: Implementation (08/08/2011)

2.8 End of Part II

exam: Exam 2 (07/22/2011 - 07/23/2011)

exam: Exam 2 (07/22/2011 - 07/23/2011)

asst: All assignments from Part II are due by the end of the day (07/22/2011)

3 Part III. Programming in C++ (continued)
3.1 Debugging I: Reproducing Failures

slides: Debugging

slides: Debugging - Using Hypotheses to Track Down the Culprit

lab: Lab: Head to Head Testing

asst: Assignment 10: Debugging

3.2 Testing II: Scaffolding

slides: Unit Testing

slides: Defensive Programming

unix: emacs

3.3 Programming IV: Overloading

slides: Operator Overloading

reading: Chapter 15, "Overloading and Templates"

asst: Assignment 11: Operator Overloading

3.4 Programming V: Linked Lists

slides: Linked Lists

reading: Chapter 18, "Linked Lists"

asst: Assignment 12: Linked Lists

3.5 Testing III

slides: White-Box Testing

unix: Compiling in Emacs

unix: Recommended: Project Management with Make

asst: Assignment 13: Unit and White-Box Testing

3.6 Programming VI: Recursion

slides: Recursion

slides: Trees

reading: Chapter 17, "Recursion"

3.7 Debugging II: Debugging Tools

unix: Debugging in Emacs

unix: Getting Started in X

unix: Recommended: Debugging in gdb Under X

lab: Debugging Tools

3.8 Design III: Class Designer's Checklist

slides: A C++ Class Design Checklist

3.9 End of Part III

exam: Exam 3 (08/07/2011 - 08/08/2011)

asst: All assignments from Part III are due by the end of the day (08/08/2011)

exam: Exam 3 (08/07/2011 - 08/08/2011)

4 Special Dates - See the Topics Page for specific assignment dates.

event: Classes begin (06/13/2011)

event: End of Part 1 (06/29/2011)

event: Exam 1 (06/29/2011 - 06/30/2011)

event: Independence Day (07/04/2011)

event: Proj:Test Specifications (07/10/2011)

event: Proj:Top Down Design (07/18/2011)

event: End of Part 2 (07/22/2011)

event: Exam 2 (07/22/2011 - 07/23/2011)

event: Project:ADT Interfaces (07/25/2011)

event: End of Part 3 (08/08/2011)

event: Project:Implmnttion (08/08/2011)

event: Exam 3 (08/07/2011 - 08/08/2011)

event: Classes end (08/08/2011)

Symbol Key
conference Conference
slides Slides & Lecture Notes
text Text
exam Exam
lab Lab Assignment
asst Assignment
cs252 CS252 (Unix) Assignment

All times in this schedule are given in Eastern Time.