ADV C PROGRAMMING
EECS 22, Course Code: 18030
Quarter: Fall Quarter 2014


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

Detailed Class Schedule

(last update: December 11, 2014)

Week Tuesday Thursday
0
Oct 2
Lecture 1: Introduction
  • Course administration, set up, Linux server
  • Review of simple C programs
 
1
Oct 7
Lecture 2: Review of basic types and operators
  • Lexical tokens, keywords, identifiers
  • Basic types, constants, operators
  • Formatted input, output
Oct 9
Lecture 3: Review of control-flow statements
  • Sequential execution, compound statements
  • Conditional execution, if/switch statements
  • Repeated execution, loop statements
2
Oct 14
Lecture 4: Review of arrays
  • Arrays, multidimensional arrays
  • Passing arrays to functions
  • Application example PhotoLab
Oct 16
Lecture 5: Review of functions
  • Function declaration, definition, call
  • Hierarchy of functions, function call graph, stack, trace
  • Long jump, recursion
3
Oct 21
Lecture 6: Scope, Storage Classes
  • Scope, variable lifetimes
  • Memory organization, segmentation
  • Storage classes
Oct 23
Lecture 7: Compiler components, translation units
  • Preprocessor, compiler, linker
  • Modules, translation units, shared libraries
  • Application examples PhotoLab2, PhotoLab3
4
Oct 28
Lecture 8: Make and Makefile
  • Make, Makefile
  • Rules, targets and dependencies
  • Advanced features
Oct 30
Lecture 9: Assertions and debugging
  • Using and disabling assertions
  • Source level debugger GDB
  • Data display debugger DDD
5
Nov 4
Lecture 10: Review
  • Syntax and semantics of C programs
  • Types, expressions, statements, functions, recursion
  • Modules, Makefile, debugging, programming
Nov 6
Midterm Exam: Programming in C
  • Syntax and semantics of C programs
  • Types, expressions, statements, functions, recursion
  • Modules, Makefile, debugging, programming
6
Nov 11
Holiday: Veteran's Day
Nov 13
Lecture 11: Data structures
  • Course administration: midterm exam, review
  • Course administration: midterm course evaluation
  • Structures, unions, enumerators, bit fields, typedefs
Lecture 12: Dynamic data structures
  • Objects in memory, size of objects, pointers
  • Dynamic data structures
  • Dynamic memory allocation, malloc() and free()
7
Nov 18
Lecture 13: Dynamic data structures
  • Pointer operations, arithmetic, comparison
  • Pointer-array equivalence, linear address space
  • Validating dynamic memory accesses, valgrind
Nov 20
Lecture 14: Dynamic data structures
  • Linked lists
  • Double-linked list
  • Example: List of student records
8
Nov 25
Lecture 15: Dynamic data structures
  • Double-linked list
  • Element insertion, deletion
  • Example: List of student records
Nov 27
Holiday: Thanksgiving
9
Dec 2
Lecture 16: Dynamic data structures
  • Pointers to functions
  • Sorted double-linked list
  • Example: List of student records
Dec 4
Lecture 17: 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 9
Lecture 18: Advanced C programming
  • Type conversion, types in expressions, type qualifiers
  • Passing data to/from functions, variable argument lists
  • String operations, standard library functions
Dec 11
Lecture 19: Advanced C programming, Review
  • Course wrap up
  • Outlook to EECS 22L
  • Review quiz
Final
Dec 16
Final Exam:
10:30am - 12:30pm


The Electronic Educational Environment
University of California, Irvine
http://eee.uci.edu/14f/18030/schedule.html
(viewed times since 7/18/14).