C Programming Proficiency Multi Collection Training
Master the fundamentals of C – the language that powers systems, embedded software, and performance-critical applications.
C is a structured, general-purpose programming language that offers maximum control with minimal commands. Known for its simplicity and efficiency, C is one of the easiest languages to learn and is a perfect starting point for aspiring developers.
The true strength of C lies in its performance, making it a preferred choice for system programming and embedded development. For decades, C has been the backbone of operating systems, firmware, and high-performance applications.
This C Programming Proficiency Multi Collection provides a comprehensive learning journey designed to:
- Build a solid foundation in programming logic
- Understand memory management and low-level operations
- Gain practical experience in writing optimized C code
- Prepare for more advanced languages like C++, Java, or Python
Learning C is more than acquiring a skill — it’s laying the foundation for a successful career in software development and IT programming
This LearningKit with more than 19 hours of learning is divided into three tracks:
Course content
Part 1: Fundamentals of the C Language (3 hours +):
In this track, the focus is on the fundamentals of C where the learners will get familiar with the language features and syntax.
Fundamentals of the C Language: Getting Started
Course: 1 Hour, 23 Minutes
- Course Overview
- Introduction to the C Language
- Differences between the C and C++ Languages
- C Language Compilation Process
- Compilation and Linking Process of the C Language
- Widespread IDEs and Compilers for C
- Setting up C on Mac
- Setting up C on Windows
- Running C Code with Clang
- Understanding the Syntax of C
- Exploring Errors and Warnings in C
- Course Summary
Fundamentals of the C Language: Variables & Datatypes
Course: 1 Hour, 34 Minutes
- Course Overview
- Introducing Variables in C
- Viewing Limits on Shorts, Integers, and Longs in C
- Exploring Signed and Unsigned Variables in C
- Understanding Variable Conventions and Syntax in C
- Understanding Variables and Constants in C
- Using Arithmetic Operators in C
- Using Relational Operators in C
- Performing Equality Checks for Floating-point Types
- Using the and, or, and not Logical Operators in C
- Understanding the ++ Operator in C
- Performing Math Operations with Assignment Operators
- Course Summary
Fundamentals of the C Language: Arrays, Accepting Input, & Returning Output
Course: 47 Minutes
- Course Overview
- Understanding Array Datatypes in C
- Creating Two-dimensional Arrays in C
- Using the printf() Function
- Accepting Input with the scanf() Function
- Using Functions to Accept Input and Return Output
- Reading and Writing Data to Output
- Course Summary
Part 2: Control Structures in C (4 hours +)
In this track, the focus is on building the logical programs using control structures.
Control Structures in C: Getting Started with Control Structures
Course: 1 Hour, 54 Minutes
- Course Overview
- Understanding C Control Structures
- Using if Statements in C
- Using Relational Operators with if Statements in C
- Chaining Relational Operators with Logical Operators
- Exploring Quirks of if Statements in C
- Using if-else Conditional Blocks in C
- Creating Nested if-else Blocks in C
- Exploring Nested if Statements in C
- Introducing the else-if Block in C
- Using the if-else-if Ladder in C
- Understanding the switch Statement in C
- Running Code with the switch Statement in C
- Using switch Statements for Various Situations in C
- Exploring Nuances of switch Statements in C
- Shortening if-else Blocks Using Ternary Operator
- Course Summary
Control Structures in C: Looping & Unconditional Control Structures
Course: 2 Hours, 2 Minutes
- Course Overview
- Introducing C's Boolean Type
- Understanding Loops in C
- Creating for Loops in C
- Experimenting with for Loops in C
- Understanding Quirks of for Loops in C
- Iterating over Arrays in C
- Using Nested for Loops in C
- Creating while Loops in C
- Experimenting with while Loops in C
- Introducing do-while Loops in C
- Using the break Keyword in C
- Creating while Loops with Break Statements in C
- Introducing the continue Operator in C
- Using the continue Operator with while Loops in C
- Skipping to Parts of Code Using goto
- Course Summary
Part 3: Functions and Memory in C (6 hours +)
In this track, the focus is on the functional programming aspects of the C language.
Functions and Memory in C: Getting Started with Functions
Course: 56 Minutes
- Course Overview
- Functions in C
- Create Functions
- Using Library Functions
- Using Utility Functions for Integers and Strings
- Defining and Invoking Functions
- Returning Data from and Accepting Input to Functions
- Comparing a Function's Declaration and Definition
- Course Summary
Functions and Memory in C: Using Variable Scopes, Storage Classes, & Structs
Course: 1 Hour, 31 Minutes
- Course Overview
- Accessing File-scope Variables from Functions
- Creating and Accessing Variables from Inner Scopes
- Scoping Input Argument Variables
- Redefining Global Variables in Local Scopes
- Using the Automatic and Register Storage Classes
- Creating Static Global and Local Variables
- Accessing Variables from Multiple Files
- Creating Static and External Functions
- Using Pass-by-value and Pass-by-reference
- Creating and Instantiating Structs
- Creating and Instantiating Unions
- Representing Categories Using Enums
- Course Summary
Functions and Memory in C: Getting Started with Pointers
Course: 1 Hour, 21 Minutes
- Course Overview
- Memory Allocation Layout in C
- Pointers in C
- Dereference Pointers
- Creating Pointers to Addresses
- Dereferencing and Viewing Addresses of Pointers
- Modifying Values Stored in Addresses through Pointers
- Creating Pointers to Other Pointers
- Dereferencing Pointers and Viewing Memory Addresses
- Creating and Dereferencing Pointers
- Course Summary
Functions and Memory in C: Leveraging Pointers with Arrays & Functions
Course: 1 Hour, 20 Minutes
- Course Overview
- Arrays as Pointers
- Creating and Using Arrays as Pointers
- Differentiating the Nuances of Arrays and Pointers
- Pointer Arithmetic
- Performing Pointer Arithmetic
- Indexing into Arrays Using Pointer Arithmetic
- Entering Pointers as Input Arguments
- Accepting Arrays as Input Arguments to Functions
- Returning Pointers from Functions
- Course Summary
Functions and Memory in C: Allocating Memory on the Heap
Course: 1 Hour, 32 Minutes
- Course Overview
- Stack and Heap Memory
- Allocating Memory on the Heap Using malloc()
- Freeing Memory on the Heap Using free()
- Creating Arrays on the Heap
- Returning Heap Pointers from Functions
- Comparing Dangling Memory and Memory Leaks
- Using the calloc() and realloc() Functions
- Creating Pointer Variables in a Struct
- Creating Pointers to Struct Objects
- Course Summary
Part 4: Advanced Topics in C (4 hours +)
In this track, the focus is on advanced topics of C like File Handling, Preprocessor directives, type conversions.
Advanced Topics in C: Getting Started with File Handling
Course: 2 Hours, 1 Minute
- Course Overview
- Introduction to File Handling in C
- File Modes in C
- Functions Used to Parse Files in C
- Connecting to Files
- Using Different Modes to Parse Files
- Reading Data from Files
- Storing Data from Files in Strings
- Using Scanf() to Read in Structured Data
- Writing Data to Files
- Using r+, w+, and a+
- Using the fprintf() Function
- Writing Out Binary Data
- Reading in Binary Data
- Serializing and De-serializing Structs
- Controlling the Position of a File Pointer
- Moving a File Pointer
- Course Summary
Advanced Topics in C: Managing Code Compilations Using Preprocessor Directives
Course: 1 Hour, 6 Minutes
- Course Overview
- How C Code Is Compiled
- Preprocessor Directives in C
- Understanding the Compiler Output
- Creating Macros
- Creating Function-like Macros
- Using #If, #Elif, and #Endif Preprocessor Directives
- Checking Whether Macros Are Defined
- Controlling Compiler Behavior Using Pragmas
- Course Summary
Advanced Topics in C: Using Strings, Header Files, & Type Conversions
Course: 1 Hour, 45 Minutes
- Course Overview
- Creating Strings in Character Arrays
- Creating Char* Pointers to Represent Strings
- Creating Copies of Strings
- Exploring Errors When Storing Strings in Pointers
- Using the Strcat() Function
- Comparing Equality of Strings
- Introducing Custom Header Files
- Using User-defined Header Files
- Preventing Header Files from Being Included Twice
- Type Conversion in C
- Exploring Implicit Type Conversions
- Performing Type Casts
- Accepting Command Line Input Arguments
- Course Summary
Assessment:
Final Exam: A Complete Guide to Programming in C This assessment will test your knowledge and application of the topics presented throughout the whole C Programming Proficiency Journey.