CS253: Software Development with C++

Spring 2018

Schedule

Week Date Lecture Lab Reading Homework
1 Mon Jan 15, 2018 MLK Day Commands Lab

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 17, 2018
Fri Jan 19, 2018
2 Mon Jan 22, 2018 Bash Lab Ch. 2: Functions, Arrays, Strings, Param. Passing HW1 due Saturday 10:00ᴘᴍ
Wed Jan 24, 2018
Fri Jan 26, 2018
3 Mon Jan 29, 2018 STL Lab

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

Wed Jan 31, 2018
Fri Feb 2, 2018
4 Mon Feb 5, 2018 Make Lab Ch. 4: Classes HW2 due Saturday 10:00ᴘᴍ
Wed Feb 7, 2018
Fri Feb 9, 2018
5 Mon Feb 12, 2018 Linked List Lab Ch. 5: Operator Overloading
Wed Feb 14, 2018
  • Review for midterm
Fri Feb 16, 2018
  • First midterm
6 Mon Feb 19, 2018
  • 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 21, 2018
Fri Feb 23, 2018
7 Mon Feb 26, 2018 Valgrind Lab
Wed Feb 28, 2018
Fri Mar 2, 2018

Programming paradigms:

8 Mon Mar 5, 2018 Coverage Lab Ch. 8: Abnormal Control Flow HW4 due Saturday March 17, 10:00ᴘᴍ
Wed Mar 7, 2018
Fri Mar 9, 2018
Mon Mar 12, 2018 Spring Break!
Wed Mar 14, 2018
Fri Mar 16, 2018
9 Mon Mar 19, 2018

ios:

new Lab Ch. 9: Input & Output
Wed Mar 21, 2018

ostream:

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 23, 2018

fstream:

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

stringstream:

10 Mon Mar 26, 2018

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 (example)
I/O Lab
Wed Mar 28, 2018
  • Review for midterm
Fri Mar 30, 2018
  • Second midterm
11 Mon Apr 2, 2018 Subversion Lab Ch. 7: Templates HW5 due Saturday 10:00ᴘᴍ
Wed Apr 4, 2018
Fri Apr 6, 2018
12 Mon Apr 9, 2018 Template Specialization Lab
Wed Apr 11, 2018
Fri Apr 13, 2018
13 Mon Apr 16, 2018 Container Lab HW6 due Saturday 10:00ᴘᴍ
Wed Apr 18, 2018
  • Quiz 3
Fri Apr 20, 2018
14 Mon Apr 23, 2018 Hash Lab
Wed Apr 25, 2018
Fri Apr 27, 2018
15 Mon Apr 30, 2018 Iterator Lab HW7 due Saturday 10:00ᴘᴍ
Wed May 2, 2018
Fri May 4, 2018
  • Review for final exam
  • ASCSU Surveys
16 Mon May 7, 2018
  • Final exam 4:10–6:10ᴘᴍ, same room as lecture

User: Guest

Check: HTML CSS
Edit History Source

Modified: 2018-04-29T17:23

Apply to CSU | Contact CSU | Disclaimer | Equal Opportunity
Colorado State University, Fort Collins, CO 80523 USA
© 2018 Colorado State University
CS Building