What you will learn

  • Develop and debug code in the C programming language
  • Discover the foundations of computer programming and Linux, manipulate the command line, manage processes, files and memory, and compile C code with Linux
  • Interpret, analyze, and implement important computer algorithms
  • Observe, manipulate, and optimize computer memory using pointers in the C programming language

Program Overview

In this C Programming with Linux Professional Certificate program of seven short courses, you will learn how to write, read and debug computer programs in the C programming language while also becoming familiar with the Linux operating system.

Beginners, even those without any programming experience, will be able to immediately start coding in C through our new coding tools within the web browser. No need to install anything!

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.

C is a foundational programming language taught at engineering schools around the world, and represents one of the building blocks of modern computer information technology. Invented in the 1970’s. It is still one of the most stable and popular programming languages in the world.

Along with the C programming language comes Linux, an essential operating system used by most computer scientists and developers. Linux powers almost all supercomputers and most of the servers worldwide as well as all android devices and most internet of things devices. This Professional Certificate Program will introduce the Linux command line and Linux tools for C programmers; both of which are must-have skills in today’s tech industries.

You will practice through guided exercises and short coding demonstrations, as well as more elaborate assignments.

Our dedicated international course team is excited to introduce you to the world of coding and guide you along your path to becoming a skilled C programmer and help you pursue a career in computer engineering.

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

Courses

1
C Programming: Getting Started

Course Details
Start learning one of the most powerful and widely used programming languages: C.

2
C Programming: Language Foundations

Course Details
Master foundational concepts in the C programming language such as logical statements and arrays.

3
C Programming: Modular Programming and Memory Management

Course Details
Enhance your coding skills along your path to becoming a proficient C programmer with the essential concepts of functions and pointers. Receive instant feedback on your code right within your browser.

4
C Programming: Pointers and Memory Management

Course Details
Continue building your coding skills along your path to becoming a proficient C programmer by mastering the concept of pointers and memory management. Receive instant feedback on your code right within your browser.

5
C Programming: Advanced Data Types

Course Details
Master effective ways to store your data in the C programming language using advanced data types such as structures and linked lists. Receive instant feedback on your code right within your browser.

6
Linux Basics: The Command Line Interface

Course Details
Learn the Linux Command Line interface and become a skilled user of this powerful operating system.

7
C Programming: Using Linux Tools and Libraries

Course Details
Learn how to use professional tools and libraries to write and build C programs within the Linux operating system. Receive instant feedback on your code right within your browser.

Meet your instructors

Petra Bonfert-Taylor

Petra Bonfert-Taylor is a Professor and an Instructional Designer at the Thayer School of Engineering at Dartmouth College. She received her Ph.D. in Mathematics from Technical University of Berlin (Germany) in 1996 and subsequently spent three years as a postdoctoral fellow at the University of Michigan before accepting a tenure-track position in the Mathematics Department at Wesleyan University. She left Wesleyan as a tenured full professor in 2015 for her current position at Dartmouth College. Petra has published extensively and lectured widely to national and international audiences. Her work has been recognized by the National Science Foundation with numerous research grants. She is equally passionate about her teaching.The recipient of the Binswanger Prize for Excellence in Teaching at Wesleyan University, the Excellence in Teaching Award at the Thayer School of Engineering and the NH High Tech Council Tech Teacher of the Year Award, Petra has a strong interest in broadening access to high-quality higher education and pedagogical innovations that aid in providing equal opportunities to students from all backgrounds.

Rémi Sharrock

Rémi Sharrock is an associate professor at Telecom ParisTech, IMT, France. He received his Ph.D. in Computer Science from the National Polytechnic Institute of Toulouse, France in 2010. Rémi’s main research focuses on large scale distributed systems and autonomic computing, as well as their applications to learning at scale. He’s passionate about innovative tools for online learning and has received the “MOOC of the year prize” for two of his french courses on C programming and Linux.

Program Endorsements

We are delighted to support Télécom ParisTech and Dartmouth College in the creation of MOOCs dedicated to “Programming in C with Linux”. Software has an increasingly large footprint in our research, products, and solutions and C and Linux are instrumental for much of the software development at Nokia and in the industry at large. We are convinced that “Programming in C Using Linux” will have great relevance for the industrial and academic software communities.

Jean-Luc Beylat , Chairman, Nokia Bell Labs, France

Learners of this Professional Certificate will be ready to face challenges in the world of interconnected objects sharing their data. Airbus has a large catalogue of products, from aircraft to satellites, in communication and geographical data delivery services. Increasingly, Airbus factories and products are connected using Linux leading to this operating system becoming even more widely used. “Programming in C with Linux” supports building essential programming skills to work in today’s industries.

Florence Dufrasnes , Head of Technical Office, Airbus

The combined expertise of our employees have made Thales a key player in keeping the public safe and secure through developing world-class technologies. In our increasingly connected world, software defines everything and the “Programming in C with Linux” Professional Certificate will provide current and potential programmers the skills to contribute to the software of tomorrow. Thales strongly supports the “Programming in C with Linux” program.

Cédric Demeure , VP, R&T, France

We are delighted to support Télécom ParisTech and Dartmouth College in the creation of MOOCs dedicated to “Programming in C with Linux”. Software has an increasingly large footprint in our research, products, and solutions and C and Linux are instrumental for much of the software development at Nokia and in the industry at large. We are convinced that “Programming in C Using Linux” will have great relevance for the industrial and academic software communities.

Jean-Luc Beylat , Chairman, Nokia Bell Labs, France

Learners of this Professional Certificate will be ready to face challenges in the world of interconnected objects sharing their data. Airbus has a large catalogue of products, from aircraft to satellites, in communication and geographical data delivery services. Increasingly, Airbus factories and products are connected using Linux leading to this operating system becoming even more widely used. “Programming in C with Linux” supports building essential programming skills to work in today’s industries.

Florence Dufrasnes , Head of Technical Office, Airbus

The combined expertise of our employees have made Thales a key player in keeping the public safe and secure through developing world-class technologies. In our increasingly connected world, software defines everything and the “Programming in C with Linux” Professional Certificate will provide current and potential programmers the skills to contribute to the software of tomorrow. Thales strongly supports the “Programming in C with Linux” program.

Cédric Demeure , VP, R&T, France

About this course

This seventh and final course in the C Programming with Linux Professional Certificate program will allow you to develop and use your C code within the Linux operating system. Using libraries in C is a fundamental concept when it comes to sharing code with others. In addition to compiling and linking, you will also learn how to pass arguments to an executable program.

Within moments you will be coding hands-on in a new browser tool developed for this course providing instant feedback on your code. No need to install anything!

As you embark on your future career as a programmer, you will be able to continue your coding adventures with professional coding environments used by C programmers around the world.

At the end of this short course, you will have completed the C Programming with Linux Professional Certificate program, unlocking the door to a career in computer engineering.

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

What you’ll learn

  • Use external libraries
  • Build an application from multiple source files
  • Automate the building process using makefiles
  • Pass and use arguments to the main function
  • Read from and write to files in C
  • Use professional building tools within the Linux operating system

Meet your instructors

Petra Bonfert-Taylor

Petra Bonfert-Taylor is a Professor and an Instructional Designer at the Thayer School of Engineering at Dartmouth College. She received her Ph.D. in Mathematics from Technical University of Berlin (Germany) in 1996 and subsequently spent three years as a postdoctoral fellow at the University of Michigan before accepting a tenure-track position in the Mathematics Department at Wesleyan University. She left Wesleyan as a tenured full professor in 2015 for her current position at Dartmouth College. Petra has published extensively and lectured widely to national and international audiences. Her work has been recognized by the National Science Foundation with numerous research grants. She is equally passionate about her teaching.The recipient of the Binswanger Prize for Excellence in Teaching at Wesleyan University, the Excellence in Teaching Award at the Thayer School of Engineering and the NH High Tech Council Tech Teacher of the Year Award, Petra has a strong interest in broadening access to high-quality higher education and pedagogical innovations that aid in providing equal opportunities to students from all backgrounds.

Rémi Sharrock

Rémi Sharrock is an associate professor at Telecom ParisTech, IMT, France. He received his Ph.D. in Computer Science from the National Polytechnic Institute of Toulouse, France in 2010. Rémi’s main research focuses on large scale distributed systems and autonomic computing, as well as their applications to learning at scale. He’s passionate about innovative tools for online learning and has received the “MOOC of the year prize” for two of his french courses on C programming and Linux.

About this course

This course will introduce you to Linux, a powerful operating system used by most professional developers!

Why add Linux to your C programming skills? Most people use Linux without knowing it! Whether you use a smartphone, search the web, or use an ATM, each time Linux is involved somewhere in the background. It is the most used operating system for embedded devices and high-performance servers. It is also the most common operating system used by developers to create software applications.

In this course, you will learn the history of Linux and how its open source community was able to create today’s most advanced operating system. You will navigate the file system, use fundamental Linux commands and master the Linux command line interface. These are essential skills for every developer.

You will also be able to produce software written in C using the industry-standard tools on Linux.

Within moments you will be coding hands-on in a new browser tool developed for this course, receiving instant feedback on your code. No need to install anything!

We are excited to introduce you to Linux and guide you along your path to becoming a skilled user of this powerful operating system!

At the end of this short course, you will reach the sixth milestone of the C Programming with Linux” Professional Certificate program, unlocking the door to a career in computer engineering.

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

What you’ll learn

  • Situate on a timeline the key dates of Unix and Linux creation
  • Use basic commands to control the Linux Operating System
  • Navigate and manipulate the Linux Filesystem using the command line interface
  • Manage the memory and processes running on Linux
  • Compile and execute a C program on Linux

Meet your instructors

Petra Bonfert-Taylor

Petra Bonfert-Taylor is a Professor and an Instructional Designer at the Thayer School of Engineering at Dartmouth College. She received her Ph.D. in Mathematics from Technical University of Berlin (Germany) in 1996 and subsequently spent three years as a postdoctoral fellow at the University of Michigan before accepting a tenure-track position in the Mathematics Department at Wesleyan University. She left Wesleyan as a tenured full professor in 2015 for her current position at Dartmouth College. Petra has published extensively and lectured widely to national and international audiences. Her work has been recognized by the National Science Foundation with numerous research grants. She is equally passionate about her teaching.The recipient of the Binswanger Prize for Excellence in Teaching at Wesleyan University, the Excellence in Teaching Award at the Thayer School of Engineering and the NH High Tech Council Tech Teacher of the Year Award, Petra has a strong interest in broadening access to high-quality higher education and pedagogical innovations that aid in providing equal opportunities to students from all backgrounds.

Rémi Sharrock

Rémi Sharrock is an associate professor at Telecom ParisTech, IMT, France. He received his Ph.D. in Computer Science from the National Polytechnic Institute of Toulouse, France in 2010. Rémi’s main research focuses on large scale distributed systems and autonomic computing, as well as their applications to learning at scale. He’s passionate about innovative tools for online learning and has received the “MOOC of the year prize” for two of his french courses on C programming and Linux.

About this course

In this course, part of the C Programming with Linux Professional Certificate program, you will define your own data types in C, and use the newly created types to more efficiently store and process your data.

Many programming languages provide a number of built-in data types to store things such as integers, decimals, and characters in variables, but what if you wanted to store more complex data?

Defining your own data types in C allows you to more efficiently store and process data such as a customer’s name, age and other relevant data, all in one single variable!

This course will provide a hands-on coding experience in a new browser tool developed for this course that will allow you to receive instant feedback on your code. No need to install anything! You will also gain experience with programming concepts that are foundational to any programming language.

At the end of this short course, you will reach the fifth milestone of the C Programming with Linux Professional Certificate program, unlocking the door to a career in computer engineering.

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

What you’ll learn

  • Define new data types (structures) to store multiple data items in one variable and create, initialize and modify variables of these new types
  • Find and explain the memory usage of a structure and use pointers to structures and the direct and indirect member selection operators to access members of structures
  • Create linked lists of structures with dynamic memory allocation at runtime
  • Sort or search lined lists of structures

Meet your instructors

Petra Bonfert-Taylor

Petra Bonfert-Taylor is a Professor and an Instructional Designer at the Thayer School of Engineering at Dartmouth College. She received her Ph.D. in Mathematics from Technical University of Berlin (Germany) in 1996 and subsequently spent three years as a postdoctoral fellow at the University of Michigan before accepting a tenure-track position in the Mathematics Department at Wesleyan University. She left Wesleyan as a tenured full professor in 2015 for her current position at Dartmouth College. Petra has published extensively and lectured widely to national and international audiences. Her work has been recognized by the National Science Foundation with numerous research grants. She is equally passionate about her teaching.The recipient of the Binswanger Prize for Excellence in Teaching at Wesleyan University, the Excellence in Teaching Award at the Thayer School of Engineering and the NH High Tech Council Tech Teacher of the Year Award, Petra has a strong interest in broadening access to high-quality higher education and pedagogical innovations that aid in providing equal opportunities to students from all backgrounds.

Rémi Sharrock

Rémi Sharrock is an associate professor at Telecom ParisTech, IMT, France. He received his Ph.D. in Computer Science from the National Polytechnic Institute of Toulouse, France in 2010. Rémi’s main research focuses on large scale distributed systems and autonomic computing, as well as their applications to learning at scale. He’s passionate about innovative tools for online learning and has received the “MOOC of the year prize” for two of his french courses on C programming and Linux.

About this course

In this course, we will examine a key concept, foundational to any programming language: the usage of memory.

This course builds upon the basic concept of pointers, discussed in C Programming: Modular Programming and Memory Management, and introduces the more advanced usage of pointers and pointer arithmetic. Arrays of pointers and multidimensional arrays are addressed, and you will learn how to allocate memory for your own data during program execution. This is called dynamic memory allocation at runtime using pointers.

Within moments you will be coding hands-on in a new browser tool developed for this course, receiving instant feedback on your code. No need to install anything!

In this course, you will gain experience with programming concepts that are foundational to any programming language.

At the end of this short course, you will reach the fourth milestone in the C Programming with Linux Professional Certificate program, unlocking the door to a career in computer engineering.

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

What you’ll learn

  • Visualize the concept of a pointer and use it to pass variables to functions by reference in order to modify them via the function
  • Apply pointer arithmetic in order to address elements of both one-dimensional and multi-dimensional arrays
  • Use arrays of strings to store lists of strings in one array variable
  • Control memory usage by dynamically allocating and freeing memory at runtime

Meet your instructors

Petra Bonfert-Taylor

Petra Bonfert-Taylor is a Professor and an Instructional Designer at the Thayer School of Engineering at Dartmouth College. She received her Ph.D. in Mathematics from Technical University of Berlin (Germany) in 1996 and subsequently spent three years as a postdoctoral fellow at the University of Michigan before accepting a tenure-track position in the Mathematics Department at Wesleyan University. She left Wesleyan as a tenured full professor in 2015 for her current position at Dartmouth College. Petra has published extensively and lectured widely to national and international audiences. Her work has been recognized by the National Science Foundation with numerous research grants. She is equally passionate about her teaching.The recipient of the Binswanger Prize for Excellence in Teaching at Wesleyan University, the Excellence in Teaching Award at the Thayer School of Engineering and the NH High Tech Council Tech Teacher of the Year Award, Petra has a strong interest in broadening access to high-quality higher education and pedagogical innovations that aid in providing equal opportunities to students from all backgrounds.

Rémi Sharrock

Rémi Sharrock is an associate professor at Telecom ParisTech, IMT, France. He received his Ph.D. in Computer Science from the National Polytechnic Institute of Toulouse, France in 2010. Rémi’s main research focuses on large scale distributed systems and autonomic computing, as well as their applications to learning at scale. He’s passionate about innovative tools for online learning and has received the “MOOC of the year prize” for two of his french courses on C programming and Linux.

About this course

In this course, part of the C Programming with Linux Professional Certificate program, you will be introduced to the concept of modular programming: that is, dividing up more complex tasks into manageable pieces.

Within moments you will be coding hands-on in a new browser tool developed for this course, receiving instant feedback on your code. No need to install anything!

You will learn how to write your own functions (just like functions in mathematics for example). You will also gain insight into a computer’s architecture and learn how its memory is organized.

Given the vast amount of memory computers have these days, how does your program remember where a certain variable is stored? This brings about the important topic of how memory is efficiently addressed inside a computer, and with it, the topic of pointers.

Pointers are often considered the most difficult part and main struggle for C program developers. We will introduce you to this central topic with our novel and innovative visualization tools and show you precisely how pointers work. No need to struggle!

The programming concepts you will gain in this course are foundational to any programming language.

By the end of this short course, you will have reached the third milestone in the C Programming with Linux Professional Certificate program, unlocking the door to a career in computer engineering.

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

What you’ll learn

  • Break a complex programming task into a number of functions to which you pass arguments
  • Recall how computer memory is organized to store variables and arrays
  • Find the address of a variable
  • Perform simple pointer arithmetic

Meet your instructors

Petra Bonfert-Taylor

Petra Bonfert-Taylor is a Professor and an Instructional Designer at the Thayer School of Engineering at Dartmouth College. She received her Ph.D. in Mathematics from Technical University of Berlin (Germany) in 1996 and subsequently spent three years as a postdoctoral fellow at the University of Michigan before accepting a tenure-track position in the Mathematics Department at Wesleyan University. She left Wesleyan as a tenured full professor in 2015 for her current position at Dartmouth College. Petra has published extensively and lectured widely to national and international audiences. Her work has been recognized by the National Science Foundation with numerous research grants. She is equally passionate about her teaching.The recipient of the Binswanger Prize for Excellence in Teaching at Wesleyan University, the Excellence in Teaching Award at the Thayer School of Engineering and the NH High Tech Council Tech Teacher of the Year Award, Petra has a strong interest in broadening access to high-quality higher education and pedagogical innovations that aid in providing equal opportunities to students from all backgrounds.

Rémi Sharrock

Rémi Sharrock is an associate professor at Telecom ParisTech, IMT, France. He received his Ph.D. in Computer Science from the National Polytechnic Institute of Toulouse, France in 2010. Rémi’s main research focuses on large scale distributed systems and autonomic computing, as well as their applications to learning at scale. He’s passionate about innovative tools for online learning and has received the “MOOC of the year prize” for two of his french courses on C programming and Linux.

About this course

In this course, part of the C Programming with Linux Professional Certificate program, 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.

Within moments of this course, you will be coding hands-on in a new browser tool developed specifically for this course, receiving instant feedback on your code. No need to install anything!

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.

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.

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

What you’ll learn

  • Use logical conditions to control the flow of a program via branch statements (if-else), repetition (for or while loop) and nesting of these structures
  • Create and modify arrays to store integer and floating point numbers and explain how arrays are organized in memory
  • Create null-terminated arrays of characters to store and modify strings (of characters)
  • Sort and search arrays of numbers and characters using bubble sort, selection sort, linear search and bisection

Meet your instructors

Petra Bonfert-Taylor

Petra Bonfert-Taylor is a Professor and an Instructional Designer at the Thayer School of Engineering at Dartmouth College. She received her Ph.D. in Mathematics from Technical University of Berlin (Germany) in 1996 and subsequently spent three years as a postdoctoral fellow at the University of Michigan before accepting a tenure-track position in the Mathematics Department at Wesleyan University. She left Wesleyan as a tenured full professor in 2015 for her current position at Dartmouth College. Petra has published extensively and lectured widely to national and international audiences. Her work has been recognized by the National Science Foundation with numerous research grants. She is equally passionate about her teaching.The recipient of the Binswanger Prize for Excellence in Teaching at Wesleyan University, the Excellence in Teaching Award at the Thayer School of Engineering and the NH High Tech Council Tech Teacher of the Year Award, Petra has a strong interest in broadening access to high-quality higher education and pedagogical innovations that aid in providing equal opportunities to students from all backgrounds.

Rémi Sharrock

Rémi Sharrock is an associate professor at Telecom ParisTech, IMT, France. He received his Ph.D. in Computer Science from the National Polytechnic Institute of Toulouse, France in 2010. Rémi’s main research focuses on large scale distributed systems and autonomic computing, as well as their applications to learning at scale. He’s passionate about innovative tools for online learning and has received the “MOOC of the year prize” for two of his french courses on C programming and Linux.

About this course

In this course, you will learn the principles of C programming and start coding hands-on in a browser tool that will provide instant feedback on your code.

The C programming language is one of the most stable and popular programming languages in the world. It helps to power your smartphone, your car’s navigation system, robots, drones, trains, and almost all electronic devices. C is used in any circumstances where speed and flexibility are important, such as in embedded systems or high-performance computing.

In this course, you will get started with C and learn how to write your first programs, how to make simple computations and print the results to the screen, how to store values in variables and how to repeat instructions using loops.

Beginners, even those without any programming experience, will be able to immediately start coding in C with the help of powerful yet simple coding tools right within the web browser. No need to install anything!

We are excited to introduce you to the world of coding and launch you along your path to becoming a skilled C programmer!

This is the first course in the C Programming with Linux Professional Certificate program. This series of seven short courses will establish your programming skills and unlock doors to careers in computer engineering.

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

What you’ll learn

  • Define, distinguish and give examples of hardware/software, computer programs/algorithms
  • Explain the concept of a variable and declare, initialize and modify variables of data types int, double and char
  • Create and comment simple C-programs that may print text, special characters and variables to the screen with controlled formatting
  • Create simple C-programs that utilize for-loops to repeat blocks of instructions

Meet your instructors

Petra Bonfert-Taylor

Petra Bonfert-Taylor is a Professor and an Instructional Designer at the Thayer School of Engineering at Dartmouth College. She received her Ph.D. in Mathematics from Technical University of Berlin (Germany) in 1996 and subsequently spent three years as a postdoctoral fellow at the University of Michigan before accepting a tenure-track position in the Mathematics Department at Wesleyan University. She left Wesleyan as a tenured full professor in 2015 for her current position at Dartmouth College. Petra has published extensively and lectured widely to national and international audiences. Her work has been recognized by the National Science Foundation with numerous research grants. She is equally passionate about her teaching.The recipient of the Binswanger Prize for Excellence in Teaching at Wesleyan University, the Excellence in Teaching Award at the Thayer School of Engineering and the NH High Tech Council Tech Teacher of the Year Award, Petra has a strong interest in broadening access to high-quality higher education and pedagogical innovations that aid in providing equal opportunities to students from all backgrounds.

Rémi Sharrock

Rémi Sharrock is an associate professor at Telecom ParisTech, IMT, France. He received his Ph.D. in Computer Science from the National Polytechnic Institute of Toulouse, France in 2010. Rémi’s main research focuses on large scale distributed systems and autonomic computing, as well as their applications to learning at scale. He’s passionate about innovative tools for online learning and has received the “MOOC of the year prize” for two of his french courses on C programming and Linux.