EECS 22 Advanced C Programming (2012-2013)

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: EECS20. Computer Engineering majors have first consideration for enrollment. (Design units: 1)

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

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

References:
None
Coordinator:
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:

None

Professional Component

Contributes toward the Engineering Topics for Computer Engineering majors.

Design Content Description
Approach:

None

Lectures:
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

Prepared:
October 8, 2012
Senate Approved:
June 7, 2011
Approved Effective:
2011 Fall Qtr