À propos de ce cours
4.2
19 notes
5 avis
Spécialisation
100 % en ligne

100 % en ligne

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Dates limites flexibles

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Niveau débutant

Niveau débutant

Heures pour terminer

Approx. 20 heures pour terminer

Recommandé : 4 weeks of study, 6–8 hours/week...
Langues disponibles

Anglais

Sous-titres : Anglais
Spécialisation
100 % en ligne

100 % en ligne

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Dates limites flexibles

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Niveau débutant

Niveau débutant

Heures pour terminer

Approx. 20 heures pour terminer

Recommandé : 4 weeks of study, 6–8 hours/week...
Langues disponibles

Anglais

Sous-titres : Anglais

Programme du cours : ce que vous apprendrez dans ce cours

Semaine
1
Heures pour terminer
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_encrs
Writing to Files10 min
Closing Files10 min
Other Interactions10 min
Assignments 26_tests_matrix_input and 27_matrix_inputs
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
Semaine
2
Heures pour terminer
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_minesweepers
Quiz5 exercices pour s'entraîner
malloc6 min
free8 min
realloc4 min
getline8 min
Valgrind's Memcheck20 min
Semaine
3
Heures pour terminer
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_togethers
Quiz2 exercices pour s'entraîner
Abstraction6 min
Readability6 min
Semaine
4
Heures pour terminer
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 Parts
4.2
5 avisChevron Right

Meilleurs avis

par LSDec 14th 2018

Excellent range of topics ~~~~~> thank you enabling me to realize my dreams of becoming a more competent engineer.

Enseignants

Avatar

Andrew D. Hilton

Associate Professor of the Practice
Electrical and Computer Engineering
Avatar

Anne Bracy

Senior Lecturer
Computer Science, Cornell University
Avatar

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

  • Une fois que vous êtes inscrit(e) pour un Certificat, vous pouvez accéder à toutes les vidéos de cours, et à tous les quiz et exercices de programmation (le cas échéant). Vous pouvez soumettre des devoirs à examiner par vos pairs et en examiner vous-même uniquement après le début de votre session. Si vous préférez explorer le cours sans l'acheter, vous ne serez peut-être pas en mesure d'accéder à certains devoirs.

  • Lorsque vous vous inscrivez au cours, vous bénéficiez d'un accès à tous les cours de la Spécialisation, et vous obtenez un Certificat lorsque vous avez réussi. Votre Certificat électronique est alors ajouté à votre page Accomplissements. À partir de cette page, vous pouvez imprimer votre Certificat ou l'ajouter à votre profil LinkedIn. Si vous souhaitez seulement lire et visualiser le contenu du cours, vous pouvez accéder gratuitement au cours en tant qu'auditeur libre.

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