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 L0101 | Section L0102 |
day 1 | Friday | Thursday |
day 2 | Monday | Friday |
day 3 | Wednesday | Wednesday |
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:
- An array name in an expression context decays into a pointer to
the zeroth element.
- Array subscripting is pointer arithmetic. a[e] is defined as
*(a+e) (may need additional parentheses)
- Pointer arithmetic is automatically scaled by the size of one
array element.
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]