Learn C from Scratch

Learn C from Scratch

This course will help you learn C by helping you understand C fundamentals and the libraries and tools that make up the C ecosystem.

Beginner

90 Lessons

12h

Certificate of Completion

This course will help you learn C by helping you understand C fundamentals and the libraries and tools that make up the C ecosystem.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

1 Project
132 Playgrounds
6 Challenges
13 Quizzes

This course includes

1 Project
132 Playgrounds
6 Challenges
13 Quizzes

Course Overview

Do you want to get a grip on the basic programming concepts from scratch? Do you feel the need to have a better and enhanced understanding of how it all works? Well, you've come to the right place. This course outlines data types, control flow, functions, input/output, memory, compilation, debugging and other advanced topics in a comprehensive, yet concise manner. C is where it all begins and where you should also begin to embark on your programming journey. The incredibly efficient and powerful C languag...Show More

TAKEAWAY SKILLS

Programming Language

C

Learn To Code

Course Content

1.

Why Program in C?

This chapter discusses how programming in C is ideal for tasks requiring efficient solutions or low-level machine access, but also poses additional challenges.
2.

Basic Types and Statements

This chapter introduces fundamental C programming concepts, covering program creation, variables, data types, constants, program statements and variable scope.
3.

Operators and Expressions

This chapter explores operators and expressions in C, covering types, conversions, custom types, and practical exercises to enhance programming skills.
4.

Control Flow

This chapter covers control flow in C, including loops, conditionals, break/continue statements, switch statements, along with hands-on practice exercises.
5.

Functions

This chapter covers functions in C, including syntax, arguments, variable scope, and return statements, as well as their role in effective programming.
6.

Complex Data Types

8 Lessons

This chapter covers arrays and structures in C, giving creative ways to use them as arrays of arrays, arrays with user-defined lengths, and more.
7.

Memory : Stack vs Heap

5 Lessons

This chapter explores how memory is managed in C, focusing on the stack and heap, their characteristics, uses, and appropriate allocation techniques.
8.

Pointers

7 Lessons

This chapter explores how pointers in C enable efficient memory access and dynamic data handling, and how they are crucial for programming well in C.
9.

Strings

5 Lessons

This chapter covers strings in C, including string manipulation, library functions for handling strings, arrays of strings, and hands-on practice.
10.

Input and Output

6 Lessons

This chapter explores input and output in C, including I/O streams and file handling of ASCII and binary files, along with a practical exercise.
11.

Macros and the C Preprocessor

4 Lessons

This chapter discusses the C preprocessor's role in enhancing code efficiency and readability through macros, argument handling, and conditional compilation.
12.

Header Files, Compiling and Linking

3 Lessons

This chapter focusses on organization of C programs through header files, and use of makefiles to streamline the compiling process for enhanced code management.
13.

Debugging

5 Lessons

This chapter discusses debugging in C, using GDB to resolve errors and set breakpoints, avoiding common pitfalls, and balancing code clarity with efficiency.
14.

Speeding Up Your Code

3 Lessons

This chapter discusses how to enhance performance of C code by profiling it for bottlenecks, avoiding slow functions, and using compiler optimization flags.
15.

Advanced Topic: Parallel Programming in C

6 Lessons

This chapter shows how parallel programming in C can be used to enhance performance with tools like POSIX threads, OpenMP, and MPI.

Project: Using a Bootstrapped t-test

Project

16.

Conclusion

1 Lesson

This chapter recaps the main concepts covered in this course like memory management, program flow, debugging, and parallel programming concepts.
17.

Miscellaneous

1 Lesson

This chapter describes how various C libraries extend the language's functionality, from data structures and scientific computations to statistical modeling.
18.

Appendix: Setting Up the Environment

2 Lessons

This chapter covers essential tools and methods needed to successfully set up a C programming environment across different operating systems.

Course Author

Show License and Attributions

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Souvik Kundu

Front-end Developer

Eric Downs

Musician/Entrepeneur

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor