À propos de ce cours
4.2
14 notes
3 avis
The final course in the specialization Introduction to Programming in C will teach you powerful new programming techniques for interacting with the user and the system and dynamically allocating memory. You will learn more sophisticated uses for pointers, such as strings and multidimensional arrays, as well as how to write programs that read and write files and take input from the user. Learning about dynamic memory allocation will allow your programs to perform complex tasks that will be applied in the final part of the specialization project: a Monte Carlo simulation for calculating poker hand probabilities....
Globe

Cours en ligne à 100 %

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Calendar

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Beginner Level

Niveau débutant

Clock

Approx. 14 hours to complete

Recommandé : 4 weeks of study, 6–8 hours/week...
Comment Dots

English

Sous-titres : English...
Globe

Cours en ligne à 100 %

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Calendar

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Beginner Level

Niveau débutant

Clock

Approx. 14 hours to complete

Recommandé : 4 weeks of study, 6–8 hours/week...
Comment Dots

English

Sous-titres : English...

Programme du cours : ce que vous apprendrez dans ce cours

Week
1
Clock
6 heures pour terminer

Module 1: Interacting with the user and system

So far, our programs have had a rather limited interaction with the user or rest of the system, printing some results to standard output (typically to the terminal). Now that we have learned about topics such as strings and arrays, we are ready to learn how to write a program that takes input from the user, takes arguments on the command line, accesses files, and does many other things we typically think of real programs as doing. ...
Reading
5 vidéos (Total 16 min), 16 lectures, 5 quiz
Video5 vidéos
Reading a File with fgetc4 min
Reading a File with fgets5 min
Writing to a File2 min
Closing a File2 min
Reading16 lectures
Assignment 24_read_arr330 min
Introduction to the Operating System10 min
Errors from System Calls10 min
Command Line Arguments10 min
Complex Option Processing10 min
The Environment Pointer10 min
Process Creation10 min
Opening a File10 min
Reading a File10 min
Reading a File with fgets10 min
Reading a File with fread10 min
Assignment 25_break_encr min
Writing to Files10 min
Closing Files10 min
Other Interactions10 min
Assignments 26_tests_matrix_input and 27_matrix_input min
Quiz5 exercices pour s'entraîner
The Operating System6 min
Command Line Arguments and Process Creation6 min
Opening Files and fgetc6 min
Reading encryption.c6 min
Writing and Closing Files8 min
Week
2
Clock
8 heures pour terminer

Module 2: Dynamic allocation

So far, most of the memory we have used has been located on the stack. Dynamic memory allocation gives a programmer much more flexibility, in that it allows you to request a specific amount memory to be allocated on the heap, so that it will not disappear with the stack frame of the calling function....
Reading
7 vidéos (Total 24 min), 19 lectures, 5 quiz
Video7 vidéos
Mechanics of free2 min
Code with a Memory Leak2 min
Three Common Problems When Using free1 min
Call to realloc4 min
Reading a File with getline5 min
Combining getline and realloc4 min
Reading19 lectures
Motivation for Dynamic Allocation10 min
malloc10 min
Fixing initArray10 min
More Complex Structures10 min
Shallow vs. Deep Copying10 min
free10 min
Memory Leaks10 min
A Dynamic Memory Allocation Analogy10 min
Common Problems with free10 min
realloc10 min
getline10 min
Valgrind's Memcheck10 min
Uninitialized Values10 min
Invalid Reads and Writes10 min
Valgrind with GDB10 min
Dynamic Allocation Issues10 min
memcheck.h3 min
Other Valgrind Tools3 min
Assignments 28_fix_vg_encr, 29_outname, 30_sort_lines, and 31_minesweeper min
Quiz5 exercices pour s'entraîner
malloc6 min
free8 min
realloc4 min
getline8 min
Valgrind's Memcheck20 min
Week
3
Clock
5 heures pour terminer

Module 3: Programming in the Large

So far, we have focused exclusively on programming in the small—designing the algorithm for a small-sized task, implementing it, testing it, and debugging it. This module discusses three main differences that "real" programs exhibit. 1) They tend to be much larger than those we have written. 2) More than one person works on them, sometimes teams of hundreds to thousands. 3) Real software has a long life-span during which it must be maintained. Now that you have an understanding of the basics of programming in the small, we are ready to begin learning about programming in the large!...
Reading
2 vidéos (Total 6 min), 21 lectures, 2 quiz
Video2 vidéos
Roster Planning5 min
Reading21 lectures
Analogy to Writing10 min
Abstraction3 min
The Seven-Item Limit10 min
Hierarchical Abstraction10 min
Readability2 min
Function Size2 min
Naming4 min
Formatting10 min
Commenting and Documentation10 min
Team Considerations5 min
Git2 min
Past Versions5 min
Collaboration3 min
Multiple Versions of the Present5 min
Read More2 min
Problem Description5 min
Planning the High-Level Algorithm7 min
Writing and Testing readInput10 min
Finishing the Program10 min
Even Larger Programs5 min
Assignments 32_kvs, 33_counts, and 34_put_together min
Quiz2 exercices pour s'entraîner
Abstraction6 min
Readability6 min
Week
4
Clock
2 heures pour terminer

Module 4: Poker Project

In this module, you will complete the Poker Project! Now that you know about dynamic memory allocation, user input, and how to program in the large, you can write the final parts of the program. You will write code to read in a file with a hand of cards and code to choose unknown cards from a shuffled deck. As you program with more sophisticated data structures, the importance of drawing good pictures will increase. Happy programming!...
Reading
1 vidéo (Total 4 min), 1 lecture, 1 quiz
Video1 vidéo
Reading1 lecture
Poker Project: Final Part min

Enseignants

Andrew D. Hilton

Associate Professor of the Practice
Electrical and Computer Engineering

Anne Bracy

Senior Lecturer
Computer Science, Cornell University

Genevieve M. Lipp

Adjunct Professor
Electrical and Computer Engineering/Mechanical Engineering

À propos de Duke University

Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world....

À propos de la Spécialisation Introduction to Programming in C

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....
Introduction to Programming in C

Foire Aux Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • 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.

  • 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.

D'autres questions ? Visitez le Centre d'Aide pour les Etudiants.