- Welcome to Class!
- Class Organization
- The C99 Standard
- The C11 Standard
Online
₹ 449 3,499
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
₹ 449 ₹3,499
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