CS253

CS253: Software Development with C++

Spring 2018

Schedule

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

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

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

Programming paradigms:

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

ios:

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

ostream:

istream:

Fri Mar 23

fstream:

stringstream:

10 Mon Mar 26

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 28
  • Review for midterm
Fri Mar 30
  • Second midterm
11 Mon Apr 2 Subversion Lab Ch. 7: Templates HW5 due Saturday 10:00ᴘᴍ
Wed Apr 4
Fri Apr 6
12 Mon Apr 9 Template Specialization Lab
Wed Apr 11
Fri Apr 13
13 Mon Apr 16 Container Lab HW6 due Saturday 10:00ᴘᴍ
Wed Apr 18
  • Quiz 3
Fri Apr 20
14 Mon Apr 23 Hash Lab
Wed Apr 25
Fri Apr 27
15 Mon Apr 30

UML Lab
Review for final exam

HW7 due Saturday 10:00ᴘᴍ
Wed May 2
Fri May 4
  • Review for final exam
  • ASCSU Surveys
16 Mon May 7
  • Final exam 4:10–6:10ᴘᴍ, same room as lecture

Modified: 2018-01-08T14:00

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