Advanced C Programming
8/31/2020 - 9/2/2020



COURSE TIMES: 9:00am - 4:30pm

Printable version of this course
Register for this course


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.


C programmers who need to advance their coding skills.

C Programming


*Course Cost listed does not include the cost of courseware or lunch, required in your registration. Please refer to your Invoice for the additional cost. If you have any questions, please contact us ( or 207-775-0244). Course subject to minimum enrollment.


Course Objectives
Course Overview
Suggested References

The C Development Environment
The cc(1) Command
Include Files

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)