We may earn an affiliate commission when you visit our partners.
Vlad Budnitski

This course has been optimized to meet the requirements and demands of students who are eager to learn the C Programming Language in the most easy and attractive manner. Including handpicked coding materials and over 100 exercises with full video solutions - this bestseller course is expected to provide you with everything you need to get started (for beginners) as well as provide you with beneficial knowledge if you're working at High-tech industry (especially in the Embedded, Microcontrollers, Cyber, and other domains).

About the Instructor

Read more

This course has been optimized to meet the requirements and demands of students who are eager to learn the C Programming Language in the most easy and attractive manner. Including handpicked coding materials and over 100 exercises with full video solutions - this bestseller course is expected to provide you with everything you need to get started (for beginners) as well as provide you with beneficial knowledge if you're working at High-tech industry (especially in the Embedded, Microcontrollers, Cyber, and other domains).

About the Instructor

  • BSc in Computer Science & BSc in Electronic Engineering

  • Practical experience working as an Engineer at some of the leading High-tech companies such as “Mobileye - an Intel Company” as well as a Cyber Systems Startup.

  • Over 3 years of experience working as a lecturer in the Academy - teaching students from 3 different faculties.

This combination of the knowledge and experience gained over the years made me feel eager and passionate about sharing my knowledge with students.

It got me wonder - why not help so many students to learn c programming in an easy and fun way? I mean learning the c language can feel like a nightmare.. but C can be actually kind of fun - if we do it right.

And that's what I aim to achieve - Teaching you "C Programming" in plain English.

So I hope you're ready for our C Programming Language Bootcamp Journey.  :)

Last Update 2024 - Who's this course for?

  1. C students in college/university.  Has been optimized to meet the needs of the beginner students.

  2. High-tech employees, especially but not limited to, at the Embedded Systems, Microcontrollers, and Cyber Security domains.

  3. Absolute beginners and hobbyists who want to get the first taste of programming using the c language.

So if you belong into one of these - then I think you're

What is C Programming Language?

C Language is the “mother” of all programming languages.

C first appeared almost 50 years ago and has been used for the development of:

  • Operating Systems - C as its core.

  • Core parts of famous databases (such as Oracle and MySQL) - Yes, even MySQL was developed using C.

  • Cyber-Systems - I personally was programming C to develop a cyber system.

  • Smart Homes & Smart Cities

  • Systems including Sensors and Micro Controllers (especially in Embedded Systems) - Common usage to programming an MCU using C Programming  Language.

Also, if you're familiar with Python Programming Language - then you better know that a lot of Python efficient libraries are actually implemented in C.

“C Language is definitely here to STAY. ”

C is

Also, it’s considered that by learning C Programming you’re definitely going to make your programming fundamentals

And finally to answer a question that a lot of you may have - there is a :)

So C Programming - usually pays off.

[C Programming - Course Information]

In this course, you’ll learn the fundamentals of programming using C Language - including different concepts such as:

  1. Programming Concepts (General + C Language)

  2. Input & Output (what it is and how it can be used in C)

  3. How variables work

  4. Conditions & Control Flow (controlling the execution flow of a C Program)

  5. Different types of Loops (including For, While, and Do-While in C)

  6. Functions

  7. Arrays in C

  8. Pointers

  9. Using Strings in C Programming

  10. Recursions (Concepts + C Usage)

  11. Constants

  12. Unions

  13. And maybe some additional sections in C Programming Language

Each and every one of the major topics are being taught with plenty of exercises (of course, in C Programming Language) with full video solutions.

[Sections Structure]

At every section, you will be given with:

  1. Introduction to the General Concept without the C language.

  2. Implementing Concept in C Programming Language.

  3. Hands-On Exercises Challenges +

  4. Cool Milestones such as:

    • Developing a Calculator in C.

    • Developing your own Weather Station in C.

    • C Password Guess Program.

    • And many more "c" Cool Milestones that will make you feel how the Theoretical and Practical knowledge are getting together.

  5. Additional Sections - OPTIONAL.

By the end of the course - you should be able to analyze and solve various c programming problems on your own.

So if you're a Total Beginner, a student or you're just curious about the topic – this course is

*Also, if you're a Programmer who wants to make a Career Change to C Programming (from Python Programming, JavaScript and Web Development, C#, or any other).

Should you enroll?

If you're still unsure - then no worries. I'm so confident about my course and what it will teach you so that you get Udemy's 30-day money-back guarantee.

Doubts - Out. Enroll "C" - In.

Let's go.

Enroll now

What's inside

Learning objectives

  • Fundamentals of programming
  • Summarized & concise material [saving tons of time!]
  • Over 100 practical exercises!
  • Animated explanation & illustrations - explaining "hard topics" easy
  • C programming language concepts & usage
  • C program structure
  • Using input & output functions
  • Usage of variables - declaration | initialization | access
  • Casting
  • Control flow - if | if-else | switch-cases
  • Logical operators
  • Loops - while | do-while | for
  • Functions - declaration | definition | usage
  • 1d arrays - why do we need them & how they can be used?
  • 2d arrays - matrices
  • Introducing "#define"
  • Pointers - time to sweat! - why | when | how
  • Strings - creating, reading, manipulating & printing
  • Recursion - concept | usage
  • Constants
  • Unions
  • Show more
  • Show less

Syllabus

Greetings!

An introductory video for students in my Complete C Programming Course for Absolute Beginners!

C Programming Course - Curriculum:

  1. Fundamentals of Programming in C (What is C? Getting Started!)

  2. Summarized & Concise Material [Saving TONS of Time!]

  3. OVER 100 Practical Exercises in C Programming!

  4. Animated Explanation & Illustrations - Explaining "Hard Topics" EASY

  5. C Programming Language Concepts & Usage

  6. C Program Structure

  7. Using Input & Output Functions in C  Language

  8. Usage of Variables - declaration | initialization | access [Variables in C Language]

  9. Casting in C

  10. Control Flow - if | if-else | switch-cases

  11. Logical Operators in C Programming

  12. Loops - while | do-while | for [C Programming loops]

  13. Functions - declaration | definition | usage [Functions in General & C Programming]

  14. 1D Arrays - Why do we need them & How they can be used? [Arrays in C Language]

  15. 2D Arrays - Matrices [Matrix in C]

  16. Introducing "#define"

  17. Pointers - Time to Sweat! - Why | When | How - [Basic Pointers in C Programming]

  18. Strings - Creating, Reading, Manipulating & Printing [Strings in C Language]

  19. Recursion - Concept | Usage [Recursion usage in C Language]

  20. Constants

  21. Unions

Read more
Introduction to Programming | Concepts you must know | User & Developer | Computer as a Unit | Computer Additional Common Parts | Programming Languages

Introduction to User & Developer concept in Programming in General

“Used with permission from Prezi Inc.”

What is a Computer as a Unit? How will it be used in our programming course?

“Used with permission from Prezi Inc.”

Computer Additional Common Parts which are going to be used for the development of our programs.

“Used with permission from Prezi Inc.”

“Used with permission from Prezi Inc.”

Installing Integrated Development Environment

Introducing different IDEs for the development process using C Programming in our course.

Among the IDEs there are:

- CodeBlocks for C.

- Visual Studio for C.

- CodeLite using C Programming Language and Compiler.

- Visual Studio Code.

- others.

Download & Install CodeBlocks for C Programming Language Development

CodeBlocks - Start New Project
Online Compilers Solution - Just Get Started!
NOTE for MAC Users or Users who didn't manage to install IDE!
[Optional: Setup for MAC Students]
General Introduction to XCode for Mac Users
Download & Install XCode on MAC
Making Sure "gcc" is Installed
Download & Install CodeBlocks - MAC
Starting a new CodeBlocks Project - MAC
Additional IDEs Setup [Optional Section]

Downloading Visual Studio IDE for Windows

Getting stated working with Visual Studio in C Programming Language

Visual Studio Code Windows - Download & Install
Visual Studio Code Windows Official - Getting Started
Eclipse - Getting Started using C (Windows)

Downloading and Installing CodeLite for Windows, including:

- MinGW (Minimalist GNU for Windows)

- LLVM (Low-Level Virtual Machine)

Getting started by creating and working on projects in C Programming Language

Creating our First Program in C Language and practicing with full exercises including solution video in C Programming
C Program Structure
Welcome printf() function!
Challenge #1 - Print Your First Name And Last Name!
Challenge #1 Solution
Challenge #2 - Print Your Full Name, Age, And Gender!
Challenge #2 Solution
Challenge #3 - Print An "Isosceles Triangle"
Challenge #3 Solution
End of Section: Practice Your Knowledge!
What are "Comments" and how they can be used in our C Programming Language + What is "Format Specifications" and different Format Specification Types + C Programming First Milestone
Comments in C Language
Format Specifications in C - Why And How They Should Be Used
Format Specification Exercise - Download The PDF File
Milestone #1 - Building Your First Calculator A
Milestone #1 - Solution! [Make sure to Compare with your answers]
Practical Exercises & Solutions - Part #1: Basics of C Programming
Print Rectangle of Asterisks - Question
Print Rectangle of Asterisks - Solution
Print Asterisks Pattern - Question
Print Asterisks Pattern - Solution
Print X Shape - Question
Print X Shape - Solution
Print Your Birth Year - Question
Print Your Birth Year - Solution
Variables | Variables in C | Casting | Swap Functionality Implementation
Variables Introduction
Variables - General Concept In Programming
Variables - Complete Usage in C Language
Variables Code Example #1
Challenge #1 - Find your Year of Birth!
Challenge #1 - Solution
Challenge #2 - Calculate Rectangle's Area
Challenge #2 - Solution
Practical Assignment: Calculate Rectangle's Perimeter
Casting Introduction
Casting in C Programming Language
Challenge #3 - Calculating your Average Grade
Challenge #3 - Solution
Milestone 2 - Weather Station A

Swap without 3rd Variable?! Is it really possible?

I want to let you know that I’ve recently added a new Interview Question that may actually interest you - "Swap without 3rd Variable"

A very common question that is being asked in a lot of tech interviews - So you better check it out in the “Interview Questions” section of this course.

Oh, and there is also a FULL SOLUTION that I've added just for you :)

Enjoy!

Go To: ---> [Interview Questions] ---> Swap without 3rd Variable


SWAP in C Language
Basic Practical Assignment: Implement Swap between 2 Floating Point Numbers
Variables - Summary! You're doing GREAT!
Practical Exercises & Solutions - Part #2: Variables & Data Types
Arithmetic Sequence - General Introduction and Explanation
n-th Term of Arithmetic Sequence - Question
n-th Term of Arithmetic Sequence - Solution
Sum of Arithmetic Sequence - Question
Sum of Arithmetic Sequence - Solution
Employee Salary Calculator - Question
Employee Salary Calculator - Solution
Finding a Driving Time - Question
Finding a Driving Time - Solution
Convert Seconds into Hours, Minutes, and Seconds - Question
Convert Seconds into Hours, Minutes, and Seconds - Solution
Removing Decimal Part from an Integer - Question
Removing Decimal Part from an Integer - Solution
Sum of Triple Digits - Question
Sum of Triple Digits - Solution
Print Reversed Number - Question
Print Reversed Number - Solution
Distance Between 2 Points - Question
Distance Between 2 Points - Solution
Efficient Calculation Example - Question
Efficient Calculation Example - Solution
This section is meant for your practice and to see how much have you learned in previous sections. It contains a couple of quizzes and questions to let you see if you have to make some recap or not.
Introduction to First C Programming Quiz

Your First Quiz in the Course!

This quiz covers the basics of programming.

Let me know if it was hard/easy - so things can be adjusted as we go.

Make sure to pass this quiz before proceeding to the next section and take a look at it once in a while since it's going to be constantly UPDATED with additional questions to help you improve your programming skills!

Good Luck!!

That's the second Quiz in your C Programming Course.

In this quiz, you will be tested with your knowledge of variables in general as well as also the usage of a variable in C Programming Language.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Includes over 100 practical exercises with video solutions, providing ample opportunity for hands-on learning and skill development, which is helpful for new programmers
Instructor has experience working as an engineer at leading high-tech companies, offering practical insights into real-world applications of C programming, which is useful for students and employees
Course uses animated explanations and illustrations to explain complex topics, making it easier for beginners to grasp fundamental programming concepts, which is helpful for new programmers
Covers a wide range of C programming concepts, including input/output, variables, control flow, loops, functions, arrays, pointers, strings, recursion, constants, and unions, which are essential for students and professionals
Includes milestones such as developing a calculator and weather station in C, allowing learners to apply theoretical knowledge to practical projects, which is useful for students and professionals
Teaches the '#define' preprocessor directive, which is a common feature in C programming for creating constants and macros, which is useful for C programmers

Save this course

Save C Programming Bootcamp - The Complete C Language Course to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in C Programming Bootcamp - The Complete C Language Course with these activities:
Review Basic Programming Concepts
Solidify your understanding of fundamental programming concepts before diving into C-specific syntax and features.
Browse courses on Programming Fundamentals
Show steps
  • Review the concepts of variables, data types, and operators.
  • Practice writing simple algorithms using pseudocode or flowcharts.
  • Familiarize yourself with basic control flow structures like if-else statements and loops.
Read 'C Programming Absolute Beginner's Guide'
Supplement the course material with a beginner-friendly guide to C programming.
Show steps
  • Read the first few chapters covering basic syntax and data types.
  • Try the example code provided in the book.
  • Work through the exercises at the end of each chapter.
Implement basic algorithms in C
Reinforce your understanding of C syntax and control flow by implementing common algorithms.
Show steps
  • Write C code to implement sorting algorithms like bubble sort or insertion sort.
  • Implement search algorithms like linear search or binary search in C.
  • Practice working with arrays and pointers by implementing data structures like linked lists or stacks.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a C Programming Cheat Sheet
Consolidate your knowledge of C syntax and concepts by creating a reference guide.
Show steps
  • Compile a list of essential C keywords and syntax rules.
  • Include examples of common C programming constructs like loops, functions, and pointers.
  • Organize the cheat sheet in a clear and concise manner for easy reference.
Develop a Simple Text-Based Game in C
Apply your C programming skills to a practical project that reinforces key concepts.
Show steps
  • Design the game mechanics and user interface.
  • Implement the game logic using C programming constructs.
  • Test and debug the game to ensure it functions correctly.
  • Add features to enhance the gameplay experience.
Contribute to a C Open Source Project
Gain practical experience and contribute to the C programming community.
Show steps
  • Find a C open source project on platforms like GitHub.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
Read 'The C Programming Language' by K&R
Deepen your understanding of C with the definitive guide written by the language's creators.
Show steps
  • Read the chapters on pointers and memory management carefully.
  • Work through the examples and exercises in the book.
  • Compare the book's explanations with the course material to gain a more complete understanding.

Career center

Learners who complete C Programming Bootcamp - The Complete C Language Course will develop knowledge and skills that may be useful to these careers:
Microcontroller Programmer
A Microcontroller Programmer writes code that is used to control microcontrollers in various electronic devices, often utilizing C. This course offers a solid introduction to C concepts, such as variables, control flow, and functions. It also addresses arrays, pointers, and strings, all of which are essential when working with lower-level hardware. You will be prepared to write C programs and to implement control logic for microcontrollers used in diverse applications ranging from industrial automation to consumer electronics. The course's hands-on approach to learning helps you achieve a practical mastery of C.
Embedded Systems Engineer
An Embedded Systems Engineer designs, develops, and tests software and hardware for embedded systems, like those in cars, appliances, and industrial equipment. This role frequently involves programming in C, especially for microcontrollers and real-time operating systems. This course, with its focus on fundamental C concepts, including input/output, variables, control flow, loops, functions, arrays, pointers, and strings, provides a strong foundation for working with embedded systems. The course's hands-on exercises and projects, like building a weather station, will give you practical experience that directly translates to real-world engineering challenges.
Firmware Engineer
A Firmware Engineer develops the low-level software that controls a device's hardware. This role involves writing and debugging code in C for microcontrollers and other embedded systems. This course's comprehensive coverage of C programming, including pointers, memory management, and hardware interaction, is crucial for success as a firmware engineer. The course provides a solid grounding in the fundamentals of C, while also providing practical experience that is needed to design, develop, and maintain firmware code. The projects and exercises will get you ready for the real-world challenges of firmware development.
Cybersecurity Engineer
A Cybersecurity Engineer focuses on protecting computer systems and networks from threats. This often involves programming in C for low-level tasks, network programming, and security tool development. This course will help you build crucial foundational knowledge of C programming, including memory management, data structures, and program control flow, all of which are essential for building robust security solutions. The course emphasizes understanding the language from the ground up, which is crucial for cybersecurity engineers who often need to analyze code at a low level to identify and resolve potential vulnerabilities.
Operating Systems Developer
An Operating Systems Developer works on the core software that manages a computer's hardware and software resources. This work often requires in-depth knowledge of C, as many operating systems are written in C. This course provides an entry point, equipping learners with the essential C programming skills necessary. This includes learning about pointers, memory management, and system calls, all of which are vital for creating and contributing to operating systems. The course provides a strong base that a prospective Operating Systems Developer can build upon.
Software Developer
A Software Developer designs, develops, and tests software applications. While many developers use high-level languages, a strong understanding of C is still invaluable, especially for performance-critical tasks or for working on operating systems components. This course introduces fundamental C programming concepts, including variables, loops, arrays, and pointers. If you have an interest in creating applications closer to the hardware level or want to understand how the operating system works, this is a great place to start. The course's structured approach helps build a solid foundation in programming that is portable to other languages.
Robotics Engineer
A Robotics Engineer designs, builds, and programs robots. This role requires a deep understanding of C, particularly for low-level control, sensor integration, and embedded systems programming. This course may be useful to a prospective Robotics Engineer by introducing the fundamentals of C programming. It covers key concepts like control flow, loops, pointers, and data structures. The exercises and project-based learning will provide valuable hands-on experience that can be directly applied to robotics projects, particularly in the realm of embedded controls.
Automation Engineer
An Automation Engineer designs and implements automated systems, which can include industrial processes or software systems. This often involves writing code to manage sensors, actuators, and control systems. This course may help those in pursuit of this role by providing fundamental skills in C, which is used in many embedded systems. The course covers important concepts such as input/output, control flow, and data structures that are crucial for automation projects. The hands-on exercises will help you apply these concepts to practical scenarios.
Game Developer
A Game Developer creates video games, and a subset of those developers utilizes C for game engines or performance-critical game logic that requires fine-grained control over hardware resources. This course, while not game-specific, introduces the building blocks: C programming concepts including loops, functions, arrays, and pointers. This course also provides a hands-on approach that is transferrable to the challenges of game development even though game engines utilize higher-level languages. This gives game developers the ability to optimize performance when needed.
Database Developer
A Database Developer designs, implements, and maintains databases. While many database tools use high-level languages, the core of many database systems is still written in C. This course helps you build a foundational understanding of C, which is useful to have, if you aspire to work on the core components of database systems. The course's focus on fundamentals such as memory management, data structures, and algorithmic thinking will be valuable, even if you ultimately work with a different language.
Technical Support Engineer
A Technical Support Engineer provides technical assistance to customers or internal users. While coding may not be the primary responsibility, familiarity with programming languages like C provides an advantage when diagnosing low-level issues and understanding system behaviors. This course may be useful for a prospective Technical Support Engineer by providing a practical knowledge of C, which is the language of many operating systems. This understanding allows Technical Support Engineers to tackle a broader range of technical challenges, from debugging to enhancing system performance.
Systems Analyst
A Systems Analyst evaluates and optimizes computer systems. This often involves analyzing code, understanding system architecture, and recommending improvements. While not a pure coding role, a solid understanding of a language like C is useful. This course may be helpful by providing a foundation in programming concepts, which can enable a more thorough analysis. The course's focus on fundamentals like program structure, control flow, and data handling provides key insights into how systems operate at a lower level. This, in turn, helps Systems Analyst better assess and optimize systems.
Quality Assurance Engineer
A Quality Assurance Engineer tests software and hardware to ensure they are of high quality. This can involve writing test programs and scripts. Although not the primary focus of this role, familiarity with a language like C may help in testing and understanding system software. This course may help a prospective Quality Assurance Engineer gain a better understanding of the coding process, which can result in more effective testing. The course's focus on the C language's fundamental concepts, including program control flow and data structures, will enhance testing efforts.
Network Engineer
A Network Engineer designs, implements, and manages computer networks. Although much of the daily work involves configuring network devices, a good grasp of low-level programming can be helpful for network analysis and security. This course may help a Network Engineer by giving them enough understanding of C, which is used in network programming, for them to understand basic network protocols and low-level system interactions. The fundamental concepts of c programming such as variables, loops, and control flow help develop a solid foundation.
Data Scientist
A Data Scientist analyzes data to draw insights and build models. While most data science tasks use higher-level tools, a strong foundation in lower-level languages can be useful for optimizing performance-critical code or when working with large datasets. This course may be useful to a prospective Data Scientist. C is not often used for data analysis itself, but it supports the development of libraries and tools that data scientists rely on. This course's coverage of C's fundamentals may help Data Scientists understand how core functionalities of their tools are built.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in C Programming Bootcamp - The Complete C Language Course.
This book, often referred to as K&R, classic and comprehensive guide to the C programming language. Written by the creators of C, it provides a deep understanding of the language's features and principles. While it can be challenging for beginners, it is an invaluable resource for anyone serious about mastering C. is commonly used as a textbook at academic institutions.
Is designed for individuals with no prior programming experience. It provides a step-by-step introduction to C programming, covering essential concepts and syntax in a clear and accessible manner. It is particularly useful for beginners who want a gentle introduction to the C language. This book can be used as a reference text throughout the course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser