Skip to content

Foundations of C Programming

About This Course

The C programming language is a popular general-purpose language — and for good reason. It runs on nearly every platform and device, and its high‑performance design gives you direct insight into the interaction between software and hardware. C consistently ranks among the top three programming languages worldwide, and its influence shapes much of today’s software ecosystem. Becoming proficient in C will strengthen your understanding of the machine and give you a solid foundational skill to take on your career journey.

In this course, you’ll go beyond the basic mechanics of the programming language and focus on fundamental coding concepts to solve real-world problems using core engineering principles. You’ll learn simple, readable, testable and maintainable control flow and code design, and dive into strategic testing methods that improve code quality and accuracy. In the closing stretch, you’ll choose between one of two tracks: embedded programming or higher-level programming concepts such as abstract data types. 

You’ll complete your assignments in a variety of platforms (Windows, Mac and Linux) and compilers (Visual Studio, Xcode, GNU Compiler Collection, CLion, Eclipse and others). Your instructor will conduct a personalized and professional review that’ll help you master techniques for writing clean and practical code.

▸ You can take this course on its own or use it to fulfill programming prerequisites for the Certificate in C++ Programming or the  Certificate in Embedded & Real-Time Systems Programming.

Designed For

Programmers with at least one year of programming experience who want to learn or expand their knowledge of the C language.

See Requirements

What You’ll Learn

  • All aspects of character I/O and input validation, functions, arrays, pointers, C strings, storage classes, linkage, memory management, file I/O, structures, the preprocessor and advanced data representation

  • Algorithms, data structures, unit testing (open and closed loop) and modular program design

digital badge example

Earn a Digital Badge

After successfully completing this course, you can claim a digital achievement badge that can be shared on LinkedIn and other social media sites. Learn more about digital badges.


This program is intended for professional development and is not designed to meet educational requirements for professional licensure or certification.

Course Sessions

Online Synchronous

September 2026
Dates Sep 1 - Dec 29
Location Online
Instructor Colby O’Donnell
Cost $1,595
Apply Starting Jun 17, 2026
Scheduled Meetings
Date
Day
Time
Location
Sep 1, 2026
Tue
6 – 9 p.m.
Online
Sep 8, 2026
Tue
6 – 9 p.m.
Online
Sep 15, 2026
Tue
6 – 9 p.m.
Online
Sep 22, 2026
Tue
6 – 9 p.m.
Online
Sep 29, 2026
Tue
6 – 9 p.m.
Online
Oct 6, 2026
Tue
6 – 9 p.m.
Online
Oct 13, 2026
Tue
6 – 9 p.m.
Online
Oct 20, 2026
Tue
6 – 9 p.m.
Online
Oct 27, 2026
Tue
6 – 9 p.m.
Online
Nov 3, 2026
Tue
6 – 9 p.m.
Online
Nov 10, 2026
Tue
6 – 9 p.m.
Online
Nov 17, 2026
Tue
6 – 9 p.m.
Online
Nov 24, 2026
Tue
6 – 9 p.m.
Online
Dec 1, 2026
Tue
6 – 9 p.m.
Online
Dec 8, 2026
Tue
6 – 9 p.m.
Online
Dec 15, 2026
Tue
6 – 9 p.m.
Online
Dec 22, 2026
Tue
6 – 9 p.m.
Online
Dec 29, 2026
Tue
6 – 9 p.m.
Online

All times are Pacific Time.

Noncredit Course

You'll earn 5.0 continuing education units (CEUs) for successfully completing this course.