学校云 建设你的专属在线教育平台
中国大学MOOC
SPOC学校专有课程
C++程序设计
分享
spContent=计算机已经是“无所不能”,而每一项神奇的功能背后都有一系列计算机程序在运行。如今,电脑、智能手机的普及,每个人都可为计算机创造更加神奇的功能。学习程序设计,你也做得到。
—— 课程团队
课程概述

    本课程以C++语言为载体,讲授计算机程序设计,为更好地利用计算机解决工程实践、科学研究和日常生活中的问题打下基础。
    从程序设计方法角度分,计算机语言有面向过程的和面向对象的。面向过程的思想是将任务分解成一系列的函数,函数通过相互调用联系起来完成任务。面向对象的思想是将任务分解成一系列对象,对象具有功能。对象间通过消息传递信息,触发事件,完成任务。面向对象的语言被认为具有更好的重用性、可维护性和可扩展性。C++是面向对象的语言。但也要注意,面向过程和面向对象不是截然分开的,不是对立的。面向过程是面向对象的基础。本课程前半部分的编程思想仍是面向过程的,这对初学者更容易入门;后半部分是面向对象的,为进一步学习奠定基础。
    学习程序设计,要学习语言的语法,更重要的是求解问题的算法思想。语法的学习需要多尝试,算法的学习需要多思考。学习程序设计,就要多编程。

成绩 要求

完成课程的全部学习任务将给予结课证书,证书设置“合格”(成绩在60分~79分之间)与"优秀"(成绩在80分~100分之间)两档课程标准,由任课教师签发课程结业证书,其中成绩“优秀”者将颁发优秀证书。证书的形式包括免费证书(电子版)和认证证书(包含可查询验证的电子版和纸质版2个版本)两种,学生可以在课程结束后根据需要进行申请。

课程大纲
预备知识

本课程面向零基础同学。学习过“大学计算机基础”或其他计算机课程对学习有帮助,但不是必要的。

参考资料

教材和教学参考书

教材:

[1] 谭浩强. C++程序设计(第3版). 清华大学出版社, 2015.

302-33058-5
参考书:

[1] 赵英良 仇国巍等. C++程序设计教程. 清华大学出版社,2013.8. ISBN 978-7-302-33057-8
[2] 赵英良 卫颜俊等. C++程序设计实验指导与习题解析. 清华大学出版社,2013.8. ISBN 978-7-

[3] 罗建军, 朱丹军, 顾刚等. C++程序设计教程(第2版). 高等教育出版社,2004.8. ISBN 978-7-04-022080-3
[4] 罗建军, 朱丹军,顾刚等. C++程序设计教程学习指导(第2版). 高等教育出版社,2004.8. ISBN 978-7-04-022190-9

常见问题

Q: 本课程的选课条件是什么?
A: 本课程预计的主要对象是大学本科生,但不限于大学生。只要你有热情,有决心,就能学好。如果在大学学了“大学计算机基础”或接触过其他语言的程序设计,对本课学习会有所帮助,但这不是必要的,更不是充分的。

Q: 初中生可以听么?
A: 初中有初中的学习任务,所以,首先建议初中生把初中的课程学好。如果学有余力或对程序设计特别有兴趣,可以学习本课程。只要坚持认真学习,多做练习,通过交流及时解决学习中的问题,一样可以学好。本课程已有不少初中同学完成了学习,而且成绩也很好。

Q:如何学好程序设计?
A:建议同学们在学习程序设计过程中,注意运用下面三种设计方法:
1、模仿设计
同学们初学程序设计,首先是模仿设计。所谓模仿就是参照某个成功的程序,做一些微小局部的改动,程序总体结构不变。
例如教材讲述了求1+2+3+……+100的程序编写,你可以模仿连加程序,尝试编写连乘1*2*3*……*10的程序。这个模仿只进行两个变化,一是加号改乘号;二是结果变量初始值由0改为1;三是循环截止由100改为10。
又例如教材介绍了两数求最大的程序,你可以模仿尝试编写求最小的程序。变化是小于号改为大于号。
又例如教材介绍日期结构体的程序,你可以模仿尝试编写时间结构体的程序,变化是输出日期和时间的格式不一样。
又例如教材介绍学生类的程序,你可以模仿尝试编写职员类的程序,比如仅仅变化学生的成绩属性为职员的薪水属性。
通过这样的模仿可以尽快掌握程序设计的基本方法。
2、多解设计
一题多解是程序设计的特色之一。同样一个问题可以设计出多种求解算法,自然可以编写设计出许多种程序,都能正确求解这个问题。当然这些程序之间比较,可能一些程序运行速度快,一些程序占用空间少。例如求1+2+3+……+100的问题,就可以设计出三种不同算法:一是直接用公式计算;二是从头循环加到尾部;三是从尾部循环加到头。这样就可以编写设计出三个不同的程序。在学习程序设计时,不能满足于一种求解程序,而应该多做变换,比如语句变换,C++有三种循环语句,可以尝试相互代换。又比如数据类型或结构变换,这样就可以设计不同的程序,然后分析每个程序的时空效率。
3、分解设计
    程序设计说穿了,就是让计算机按照你事先安排好的步骤进行求解工作。一个问题分几步求解,是由你来设计的。如何将问题分解成一个一个较小的子问题,是程序设计的核心。至于每个子问题涉及哪些数据类型?是采用函数结构,还是采用哪几条语句?就相对容易清晰了。同学们要善于分解,通过反复的训练,提高分解问题的能力。(顾老师)

Q:学习编程需要准备什么东西?
A:你可以拥有一台电脑,但不是必须的。学校的机房也是很好的去处,只要有电脑用就可以。对电脑的配置也没有要求,当前能用的电脑都可以。最好有个U盘之类的存储装置,将自己平时练习的程序保存下来,以备以后参考。保存在网上、保存在邮箱中也是不错的选择。教材或参考书应该有一本,一是编程前要阅读学习,二是在编程中经常需要查阅。