.profile Consulting Inc. presents:

The C Programming Language

Course Description

Introductory, intermediate, and advanced C language features are presented in a series of independently schedulable modules. The complete course presents a comprehensive technical study of the C programming language to a depth that enables production programming. Throughout, we will emphasize portability and programming techniques to achieve it, as well as considering programming style and efficiency issues.

This class provides an excellent foundation in the C language, as well as preparing students to advance to C++ or Java. We will address topics specifically important to object-oriented programming, and by pointing out the limitations of C we'll motivate the need for language features to support object-oriented programming.

Course Structure

The C course modules may be independently scheduled. You choose just the set of modules you need. Each module is 3 to 3-1/2 hours of lecture. Lecture modules may be supplemented by a 3 1/2 hour instructor lead programming lab using your hardware, or you may choose to have students do exercises on their own between modules. If you are local (Colorado front range), the modules can be scheduled flexibly for your convenience.

Audience Background

This course is for anyone who wants to learn the C programming language. No knowledge of C is necessary, but familiarity with programming concepts is assumed.

  1. Introduction and Overview
    A look at the forest before we study the trees.
    • Introduction, Fundamentals
    • Overview of the entire language
    • Example programs
    • Intro to I/O
    • Memory: Stack, Static Area and Heap
  2. Fundamentals
    All the rules for identifiers, data types, operators and statements.
    • Identifiers
    • Data types and constants
    • Operators and expressions
    • Type Promotion
    • Statements
  3. Functions
    Introduction to functions and C's parameter passing mechanism.
    • Functions
    • Prototypes
    • Parameter passing
    • Interface vs. implementation
    • return
  4. Program Structure
    A look at program structure involving multiple files.
    • Variable scope and lifetimes
    • Introduction to the preprocessor
    • Separate compilation
  5. Arrays and Pointers
    Indirect manipulation of data.
    • Arrays
    • Pointers
    • Strings
  6. Structures
    Describing and manipulating user defined collections of data.
    • Structures
    • Pointers to Structures
  7. Collections of Data
    Data structures for representing real life problems.
    • Arrays of structures
    • Arrays of pointers to structures
    • Linked lists and Trees
    • Multidimensional arrays
    • Arrays of pointers to strings
  8. Command Line Arguments and Environment
    Getting information from the user's command line and operating environment.
    • Command line arguments
    • Accessing argv and argc
    • Parsing options with getopt
    • Environment variables
  9. Standard C Library
    A tour of the Standarc C library with a closer look at some features.
    • Structure and interface to the library
    • File I/O
    • Character testing and conversion
    • Dynamic Storage Management
  10. C Preprocessor
    In-depth coverage of fancy preprocessor features.
    • Macros with arguments
    • Conditional compilation
    • Stringizing
    • Token Pasting
    • New predefined constants
    • Assertions
  11. More Data Structures
    Data structures for special purposes.
    • Bit Fields
    • Unions
    • Enumerations
    • Typedefs
  12. Advanced Topics on Functions and Exceptional Control Flow
    Using pointers to functions to implement dynamic binding.
    • Pointers to functions
    • Jump tables and dynamic binding
    • Program termination
    • Registering functions with atexit
    • Writing functions that take a variable number of arguments
    Control flow for exception handling.
    • Setjmp and longjmp
    • Signals
    • Signal handling

Carol J. Meier, M.S.

Pricing and Availability

This course is available on-site at your location. Please call .profile Consulting Inc. at (303) 499-5940 or email us at cjm@profcon.com for pricing, instructor availability and scheduling.

Back to .profile Consulting Inc. Home Page
Last Updated: February 2008.
Questions? Contact cjm@profcon.com
This page printed from www.profcon.com