Course Highlights
  • Understand and be able to apply advanced concepts of the C programming language to create advanced C applications.
  • Understand Function and Double Pointers, Recursion, Bit Manipulation, Macros, Signals and loads more (check curriculam on this page for full list).
  • Learn all about threads and networking with Sockets.
  • Master the art of problem solving in programming using efficient, proven methods.
  • Be able to apply advanced C concepts to other programming languages.
  • How to write high quality C code, to make yourself more marketable for higher level programming positions and be apply for real-time/embedded programming positions.
Curriculum

4 Topics
Welcome to Class!
Class Organization
The C99 Standard
The C11 Standard

15 Topics
Overview
Installing the C Compiler (Windows)
Installing CodeLite On Windows
Configuring CodeLite on Windows
Installing the C Compiler (Mac)
Installing CodeLite on Mac
Configuring CodeLite on Mac
Installing CodeLite on Ubuntu Linux
Configuring CodeLite on Ubuntu Linux
Creating a Default CodeLite Project Template (All Versions)
Using the Command Line Interface
Using the Command Line Interface on Windows
Using the Command Line Interface on Mac
Using the Command Line Interface on Linux
Using a Web-based C compiler

3 Topics
Exploring the CodeLite Environment
Creating our first C program
Building/Compiling our first program

6 Topics
Overview
Compiling multiple source files from the command line
Makefiles
Communication between files
Using Header files effectively
Heap and Stack Memory Allocation

6 Topics
Automatic Variables
External
Static
Register
(Quiz)
(Challenge)

11 Topics
The #define statement (constants)
Using typedef
Variable Length Arrays
(Challenge) Variable Length Arrays
Flexible Array Members
(Challenge) Flexible Array Members
Complex number types
(Challenge) Complex number types
Designated Initializers
(Quiz)
(Demonstration) Challenge solutions

4 Topics
const
volatile
restrict
(Quiz)

15 Topics
Binary numbers and bits
(Challenge) Binary numbers and Bits
(Demonstration) Binary numbers and Bits
Bitwise Operators (Logical)
Bitwise Operators (Shifting)
(Challenge) Bitwise Operators
(Demonstration) Bitwise Operators
Bitmasks
Using Bit Operators to pack data
(Challenge) Setting and Reading bits
(Demonstration) Setting and Reading bits
Using Bit Fields to pack data
(Challenge) Using Bit Fields to pack data
(Demonstration) Using Bit Fields to pack data
(Quiz)

8 Topics
The goto statement
(Challenge) The goto statement
The null statement
The comma operator
setjmp and longjmp functions
(Challenge) setjmp and longjmp functions
(Demonstration) Advanced Control Flow
(Quiz)

11 Topics
char functions (input)
char functions (output)
(Challenge) char functions
(Demonstration) char functions
string functions
(Challenge) string functions
(Demonstration) string functions
Formatting functions
(Challenge) Formatting functions
(Demonstration) Formatting functions
(Quiz)

10 Topics
Variadic Functions
va_copy
(Challenge) Variadic Functions
(Demonstration) Variadic Functions
Recursion
(Challenge) Recursion
(Demonstration) Recursion
Inline Functions
_Noreturn Functions
(Quiz)

6 Topics
Overview
Defining a Union
Accessing Union Members
(Challenge) Unions
(Demonstration) Unions
(Quiz)

5 Topics
Overview
Conditional Compilation
Include guards and #undef
#pragma and #error
(Quiz)

7 Topics
Overview
Macros vs. Functions
Creating your own Macros
Preprocessor Operators
Predefined Macros
(Challenge) Macros
(Demonstration) Macros

10 Topics
GCC Compiler Options (part 1)
GCC Compiler Options (part 2)
Debugging with the preprocessor
Debugging with gdb (part 1)
Debugging with gdb (part 2)
core files
Profiling
Static Analysis
(Challenge)
(Demonstration)

9 Topics
Double pointers (pointer to a pointer)
Double pointers (pointer to a pointer) Part 2
(Challenge) Double pointers
(Demonstration) Double pointers
Function pointers
(Challenge) Function pointers
(Demonstration) Function pointers
void pointers
(Quiz)

10 Topics
Overview
Creating a Static Library (archive)
(Challenge) Static Library
(Demonstration) Static Library
Creating a Dynamic Library (Shared object)
(Challenge) Dynamic Library
(Demonstration) Dynamic Library
Dynamically loading a shared object
(Challenge) Dynamic Loading
(Demonstration) Dynamic Loading

8 Topics
Assert
General Utilities (stdlib.h)
General Utilities (stdlib.h) part 2
General Utilities (stdlib.h) part 3
Date and Time functions
(Challenge)
(Demonstration)
(Quiz)

12 Topics
Abstract Data Types
Linked Lists (Overview)
Linked LIsts (Implementation)
(Challenge) Linked Lists
(Demonstration) Linked Lists
Stacks (Overview)
Stacks (Implementation)
Queues (Overview)
Queues (Implementation)
Binary Trees (Overview)
Binary Trees (Implementation)
(Quiz)

8 Topics
Interprocess Communication
Signals (Overview)
Raising a Signal
Handling a Signal using the signal function
Handling a Signal using sigaction
The fork() system call
(Challenge)
(Demonstration)

10 Topics
Overview
Creating a thread
Passing arguments and returning values
Common Thread functions
Thread Synchronization Concepts
Mutexes
Condition Variables
(Challenge)
(Demonstration)
(Quiz)

6 Topics
Overview
The Socket API
Creating a Server Socket
Creating a Client Socket
(Challenge)
(Demonstration)

1 Topic
Course Summary

2 Topics
Source Codes
Bonus Lecture and Information

  Write a Review

Advanced C Programming Course

Go to Paid Course