课程详情
课程评价
spContent=计算机已经是“无所不能”,而每一项神奇的功能背后都有一系列计算机程序在运行。如今,电脑、智能手机的普及,每个人都可为计算机创造更加神奇的功能。学习程序设计,你也做得到。
—— 课程团队
课程概述

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

课程大纲
预备知识

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

证书要求

学习本课程,积极参与课程讨论,完成本课的平时练习和期末测验,成绩合格获得合格证书,成绩优秀获得优秀证书。

评分依据:课程满分100分。课程讨论占10%,平时测验占60%(每周测验题20%,在线评测作业40%);期末测验占30%。60分获得合格证书,80-100分获得优秀证书。


参考资料

教材和教学参考书

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

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

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

[4] Stanley B. Lippman,Josée Lajoie,Barbara E. Moo 著. 王刚,杨巨峰 译.C++ Primer(中文版 第5版). 电子工业出版社, 2013.

[5] [美] Stephen Prata 著. 张海龙,袁国忠译.C++ Primer Plus(第6版 中文版). 人民邮电出版社,2012. 

常见问题

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盘之类的存储装置,将自己平时练习的程序保存下来,以备以后参考。保存在网上、保存在邮箱中也是不错的选择。教材或参考书应该有一本,一是编程前要阅读学习,二是在编程中经常需要查阅。

Q:学习C++程序设计使用什么软件好?
A:编程软件常常是各有优点。我们课程使用的是DEV C++。这是一款自由软件,使用简单,体积小,容易获得。其他的Visual C++6.0、VS2008~2012,Borland C++等都是很好的编程软件。有时间都熟悉一下是很好的选择,因为在考试、竞赛、招聘中会遇到各种不同的环境。