À propos de ce cours
4.6
47 notes
9 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. 17 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. 17 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
3 heures pour terminer

Pointers

Pointers are one of the most important and powerful aspects of the C language. Pointers are critical to understanding arrays, which let you manipulate sequences of data. They also give a programmer control and flexibility when programming, enabling solutions that are clean and efficient. Some other languages use pointers implicitly—or pointer-like constructs—so understanding their use will make you a better programmer in any language....
Reading
5 vidéos (Total 16 min), 15 lectures, 3 quiz
Video5 vidéos
Naive Swap2 min
Pointers2 min
Corrected Swap2 min
Swap with Hardware6 min
Reading15 lectures
Pointer Basics10 min
Pictures10 min
Swap Revisited10 min
The Practice Programming Environment10 min
Assignment 11_read_ptr110 min
Pointers under the Hood10 min
A Program's View of Memory10 min
NULL10 min
Pointers to Structs10 min
Pointers to Pointers10 min
const10 min
Aliasing10 min
Pointer Arithmetic10 min
Use Memory Checker Tools10 min
Assignment 12_read_ptr210 min
Quiz3 exercices pour s'entraîner
Pointers Conceptually6 min
Pointers in Hardware6 min
Pointers to Sophisticated Types6 min
Semaine
2
Heures pour terminer
2 heures pour terminer

Arrays

Arrays are sequences of memory of the same type that are guaranteed to be one after another. This is an incredibly useful data format, enabling you to store many things together under one variable name. In this module, you will learn how to use arrays to solve more complex problems and lay the groundwork for more complex data types....
Reading
5 vidéos (Total 18 min), 9 lectures, 1 quiz
Video5 vidéos
Array Access with Pointer Indexing1 min
Index of Largest Element6 min
Closest Point Step-Through3 min
Dangling Pointers3 min
Reading9 lectures
Cryptography Motivation10 min
Array Declaration and Initialization10 min
Accessing an Array10 min
Passing Arrays as Parameters10 min
Writing Code with Arrays10 min
Assignment 13_read_arr110 min
Dangling Pointers10 min
Array Size10 min
Assignments 14_array_max, 15_tests_subseq, 16_subseq10 min
Quiz1 exercice pour s'entraîner
Array Basics6 min
Semaine
3
Heures pour terminer
4 heures pour terminer

Uses of Pointers

Now that you have mastered the basics of pointers and arrays, it is time to see some important uses of them. In this module, you will learn about how to manipulate strings and multi-dimensional arrays. You will also learn about function pointers, which allow you to pass "which function to call" as the parameter of another function....
Reading
4 vidéos (Total 22 min), 18 lectures, 2 quiz
Video4 vidéos
Copy a String4 min
Incompatible Representations5 min
Buffer Overflow4 min
Reading18 lectures
String Literals10 min
Mutable Strings10 min
String Equality10 min
String Copying10 min
Converting Strings to ints10 min
Standard Library Functions10 min
Assignments 17_read_arr2 and 18_reverse_str10 min
Introduction10 min
Declaration10 min
Indexing10 min
Initializing10 min
Array of Pointers10 min
Incompatibility10 min
Array of Strings10 min
Assignments 19_bits_arr and 20_rot_matrix10 min
Function Pointer Basics10 min
Sorting Functions10 min
Format String Attacks10 min
Quiz2 exercices pour s'entraîner
Function Pointers6 min
Security Hazards6 min
Semaine
4
Heures pour terminer
2 heures pour terminer

Recursion

By now you are familiar with iteration, in which repetition is expressed in terms of loops. Another programming technique to accomplish similar ideas is "recursion" in which a more complex instance of a problem is expressed in terms of solutions to simpler instances of the problem. In this module, you will learn how to read and write recursive code, giving you another powerful option for how to approach programming problems. ...
Reading
8 vidéos (Total 29 min), 10 lectures, 1 quiz
Video8 vidéos
Writing Factorial Recursively6 min
Translating Recursive Factorial to Code1 min
Writing Fibonacci Recursively6 min
Translate Recursive Fibonacci to Code4 min
Duplication of Computation in Fibonacci1 min
Execution of the Tail Recursive Implementation of Factorial4 min
Execution of Mutually Recursive isOdd and isEven1 min
Reading10 lectures
Introduction to Recursion2 min
Reading Recursive Code10 min
Principles of Writing Recursive Code10 min
Is Recursion Slow?10 min
Assignment 21_read_rec110 min
Tail Recursion10 min
Equivalence of Tail Recursion and Iteration10 min
Mutual Recursion10 min
Assignments 22_tests_power and 23_power_rec10 min
(Optional) Recursion Theory10 min
Quiz1 exercice pour s'entraîner
Reading Recursion6 min
4.6
9 avisChevron Right

Meilleurs avis

par DHAug 13th 2018

End of course project was challenging and fun. Lots of opportunity to learn how to debug memory issues with valgrind.

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.