EECS 22 Advanced C Programming (2015-2016)

EECS 22 Advanced C Programming

(Required for CpE. Selected Elective for EE.)
Catalog Data:

EECS 22 Advanced C Programming (Credit Units: 3) C language programming concepts. Control flow, function calls, recursion. Basic and composite data types, static and dynamic data structures. Program modules and compilation units. Preprocessor macros. C standard libraries. Prerequisite: EECS 10 or EECS20. (Design units: 1)

Required Textbook:
Recommended Textbook:
. Edition, , 1969, ISBN-13 978-0131103627.

. Edition, , 1969, ISBN-13 978-0132990448.

Rainer Doemer
Relationship to Student Outcomes
This course relates to Student Outcomes: EAC a, EAC e, EAC k.
Course Learning Outcomes. Students will:

1. Read given source code in C and understand its behavior (EAC k)

2. Be able to extend existing source code for new features (EAC a, EAC e, EAC k)

3. Be able to write original source code to solve an engineering problem (EAC a, EAC e, EAC k)

4. Be able to organize source code in a modular form (EAC k)

5. Be able to design and implement dynamic data structures using user-defined data types (EAC e, EAC k)

Prerequisites by Topic
  • Introduction to Computing
  • Basic knowledge of assembly language and machine organization
Lecture Topics:
  • Review of C expressions, statements, control flow
  • Primitive, composite, and user-defined data types
  • Functions and parameter passing semantics
  • Variable scope rules (global, static, auto, extern)
  • Pointers and pointer arithmetic
  • Dynamic memory allocation
  • Dynamic data structures: linked lists, stacks, queues, trees
  • Function pointers and callback
  • Preprocessor definitions, conditionals, and macros
  • Program modules, header files, compilation units
  • Compilation and linking process, Makefile
  • C standard library, external libraries
Class Schedule:

Meets for 3 hours of lecture and 2 hours of laboratory each week for 10 weeks.

Computer Usage:

Any computer capable of a unix-like programming environment (csh or bash on Gnu/Linux, MacOS X, or CygWin on Windows), GCC.

Laboratory Projects:


Professional Component

Contributes toward the Engineering Topics for Computer Engineering majors.

Design Content Description


Laboratory Portion:
Grading Criteria:
  • Programming assignment: 50%
  • Midterm examination: 15%
  • Final examination: 35%
  • Total: 100%
Estimated ABET Category Content:

Mathematics and Basic Science: 0.0 credit units

Computing: 0.0 credit units

Engineering Topics: 3.0 credit units

Engineering Science: 2.0 credit units

Engineering Design: 1.0 credit units

August 6, 2014
Senate Approved:
June 12, 2013
Approved Effective:
2013 Fall Qtr