ADV C PROGRAMMING
EECS 22, Course Codes: 18022-18029
Quarter: Fall Quarter 2017


Home | Syllabus | Assignments | Schedule MWF | Schedule TT | MessageBoard | Resources | TA Infos | Videos

Detailed Class Schedule for Monday-Wednesday-Friday Lectures

(last update: December 8, 2017)

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

The Electronic Educational Environment
University of California, Irvine
http://eee.uci.edu/17f/18022/
(viewed times since 8/24/17).