CS333, Summer 2017

CS333 Outline

Summer 2017

Welcome to CS333

Last offered in Summer 2017, CS333 combined the core material of CS150 and CS250 into a single course, intended for students who had taken their first programming course in a programming language other than C++.

Although CS333 has been retired from the course catalog, this website is preserved as a resource for students wishing to review material from CS250 or to explore the differences between their “CS250-equivalent” transfer course taken elsewhere and what ODU CS students are expected to know going in to later courses such as CS330 and CS361.

Students with an ODU CS network account can use most of the assignments from Summer 2017 as practice problems. If submitted, they will be automatically graded and an email report sent back. (Of course, there will be some outrageous late penalties assessed!)

Upcoming Events
1 Part I. Coding in C++ 05/15/2017 - 06/11/2017
1.1 Orientation
Activities
  1. lecture Read: Course Orientation & Intro 05/15/2017, 8:30PM EDT (tentative)

  2. lab In the lab: Account Setup Due: 05/19/2017

  3. unix Logging In

1.2 Basics
1.2.1 Primitive Data Types and Assignments
Activities
  1. reading Read Chapters 1, “An Overview…”, and 2, "Basic Elements of C++

  2. slides Straight-Line Computation in C++

  3. selfassess Take the self-assessment: Self-assessment (ungraded, on Blackboard)

1.2.2 I/O
Activities
  1. reading Read Chapter 3, “Input/Output”

  2. slides Input/Output (IO)

  3. lab In the lab: Projects in Code::Blocks

  4. selfassess Take the self-assessment: Self-assessment (ungraded, on Blackboard)

1.2.3 Control Flow
Activities
  1. reading Read Chapters 4 and 5, “Control Structures”
  2. slides Operators
  3. selfassess Take the self-assessment: Self-assessment (ungraded, on Blackboard)

  4. asst Assignment: Control Flow

1.3 Function Calls and Parameter Passing
Activities
  1. reading Read Chapter 6, “User-Defined Functions”
  2. slides Functions
  3. slides Parameters and Arguments
  4. selfassess Take the self-assessment: Self-assessment (ungraded, on Blackboard)
  5. unix Files and Directories

  6. lab In the lab: Lab: Supplying Inputs to Programs

  7. asst Functions

1.4 Strings
Activities
  1. reading Read Chapter 7, “User-Defined Simple Data Types, …”

  2. slides The std::string Class

  3. selfassess Take the self-assessment: Self-assessment (ungraded, on Blackboard)
  4. lab In the lab: Lab: I/O, Control Flow, and Strings
1.5 Structuring Data
1.5.1 Basic Arrays
Activities
  1. reading Read Chapter 8, “Arrays and Strings”
  2. slides Basic Arrays
  3. selfassess Take the self-assessment: Self-assessment (ungraded, on Blackboard)
1.5.2 Records (structs)
Activities
  1. reading Read Chapter 9, “Records (structs)”
  2. slides Structured Data
  3. asst Structs

1.6 End of Part I
Activities
  1. asst All assignments from Part I are due by the end of the day 06/09/2017

  2. exam Take the exam: Exam 1 - available on Blackboard in “Exams” section 06/10/2017 - 06/11/2017

2 Part II. Programming in C++ 06/12/2017 - 07/10/2017
2.1 Overview
2.2 The Structure of a C++ Program
2.3 Testing I
2.4 Member Functions
Activities
  1. reading Read Chapter 10, “Classes”
  2. slides Function Members
  3. slides Constructors
  4. asst Member Functions

2.5 Design I: Top-Down Design
Activities
  1. slides Stepwise Refinement

  2. asst Stepwise Refinement

  3. asst [no longer available] Stepwise Refinement (part 2) - refer to the message from the autograder on part 1

  4. project Project: Top-Down Design Due: 07/02/2017

2.6 Filling & Searching Arrays
Activities
  1. reading Read Chapter 12, “Pointers, Classes, …”, through “Shallow versus Deep Copy and Pointers”
  2. slides Pointers and References
  3. reading Read Chapter 16, “Sorting, Searching, …”
  4. slides Patterns: Working with Arrays
  5. slides Working with Ordered Data
  6. unix Basic Unix Commands
  7. asst Arrays

2.7 Design II: Abstract Data Types
Activities
  1. reading Read Chapter 10, “Data Abstraction” …“ through ”Information Hiding"
  2. slides Information Hiding and ADTs
2.8 Programming III: Classes & ADTS
Activities
  1. reading Read Chapter 10, (remainder)
  2. slides Encapsulation
  3. reading Read Chapter 12, “Pointers, Classes, …”, sections “Shallow versus Deep Copy” through “Classes and Pointers: Some Peculiarities”
  4. slides Default and Copy Constructors

  5. asst Working with ADTs

  6. project Project: ADT Interfaces Due: 07/07/2017

  7. slides Common Modifications of Class Members

  8. lecture Read: Project: ADT Discussion 2017-07-08T19:70

  9. project Project: Implementation Due: 08/02/2017

2.9 End of Part II
Activities
  1. asst All assignments from Part II are due by the end of the day 07/08/2017

  2. exam Take the exam: Exam 2 07/09/2017 - 07/10/2017

3 Part III. Programming in C++ (continued) 07/11/2017 - 08/04/2017
3.1 Debugging I: Reproducing Failures"
3.2 Testing II: Scaffolding
3.3 Programming IV: Overloading
Activities
  1. reading Read Chapter 13, “Overloading and Templates”
  2. slides Operator Overloading
  3. slides Copying Data
  4. asst Operator Overloading

3.4 Programming V: Linked Lists
Activities
  1. reading Read Chapter 17, “Linked Lists”

  2. slides Linked Lists

  3. asst Linked Lists

3.5 Testing III
3.6 Programming VI: Recursion
Activities
  1. reading Read Chapter 15, “Recursion”
  2. slides Recursion
  3. slides Trees
  4. asst Trees
3.7 Debugging II: Debugging Tools
3.8 Design III: Class Designer’s Checklist
3.9 End of Part III
Activities
  1. asst All assignments from Part III are due by the end of the day 08/02/2017

  2. exam Take the exam: Final Exam (cumulative) 08/03/2017 - 08/04/2017

Symbol Key
confernece Conference
slides Slides & Lecture Notes
text Textbook readings
exam Exam
lab Lab Assignment
asst Assignment
project Project
unix CS252 (Unix) Assignment

All times in this schedule are given in Eastern Time.