C++程序设计(面向对象进阶)
分享
课程详情
课程评价
spContent=本课程是2020年11月获教育部认证的国家级一流本科课程(线上线下混合式一流课程)《C++程序设计》的线上部分。

◌◌历史:2015(网易云课堂)-2018(中慕改版)-至今(选课累计超17万人次)。

◌◌本课程采用C++11~20标准,课件中英文对照。

◌◌课程中有大量现场编程范例,你可以跟随老师一起写代码

◌◌有C、Java或者Python基础的同学,更适合学本课程。
—— 课程团队
课程概述

为什么要学这门课程?


  1. 学C语言后想进阶学C++;

  2. 学Java后想了解C++这个同门大佬;

  3. 听说C++ 11/14/17/20被称为“Modern C++”,想看看它和“Classic C++”有啥不同;

  4. 想学习编码规范以写出【好看】的代码。



这门课程要求:


  1. 你已有编程基础,知道数据类型、分支循环、数组等语言要素;

  2. 你已经写过代码,想看看C++能否多快好省地编程序。



这门课程不适合:


  1. 从未接触过编程(可以先学C语言入门);

  2. 希望用三行代码改变世界(建议去学Python);

  3. 认为Java能搞定一切(奇迹和灾难都在JVM中);

  4. 非IT专业但听说编程是职场必备能力(可以先学解释型语言,更易入门)。



必须要学C++的理由:


  1. 做人工智能研究,想要深入底层;比如TensorFlow的核心是用C++写的;

  2. 做游戏开发,包括端游和网游后台,以发挥计算机的全部性能,需要C++;

  3. 做智能硬件、嵌入式或硬件驱动开发;C++会提供更多工具,生产效率更高;

  4. 你喜欢。



必须要学本课程的理由:


  1. 学了C++,但是希望学习C++11~C++20等新标准的特性及编程范式;

  2. 学了C++,但是还在用typedef,或者认为 for(auto i : array)是写错了;

  3. 定义变量时轮流使用26个英文字母,不够的话再加上下划线  (⊙_⊙)?



课程内容更新安排:

  1. 第一期课程主要介绍C++基础及C++11~17的功能性增强;

  2. 第二期课程补充一些C++17的基础特性

  3. 第三期课程继续补充C++11~17中一些较难理解的特性,并选择少量C++20的新增特性

  4. 第四期课程继续补充C++课下实验内容,供学有余力同学参考使用

  5. 第六、七期课程补充C++20中的一些特性


授课目标

通过这门课程,希望能够让你:

  1. 初步掌握C++的面向对象编程方法;

  2. 能初步使用 C++11/14/17/20 标准中 “Modern C++” 的思想写代码

  3. 了解并应用编码规范

课程大纲
预备知识

学过C语言,了解数据类型、分支循环、函数、数组、指针;


或者


学过Java,但需要额外补学C/C++的指针(指针定义、解引用、指针作为函数返回值和参数)


或者


学过Python,但需要额外补学C/C++的数据类型、数组、指针

证书要求

为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

 

电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。

 

完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。

 

认证证书申请注意事项:

1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。

2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。


参考资料

主要参考资料:


《C++程序设计》(中文版·第3版),[美]梁勇, 机械工业出版社, 2015年1月1日出版,ISBN:9787111485148 【https://book.douban.com/subject/3171363/】


或者


《C++程序设计》(英文版·第3版) [Introduction to Programming with C++,Third Edition],Y. Daniel Liang,机械工业出版社,2013年6月1日出版, ISBN:9787111425052 【https://book.douban.com/subject/24736736/】


【注】本课程的绝大部分C++11~C++17的新特性教学内容均由课程团队自行编写。上述参考资料中无法找到对应的内容


附加资料:

  1. 《深入理解C++11:C++11新特性解析与应用》,Michael Wong, IBM XL编译器中国开发团队,机械工业出版社,2013年

  2. 《C++程序设计语言(第1-3部分)》第四版,[美] 本贾尼·斯特劳斯特鲁普,机械工业出版社,2016年; 【726页。这本是C++他爹写的,当字典用。第4部分单独成书,352页】

  3. 《C++ Primer》第5版 中文版,[美]Stanley B. Lippman & Barbara E. Moo, 电子工业出版社,2013年  【848页。这本是大全,是“C++从入门到Java”的表率】

  4. 《C Primer Plus》第6版  中文版,[美]Stephen Prata,人民邮电出版社,2012年 【936页。这本易与上面那本混淆。但是它是讲C语言的,比上面那本易读,所以多了88页】


课程交流:

目前有4种交流渠道:

  1. 大部分问题可以在本课程的讨论区提问,这也是最便捷的方法。

  2. 可以加入课程的QQ群(177070621、250533933)。这两个群中有一些自2015年参加慕课课程学习的同学,他们会回答一些常见问题。课程负责老师会不定期在群中回复一些问题(可能响应不及时)

  3. 关注课程负责人的微信公众号,偶尔会发布一些与编程有关(不限于C++)的文章

  4. 在知乎关注课程负责人,课程负责人经常会回答一些编程类的问题
     https://www.zhihu.com/people/alohaworld/answers


常见问题

Q1: 课程中的代码在哪里能找到?

A1:

代码都在 https://github.com/AlohaWorld/CppKid

代码不定期更新。

【注意】代码并非全部都能编译通过。其中有一些故意制造的错误用于课堂演示


Q2: 本课程只讲C++11吗?

A2:

C++11并不是完全抛弃了C++98/03的内容重启炉灶。现代C++(Modern C++,特指C++11及之后的C++) 继承了经典C++(Classic C++) 的面向对象思想、泛型编程思想。此外,从2011年开始,C++标准化委员会决定每3年推出一个新的标准。本课程中包含C++14/17/20的部分内容。本课程将跟进C++标准化委员会的进展不断更新。