We may earn an affiliate commission when you visit our partners.
Course image
Jiaying Liu 刘家瑛, Ph.D. and 郭 炜

北京大学《C++程序设计》这门课将向你讲授C++程序设计有关的概念和语法,使你能够使用C++语言,以面向对象的方法编写可维护性、可扩充性好的,较大规模的程序。我们建议你在开始本课程之前已经熟悉了C语言和基本程设编写。这门课则将带你掌握C++语言中类、对象、运算符重载、继承、多态等面向对象的程序设计方法,以及模板、标准模板库STL等泛型程序设计的机制,体会和领悟面向对象程序设计方法和泛型程序设计方法的优势。

Enroll now

Here's a deal for you

Save money when you learn with a deal that may be relevant to this course.
All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

快来加入我们吧!
在完成了计算导论和C程序设计两门课程之后,你是不是被编写程序中逻辑思维的过程与设计精秒的小程序解决实际生活中的问题所深深吸引?你是不是有时也会为大篇幅的程序设计中查错、复用等问题而纠结?快来加入专项课程的第三门课程《C++程序设计》中来吧,为你撑起“面向对象”的另一片天地!通过这门课程的学习,你将有能力驾驭大规模的程序开发,提升自身的编程素养,并为后续的算法、数据结构等课程的学习奠定坚实的基础!PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
适合希望通过面向对象的形式掌握 C++ 编程的人
知识点和概念讲解详细,涵盖了 C++ 编程的基本方法
提供动手编程练习,帮助巩固对 C++ 语法的理解
课程内容较为基础,适合初学者入门 C++ 编程
涉及面向对象编程、模板和标准模板库等重要概念
由北京大学讲师授课,具有较高的学术权威性

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++的核心概念,特别是面向对象编程(OOP)中的类、对象、继承、多态等,进行了清晰、系统且深入的讲解。这种讲解方式被认为是帮助学生构建坚实理论基础的关键。课程的编程作业虽然普遍被认为难度较大,需要投入大量时间和精力,但绝大多数完成作业的学生都表示这是提升编程技能加深对知识理解最有效环节。课程对标准模板库(STL)的介绍被视为及时且实用,对今后的项目开发有直接帮助。不过,部分学生提到,由于课程融合了不同时期的教学视频,有时会出现内容上的重复风格上的差异,可能影响学习的连贯性。课程官网明确了需要扎实的C语言基础,而评论也印证了这一点,认为C语言基础薄弱会使学习过程非常吃力。尽管存在这些小瑕疵,但凭借其高质量的内容和对核心概念的深入讲解,这门课依然是许多学生心中学习C++的首选,特别是对于那些计划在计算机科学领域继续深造或从事软件开发的人来说。
C语言基础薄弱者学习会很吃力
"没有C语言基础的同学,强烈建议先补课。"
"课程默认你C很熟,进展比较快。"
"如果C基础不好,前面几章会比较痛苦。"
"感觉课程直接从C语言高级特性跳到C++,需要预备知识。"
对常用STL容器和算法介绍清晰
"STL部分讲得不错,学到了很多实用的容器和算法。"
"对vector, map等有了初步了解,能用起来了。"
"这部分内容对写实际代码很有帮助。"
"虽然不是特别深入,但入门和使用常见的STL足够了。"
难度较高但对技能提升非常有益
"作业题很有深度,需要花时间思考和调试。"
"虽然过程艰难,但做完后编程能力明显提升。"
"这些作业是巩固课程知识的最好方式。"
"比起理论,作业更能检验你是否真的理解了。"
为C++面向对象编程打下扎实基础
"课程讲解面向对象概念非常清晰,理解了类、对象。"
"通过学习,我对继承和多态有了深入认识。"
"这门课让我系统地掌握了C++的OOP核心。"
"老师对OOP思想的阐述很到位,受益匪浅。"
视频来源不同影响学习连贯性
"感觉视频是不同学期拼起来的,有些内容重复。"
"老师讲课风格有时会变,需要适应一下。"
"能看出视频来自不同课程,衔接不太自然。"
"希望视频能更流畅一些,风格统一起来。"

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:
阅读《C++ Primer》
深入了解C++编程语言的语法、特性和最佳实践。
View C++ Primer on Amazon
Show steps
  • 阅读第1部分:C++语法基础
  • 阅读第2部分:C++标准库
  • 阅读第3部分:高级C++特性
  • 完成书中的练习题和项目
编译练习题
复习C++程序设计的语法和基本概念,为后续的课程学习打下基础。
Browse courses on C++
Show steps
  • 复习C++中的函数和指针
  • 练习使用C++中的引用和关键字“const”
  • 尝试使用内联函数和重载函数
  • 利用C++的函数缺省参数
小组讨论
与同学讨论课程内容,分享见解并解决问题。
Browse courses on C++
Show steps
  • 选择一个讨论主题,例如面向对象程序设计中的继承
  • 组织小组会议,并确保每个人都做好准备
  • 在会议中讨论主题,分享想法和观点
  • 总结讨论并记录关键点
Four other activities
Expand to see all activities and additional details
Show all seven activities
编写博客文章
撰写一篇博客文章,总结课程中学到的关键概念。
Browse courses on C++
Show steps
  • 选择一个课程中的主题,例如STL的容器
  • 研究主题,并收集相关信息
  • 撰写博客文章,解释概念并提供示例
  • 发布文章并与他人分享
参加C++编程研讨会
参加研讨会,向经验丰富的C++开发人员学习。
Browse courses on C++
Show steps
  • 查找并注册一个相关的研讨会
  • 积极参与研讨会,并向讲师和同学提问
  • 应用研讨会中学到的知识到自己的C++项目中
参加C++编程竞赛
参加竞赛,在紧张的环境中测试自己的C++技能。
Browse courses on C++
Show steps
  • 查找并注册一个相关的竞赛
  • 练习解决算法问题和编写高效的C++代码
  • 在竞赛中提交自己的解决方案
  • 分析竞赛结果,并学习如何改进自己的代码
参与C++开源项目
为C++开源项目做出贡献,提升自己的编程能力和协作技能。
Browse courses on C++
Show steps
  • 查找一个感兴趣的C++开源项目
  • 阅读项目的文档和代码库
  • 提出问题或建议,并提交代码拉取请求
  • 与项目维护者合作,完善自己的贡献

Career center

Learners who complete C++程序设计 will develop knowledge and skills that may be useful to these careers:
Game Developer
Game Developers are responsible for designing and developing video games. This course in C++ programming will help build a foundation of essential programming concepts and syntax that are used in game development. Students will learn about topics such as object-oriented programming, inheritance, generics, templates, and more. These are all key concepts that are used in modern game development.
Computer Programmer
Computer Programmers are responsible for writing and maintaining computer programs. This course in C++ programming will help build a foundation of essential programming concepts and syntax that are used in computer programming. Students will learn about topics such as object-oriented programming, inheritance, generics, templates, and more. These are all key concepts that are used in modern computer programming.
Software Engineer
Software Engineers are responsible for designing, developing and maintaining software applications. This course in C++ programming will help build a foundation of essential programming concepts and syntax that are used in many different areas of software engineering. Students will learn about topics such as object-oriented programming, inheritance, generics, templates, and more. These are all key concepts that are used in modern software development.
Web Developer
Web Developers are responsible for designing and developing websites. This course in C++ programming may be useful for Web Developers because it will help them to understand the underlying principles of how websites work. This can be helpful when designing and developing complex websites.
Mobile Developer
Mobile Developers are responsible for designing and developing mobile applications. This course in C++ programming may be useful for Mobile Developers because it will help them to understand the underlying principles of how mobile applications work. This can be helpful when designing and developing complex mobile applications.
Data Scientist
Data Scientists are responsible for collecting, analyzing, and interpreting data. This course in C++ programming may be useful for Data Scientists because it will help them to understand how to handle and process large datasets. This can be helpful when working with complex data sets.
Business Analyst
Business Analysts are responsible for analyzing and improving business processes. This course in C++ programming may be useful for Business Analysts because it will help them to develop the analytical and problem-solving skills that are needed for this role.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. This course in C++ programming may be useful for Project Managers because it will help them to develop the technical skills that are needed for this role.
Technical Writer
Technical Writers are responsible for writing technical documentation. This course in C++ programming may be useful for Technical Writers because it will help them to understand the technical concepts that are needed for this role.
Software Tester
Software Testers are responsible for testing and validating software applications. This course in C++ programming may be useful for Software Testers because it will help them to understand the underlying principles of how software works. This can be helpful when testing and validating complex software applications.
Information Security Analyst
Information Security Analysts are responsible for protecting computer systems and networks from unauthorized access. This course in C++ programming may be useful for Information Security Analysts because it will help them to understand the underlying principles of how computer systems work. This can be helpful when protecting computer systems and networks from unauthorized access.
Computer Systems Analyst
Computer Systems Analysts are responsible for analyzing and designing computer systems. This course in C++ programming may be useful for Computer Systems Analysts because it will help them to understand the underlying principles of how computer systems work. This can be helpful when analyzing and designing complex computer systems.
Network Administrator
Network Administrators are responsible for managing and maintaining computer networks. This course in C++ programming may be useful for Network Administrators because it will help them to understand the underlying principles of how computer networks work. This can be helpful when managing and maintaining complex computer networks.
Systems Analyst
Systems Analysts are responsible for analyzing and designing computer systems. This course in C++ programming may be useful for Systems Analysts because it will help them to understand the underlying principles of how software works. This can be helpful when designing and analyzing complex systems.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. This course in C++ programming may be useful for Database Administrators because it will help them to understand the underlying principles of how databases work. This can be helpful when managing and maintaining complex databases.

Reading list

We've selected nine 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++程序设计.
Helps to grasp the fundamentals and cores concepts of C++ and OOP, providing a solid foundation for further studies.
本书帮助理解C++和OOP的基本原理和核心概念,为进一步的学习奠定了坚实的基础。
Is written by the creator of C++. It offers an in-depth look at the language's design and implementation.
这本书提供了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