Informações sobre o curso
4.2
19 classificações
5 avaliações
Programa de cursos integrados
100% online

100% online

Comece imediatamente e aprenda em seu próprio cronograma.
Prazos flexíveis

Prazos flexíveis

Redefinir os prazos de acordo com sua programação.
Nível iniciante

Nível iniciante

Horas para completar

Aprox. 20 horas para completar

Sugerido: 4 weeks of study, 6–8 hours/week...
Idiomas disponíveis

Inglês

Legendas: Inglês
Programa de cursos integrados
100% online

100% online

Comece imediatamente e aprenda em seu próprio cronograma.
Prazos flexíveis

Prazos flexíveis

Redefinir os prazos de acordo com sua programação.
Nível iniciante

Nível iniciante

Horas para completar

Aprox. 20 horas para completar

Sugerido: 4 weeks of study, 6–8 hours/week...
Idiomas disponíveis

Inglês

Legendas: Inglês

Programa - O que você aprenderá com este curso

Semana
1
Horas para completar
6 horas para concluir

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 videos (Total 16 min), 16 leituras, 5 testes
Video5 videos
Reading a File with fgetc4min
Reading a File with fgets5min
Writing to a File2min
Closing a File2min
Reading16 leituras
Assignment 24_read_arr330min
Introduction to the Operating System10min
Errors from System Calls10min
Command Line Arguments10min
Complex Option Processing10min
The Environment Pointer10min
Process Creation10min
Opening a File10min
Reading a File10min
Reading a File with fgets10min
Reading a File with fread10min
Assignment 25_break_encrmin
Writing to Files10min
Closing Files10min
Other Interactions10min
Assignments 26_tests_matrix_input and 27_matrix_inputmin
Quiz5 exercícios práticos
The Operating System6min
Command Line Arguments and Process Creation6min
Opening Files and fgetc6min
Reading encryption.c6min
Writing and Closing Files8min
Semana
2
Horas para completar
8 horas para concluir

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 videos (Total 24 min), 19 leituras, 5 testes
Video7 videos
Mechanics of free2min
Code with a Memory Leak2min
Three Common Problems When Using free1min
Call to realloc4min
Reading a File with getline5min
Combining getline and realloc4min
Reading19 leituras
Motivation for Dynamic Allocation10min
malloc10min
Fixing initArray10min
More Complex Structures10min
Shallow vs. Deep Copying10min
free10min
Memory Leaks10min
A Dynamic Memory Allocation Analogy10min
Common Problems with free10min
realloc10min
getline10min
Valgrind's Memcheck10min
Uninitialized Values10min
Invalid Reads and Writes10min
Valgrind with GDB10min
Dynamic Allocation Issues10min
memcheck.h3min
Other Valgrind Tools3min
Assignments 28_fix_vg_encr, 29_outname, 30_sort_lines, and 31_minesweepermin
Quiz5 exercícios práticos
malloc6min
free8min
realloc4min
getline8min
Valgrind's Memcheck20min
Semana
3
Horas para completar
5 horas para concluir

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 videos (Total 6 min), 21 leituras, 2 testes
Video2 videos
Roster Planning5min
Reading21 leituras
Analogy to Writing10min
Abstraction3min
The Seven-Item Limit10min
Hierarchical Abstraction10min
Readability2min
Function Size2min
Naming4min
Formatting10min
Commenting and Documentation10min
Team Considerations5min
Git2min
Past Versions5min
Collaboration3min
Multiple Versions of the Present5min
Read More2min
Problem Description5min
Planning the High-Level Algorithm7min
Writing and Testing readInput10min
Finishing the Program10min
Even Larger Programs5min
Assignments 32_kvs, 33_counts, and 34_put_togethermin
Quiz2 exercícios práticos
Abstraction6min
Readability6min
Semana
4
Horas para completar
2 horas para concluir

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 video (Total 4 min), 1 leitura, 1 teste
Video1 vídeos
Reading1 leituras
Poker Project: Final Partmin

Instrutores

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

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

Sobre o Programa de cursos integrados 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

Perguntas Frequentes – FAQ

  • Ao se inscrever para um Certificado, você terá acesso a todos os vídeos, testes e tarefas de programação (se aplicável). Tarefas avaliadas pelos colegas apenas podem ser enviadas e avaliadas após o início da sessão. Caso escolha explorar o curso sem adquiri-lo, talvez você não consiga acessar certas tarefas.

  • Quando você se inscreve no curso, tem acesso a todos os cursos na Especialização e pode obter um certificado quando concluir o trabalho. Seu Certificado eletrônico será adicionado à sua página de Participações e você poderá imprimi-lo ou adicioná-lo ao seu perfil no LinkedIn. Se quiser apenas ler e assistir o conteúdo do curso, você poderá frequentá-lo como ouvinte sem custo.

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

Mais dúvidas? Visite o Central de Ajuda ao Aprendiz.