CS-2303 Lecture Notes
Below are the lecture notes for CS-2303 (System Programming for Non-majors) for this term. Lecture notes will normally be posted shortly before or shortly after each class. Students are responsible for knowing and understanding all of the lectures, even those that they might miss.
Chapter numbers refer to the course textbook, The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie.
Some topics in the list are not covered in the textbook. It is in the student’s interest to be sure to attend class and listen carefully to those particular topics.
Note: The PowerPoint versions of the lecture notes include dynamic displays. It is best to view them as a slide show in PowerPoint. The HTML pages are provided for those who do not have access to PowerPoint. They capture the slides but not the appearance, disappearance, and other dynamic changes within any slide.
Date |
Topics |
D&D |
K&R |
Lecture |
|
Week 0 |
Introduction |
1 |
1 |
||
|
Introduction (continued) |
|
|
||
|
Differences between C & Java |
2, 3, 4 |
2, 3 |
||
Week 1 |
Digression
on |
|
|
||
|
Functions and Interfaces |
5 |
4 |
||
|
Scope Rules and Storage |
5 |
2, 4 |
||
|
Recursion
and Implementation |
5.7 |
4 |
||
Week 2 |
Symbolic constants in C |
|
|
||
|
Arrays in C
and C++ |
6 |
5 |
||
|
Strings, Arrays, and Pointers |
7, 8 |
5 |
||
|
Structures, Unions, Typedefs |
|
|
||
Week 3 |
Event-driven Simulation |
|
|
||
|
Linked Lists in C and C++ |
12.5 |
|
||
|
Binary
Trees and Big “O” |
12.7 |
6.5 |
||
|
Hash Tables
and Constant |
|
6.6 |
||
|
More about
the C |
13 |
4.4 |
||
|
Bit Fields and Bitwise Operations |
10.9 |
2.9 |
||
|
Accessing Files in C |
11 |
8 |
||
Week 4 |
Introduction to C++ |
18 |
|
||
|
Mid-term Exam |
|
|
|
|
|
Classes and Objects in C++ |
19 |
|
||
|
Miscellaneous C++ topics |
18 |
|
||
Week 5 |
More about Classes in C++ |
19, 20 |
|
||
|
Deeper topics about classes |
20,21 |
|
||
Week 6 |
Derived Classes and Inheritance |
23 |
|
||
|
Operator Overloading |
22 |
|
||
|
More about Operator Overloading |
22 |
|
||
|
Polymorphism |
24 |
|
||
Week 7 |
“Under the hood” of polymorphism |
24 |
|
||
|
Templates |
25 |
|
||
|
Exception Handling |
27 |
|