C Programming: Modular Programming and Memory Management

Course 3 of 7: Professional Certificate in C Programming with Linux 7 Weeks 2 - 4 Hours per week

Please select the start dates for your courses below.

Scheduled Start:

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.


7 Weeks

Experience Level


Learning Partner