中国农业大学

图片
课程概述

第1章 程序设计导论

    本章内容从初学者对计算机已有的认知开始,将初学者逐步引导到计算机程序的世界。本章首先介绍计算机、指令及机器语言、程序等基本概念,然后描述了程序与计算机硬件、程序员、用户之间的关系,让初学者在一开始就能明确程序员的职责,实现从用户到程序员的角色转换。

    本章要点:一是要从有形的硬件来理解相对抽象的软件;二是要认识到计算机中的数据是有类型的,类型决定了数据在计算机中的存储位数和存储格式;三是要知道,学习程序设计和学习编程语言不是一回事。和C语言、Java语言相比,C++语言的知识体系更加系统全面。本课程选用C++语言作为程序设计初学者的入门语言。

 

第2章 数值计算

    本章内容:本章从最简单的数值计算问题开始,以案例教学的方法让初学者领会程序设计中一些最基础、也是最重要的基本概念,其中包括程序中的变量和常量、表达式与运算符、数据的输入和输出等。最后介绍了C++程序访问内存的3种方式,它们分别是变量名、引用和指针。

    本章要点:一是要将程序中的数据与内存联系起来,这样就很容易理解数据类型、引用和指针等初学者难以掌握的概念;二是要重点关注运算符的运算规则、优先级和结合性等语法细节;三是初步体会到计算机语言与人类语言的不同之处,即计算机语言的语法规则非常严格,甚至到了机械的程度,稍有不慎即会出现语法错误。

 

第3章 算法与控制结构

    本章内容:本章讲解程序中的算法及3种算法基本结构,并通过选择结构和循环结构中的条件引出布尔类型。C++语言通过选择语句来实现算法的选择结构,通过循环语句来实现循环结构。最后以一个求反正切(arctan)函数的算法设计案例简单讲解了算法的设计与评价方法。

    本章要点:一是要了解绝大部分复杂算法都可以由3种基本的算法结构来完成;二是要掌握布尔类型的作用及其相关的运算符;三是要根据案例认真体会如何根据算法合理选用不同的控制语句。

 

第4章 数组与文字处理

    本章内容:本章学习如何在程序中存储和处理大量数据。数组可以存储大量具有相同类型的数据集合。本章前2节具体讲解了数组的定义和访问、指针与数组的关系、以及内存动态分配等内容。计算机只能存储和处理数值数据,而文字处理程序所处理的对象是字符数据,为此C++语言引入了字符类型。初学者需深入了解字符编码和字符类型。文字处理必须使用数组,即字符型数组。本章最后用一节的篇幅简单介绍了中文处理及Unicode编码。

    本章要点:一是要重点掌握数组定义及访问的语法规则;二是要认识到计算机内部对数组的管理和访问是通过指针(即内存地址)来实现的;三是通过具体案例初步了解数组的常用处理算法。

 

第5章 结构化程序设计之一

    本章内容:本章学习如何将一个复杂的程序设计任务分解成多个简单的模块,分而治之,这被称为是结构化程序设计方法。C++语言支持结构化程序设计方法,以函数的语法形式来描述和组装模块,即函数的定义和调用。一个C++程序通常由一个主函数main和若干个子函数组成。函数是结构化程序设计方法的基础,它为代码重用提供了有效的手段。函数之间需要共享数据才能完成规定的数据处理任务。C++语言提供了集中管理和分散管理2种不同的数据管理策略。集中管理就是函数间通过共用内存来共享数据。分散管理就是函数各自分配内存管理数据,需要时传递数据,传递方式有3种(值传递、引用传递和指针传递)。

    本章要点:一是要明确函数是在被调用时才会执行,执行时会按需传递数据;二是要深入计算机内部,了解程序执行时其代码和变量在内存中的存储原理,这样可以更容易理解变量作用域和生存期等抽象的概念;三是要准确把握函数间传递数据的3种方式;四是要从2个不同的角度,即定义函数的程序员和调用函数的程序员,这样才能更容易地理解函数相关的各种语法知识。

 

第6章 结构化程序设计之二

    本章内容:本章学习如何以多文件结构的形式来组织和管理源代码,并介绍几种常用的编译预处理指令。然后再介绍几种特殊形式的函数,其中包括带默认形参值的函数、重载函数、内联函数、带形参和返回值的主函数、以及递归函数等。最后再介绍C语言相关的系统函数和自定义数据类型。

    本章要点:一是要学习掌握与多文件结构相关的语法知识,其中包括外部函数和全局变量的声明、头文件等;二是重点掌握带默认形参值的函数、重载函数和内联函数这3种常用的特殊函数形式;三是牢固树立重用代码的思想,学会通过调用别人编写的函数来提高开发效率。

证书要求

1、完成课程教学视频的学习;

2、按时完成单元测验与单元作业,并完成对他人单元作业的互评;

3、积极参与课堂讨论。

预备知识

参考资料

参考教材

《C++语言程序设计》(MOOC版),阚道宏编著

清华大学出版社,2016

ISBN 978-7-302-42104-7   

分享