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 |
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.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.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”
|
13.
*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.
18.
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 |