About this Course

50,348 recent views
Shareable Certificate
Earn a Certificate upon completion
100% online
Start instantly and learn at your own schedule.
Flexible deadlines
Reset deadlines in accordance to your schedule.
Beginner Level
Approx. 22 hours to complete
English
Subtitles: English
Shareable Certificate
Earn a Certificate upon completion
100% online
Start instantly and learn at your own schedule.
Flexible deadlines
Reset deadlines in accordance to your schedule.
Beginner Level
Approx. 22 hours to complete
English
Subtitles: English

Offered by

Duke University logo

Duke University

Syllabus - What you will learn from this course

Week
1

Week 1

7 hours to complete

Module 1: Interacting with the user and system

7 hours to complete
5 videos (Total 16 min), 17 readings, 5 quizzes
5 videos
Reading a File with fgetc4m
Reading a File with fgets5m
Writing to a File2m
Closing a File2m
17 readings
Assignment 24_read_arr330m
****Current Technical Problems with Course Programming Environment****10m
Introduction to the Operating System10m
Errors from System Calls10m
Command Line Arguments10m
Complex Option Processing10m
The Environment Pointer10m
Process Creation10m
Opening a File10m
Reading a File10m
Reading a File with fgets10m
Reading a File with fread10m
Assignment 25_break_encr1h
Writing to Files10m
Closing Files10m
Other Interactions10m
Assignments 26_tests_matrix_input and 27_matrix_input2h
5 practice exercises
The Operating System6m
Command Line Arguments and Process Creation6m
Opening Files and fgetc6m
Reading encryption.c6m
Writing and Closing Files8m
Week
2

Week 2

8 hours to complete

Module 2: Dynamic allocation

8 hours to complete
7 videos (Total 24 min), 19 readings, 5 quizzes
7 videos
Mechanics of free2m
Code with a Memory Leak2m
Three Common Problems When Using free1m
Call to realloc4m
Reading a File with getline5m
Combining getline and realloc4m
19 readings
Motivation for Dynamic Allocation10m
malloc10m
Fixing initArray10m
More Complex Structures10m
Shallow vs. Deep Copying10m
free10m
Memory Leaks10m
A Dynamic Memory Allocation Analogy10m
Common Problems with free10m
realloc10m
getline10m
Valgrind's Memcheck10m
Uninitialized Values10m
Invalid Reads and Writes10m
Valgrind with GDB10m
Dynamic Allocation Issues10m
memcheck.h3m
Other Valgrind Tools3m
Assignments 28_fix_vg_encr, 29_outname, 30_sort_lines, and 31_minesweeper4h
5 practice exercises
malloc6m
free8m
realloc4m
getline8m
Valgrind's Memcheck20m
Week
3

Week 3

5 hours to complete

Module 3: Programming in the Large

5 hours to complete
2 videos (Total 6 min), 21 readings, 2 quizzes
2 videos
Roster Planning5m
21 readings
Analogy to Writing10m
Abstraction3m
The Seven-Item Limit10m
Hierarchical Abstraction10m
Readability2m
Function Size2m
Naming4m
Formatting10m
Commenting and Documentation10m
Team Considerations5m
Git2m
Past Versions5m
Collaboration3m
Multiple Versions of the Present5m
Read More2m
Problem Description5m
Planning the High-Level Algorithm7m
Writing and Testing readInput10m
Finishing the Program10m
Even Larger Programs5m
Assignments 32_kvs, 33_counts, and 34_put_together3h
2 practice exercises
Abstraction6m
Readability6m
Week
4

Week 4

2 hours to complete

Module 4: Poker Project

2 hours to complete
1 video (Total 4 min), 1 reading, 1 quiz
1 reading
Poker Project: Final Part1h

Reviews

TOP REVIEWS FROM INTERACTING WITH THE SYSTEM AND MANAGING MEMORY

View all reviews

About the Introduction to Programming in C Specialization

This specialization develops strong programming fundamentals for learners who want to solve complex problems by writing computer programs. Through four courses, you will learn to develop algorithms in a systematic way and read and write the C code to implement them. This will prepare you to pursue a career in software development or other computational fields. Successful completion of this Specialization will be considered by admissions as a demonstration of your skill and enhance your master’s application to Duke’s Pratt School of Engineering. ****Note: Due to a recent spike in enrollments for the Introduction to Programming in C Specialization, we are currently having technical difficulties with programming environment for this course, which prevents some learners from completing the course's programming assignments. Until this matter is resolved, we recommend you choose to audit (https://learner.coursera.help/hc/en-us/articles/209818613-Enrollment-options) this course and study the video lessons until this matter is resolved. We will email all learners when this matter is resolved. We apologize for this inconvenience and are working diligently to remedy the problem. Please note that this does not impact the first course of this Specialization, Programming Fundamentals....
Introduction to Programming in C

Frequently Asked Questions

  • Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:

    • The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.
    • The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

  • If you subscribed, you get a 7-day free trial during which you can cancel at no penalty. After that, we don’t give refunds, but you can cancel your subscription at any time. See our full refund policy.

  • Yes, Coursera provides financial aid to learners who cannot afford the fee. Apply for it by clicking on the Financial Aid link beneath the "Enroll" button on the left. You'll be prompted to complete an application and will be notified if you are approved. You'll need to complete this step for each course in the Specialization, including the Capstone Project. Learn more.

  • No. Completion of a Coursera course does not earn you academic credit from Duke; therefore, Duke is not able to provide you with a university transcript. However, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

More questions? Visit the Learner Help Center.