Course Code: 1286

Advanced C Programming

Class Dates:
3 Days
Class Time:


  • Course Overview
  • The C Programming Language was originally created to write the UNIX operating system. It quickly turned into a multi-purpose language used by all types of programmers for a wide variety of applications. C is a small language that can be learned quickly. It is highly structured and modular, supporting both small and large programs equally well. This course fills the gap between an introductory course in C and more advanced application programming. Students learn about basic and derived data types, parameter passing, standard and low level file I/O, working with malloc and calloc, the memory layout of C programs, and linked lists.

  • Audience
  • C programmers who need to advance their coding skills.


  • C Programming

Course Details

  • Introduction
  • Course Objectives
  • Course Overview
  • Suggested References
  • The C Development Environment
  • The cc(1) Command
  • Include Files
  • Libraries
  • Basic and Derived Data Types in C
  • Simple C data types
  • Integral data types
  • Floating point types
  • Derived data types
  • Array data types - single and multi-dimensional
  • Structure data types
  • Simple pointer types
  • Pointers to structures/multiple pointers
  • Pointers to functions
  • The const qualifier
  • Bit operators
  • Using typedef
  • Function: Calling, Passing, and Returning Values
  • Anatomy of a function
  • Parameter Passing - pass by value
  • Parameter passing - pass by reference
  • Standard I/O
  • Stabdard I/O streams
  • File access
  • Formatted I/O
  • Strinf I/O
  • File positioning operations
  • Block I/O
  • File access
  • Direct I/O
  • File positioning
  • Error handling
  • Memory Allocation with malloc and calloc
  • Dynamic memory allocation overview
  • malloc(), calloc()
  • realloc(), free()
  • Structure Pointers
  • Array of pointers to structures
  • Memory Organization and the Scope of Variables
  • Command line arguments (argc, argv)
  • The memory layout of a C Program
  • The stack segment
  • The heap segment
  • Data Structures - Linked Lists
  • Array limitations
  • Linked lists
  • List of operations - formation
  • List of operations - delete
  • Appendix A
  • Debugging Techniques
  • Debugging Hints
  • Debugging with Pre-Processing Directives
  • Symbolic Debuggers
  • Appendix B
  • Coding from Pseudo Code
  • Project Header Files
  • Project Source Files
  • Project Tracking (Bookkeeping)
  • Appendix C
  • Overview of the Make Utility
  • Using the Make Utility
  • Simple Makefile Commands
  • Appendix D
  • Preparing to Use a Debugger
  • Project Header Files
  • Project Source Files
  • Project Tracking (Bookkeeping)