Computer Education Classes by FCE

Our Philosophy:
Train Animals,

Educate People.

Programming Classes Link HomeUNIX/LINUX Classes

Advanced 'C' Programming

Course Summary

This course is designed to pick up where our introduction to C programming class left off..

Audience:

Unix Systems and Application Programmers, and System Administrators.

Prerequisite Knowledge:

An understanding of basic C language programming, or our Introduction to C programming class.

Terminal Objectives:

Upon successful completion of this course the student will be able to:
Write, compile, execute and debug 'C' language programs using the following:
  • Good program structure
  • Pointers, arrays and dynamic allocation
  • function pointers
  • rules
  • typedefs
  • enumerations
  • unions
  • interrupts
  • multi threading
  • The linker
  • Memory issues
  • Libraries

Course Length:

2 Days with extensive exercises

Course Outline:

  • Introduction
  • Program Structure
    Importance of good structure
    Quality and style
  • Pointers, Arrays & Dynamic Allocation
  • Arrays & pointers; compatibility and incompatibility
  • Function Pointers
    Basics
    Callbacks
    State machine
  • Unscrambling Declarations
    Rules
    Using typedef
  • Enumerations, Structures and Unions
    Enum vs. #define
    Struct layout
    Uses of union
  • Interrupts
    Hardware interrupt models
    Software interrupts
  • Multi-Tasking (Multi-Threading)
    Terminology
    Advantages and disadvantages
    Intertask Communication & synchronisation
  • The Linker
    Memory sections
  • Start-up, Runtime and the Stack
    What happens before main
    What is happening at runtime
    Estimation of stack requirements
  • Dynamic Memory
    Malloc, calloc and realloc
    Variable sized structures
    Dangers
  • Memory Management and Protection
    Memory protection
    MMU
    Segmentation and paging
  • Writing Safer C
    MISRA-C Guidelines
  • OOP with C
    Object-based and objectoriented
    Classes, inheritance and polymorphism
    Associations and aggregation
  • Number Crunching
    Floating-point and fixed-point number systems
    IEEE Standard 754
  • The Standard Library
    Major issues
  • C99
    Summary of significant new features

Send any questions to fredm@famece.com

FAME Computer Education: 4903 SH361 Unit 803, Port Aransas, TX 78373: 956-459-2474