We may earn an affiliate commission when you visit our partners.
Course image
Petra Bonfert-Taylor and Rémi SHARROCK

In this course you will learn to use logical statements and arrays in C. Logical statements are used for decision-making with follow-up instructions, based on conditions you define. Arrays are used to store, keep track of, and organize larger amounts of data. You will furthermore implement some fundamental algorithms to search and sort data.

Read more

In this course you will learn to use logical statements and arrays in C. Logical statements are used for decision-making with follow-up instructions, based on conditions you define. Arrays are used to store, keep track of, and organize larger amounts of data. You will furthermore implement some fundamental algorithms to search and sort data.

Why learn C? Not only is it one of the most stable and popular programming languages in the world, it's also used to power almost all electronic devices. The C programming language represents one of the building blocks of modern computer information technology.

Why learn C and not another programming language? Did you know that smartphones, your car’s navigation system, robots, drones, trains, and almost all electronic devices have some C-code running under the hood? C is used in any circumstance where speed and flexibility are important, such as in embedded systems or high-performance computing.

By the end of this course, you will have gained experience with programming concepts that are foundational to any programming language and be one step closer to a career in computer engineering.

Your job Outlook:

- Programmers, developers, engineers, managers, and related industries within scientific computing and data science;

- Embedded systems such as transportation, utility networks, and aerospace;

- Robotics industry and manufacturing;

- IoT (Internet of Things) used in smart homes, automation, and wearables.

- IEEE, the world’s largest technical professional organization for the advancement of technology, ranks C as third of the top programming languages of 2021 in demand by employers. (Source: IEEE Spectrum)

This course has received financial support from the Patrick & Lina Drahi Foundation.

Enroll now

What's inside

Syllabus

Welcome
Let's start coding! Let's get ready to code and learn how to use the cutting edge tools that we have developed to facilitate your learning.
Read more
Week 1: Logic conditions and if-else statements
This week, you will utilize logical conditions (i.e. if-statements, if-else statements) and combine/negate several logical conditions using logic operations AND, OR, and NOT.
Week 2: Arrays, for and while loops
This week you will create, and utilize arrays of integers and floating point numbers. You will also be able to explain the syntax of a FOR and WHILE loop and create programs using them as nest branch statements.
Week 3: Strings, sort and search algorithms
This week, you will create arrays of characters (strings), use the null terminator, and manipulate strings to find their lengths. You will also be able to sort through arrays: alphabetizing strings, ordering numbers, finding specific numbers, etc.
Concluding the course

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores advanced computer engineering programming concepts
In-demand by employers and in the top 3 of IEEE’s 2021 list
Teaches C programming, widely used in embedded systems, high-performance computing, smart home devices, and more
Taught by instructors with industry experience
Includes multimedia, such as videos, readings, and discussions, to enhance learning
Offers opportunities for interactive practice through hands-on labs and materials

Save this course

Save C Programming: Language Foundations - 2 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: Language Foundations - 2 with these activities:
Review C Syntax
Start your journey by reviewing the fundamentals of the C programming language. You'll refresh your understanding of C syntax and be ready to hit the ground running.
Show steps
  • Read through online C syntax resources.
  • Complete coding challenges that focus on C syntax.
  • Review old C code or projects to familiarize yourself with C syntax.
Read 'The C Programming Language' by Brian Kernighan and Dennis Ritchie
Immerse yourself in the seminal work on C programming by its creators. This book provides a comprehensive foundation and deepens your understanding of C's core concepts and design principles.
Show steps
  • Read through each chapter and work on the exercises provided.
  • Refer to the book for reference and clarification while working on course material.
Join a C Programming Study Group
Enhance your learning by connecting with fellow C programming enthusiasts. Through discussions, you'll challenge your understanding, learn from others' perspectives, and deepen your knowledge.
Show steps
  • Join online forums or communities dedicated to C programming.
  • Find or create a study group with peers who share your interest in C.
  • Meet regularly to discuss concepts, work on projects, and provide support.
  • Engage in peer code reviews and feedback sessions.
Show all three activities

Career center

Learners who complete C Programming: Language Foundations - 2 will develop knowledge and skills that may be useful to these careers:
Software Engineer
A Software Engineer is responsible for designing, developing, testing, and maintaining software systems. This course provides a comprehensive introduction to C programming, a programming language widely used in software engineering. By mastering the concepts taught in this course, you will gain a solid foundation in software development principles and practices, enabling you to succeed in a career as a Software Engineer.
Software Developer
A Software Developer is responsible for designing, developing, testing, deploying, maintaining, and improving software applications. This course provides a solid foundation in C programming, which is a widely used programming language in the software industry. By mastering the concepts taught in this course, you will gain the necessary skills to develop efficient and reliable software applications.
Computer Programmer
A Computer Programmer is responsible for developing, testing, and maintaining computer programs. This course offers a solid introduction to C programming, a programming language widely used in software development. Through this course, you will acquire the fundamental skills to write, debug, and maintain C programs, which will be beneficial for pursuing a career as a Computer Programmer.
Programmer
A Programmer is responsible for writing and maintaining code for software applications. This course provides a comprehensive introduction to C programming, which is a popular programming language used in various domains. By completing this course, you will gain a strong foundation in C programming fundamentals, enabling you to write effective and efficient code for a wide range of applications.
Embedded Systems Engineer
An Embedded Systems Engineer is responsible for designing, developing, and maintaining embedded systems. This course provides a solid foundation in C programming, a programming language widely used in embedded systems development. By completing this course, you will gain the necessary skills to work on various aspects of embedded systems engineering, including hardware-software integration and system optimization.
Computer Scientist
A Computer Scientist is responsible for researching, designing, and developing new computer technologies. This course provides a foundation in C programming, a widely used programming language in the field of computer science. By understanding the concepts taught in this course, you will gain a deeper understanding of computer science fundamentals and be better equipped to contribute to the development of innovative technologies.
Computer Engineer
A Computer Engineer is responsible for designing, developing, and maintaining computer systems. This course provides a strong foundation in C programming, a programming language commonly used in embedded systems and operating systems. By completing this course, you will gain the necessary skills to work on various aspects of computer engineering, including hardware-software integration and system optimization.
Systems Engineer
A Systems Engineer is responsible for designing, developing, and maintaining complex systems. This course provides a foundation in C programming, a programming language commonly used in systems engineering. By understanding the concepts taught in this course, you will gain a deeper understanding of systems engineering principles and be better equipped to contribute to the development and maintenance of complex systems.
Data Scientist
A Data Scientist is responsible for collecting, analyzing, and interpreting data to extract meaningful insights. This course provides a foundation in C programming, a programming language commonly used in data science. By completing this course, you will gain the necessary skills to work with data effectively, enabling you to succeed in a career as a Data Scientist.
Machine Learning Engineer
A Machine Learning Engineer is responsible for designing, developing, and maintaining machine learning models. This course provides a foundation in C programming, a programming language commonly used in machine learning. By understanding the concepts taught in this course, you will gain a deeper understanding of machine learning principles and be better equipped to contribute to the development and maintenance of machine learning models.
Robotics Engineer
A Robotics Engineer is responsible for designing, developing, and maintaining robots. This course provides a foundation in C programming, a programming language commonly used in robotics. By understanding the concepts taught in this course, you will gain a deeper understanding of robotics principles and be better equipped to contribute to the development and maintenance of robots.
Computer Vision Engineer
A Computer Vision Engineer is responsible for designing, developing, and maintaining computer vision systems. This course provides a foundation in C programming, a programming language commonly used in computer vision. By understanding the concepts taught in this course, you will gain a deeper understanding of computer vision principles and be better equipped to contribute to the development and maintenance of computer vision systems.
Natural Language Processing Engineer
A Natural Language Processing Engineer is responsible for designing, developing, and maintaining natural language processing systems. This course provides a foundation in C programming, a programming language commonly used in natural language processing. By understanding the concepts taught in this course, you will gain a deeper understanding of natural language processing principles and be better equipped to contribute to the development and maintenance of natural language processing systems.
Web Developer
A Web Developer is responsible for designing, developing, and maintaining websites. This course provides a foundation in C programming, a programming language that is sometimes used in web development. By completing this course, you will gain a deeper understanding of web development principles and practices, enabling you to succeed in a career as a Web Developer.
Mobile Developer
A Mobile Developer is responsible for designing, developing, and maintaining mobile applications. This course provides a foundation in C programming, a programming language that is sometimes used in mobile development. By completing this course, you will gain a deeper understanding of mobile development principles and practices, enabling you to succeed in a career as a Mobile Developer.

Reading list

We've selected nine 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: Language Foundations - 2.
This classic book must-read for anyone serious about learning C. It provides a concise and clear explanation of the language's core concepts.
Provides a comprehensive overview of the C programming language. It valuable resource for anyone looking to learn C or improve their existing skills.
Provides a comprehensive tutorial on the C programming language. It valuable resource for anyone looking to learn C or improve their existing skills.
Provides a comprehensive reference guide to the C programming language. It valuable resource for experienced C programmers.
Provides a comprehensive overview of data structures and algorithms in C. It valuable resource for anyone looking to learn about these topics.
Great introduction to C for beginners. It covers the basics of the language in a clear and concise manner.
Provides a logical approach to learning the C programming language. It valuable resource for beginners.

Share

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

Similar courses

Here are nine courses similar to C Programming: Language Foundations - 2.
C Programming: Pointers and Memory Management - 4
Most relevant
C Programming: Advanced Data Types - 5
Most relevant
C Programming: Using Linux Tools and Libraries - 7
Most relevant
C Programming: Language Foundations
Most relevant
C Programming: Getting Started - 1
Most relevant
C Programming: Modular Programming and Memory Management ...
Most relevant
Linux Basics: The Command Line Interface - 6
Most relevant
C Programming: Getting Started
Most relevant
Embedded Systems using C
Most relevant
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 - 2024 OpenCourser