- Welcome to Class!
- Class Organization
- The C99 Standard
- The C11 Standard
Quick Facts
particular | details | |||
---|---|---|---|---|
Medium of instructions
English
|
Mode of learning
Self study
|
Mode of Delivery
Video and Text Based
|
Course and certificate fees
Fees information
certificate availability
Yes
certificate providing authority
Udemy
The syllabus
Introduction
Installing Required Software
- Overview
- Installing the C compiler (Windows)
- Installing the C compiler (Mac)
- Installing Code Blocks (Windows)
- Installing CodeLite (Windows)
- Installing CodeLite (Mac)
- Installing Visual Studio Code (Windows)
- Installing Visual Studio Code (Linux)
- Installing Visual Studio Code (Mac)
Starting to Write Code
- Exploring the Code Blocks Environment
- Creating a Project in Code Blocks
- Exploring the Visual Studio Code Environment
- Creating a Workspace and configuring the compiler in Visual Studio Code
Working with Larger Programs
- Overview
- Compiling multiple source files from the command line
- Makefiles
- Communication between files
- Using Header Files effectively
- Heap and Stack Memory Allocation
Storage Classes
- Automatic Variables
- External
- Static
- Register
- (Quiz)
- (Challenge)
Advanced Data Types
- 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
Type Qualifiers
- const
- volatile
- restrict
- (Quiz)
Bit Manipulation
- Binary numbers and bits
- (Challenge) Binary numbers and Bits
- (Demonstration) Binary numbers and Bits
- Bitwise Operators (Logical)
- Bitwise Operators (Shiftingl)
- (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)
Advanced Control Flow
- 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)
Input and Output
- 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)
Advanced Functions Concept
- Variadic Functions
- va_copy
- (Challenge) Variadic Functions
- (Demonstration) Variadic Functions
- Recursion
- (Challenge) Recursion
- (Demonstration) Recursion
- Inline Functions
- _Noreturn Functions
- (Quiz)
Unions
- Overview
- Defining a Union
- Accessing Union Members
- (Challenge) Unions
- (Demonstration) Unions
- (Quiz)
The Preprocessor
- Overview
- Conditional Compilation
- Include guards and #undef
- #pragma and #error
- (Quiz)
Macros
- Overview
- Macros vs. Functions
- Creating your own Macros
- Preprocessors Operators
- Predefined Macros
- (Challenge) Macros
- (Demonstration) Macros
Advanced Debugging, Analysis and Compiler Options
- 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)
Advanced Pointers
- 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)
Static Libraries and Shared Objects
- 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
Useful C Libraries
- Assert
- General Utilities (stdlib.h)
- General Utilities (stdlib.h) part 2
- General Utilities (stdlib.h) part 3
- Date and Time functions
- (Challenge)
- (Demonstration)
- (Quiz)
Data Structures
- 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)
Interprocess Communication and Signals
- 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)
Threads
- Overview
- Creating a thread
- Passing arguments and returning values
- Common Thread functions
- Thread Synchronization Concepts
- Mutexes
- Condition Variables
- (Challenge)
- (Demonstration)
- (Quiz)
Networking (Sockets)
- Overview
- The Socket API
- Creating a Server Socket
- Creating a Client Socket
- (Challenge)
- (Demonstration)
Conclusion
- Course Summary
Extra Information - Source Code and other stuff
- Source Codes
- Bonus Lecture and Information
Articles
Popular Articles
Latest Articles
Similar Courses


Computer Vision for Embedded Systems
Purdue University, West Lafayette via Edx


Problem Solving & System Design Advanced
Scaler Academy
Courses of your Interest

Quantum Computer Systems Design I Intro to Quantum...
UChicago via Edx

Fundamentals of Quantum Information
Delft University of Technology via Edx

Quantum Computer Systems Design II Principles of Q...
UChicago via Edx

Quantum Computer Systems Design III Working with N...
UChicago via Edx
HTML5 Apps and Games
World Wide Web Consortium via Edx

Scaler Data Science & Machine Learning Program - A...
Scaler Academy

Trees and Graphs Basics
CU Boulder via Coursera
Machine Learning Devops Engineer
Udacity

Introduction to Graduate Algorithms
Georgia Tech via Udacity