CS253

CS253: Software Development with C++

Spring 2017

Schedule

Week Date Lecture Lab Reading Homework
1 Mon Jan 16, 2017 MLK Day

No lab this week

All reading is from Weiss
Ch. 0: Introduction
Ch. 1: Basic Types & Control Structures

Do the reading before class for the week.

HW0 due Saturday 10:00ᴘᴍ
Wed Jan 18, 2017
Fri Jan 20, 2017
2 Mon Jan 23, 2017 Bash Lab Ch. 2: Functions, Arrays, Strings, Param. Passing HW1 due Saturday 10:00ᴘᴍ
Wed Jan 25, 2017
Fri Jan 27, 2017
3 Mon Jan 30, 2017 STL Lab

Ch. 3: Pointers, References, new & delete
Section 11.5: Cmd-Line Arguments

Wed Feb 1, 2017
Fri Feb 3, 2017
4 Mon Feb 6, 2017 Make Lab Ch. 4: Classes HW2 due Saturday 10:00ᴘᴍ
Wed Feb 8, 2017
Fri Feb 10, 2017
5 Mon Feb 13, 2017 Linked List Lab Ch. 5: Operator Overloading
Wed Feb 15, 2017
  • Review for midterm
Fri Feb 17, 2017
  • First midterm
6 Mon Feb 20, 2017
  • Review the midterm
  • Inheritance (Is-a) vs. composition (Has-a)
  • Inheritance access
  • typedef for base class alias instead of super
  • Calling methods in base class (example):
    • Base class in initialization list
    • copy ctor in derived class calls copy ctor in base class
    • operator= in derived class calls operator= in base class (example)
  • Slicing
Debugging Lab Ch. 6: Inheritance HW3 due Saturday 10:00ᴘᴍ
Wed Feb 22, 2017
Fri Feb 24, 2017
7 Mon Feb 27, 2017 Valgrind Lab HW4 due Saturday 10:00ᴘᴍ
Wed Mar 1, 2017
Fri Mar 3, 2017

Programming paradigms:

8 Mon Mar 6, 2017 Coverage Lab Ch. 8: Abnormal Control Flow
Wed Mar 8, 2017
Fri Mar 10, 2017
Mon Mar 13, 2017 Spring Break!
Wed Mar 15, 2017
Fri Mar 17, 2017
9 Mon Mar 20, 2017

ios:

new Lab Ch. 9: Input & Output HW5 due Monday March 27 10:00ᴘᴍ
(late due to unavailable website)
Wed Mar 22, 2017

ostream:

  • «ostream::put(cpp)» / «ostream::write(cpp)»
  • «ostream::seekp(cpp)» / «ostream::tellp(cpp)»
  • Manipulators (formatted output example)

istream:

  • «istream::get(cpp)» / «istream::unget(cpp)» / «istream::peek(cpp)»
  • istream::get() vs. cin >> c
  • «istream::getline(cpp)»
  • «istream::ignore(cpp)»
  • «istream::seekg(cpp)» / «istream::tellg(cpp)»
Fri Mar 24, 2017

fstream:

  • Misuse of «ifstream::open(cpp)»

stringstream:

10 Mon Mar 27, 2017

RAII/CADRe:

  • It’s a Design Pattern
  • Acquisition - Use - Release
  • Use RAII when you think “Don’t forget to ...”
  • Simplicity of description/state
  • Immune to early return/throw
  • Examples:
    • unique_ptr (example)
    • file handle / socket / database / other OS resources
    • mutex (lock)
    • list membership

Mixins:

  • Is-a, but not really
  • Make the ctor/dtor protected
  • Override new/delete
  • Noncopyable / noninstantiatable
  • Loudness for debugging
  • Timestamp
  • ID number
  • Serialization
  • Alternative ways to achieve the same goal
I/O Lab
Wed Mar 29, 2017
  • Review for midterm
Fri Mar 31, 2017
  • Second midterm
11 Mon Apr 3, 2017 Subversion Lab Ch. 7: Templates
Wed Apr 5, 2017
Fri Apr 7, 2017
12 Mon Apr 10, 2017 STL, continued Template Specialization Lab HW6 due Saturday 10:00ᴘᴍ
Wed Apr 12, 2017
Fri Apr 14, 2017
13 Mon Apr 17, 2017 Container Lab
Wed Apr 19, 2017
  • Quiz 3
Fri Apr 21, 2017
14 Mon Apr 24, 2017 Hash Lab HW7 due Saturday 10:00ᴘᴍ
Wed Apr 26, 2017
Fri Apr 28, 2017
15 Mon May 1, 2017

UML Lab
Review for final exam

HW8 due Saturday 10:00ᴘᴍ
Wed May 3, 2017
Fri May 5, 2017
  • Review for final exam
  • ASCSU Surveys
16 Mon May 8, 2017
  • Final exam 7:30–9:30ᴀᴍ, same room as lecture

Modified: 2017-05-12T22:30

User: Guest

Check: HTML CSS
Edit History Source
Apply to CSU | Contact CSU | Disclaimer | Equal Opportunity
Colorado State University, Fort Collins, CO 80523 USA
© 2015 Colorado State University
CS Building