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

ProfRic Holt, DC 2508, ext 37242  holt @ uwaterloo.ca
Web pagehttp://plg.uwaterlo­o.ca/~holt/cs/246/2012
               Course will generally follow Buhr slides (some use of Savitch slides?) 
Buhr slides:  http://plg.uwaterloo.ca/~holt/cs/246/2012/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  edition.

On reserve: Savitch,  3rd or 4th  edition, Absolute C++ , DC library. Call number UWD1566  (check call number)

 

Wk

Tuesday

Buhr slides

Savitch Slides

Asgns due dates 3pm (Mostly Fri )

1

03 Jan

1. Shell

1.1 File System

1.2 Pattern Matching

1.3 Quoting

1.4 Shell Commands

 

 

2

10 Jan

1.5 System Commands

1.6 File Permission

1.7 I/O Redirection

1.8 Variables

1.9 Arithmetic

1.10 Programming

1.11 Cleanup Script

1.12 Regress Script

 

 

3

17 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: 17 Jan

Deferred to A1: 19 Jan

4

24 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: 27 Jan

5

31 Jan

+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

07 Feb

2.16 Overloading (8)

*2.17 Routine  Pointer

2.18 Object

2.18.1 Obj Member

2.18.2 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: 10 Feb

7

14 Feb

2.22 System Modelling, 2.22.1 UML (20)

2.23 Separate Compilation (11)

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

12. Streams & File I/O [2.7]

 

 

21 Feb

 

Reading week Feb 20-24

 

8

28 Feb

+2.24 Inheritance (14) (15) ...

+2.25 Inheritance, Composition

Review

Midterm 4:30pm Tue 28 Feb

A4: 02 Mar

9

06 Mar

2.26 Template, STL (16) (19)

2.27 Namespace

 

 

10

13 Mar

3. Tools

3.1 C/C++ Composition

3.2 Compilation

3.3 Compiling Complex Programs, “make”

13. Recursion

14. Inheritance [2.21]

15. Polymorphism, virtual fcns [2.21]

A5: 16 Mar

11

20 Mar

*3.4 Source-Code Mgmt

3.5 Debugger

4. Software Engineering

4.1 Software Crisis

4.2 Software Development

4.3 Development Processes

16. Templates [2.23]

17. Linked data structures

18. Exception handling

19. Std template lib [2.23]

CMMI Maturity Holt

Scrum process Holt

RUP Process Holt

SW arch Mancoridis#1

 

12

27 Mar

4.4 Software Methodology

4.5 Design Quality

4.6 Design  Principles

4.7 Design Patterns

4.8 Testing

20. UML slides [2.19] Holt

Design patterns slides  [4.7] Holt

 

 

 

 

Classes end 02 Apr (Mon)

A6: 30 Mar

* 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: 20 Mar 2012