课程信息
4.2
19 个评分
5 个审阅
专项课程

第 4 门课程(共 4 门)

100% 在线

100% 在线

立即开始,按照自己的计划学习。
可灵活调整截止日期

可灵活调整截止日期

根据您的日程表重置截止日期。
初级

初级

完成时间(小时)

完成时间大约为20 小时

建议:4 weeks of study, 6–8 hours/week...
可选语言

英语(English)

字幕:英语(English)
专项课程

第 4 门课程(共 4 门)

100% 在线

100% 在线

立即开始,按照自己的计划学习。
可灵活调整截止日期

可灵活调整截止日期

根据您的日程表重置截止日期。
初级

初级

完成时间(小时)

完成时间大约为20 小时

建议:4 weeks of study, 6–8 hours/week...
可选语言

英语(English)

字幕:英语(English)

教学大纲 - 您将从这门课程中学到什么

1
完成时间(小时)
完成时间为 6 小时

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 个视频 (总计 16 分钟), 16 个阅读材料, 5 个测验
Video5 个视频
Reading a File with fgetc4分钟
Reading a File with fgets5分钟
Writing to a File2分钟
Closing a File2分钟
Reading16 个阅读材料
Assignment 24_read_arr330分钟
Introduction to the Operating System10分钟
Errors from System Calls10分钟
Command Line Arguments10分钟
Complex Option Processing10分钟
The Environment Pointer10分钟
Process Creation10分钟
Opening a File10分钟
Reading a File10分钟
Reading a File with fgets10分钟
Reading a File with fread10分钟
Assignment 25_break_encr分钟
Writing to Files10分钟
Closing Files10分钟
Other Interactions10分钟
Assignments 26_tests_matrix_input and 27_matrix_input分钟
Quiz5 个练习
The Operating System6分钟
Command Line Arguments and Process Creation6分钟
Opening Files and fgetc6分钟
Reading encryption.c6分钟
Writing and Closing Files8分钟
2
完成时间(小时)
完成时间为 8 小时

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 个视频 (总计 24 分钟), 19 个阅读材料, 5 个测验
Video7 个视频
Mechanics of free2分钟
Code with a Memory Leak2分钟
Three Common Problems When Using free1分钟
Call to realloc4分钟
Reading a File with getline5分钟
Combining getline and realloc4分钟
Reading19 个阅读材料
Motivation for Dynamic Allocation10分钟
malloc10分钟
Fixing initArray10分钟
More Complex Structures10分钟
Shallow vs. Deep Copying10分钟
free10分钟
Memory Leaks10分钟
A Dynamic Memory Allocation Analogy10分钟
Common Problems with free10分钟
realloc10分钟
getline10分钟
Valgrind's Memcheck10分钟
Uninitialized Values10分钟
Invalid Reads and Writes10分钟
Valgrind with GDB10分钟
Dynamic Allocation Issues10分钟
memcheck.h3分钟
Other Valgrind Tools3分钟
Assignments 28_fix_vg_encr, 29_outname, 30_sort_lines, and 31_minesweeper分钟
Quiz5 个练习
malloc6分钟
free8分钟
realloc4分钟
getline8分钟
Valgrind's Memcheck20分钟
3
完成时间(小时)
完成时间为 5 小时

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 个视频 (总计 6 分钟), 21 个阅读材料, 2 个测验
Video2 个视频
Roster Planning5分钟
Reading21 个阅读材料
Analogy to Writing10分钟
Abstraction3分钟
The Seven-Item Limit10分钟
Hierarchical Abstraction10分钟
Readability2分钟
Function Size2分钟
Naming4分钟
Formatting10分钟
Commenting and Documentation10分钟
Team Considerations5分钟
Git2分钟
Past Versions5分钟
Collaboration3分钟
Multiple Versions of the Present5分钟
Read More2分钟
Problem Description5分钟
Planning the High-Level Algorithm7分钟
Writing and Testing readInput10分钟
Finishing the Program10分钟
Even Larger Programs5分钟
Assignments 32_kvs, 33_counts, and 34_put_together分钟
Quiz2 个练习
Abstraction6分钟
Readability6分钟
4
完成时间(小时)
完成时间为 2 小时

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 个视频 (总计 4 分钟), 1 个阅读材料, 1 个测验
Video1 个视频
Reading1 个阅读材料
Poker Project: Final Part分钟

讲师

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

关于 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....

关于 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

常见问题

  • 注册以便获得证书后,您将有权访问所有视频、测验和编程作业(如果适用)。只有在您的班次开课之后,才可以提交和审阅同学互评作业。如果您选择在不购买的情况下浏览课程,可能无法访问某些作业。

  • 您注册课程后,将有权访问专项课程中的所有课程,并且会在完成课程后获得证书。您的电子课程证书将添加到您的成就页中,您可以通过该页打印您的课程证书或将其添加到您的领英档案中。如果您只想阅读和查看课程内容,可以免费旁听课程。

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

还有其他问题吗?请访问 学生帮助中心