CSC 180: topics covered so far

NOTE! The "weeks" run from Thursday through Wednesday. This one file describes both lecture sections by referring to days 1, 2, and 3 of a given week. These days are (read vertically):

Section L0101Section L0102
day 1FridayThursday
day 2MondayFriday
day 3WednesdayWednesday


Week 1 (Thursday Sept 6 through Wednesday Sept 12):

Day one:
course info sheet, "computer program", "programming language", computer accounts.
Day two:
"algorithm", algorithmic machines, data and data types, "stored program concept", minor preview of data representation. Begin programming: functions (and procedures).
Day three:
Continue functions; named values and variables.

Week 2 (Thursday Sept 13 through Wednesday Sept 19):

Day one:
Continue variables, input, "extern" declarations, linkage.
Day two:
Comments, interfaces and modular design.
Day three:
Functions summary: naming a group of statements, scope, parameterization, return-value. More on operators.

Week 3 (Thursday Sept 20 through Wednesday Sept 26):

Day one:
Boolean expressions, "if" statements.
Day two:
"switch" statements (case statements), tracing and testing, perhaps begin loops.
Day three:
Loops.

Week 4 (Thursday Sept 27 through Wednesday Oct 3):

Day one:
More loops; counted loops; when to use which kinds of loop constructs.
Day two:
Introduction to getchar() and putchar(); assignment operators return a value; autoincrement and autodecrement operators; triangle-printing loop example.
Day three:
Arrays; strings.

Week 5 (Thursday Oct 4 through Wednesday Oct 10):

Day one (section 1 missed a lecture on the holiday Monday; covered this only briefly and quickly in section 1):
High-level languages versus machine languages; machine memory layout; machine language; assemblers.
Day two:
Phases of compilation; separate compilation; portability. Array storage; array element address formula.
Day three:
Introduce pointers:

Week 6 (Thursday Oct 11 through Wednesday Oct 17):

Day one:
age histogram programs and other array examples
Day two:
The C pre-processor (a little). Files: hierarchical filesystems.
Day three:
Finish hierarchical filesystems; mkdir and rmdir; standard input and standard output; i/o redirection.

Week 7 (Thursday Oct 18 through Wednesday Oct 24):

Day one:
File manipulation in C: fopen. Null pointers.
Day two:
File manipulation in C.
Day three:
fgets and sscanf. Command-line arguments (argc and argv). Structs.

Week 8 (Thursday Oct 25 through Wednesday Oct 31):

Day one:
Typedef. More complex loops, including nested loops.
Day two:
Finish nested loops. Early return. "Short circuit behaviour" of && and ||. Data structures in files.
Day three:
Search algorithms.

Week 9 (Thursday Nov 1 through Wednesday Nov 7):

Day one:
Sorting algorithms.
Day two:
Recursion; Towers of Hanoi.
Day three:
The conditional operator (?:), other types, "casts", other type promotions, other literals (constants), enumerated types.

Week 10 (Thursday Nov 8 through Wednesday Nov 14):

Day one:
"lvalue", type qualifiers, sizeof, pointer-related syntaxes.
Day two:
Begin data representation: integers, "two's-complement".
Day three:
Don't compare floating-point numbers for equality. IEEE 754 floating-point standard.

Week 11 (Thursday Nov 15 through Wednesday Nov 21):

Day one:
Finish IEEE 754.
Day two:
Truncation error; round-off error; polynomial evaluation. Begin root-finding.
Day three:
No class; midterm.

Week 12 (Thursday Nov 22 through Wednesday Nov 28):

Day one:
Finish root-finding. Quadrature (numerical integration).
Day two:
Course evaluations. Larger programs: The software life cycle (not finished).
Day three:
Larger programs: Finish the software life cycle; "modules" in C; "make".

Week 13 (Thursday Nov 29 through Wednesday Dec 5):

Day one:
The contract model of programming.
Day two:
Object-oriented programming and C++, and/or dynamically linked data structures (preview of some CSC 190 stuff).
Day three:
Review; final exam information.


[main course page]