We may earn an affiliate commission when you visit our partners.
Take this course
Ge Li 李戈, Ph.D.

如果说学习过《计算导论与C语言基础》,你已经迈入了C语言的殿堂,那么《C程序设计进阶》将帮助你更上一层楼,理解“结构化程序设计的基本思想”,掌握“C程序设计的基本技巧”,养成“良好的编程习惯和编程风格”,编写出“真正具有生命力的计算机程序”。完成这门课的学习,你将能解释C程序设计语言的基本概念与知识,并且使用C语言编写计算机程序解决生活工作中的实际问题。

Enroll now

What's inside

Syllabus

欢迎加入《C程序设计进阶》
在学习完“理性认识C程序”之后,我们希望同学们能够自己动手编写一些简单的C程序了!如果你还没有具备这个能力,一个可能的原因是因为你还没有进行“足够的训练”。因为,学习一门程序语言,需要你获得的有两样东西——“知识”和“技巧”。“知识”可以通过讲授传递,但“技巧”却只能通过训练获得。因此,我们鼓励同学们在“理性认识C程序”这个迭代周期中,多多进行简单的编程练习,以便获得“技巧”。(注意:我们特别鼓励同学们多多进行“简单”的编程练习,因为,所有复杂的问题,都是简单问题的组合。我们的教学实践表明:多做简单练习,不但可以提升学习者的学习信心,也非常有助于编程技巧的提升!)在完成“理性认识C程序”部分的学习之后,我们将开始新的迭代周期——“结构化的程序”。在这个部分,我们将讲授一种基本的、用于将程序组织成“模块”的语言成分——函数。函数实际上是C程序的基本组织单位,是C程序设计中的重要组成部分。在这个迭代周期中,同学们不仅要学习函数的定义方式、调用方式,还要学习一种重要的函数使用方法——递归。我们将讲授递归调用的基本机理,并讲授“利用递归解决问题的技巧”。这部分,讲本课程C程序设计部分的一个难点!不过,请同学们不要担心,我们将力图通过最简明的讲解方式,帮助大家掌握“递归”的使用方法,力争“化困难于无形”。我们一起努力吧!PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长。
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides strong foundation for learners to incrementally build their C programming skills
Taught by seasoned faculty who present an authoritative approach to concepts and topics
Uses a proven and respected pedagogy to teach C programming concepts
Lacks hands-on labs and interactive materials for practice
Requires extensive background knowledge in programming
Provides an overview of C programming rather than a comprehensive study of its aspects

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

C程序设计核心概念进阶

根据学生反馈,本课程是学习完C语言基础后进一步深入理解C语言核心概念的优秀选择。许多学习者认为,课程在讲解如递归指针等传统难点时特别清晰和系统老师的讲解到位,能够帮助他们透彻理解这些复杂概念。课程的练习题和编程实践被认为是巩固知识、提升编程技巧重要环节。然而,有学生提醒,本课程确实需要扎实的C语言基础,否则学习起来会比较吃力。此外,课程最后关于面向对象的介绍仅为初步入门,更深入的学习需另寻资源。总体而言,对于希望扎实掌握C语言进阶概念的学习者来说,这是一门价值很高的课程
课程最后关于面向对象的介绍较基础,仅是初步了解。
"最后一课讲面向对象,感觉只是点到为止,不太深入。"
"如果想深入学习面向对象编程,这门课的介绍只是个引子,需要其他课程。"
"是对后续课程的铺垫,但本身内容有限。"
课程内容有一定深度,尤其难点部分对学习者是挑战。
"课程内容有深度,需要认真学习和反复消化。"
"总体进度不错,但递归那块我花了很多时间去理解和练习。"
"课程质量很高,但确实有难度,需要投入时间和精力。"
本课程要求学习者已掌握C语言基础知识。
"如果C语言基础不牢固,学这门课会比较吃力,建议先补习基础。"
"建议先学完入门课程再来,衔接性很好,但基础不好会跟不上。"
"课程进度建立在已有基础之上,不适合完全的C语言新手。"
"这门课是进阶,不是入门,请确保你已经掌握了C语言基本语法。"
课程配套的练习有助于知识巩固和技能提升。
"光听课不够,做了练习题才真正掌握,实践出真知。"
"练习设计得很好,能帮助消化课堂内容,非常有针对性。"
"通过练习,编程技巧有了明显提升,对解决实际问题有帮助。"
"课程反复强调动手实践,这是学好编程的关键。"
课程对递归和指针等复杂概念的解析非常到位。
"老师对递归和指针的讲解非常到位,之前觉得很难的概念都清晰了。"
"课程在处理指针和递归这两个C语言难点时,讲得很系统。"
"通过老师的例子,我终于理解了递归的执行过程,这是我之前一直困惑的地方。"
"这门课让我彻底搞懂了指针的用法和原理,感觉拨云见日。"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in C程序设计进阶 with these activities:
與同學組成學習小組
與同學組成學習小組可以提供一個支持性的環境,讓你可以討論概念、互相幫助解決問題。
Show steps
  • 找到志同道合的同學
  • 定期見面並討論課程材料
  • 共同完成練習和作業
跟隨「基礎C語言」的官方教程
官方教程將逐步指導你了解 C 語言的基本概念和語法,加深你對 C 語言的理解。
Show steps
  • 瀏覽「基礎C語言」官方網站
  • 開始學習第一個章節
  • 完成章節練習和測驗
解 C 語言編程題目
練習解決 C 語言編程題目有助於強化你的編程技能並加深你對語言的理解。
Show steps
  • 尋找 C 語言編程題目資源
  • 選擇一個難度適中的題目
  • 嘗試編寫解決方案
  • 檢查你的解決方案是否有誤
Three other activities
Expand to see all activities and additional details
Show all six activities
編寫關於 C 語言的博文或教學文章
撰寫關於 C 語言的內容將迫使你回顧並加深你對語言的理解,並幫助你以新的方式思考這些概念。
Show steps
  • 選擇一個你熟悉且想要深入探討的主題
  • 研究你的主題並收集資訊
  • 撰寫你的文章或博文,確保內容清晰且引人入勝
  • 編輯和校對你的文章或博文
參加 C 語言編程比賽
參加 C 語言編程比賽可以挑戰你的技能,並讓你與其他 C 語言愛好者競爭。
Show steps
  • 尋找適合你技能水平的比賽
  • 練習和準備比賽
  • 在比賽中盡力發揮
參與 C 語言開源專案
參與 C 語言開源專案可讓你接觸到真實世界的 C 語言應用,並讓你為開源社群做出貢獻。
Show steps
  • 尋找你感興趣的開源專案
  • 閱讀專案文件並了解其程式碼庫
  • 提出問題或請求加入專案
  • 開始為專案做出貢獻

Career center

Learners who complete C程序设计进阶 will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers design, develop, test, and maintain computer software systems, including applications, operating systems, and middleware. This course may be useful for aspiring Software Developers, as it provides a solid foundation in the C programming language, which is widely used in software development. The course also covers concepts such as data structures, algorithms, and software design patterns, which are essential for understanding the design and implementation of software systems.
Computer Software Engineer
Computer Software Engineers design, develop, test, and maintain computer software systems, including operating systems, applications, and middleware. This course may be useful for aspiring Computer Software Engineers, as it provides a solid foundation in the C programming language, which is widely used in software development. The course also covers concepts such as data structures, algorithms, and software design patterns, which are essential for understanding the design and implementation of software systems.
Game Programmer
Game Programmers design, develop, and maintain video games. This course may be useful for aspiring Game Programmers, as it provides a solid foundation in the C programming language, which is commonly used in game development. The course also covers concepts such as data structures, algorithms, and graphics programming, which are essential for understanding the design and implementation of video games.
Artificial Intelligence Engineer
Artificial Intelligence Engineers design, develop, and maintain artificial intelligence systems, such as machine learning algorithms and natural language processing systems. This course may be useful for aspiring Artificial Intelligence Engineers, as it provides a solid foundation in the C programming language, which is commonly used in artificial intelligence development. The course also covers concepts such as data structures, algorithms, and machine learning, which are essential for understanding the design and implementation of artificial intelligence systems.
Embedded Systems Engineer
Embedded Systems Engineers design, develop, and maintain embedded systems, which are computer systems that are embedded in larger systems, such as cars, airplanes, and medical devices. This course may be useful for aspiring Embedded Systems Engineers, as it provides a solid foundation in the C programming language, which is commonly used in embedded systems development. The course also covers concepts such as data structures, algorithms, and real-time systems, which are essential for understanding the design and implementation of embedded systems.
Computer Vision Engineer
Computer Vision Engineers design, develop, and maintain computer vision systems, such as image recognition and object detection systems. This course may be useful for aspiring Computer Vision Engineers, as it provides a solid foundation in the C programming language, which is commonly used in computer vision development. The course also covers concepts such as data structures, algorithms, and image processing, which are essential for understanding the design and implementation of computer vision systems.
Mobile Application Developer
Mobile Application Developers design, develop, and maintain mobile applications for smartphones and tablets. This course may be useful for aspiring Mobile Application Developers, as it provides a solid foundation in the C programming language, which is commonly used in mobile application development. The course also covers concepts such as data structures, algorithms, and mobile operating systems, which are essential for understanding the design and implementation of mobile applications.
Robotics Engineer
Robotics Engineers design, develop, and maintain robots, such as industrial robots and autonomous vehicles. This course may be useful for aspiring Robotics Engineers, as it provides a solid foundation in the C programming language, which is commonly used in robotics development. The course also covers concepts such as data structures, algorithms, and control systems, which are essential for understanding the design and implementation of robots.
Computer Graphics Programmer
Computer Graphics Programmers design, develop, and maintain computer graphics systems, such as 3D modeling and animation systems. This course may be useful for aspiring Computer Graphics Programmers, as it provides a solid foundation in the C programming language, which is commonly used in computer graphics development. The course also covers concepts such as data structures, algorithms, and graphics programming, which are essential for understanding the design and implementation of computer graphics systems.
Systems Analyst
Systems Analysts design, develop, and implement computer systems, including hardware, software, and networks. This course may be useful for aspiring Systems Analysts, as it provides a solid foundation in the C programming language, which is commonly used in systems development. The course also covers concepts such as data structures, algorithms, and operating systems, which are essential for understanding the design and implementation of computer systems.
Web Developer
Web Developers design and develop websites and web applications. This course may be useful for aspiring Web Developers, as it provides a solid foundation in the C programming language, which is commonly used in web development. The course also covers concepts such as data structures, algorithms, and web technologies, which are essential for understanding the design and implementation of websites and web applications.
Information Security Analyst
Information Security Analysts plan and implement security measures to protect an organization's computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course may be useful for aspiring Information Security Analysts, as it provides a solid foundation in the C programming language, which is commonly used in security applications. The course also covers concepts such as cryptography, network security, and operating systems, which are essential for understanding the design and implementation of security systems.
Data Scientist
Data Scientists use scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured. This course may be useful for aspiring Data Scientists, as it provides a solid foundation in the C programming language, which is commonly used in data science and machine learning applications. The course also covers concepts such as data structures, algorithms, and statistical analysis, which are essential for understanding and working with data.
Database Administrator
Database Administrators design, implement, and maintain database systems, including database servers, storage devices, and backup systems. This course may be useful for aspiring Database Administrators, as it provides a solid foundation in the C programming language, which is commonly used in database management systems. The course also covers concepts such as data structures, algorithms, and operating systems, which are essential for understanding the design and implementation of database systems.
Computer Hardware Engineer
Computer Hardware Engineers design, develop, test, and maintain computer hardware systems, including processors, circuit boards, memory devices, and other electronic components. This course may be useful for aspiring Computer Hardware Engineers, as it provides a solid foundation in the C programming language, which is commonly used in embedded systems and hardware design. The course also covers concepts such as data structures, algorithms, and operating systems, which are essential for understanding the behavior of computer hardware.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in C程序设计进阶.
C语言的经典著作,由C语言之父Dennis Ritchie参与编写,权威性高,适合作为C语言进阶学习的参考书。
讲解C语言基础知识和高级特性,通过大量示例和练习帮助读者理解C语言,适合作为C语言入门教科书。
讲解编程的基本原理和通用技术,虽然不是专门针对C语言,但对C语言编程也有启发。
讲解数据结构和算法的基本原理,使用C语言实现,适合作为数据结构和算法入门教科书。
讲解UNIX环境下的高级编程技巧,深入剖析UNIX内核和系统调用,适合对UNIX编程感兴趣的读者学习。
讲解C语言中常见的陷阱和错误,帮助读者避免在编程中遇到这些问题。
讲解操作系统基本原理,虽然不是专门针对C语言,但对C语言编程也有帮助。
讲解算法和数据结构的基本原理,虽然不是专门针对C语言,但对C语言编程也有帮助。
讲解C语言最新标准(C11和C17)特性,适合对C语言标准演进感兴趣的读者学习。
讲解计算机系统基本原理,虽然不是专门针对C语言,但对C语言编程也有帮助。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser