We may earn an affiliate commission when you visit our partners.
Course image
Dr. Shahram Taheri

This course has been optimized to meet the requirements and demands of students eager to learn the C Programming Language most easily and attractively. Including handpicked coding materials and tens of 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 in the High-tech industry (especially in the Embedded, Microcontrollers, Cyber, and other domains).

Who's this course for?

Read more

This course has been optimized to meet the requirements and demands of students eager to learn the C Programming Language most easily and attractively. Including handpicked coding materials and tens of 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 in the High-tech industry (especially in the Embedded, Microcontrollers, Cyber, and other domains).

Who's this course for?

  1. C students in college/university. It 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 to one of these - then I think you're going to LOVE this course.

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

  • Smart Homes & Smart Cities

  • Systems including Sensors and Micro Controllers (especially in Embedded Systems) - Common usage to programming an MCU using C Programming Language. ( If you are interested in C application, please check my course, "Learn 8051 Embedded System Design by 100 Practical Projects. "

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

Enroll now

What's inside

Learning objectives

  • Understand the fundamentals of the c programming language
  • Understand variables and the different data types
  • Control flow - if | if-else | switch-cases
  • Strings - creating, reading, manipulating & printing
  • Make yourself more marketable for entry level programming positions
  • Functions - declaration | definition | usage
  • Recursion - concept | usage
  • Loops - while | do-while | for
  • 2d arrays - matrices
  • Tens of practical solved examples

Syllabus

Input operation: scanf function
Free Preview
Convert an Integer Number to Binary
Create a Stack by using a structure
Read more

Write a program that reads numbers from an array and graphs the information in a bar chart. We display each number followed by a bar consisting of that many asterisks.

Write a program that reads an integer and displays the digits that appear more than once and the number of their appearances. For example, if the user enters 1868, the program should display that digit 8 appears twice. If no digit appears more than once, the program should display a related message.

Write a program that reads an integer and displays it in binary. Use an array to store the bits of the number. To display the bits of a negative number use the two’s complement technique. For example, if the user enters -5:

a. convert it to positive (i.e., 5).

b. reverse its bits (i.e., 101 becomes 11111111111111111111111111111010.

c. add 1 (i.e., the number becomes 11111111111111111111111111111011 and that should be the output value).

Write a program that simulates rolling two dice. The program should use rand twice to roll the first and second die, respectively, then calculate their sum. Because each die can have an integer value from 1 to 6, the sum of the values will vary from 2 to 12, with 7 being the most frequent sum and 2 and 12 the least frequent sums.

Your program should roll the two dice 36,000 times. Use a one-dimensional array to tally the numbers of times each possible sum appears. Print the results in tabular format. Also, determine whether the totals are reasonable—for example, there are six ways to roll a 7, so approximately one-sixth of all the rolls should be 7.

Use a one-dimensional array to solve the following problem. A company pays its salespeople on a commission basis. The salespeople receive $200 per week plus 9% of their gross sales for that week. For example, a salesperson who grosses $3000 in sales in a week receives $200 plus 9% of $3000 for a total of $470. Write a C program (using an array of counters) that determines how many salespeople earned salaries in each of the following ranges—assume that each salesperson’s salary is truncated to an integer amount:

    a) $200–299

    b) $300–399

    c) $400–499

    d) $500–599

    e) $600–699

    f) $700–799

    g) $800–899

    h) $900–999

    i) $1000 and over

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides numerous practical, solved examples, which can help beginners grasp fundamental programming concepts through hands-on experience
Covers topics relevant to embedded systems, microcontrollers, and cyber security, making it beneficial for professionals in these domains
Explores the usage of C in operating systems, databases, and systems with sensors and microcontrollers, offering insights into real-world applications
Includes materials uploaded in late 2023 and early 2024, indicating that the course is actively maintained and updated with current content
Teaches C, which is a foundational language for understanding how many efficient Python libraries are implemented, which may be useful for Python programmers
Features a section on C99 Variable Length Arrays, which may not be supported by all compilers, so learners may need to configure their environments

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical c/c++ with extensive examples

According to learners, this course offers a solid foundation in C/C++ programming, primarily focusing on C. Students frequently highlight the abundance and quality of practical examples and exercises as a major strength, finding them helpful for hands-on learning and solidifying concepts. Many appreciate the instructor's clear explanations and find the course accessible for beginners, providing a strong starting point for programming or reinforcing knowledge for those with some prior experience. Some reviewers note it's a good resource for students or those looking to understand core C features, especially relevant for embedded systems or similar fields. While the course title includes C++, the content is largely focused on C, which is something prospective C++ learners should be aware of. Recent updates appear to be appreciated.
Instructor explains concepts well.
"The instructor's explanations are clear and easy to understand."
"I really liked the way the instructor broke down complex topics."
"Very good explanation and examples from the instructor."
"The instructor makes learning C straightforward and engaging."
Clear explanations make it suitable for novices.
"This course is great for beginners who want to start learning programming with the C language."
"The instructor explains things very clearly and at a good pace, making it easy for someone new to programming to follow along."
"As someone with no prior coding experience, I found this course to be a very welcoming and understandable introduction to C."
"It's a great course for university students or anyone starting out in programming."
Provides a solid base in C fundamentals.
"Provides a solid foundation in C programming."
"The course covered all the essential C concepts very thoroughly, from variables to pointers and dynamic memory."
"I feel much more confident in my understanding of core C principles after taking this course."
"Excellent course for learning the basics of C, very clear and concise explanations."
Course excels with numerous, practical examples.
"The amount of practical examples in the course is amazing. This is helping me a lot to learn the C language in a more practical way."
"I found the practical examples extremely useful; they helped me grasp the concepts much better than just theory alone."
"With more than 120 practical examples, the student can consolidate the concepts studied."
"Excellent course, very clear explanations with many practical examples."
Primarily covers C; C++ content is limited.
"The course title includes C++, but the content is almost exclusively C. If you're looking to learn C++, this might not be the right course."
"While it's called C/C++, it feels like a deep dive into C with very little C++ material."
"Expected more C++ content based on the title, but it's mainly focused on C."
"Good course for C, but don't expect much C++."

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 Learn C/C++ Programming with 120+ Practical Examples with these activities:
Review Data Types and Operators
Reinforce your understanding of fundamental C data types and operators before diving into more complex topics. This will help you write cleaner and more efficient code throughout the course.
Browse courses on Data Types
Show steps
  • Review the different data types in C (int, float, char, etc.).
  • Practice using arithmetic, relational, and logical operators.
  • Write small code snippets to test your understanding.
Read 'C Programming Absolute Beginner's Guide'
Supplement your learning with a beginner-friendly guide to C programming. This book provides a solid foundation in C and complements the course material.
Show steps
  • Read the chapters covering fundamental concepts like variables and data types.
  • Work through the examples and exercises in the book.
  • Compare the book's explanations with the course lectures.
Implement Basic Algorithms
Solidify your understanding of control flow and loops by implementing common algorithms. This will improve your problem-solving skills and prepare you for more complex coding challenges.
Show steps
  • Implement algorithms like finding the maximum element in an array.
  • Implement sorting algorithms like bubble sort or insertion sort.
  • Practice writing code for searching algorithms like linear search.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple Calculator
Apply your knowledge of C fundamentals to create a practical application. This project will reinforce your understanding of input/output, operators, and control flow.
Show steps
  • Design the user interface for the calculator.
  • Implement functions for basic arithmetic operations.
  • Handle user input and perform calculations.
  • Test the calculator thoroughly with different inputs.
Document Code with Comments
Improve code readability and understanding by writing clear and concise comments. This will help you and others understand your code more easily.
Show steps
  • Add comments to explain the purpose of each function.
  • Comment on complex logic or algorithms.
  • Use comments to document variables and data structures.
Read 'The C Programming Language'
Deepen your understanding of C with the classic reference guide by Kernighan and Ritchie. This book provides a comprehensive and authoritative treatment of the language.
Show steps
  • Read the chapters covering advanced topics like pointers and memory management.
  • Study the examples and exercises in the book to understand the nuances of C.
  • Use the book as a reference when working on complex C projects.
Contribute to a C Project on GitHub
Gain practical experience and collaborate with other developers by contributing to an open-source C project. This will enhance your coding skills and expose you to real-world software development practices.
Show steps
  • Find a C project on GitHub that interests you.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Learn C/C++ Programming with 120+ Practical Examples will develop knowledge and skills that may be useful to these careers:
Embedded Systems Engineer
An Embedded Systems Engineer designs, develops, and tests software and hardware for embedded systems, which are specialized computer systems that are part of a larger device. This course, focused on C and C++ programming, is invaluable because these languages are foundational in embedded systems development. The course’s emphasis on practical examples, including microcontroller programming, is particularly relevant. Mastery of C, as taught in this course, is essential for programming microcontrollers and creating efficient, low-level code that interacts directly with hardware, a key aspect of embedded systems engineering.
Firmware Engineer
A Firmware Engineer develops the low-level software that controls a device's hardware. The role requires a strong understanding of C programming, often used in firmware development, and this course's practical approach to the language provides an effective way to build the required skills. The course's focus on C fundamentals, including memory management, operators, and pointers, are particularly applicable in the field of firmware engineering, where direct hardware interaction is common. This course may be useful for any engineer looking to gain the C knowledge that will help them write more efficient firmware for their projects.
Microcontroller Programmer
A Microcontroller Programmer writes code that controls microcontrollers embedded within various electronic devices. Since C is a primary language for microcontroller programming, this course is especially relevant. The course’s practical examples and focus on C fundamentals, including memory management and low-level hardware interaction, are particularly helpful in this field. This course may be useful for anyone looking to control microcontrollers and implement embedded solutions.
Operating Systems Developer
An Operating Systems Developer works on the core software that manages computer hardware and software resources. With C being the language at the heart of most operating systems, this course is particularly helpful for aspiring operating systems developers. The practical approach of this course and the emphasis on low level concepts, such as system memory management, is particularly relevant for a career in developing operating systems. Anyone looking to work at a low level will find this course very useful.
Systems Programmer
A Systems Programmer develops and maintains operating systems, compilers, and other low-level software. This course provides core knowledge in C and C++, which are the languages most commonly used for system programming. The course's focus on fundamental programming concepts, memory management, and practical exercises makes it quite beneficial for a systems programmer. Because systems programming often deals directly with hardware, the understanding of how C operates at the low level is vital, making this course particularly suitable.
Robotics Engineer
A Robotics Engineer designs, builds, and tests robots and robotic systems. C and C++ are frequently used in robotics to program robot controllers, perform real-time data processing, and interface with sensors and actuators. This course, with its emphasis on C fundamentals and practical coding examples, is especially beneficial to anyone looking into robotics. The course's coverage of low-level operations and memory management is useful to the work of a robotics engineer, who must often develop efficient, real-time code directly interacting with hardware and devices.
High-Performance Computing Engineer
A High Performance Computing Engineer develops software for supercomputers and other high performance systems. This course can help build essential skills for this role because it's focused on C and C++, languages commonly used in high performance programming to maximize speed and efficiency. The practical examples and the course’s focus on low-level programming techniques are particularly relevant for anyone looking to optimize performance in demanding computing tasks. The knowledge this course provides will help any engineer seeking to write programs that operate at the limits of their hardware.
Cybersecurity Engineer
A Cybersecurity Engineer works to protect computer systems and networks from threats. This course may be useful because it provides a strong foundation in C, a language often used to develop cybersecurity tools and analyze system vulnerabilities. The course's focus on low-level programming concepts, such as memory management, and its practical examples provide a solid understanding of system internals, which is extremely helpful for a cybersecurity engineer. This course will help anyone looking to understand vulnerabilities in security systems.
Software Developer
A Software Developer designs, codes, and tests software applications. C and C++ are powerful languages for system-level programming, and this course may be essential for those who want to work on operating systems or performance-critical applications. This course will benefit a software developer who needs to understand the fundamentals of programming, especially with low level languages. The large number of practical examples and focus on fundamental code structures helps build a strong foundation.
Game Programmer
A game programmer writes the code that brings a video game to life. This role often uses C and C++ to develop game engines and core game mechanics. This course, which provides a solid grounding in these two languages, may be very useful for entering the field of video game programming by helping programmers build essential skills. Understanding low-level programming concepts, taught in this course, is particularly important when working with game engines or writing custom rendering code.
Compiler Engineer
A Compiler Engineer develops the software that translates human-readable code into machine-executable code. Because C is used to build many compilers and other low level tools, this course may be beneficial. Understanding how compilers work is essential to those looking to build their own. The focus of this course on fundamentals and practical examples may be particularly useful for an engineer hoping to gain a deeper understanding of how compilers are designed and built. This course may be useful for any aspiring compiler engineer.
Database Developer
A Database Developer designs, implements, and maintains databases. While many modern database systems use higher level languages, core database components are often written in C and C++. This course’s comprehensive treatment of the C language, with practical examples, is especially useful for anyone looking to understand the core elements of a database. The course, with its focus on fundamental programming techniques, helps build a strong foundation for a career as a database developer.
Network Engineer
A Network Engineer designs, implements, and maintains computer networks. This role frequently utilizes C and C++, because they are used to develop networking protocols and perform low-level network programming. This course will help a network engineer who wants to understand the fundamentals of network programming. The course’s emphasis on practical examples and low-level concepts may be useful for those who want to work closely with network hardware.
Technical Support Engineer
A Technical Support Engineer provides technical assistance to customers or internal teams. While this course might not directly teach support skills, it may be useful for those who are supporting software systems built utilizing C and C++. The course's focus on the fundamentals and its practical examples may be helpful to engineers who need to understand how software written in C works. The foundational knowledge provided by the course can be helpful for understanding how to debug and diagnose issues arising from such systems.
Quality Assurance Engineer
A Quality Assurance Engineer tests software to ensure it meets quality standards. While this course does not teach QA skills, it may be helpful for understanding the underlying code that an engineer will test. The course’s practical focus on C fundamentals may be useful when debugging code and finding errors. This course may be useful for any aspiring QA engineer who wishes to better understand code written in C and C++.

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 Learn C/C++ Programming with 120+ Practical Examples.
This book, often referred to as 'K&R', is the definitive guide to the C programming language, written by its creators. It provides a comprehensive and authoritative treatment of the language. While more advanced, it offers invaluable insights into the design and implementation of C. is highly recommended for those seeking a deeper understanding of C and its underlying principles, and is commonly used as a textbook at academic institutions.
Is designed for individuals with no prior programming experience, making it an excellent resource for beginners. It covers the fundamentals of C programming in a clear and accessible manner. The book provides numerous examples and exercises to reinforce learning. It serves as a valuable supplement to the course material, offering additional explanations and practice opportunities.

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