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

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

                    Password (supplied in class) required to access Savitch slides

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

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

Old midterm exams on-line:  http://www.student.cs.uwaterloo.ca/~cs246/current/exams/   

Old final exam on-line:  http://plg.uwaterloo.ca/~holt/cs/246/2011/old-exam   

Exam emphasis: Items with a star (*) are particularly emphasized, but all material in slides, lectures, tutorials, assignments and lectures may be covered in the exam.

Wk

Tuesday

Buhr slides

Savitch Slides

Most Asgns due 3pm Fri

1

04 Jan

*1. Shell

*1.1 File System

*1.2 Pattern Matching

*1.3 Quoting

*1.4 Shell Commands

 

 

2

11 Jan

*1.5 System Commands

*1.6 File Permission

*1.7 I/O Redirection

*1.8 Programming

 

 

3

18 Jan

2. C++

*2.1 Program Structure

*2.2 First Program

*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: 18 Jan

4

25 Jan

*2.7 Input/Output (12)

*2.7.1 Formated I/O

2.7.2 Unformated I/O

*2.8 Command-line Arguments

*2.9 Preprocessor

2.10 Debugging

*2.11 Dynamic Storage (10)

 

A2: 28 Jan

5

01 Feb

*2.12 Modularization

*2.13 Routine

2.13.1 Arg/Param Passing

2.13.2 Array Param

2.13.3 Overloading (8)

2.14 Routine Pointer

2.15 Object

2.15.1 Obj Member

2.15.2 Obj Operator member

*7. Constructors [2.15.3], tools

8. Operator overloading [2.13.3], friends, refs

 

6

08 Feb

2.15.3 Constructor (7)

2.15.4 Destructor

2.15.5 Copy Constructor

2.15.6 Initialize const

2.16 Random Numbers

2.17 Declaration Before Use

2.18 Encapsulation

* 9. Strings [2.3]

* 10. Pointers, dynamic arrays [2.11]

A3: 11 Feb

7

15 Feb

*2.19 System Modelling, UML (20)

*2.20 Separate Compilation (11)

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

*12. Streams & File I/O [2.7]

 

 

22 Feb

 

Reading week Feb 21-25

 

8

01 Mar

2.21 Inheritance (14) (15) ...

2.22 Has-a, Is-a

Review

Midterm 4:30pm Tue 01 Mar

A4: 04 Mar

9

08 Mar

*2.23 Template, STL (16) (19)

*2.24 Namespace

 

 

10

15 Mar

3. Tools

*3.1 C/C++ Composition

*3.2 Compilation

*3.3 Compiling Complex *Programs, “make”

3.4 Source-Code Management

13. Recursion

*14. Inheritance [2.21]

*15. Polymorphism, virtual fcns [2.21]

A5: 18 Mar

11

22 Mar

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]

 

12

29 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 04 Apr (Mon)

A6: 01 Apr

Page last updated: 29 Mar  2011