Week |
Monday |
Wednesday |
Friday |
0
|
|
|
Sep 29
|
Lecture 1: Introduction
|
- Course administration, set up
- Linux server, commands
- Review of HelloWorld.c
|
|
1
|
Oct 2
|
Lecture 2: Review of C programming language
|
- C program structure, compilation
- Lexical tokens, keywords, identifiers
- Basic types, constants, operators
- Formatted input, output
|
|
Oct 4
|
Lecture 3: Review of C operators
|
- Arithmetic, increment, decrement, assignment
- Relational, logical, bitwise operators
- Shift, conditional, other operators
|
|
Oct 6
|
Lecture 4: Review of C control-flow
|
- Sequential, compound statements
- Conditional statements
- Loop and jump statements
- Structured program composition
|
|
2
|
Oct 9
|
Lecture 5: Review of arrays
|
- Arrays
- Multi-dimensional arrays
- Storage in linear address space
|
|
Oct 11
|
Lecture 6: Review of type conversion
|
- Type ranges, type conversion
- Types in expressions, type qualifiers
- Application example PhotoLab
|
|
Oct 13
|
Lecture 7: Review of functions
|
- Function declaration, definition, call
- Passing arguments to function parameters
- Function call graph, stack, trace
- Long jump
|
|
3
|
Oct 16
|
Lecture 8: Recursion, scope, variable lifetime
|
- Recursion
- Local and global scope
- Variable lifetimes
|
|
Oct 18
|
Lecture 9: Scope, storage classes
|
- Scope and variable lifetime
- Memory organization, segmentation
- Storage classes
|
|
Oct 20
|
Lecture 10: Compiler components, translation units
|
- Preprocessor, compiler, linker
- Modules, translation units
- Application examples PhotoLab2
|
|
4
|
Oct 23
|
Lecture 11: Make and Makefile
|
- Shared libraries, PhotoLab3
- Makefile rules, targets, commands
- Advanced 'make' features
|
|
Oct 25
|
Lecture 12: Assertions and debugging
|
- Using and disabling assertions
- Source level debugger GDB
- Data display debugger DDD
|
|
Oct 27
|
Lecture 13: Review, quiz
|
- Review of C programming
- Practice quiz
|
|
5
|
Oct 30
|
Lecture 14: Review, practice
|
- Programming problem
- Programming practice
|
|
Nov 1
|
Midterm Exam, Part 1: Multi-choice test
|
- Syntax and semantics of C programs
- Control flow, functions, recursion
- Linux, translation units, Makefile
|
|
Nov 3
|
Midterm Exam, Part 2: C programming
|
- Header files
- Program files
- Makefile
|
|
6
|
Nov 6
|
Lecture 15: Data structures
|
- Structures, unions
- Bit fields
- Enumerators, typedefs
|
|
Nov 8
|
Lecture 16: Dynamic data structures
|
- Objects in memory, properties, pointers
- Dynamic data structures
- Dynamic memory, malloc(), free()
|
|
Nov 10
|
Holiday: Veteran's Day
|
|
7
|
Nov 13
|
Lecture 17: Dynamic data structures
|
- Dynamic memory allocation
- Dynamic memory access error
- Validating heap memory, valgrind
|
|
Nov 15
|
Lecture 18: Dynamic data structures
|
- Pointer operations, arithmetic
- Pointer-array equivalence
- Linear address space
|
|
Nov 17
|
Lecture 19: Dynamic data structures
|
- Linked lists
- Double-linked list
- Example: List of student records
|
|
8
|
Nov 20
|
Lecture 19 (cont'd): Dynamic data structures
|
- Linked lists
- Double-linked list
- Example: List of student records
|
|
Nov 22
|
Lecture 20: Dynamic data structures
|
- Double-linked list
- Element append, prepend, remove
- Example: List of student records
|
|
Nov 24
|
Holiday: Thanksgiving
|
|
9
|
Nov 27
|
Lecture 21: Dynamic data structures
|
- Double-linked list
- Element insertion
- DDD, data structure visualization
|
|
Nov 29
|
Lecture 22: Dynamic data structures
|
- Pointers to functions
- Sorted double-linked list
- Example: List of student records
|
|
Dec 1
|
Lecture 23: Command line tools and file I/O
|
- Command line arguments argc, argv
- File processing, I/O streams
- Example: Tool to sort student records
|
|
10
|
Dec 4
|
Lecture 24: Advanced C programming
|
- Passing data to/from functions
- Variable argument lists
|
|
Dec 6
|
Lecture 25: Advanced C programming
|
- String operations using pointers
- Standard C library
- Standard math library
|
|
Dec 8
|
Lecture 26: Course wrap up, review
|
- Course wrap up
- Outlook to EECS 22L
- Review quiz
|
|
Final
|
|
|
Dec 15
|
Final Exam:
|
8am - 10am
|
|