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