课程详情
课程评价
spContent=本课程与众不同。虽然实质是C语言课程,但引入了C++语言的一些特性(不包括庞杂的面向对象部分)。这些特性易于掌握,且对提高编程效率极为有用。花费比学习C语言多百分之十的时间,就能同时享受到C++带来的方便与效率。此外还介绍递归、枚举等基本算法思想。适用于包括中学生在内的所有零基础学习者。
—— 课程团队
课程概述

C++语言的功能和方便性都强于C语言,只是由于其面向对象的特性比较复杂,因此很少被选为入门语言。实际上,C语言是C++的子集,C++对C语言的扩充可以分为与面向对象无关的新语法特性、面向对象的特性,以及泛型特性三个部分。如果放弃其中复杂的面向对象特性,以及泛型的绝大多数特性(但保留其中极其有用的标准模板库STL中的部分算法和容器),则剩余部分也十分适合做为入门语言来学,而且用这样的“简化”C++语言,或者说,“更强”的C++语言编写程序,既比用C语言更为方便和高效,又无需掌握写大型程序才会用到的庞杂的面向对象的特性 --- 学习成本增加很少而编程效率提高很多。


基于上述考虑,本课程虽然内容主要为C语言程序设计,但还是涉及了一部分C++的内容。本课程以实打实提高学生的实际编程能力为目标,只要能写出好程序,用的是C语言还是C++语言,并不重要。


授课内容13章,主要为以下两部分:


1) 1-12章: C语言程序设计

2) 13,14章 用C++的STL(标准模板库)轻松实现高效的排序和查找。这部分内容虽不多,但对于提高编写程序的效率极其有用。


总之,本门课最大的特点是:让学习者花费比学习C语言多不到10%的时间,就能享受C++语言带来的更多方便与效率


本课程作业和考试的题型90%以上都是在线提交程序,系统自动评测,容不得半点错误,这对学习者是非常严格而且有效的训练,符合当下顶尖IT企业招聘考核的形式,学习效果远胜于书面作业人工批改的形式。



本课程作业和考试网址:cxsjsxmooc.openjudge.cn

注意,不要写成 https://cxsjsxmooc.openjudge.cn/, 那样会访问不了!

如果访问不了,就注意浏览器地址栏里面是不是写了 https:// 不能有s!





郭炜老师还在中国大学MOOC开设另外三门好评如潮的4.9分高分课程,特别适合后续学习,请不要错过:

1)    程序设计与算法(二)算法基础(国家精品)

https://www.icourse163.org/course/PKU-1001894005

2)    程序设计与算法(三)C++面向对象程序设计(国家精品)

https://www.icourse163.org/course/PKU-1002029030

3)    实用Python程序设计 (强烈推荐,Python的百科书式大全课程,入门、提高均非常适合!)

https://www.icourse163.org/course/PKU-1460924165

 

授课目标

掌握C语言的语法规则知识并会灵活运用。掌握C++语言中,对C语言的与面向对象无关的一小部分较容易且对提高编程效率大有帮助的扩展特性。 

课程大纲
预备知识

零起点课程,基本上不需要预备知识,初中生也可以学习。

证书要求

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

 

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

 

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

 

认证证书申请注意事项:

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

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


参考资料

常见问题
  1. C语言程序设计为什么还要讲C++的内容?
  2. 答:C++比C语言难的地方主要在于面向对象的特性,但这部分内容本课程是不讲的,因此本课程不论是内容还是难度与C语言相比并没有太大区别。由于C语言在一些语法细节上不如C++用起来方便,因此本课程会讲授C++一些特性,可以理解成讲授的是经过稍许改进的C语言。更重要的是,C++有STL这个使用非常方便的库是C语言没有的,例如,用STL写个整数的排序操作只要1行,而用C语言的写法,则需要六七行才能完成,而且还需要理解函数指针等复杂概念才可以。因此本课程最后一周也讲授了STL的初步内容,但不计入成绩考核。
  3. 本课程的作业和考试形式是怎样的?
  4. 答:本课程90%的作业,以及最后的期末考试,形式都是在北京大学在线程序评测系统 openjudge.cn上提交程序,由系统自动评判正误。程序不能有丝毫错误。这种形式对于提高编程能力极其有效。