CS333, Fall 2013

CS333 Outline & Topics

Blackboard
Outline
Policies
Grades
Library
Forums
FAQ
Search
item>
Topics Lecture Notes Readings Assignments & Quizzes
1 Part I. Coding in C++
1.1 Overview

lecture: Course Orientation & Intro (08/29/2013, 7:00PM)

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 (08/26/2013 - 08/31/2013)

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.1.5 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.1.6 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.2 Basic Arrays

slides: Basic Arrays

reading: Chapter 8, "Arrays and Strings"

quiz: Self-test (ungraded)

1.3 Records (structs)

slides: Structured Data

reading: Chapter 9, "Records (structs)"

asst: Structs

1.4 End of Part I

exam: Exam 1 - available on Blackboard in "Exams" section (09/27/2013 - 09/28/2013)

asst: All assignments from Part I are due by the end of the day (09/26/2013)

exam: Exam 1 - available on Blackboard in "Exams" section (09/27/2013 - 09/28/2013)

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 (10/22/2013)

2.4 Member Functions

slides: Function Members

slides: Constructors

reading: Chapter 10

asst: Member Functions

2.5 Design I: Top-Down Design

slides: Stepwise Refinement

asst: Stepwise Refinement

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

project: Project: Top-Down Design (11/02/2013)

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 section "Dereferencing Operator (*)"; and sections "Initializing Pointer Variables" 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

2.8 Programming III: Classes & ADTS

slides: Encapsulation

slides: Default and Copy Constructors

slides: Common Modifications of Class Members

lecture: Project: ADT Discussion (11/14/2013, 8:00PM)

reading: Chapter 10, "Classes and Data Abstraction"

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

asst: Working with ADTs

project: Project: ADT Interfaces (11/11/2013)

2.9 End of Part II

exam: Exam 2 (11/03/2013 - 11/04/2013)

exam: Exam 2 (11/03/2013 - 11/04/2013)

asst: All assignments from Part II are due by the end of the day (11/02/2013)

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

project: Project: Implementation (12/06/2013)

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

asst: 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 (12/08/2013 - 12/09/2013)

asst: All assignments from Part III are due by the end of the day (12/06/2013)

exam: Exam 3 (12/08/2013 - 12/09/2013)

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

event: Classes begin (05/20/2013)

event: Last day to withdraw (06/27/2013)

event: Last day of semester (08/15/2013)

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.