C Programming: Modular Programming and Memory Management - 3
Dartmouth College and Institut Mines-Télécom via Coursera
-
286
-
- Write review
Overview
Enhance your coding skills along your path to becoming a proficient C programmer with the essential concepts of functions and pointers.
In this course you will be introduced to the concept of modular programming: that is, dividing up more complex tasks into manageable pieces.
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! You will receive instant feedback on your code right within your browser.
The programming concepts you will gain in this course are foundational to any programming language. 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.
By the end of this course, you will have reached the third mile stone in the C Programming with Linux Specialization program, unlocking the door 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.
Syllabus
- Welcome
- Let's start coding. You will get familiar with the leaning tools our team has developed to make learning code easier.
- Week 1: Functions and recursion
- This week, you will to decompose a more complex program into various functions. To do this, you will learn to create functions, write function calls and prototypes, call on functions, and have functions return specific values.
- Week 2: Memory and the scope of variables
- This week you will know more of the Von Neumann architecture model. You will recall how computer memory is organized and addressed, use the sizeof() functions with variables of different types, recognize overflow and roundoff errors, and identify the scope of a variable.
- Week 3: Pointers
- This week, you will visualize, describe, and utilize points using simple pointer arithmetic. You will be able to create functions to which arrays can be passed and that can modify arrays.
- Concluding the course
Taught by
Rémi Sharrock and Petra Bonfert-Taylor