Winter 2013 SCHEDULE for CS246: Software Abstraction and Specification, School of Computer Science, Waterloo University

Prof: Ric Holt, DC 2508, ext 37242  holt @ uwaterloo.ca
Web pagehttp://plg.uwaterloo.ca/~holt/cs/246/2013
               Course will generally follow Buhr slides (some use of Savitch slides?) 
Buhr slides:  http://plg.uwaterloo.ca/~holt/cs/246/2013/Slides/buhr 
Savitch slides:  http://plg.uwaterloo.ca/~holt/cs/246/2009/slides/PowerPointCpp3e 

                    Password (supplied in class) required to access Savitch slides

Also useful: C++ Language Tutorial

Optional reading: Savitch, 3rd or 4th  or 5th edition.

On reserve: Savitch,  various  editions, Absolute C++ , DC library. Call number UWD1566  (check call number)

 

Wk

Tuesday

Buhr slides

Savitch Slides

Asgns due dates 3pm (Mostly Fri )

1

08 Jan

1. Shell

1.1 File System

1.2 Pattern Matching

1.3 Quoting

1.4 Shell Commands

 

 

2

15 Jan

1.5 System Commands

1.6 File Permission

1.7 I/O Redirection

1.8 Programming

1.9 Cleanup Script

1.10 Regress Script

 

 

3

22 Jan

2. C++

2.1 First program

2.2 Program Structure

2.3 Declaration ... string (9), reference ...

2.4 Expression

2.5 Control Constructs

2.6 Structured programming

1. C++ basics

2. Flow of control

3. Function basics

4. Parameters, Overloading

5. Arrays

6. Structs & classes

A1: 22 Jan

A1: Deferred to 24 Jan

4

29 Jan

2.7 Type Construction

2.8 Modularization

2.9 Routine

2.9.1 Arg/Param Passing

2.9.2 Array Param

2.10 Input/Output (12)

2.10.1 Formatted I/O

*2.10.2 Unformatted I/O

+2.11 Command-line Arguments

 

A2: 01 Feb

5

5 Feb

+2.12 Preprocessor

+2.13 Assertions

+2.14 Debugging

2.15 Dynamic Storage (10)

7. Constructors [2.15.3], tools

8. Operator overloading [2.13.3], friends, refs

 

6

12 Feb

2.16 Overloading (8)

*2.17 Routine  Pointer

2.18 Object

2.18.1 Obj Member

2.18.2 Obj Operator member 2.17.3 Constructor (7)

2.18.4 Destructor

2.18.5 Copy Constructor

2.18.6 Initialize const

2.18.7 Static member

*2.19 Random Numbers

2.20 Declaration Before Use

2.21 Encapsulation

 9. Strings [2.3]

 10. Pointers, dynamic arrays [2.11]

A3: 15 Feb

 

19 Feb

 

Reading week Feb 18-22

 

7

26 Feb

2.22 System Modelling, UML (20)

2.23 Separate Compilation (11)

11. Separate compilation [2.20] & namespaces [2.24]

12. Streams & File I/O [2.7]

 

8

5 Mar

2.24 Inheritance (14) (15) ...

2.25 Inheritance, Composition

Review

Midterm 05 Mar 

A4: 08 Mar

A4: 11 Mar – no lates

9

12 Mar

2.26 Template, STL (16) (19)

2.27 Namespace

 

 

10

19 Mar

3. Tools

3.1 C/C++ Composition

3.2 Compilation

3.3 Compiling Complex Programs, “make”

3.4 Source-Code Mgmt

13. Recursion

14. Inheritance [2.21]

15. Polymorph, virtual fcns [2.21]

SVN Turner

Git Holt

A5: 22 Mar

11

26 Mar

+4.7 Design Patterns

 

16. Templates [2.23]

17. Linked data structures

18. Exception handling

19. Std template lib [2.23]

20. UML slides [2.19]

 

+Design patterns slides

Testing

4.8 Testing Wallace

 

12

2 Apr

4. Software Engineering

4.1 Software Crisis

4.2 Software Development

4.3 Development Processes 4.4 Software Methodology

4.5 Design Quality

4.6 Design  Principles

SW arch Mancoridis#1

[4.7] Holt CMMI Maturity Holt

Scrum process Holt

RUP Process Holt

 

 

 

 

Classes end 08 Apr (Mon)

A6: 05 Apr

* Material not covered     + Material in less depth

Notes on material that may be covered on W2012 CS246 final exam.  Any material in Buhr’s notes, the lectures, the tutorials or the assignments may be covered.  Buhr’s notes cover much/most of the material but see * and + footnotes above.  CMMI, Scrum, RUP and Design Patterns are covered by Holt’s notes (see above).  SW Arch is covered by Mancoridis#1 slides  (above).  Chapters  14 and 15 of Savitch were used to cover Inheritance and Polymorphism.  The order of some material varied a bit from that listed in above schedule.

 

Page last updated: 1 Jan 2013