CS333, Summer 2014

Blackboard
Outline
Policies
Grades
Library
Forum
Search
FAQ
Topics Lecture Notes Readings Assignments & Quizzes
1 Part I. Coding in C++
1.1 Basics

lecture: Course Orientation & Intro (05/20/2014)

1.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: Account Setup (Due: 05/23/2014)

unix: Logging In

quiz: Self-test (ungraded)

1.1.3 I/O

slides: Input/Output (IO)

reading: Chapter 3, "Input/Output"

lab: Projects in Code::Blocks

quiz: Self-test (ungraded)

1.1.4 Control Flow

slides: Operators

reading: Chapters 4 and 5, "Control Structures"

quiz: Self-test (ungraded)

asst: Assignment: Control Flow

1.2 Function Calls and Parameter Passing

slides: Functions

slides: Parameters and Arguments

reading: Chapter 6, "User-Defined Functions"

quiz: Self-test (ungraded)

quiz: Self-test (ungraded)

unix: Files and Directories

lab: Lab: Supplying Inputs to Programs

asst: Functions

1.3 Strings

slides: The std::string Class

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

quiz: Self-test (ungraded)

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

1.4 Structuring Data
1.4.1 Basic Arrays

slides: Basic Arrays

reading: Chapter 8, "Arrays and Strings"

quiz: Self-test (ungraded)

1.4.2 Records (structs)

slides: Structured Data

reading: Chapter 9, "Records (structs)"

asst: Structs

1.5 End of Part I

exam: Exam 1 - available on Blackboard in "Exams" section (06/14/2014 - 06/15/2014)

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

exam: Exam 1 - available on Blackboard in "Exams" section (06/14/2014 - 06/15/2014)

2 Part II. Programming in C++
2.1 Overview

slides: Coding Versus Programming

slides: Deskchecking and Debugging Output

lab: Lab: Using the Code::Blocks Debugger

2.2 The Structure of a C++ Program

slides: The Structure of a C++ Program

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

asst: Modules

2.3 Testing I

slides: Software Development: The Waterfall Model

slides: Black-Box Testing

lab: CS333 Lab: Black Box Testing

unix: File Transfer

asst: Black-Box Testing

project: Project: Test Specifications (06/28/2014)

2.4 Member Functions

slides: Function Members

slides: Constructors

reading: Chapter 10, "Classes"

asst: Member Functions

2.5 Design I: Top-Down Design

slides: Stepwise Refinement

asst: Stepwise Refinement (part 1)

asst: Stepwise Refinement (part 2) - refer to the message from the autograder on part 1

project: Project: Top-Down Design (07/03/2014)

2.6 Filling & Searching Arrays

slides: Pointers and References

slides: Patterns: Working with Arrays

slides: Working with Ordered Data

reading: Chapter 12, "Pointers, Classes, ...", through "Shallow versus Deep Copy and Pointers"

reading: Chapter 16, "Sorting, Searching, ..."

unix: Basic Unix Commands

asst: Arrays

2.7 Design II: Abstract Data Types

slides: Information Hiding and ADTs

reading: Chapter 10, "Data Abstraction ..." through "Informaiton Hiding""

2.8 Programming III: Classes & ADTS

slides: Encapsulation

slides: Default and Copy Constructors

slides: Common Modifications of Class Members

lecture: Project: ADT Discussion (07/14/2014, 7:30PM)

reading: Chapter 10, (remainder)

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

asst: Working with ADTs

project: Project: ADT Interfaces (07/10/2014)

2.9 End of Part II

exam: Exam 2 (07/13/2014 - 07/14/2014)

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

exam: Exam 2 (07/13/2014 - 07/14/2014)

3 Part III. Programming in C++ (continued)

project: Project: Implementation (08/08/2014)

3.2 Debugging I: Reproducing Failures

slides: Debugging

slides: Debugging -- Using Hypotheses to Track Down the Culprit

lab: Lab: Head to Head Testing

asst: Debugging

3.3 Testing II: Scaffolding

slides: Unit Testing

slides: Defensive Programming

unix: emacs

3.4 Programming IV: Overloading

slides: Operator Overloading

slides: Copying Data

reading: Chapter 13, "Overloading and Templates"

asst: Operator Overloading

3.5 Programming V: Linked Lists

slides: Linked Lists

reading: Chapter 17, "Linked Lists"

asst: Linked Lists

3.6 Testing III

slides: White-Box Testing

unix: Compiling in Emacs

unix: Recommended: Project Management with Make

lab: Lab: White Box Testing

3.7 Programming VI: Recursion

slides: Recursion

slides: Trees

reading: Chapter 15, "Recursion"

3.8 Debugging II: Debugging Tools

unix: Debugging in Emacs

unix: Getting Started in X

unix: Recommended: Debugging in gdb Under X

3.9 Design III: Class Designer's Checklist

slides: A C++ Class Design Checklist

3.10 End of Part III

exam: Exam 3 (08/08/2014 - 08/09/2014)

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

exam: Exam 3 (08/08/2014 - 08/09/2014)

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

event: Classes begin (05/19/2014)

event: Last day to withdraw (06/26/2014)

event: Last day of classes (08/08/2014)

Symbol Key
conference Conference
slides Slides & Lecture Notes
text Text
exam Exam
lab Lab Assignment
asst Assignment
project Project
cs252 CS252 (Unix) Assignment
All times in this schedule are given in Eastern Time.