高级语言程序设计
分享
课程详情
课程评价
spContent=本课程面向无编程基础的学生,使其掌握程序设计的基本概念、思想和方法,并培养其计算思维能力。通过本课程的学习,学生能够掌握C语言的基本语法、结构化程序设计思想和方法,养成良好的程序设计风格;最终能在这些方法和思想的指导下,不受编程语言限制,随心写出解决实际问题的程序。
—— 课程团队
课程概述

       荷兰著名计算机学家Edsger W. Dijkstra曾说过,“我们所使用的工具深刻地影响着我们的思维方式和思维习惯,进而也将深刻地影响着我们的思维能力”。 计算机技术的普及已经深刻影响了现代人类生活的各个方面。“计算思维”就如同读、写、算能力一样,是所有人必须具备的思维能力。

       本课程目标是使您具有初步的计算思维和程序设计能力,从零基础到能编写小规模程序。课程以实际应用为背景,面向编程实践和求解问题能力的培养,以“案例驱动”不断引入相关知识点,随着案例的不断深入,将程序设计各相关知识点展现在读者面前,形成一条完整的知识链条。在任务驱动式的叙述过程中,由浅及深、循序渐进启发读者逐渐编写规模逐渐增大的程序,并将程序设计思想和方法在不知不觉中融入程序编写过程中,培养“计算思维”能力。

       本课程注重思维训练,强调对思维过程的描述。课程中所配大量例题都使用PAD图描述程序逻辑结构,而非直接使用代码讲解。相比传统的流程图和NS图等,PAD图具有可见性好、结构唯一、易于编制、易于检查和易于修改等优点,更适合讲述程序设计;同时也避免了直接使用代码讲解算法的呆板和枯燥。使用PAD图可以帮助您理解程序设计的思维方式、培养计算思维能力;最终达到举一反三,融会贯通,掌握程序设计的思想和方法。

       C语言作为当代最优秀的程序设计语言之一,它的优点远远超过了它的缺点。经验表明,程序设计人员一旦学会使用C语言之后,就会对它爱不释手;而且很多语言都是在它的基础上发展起来的;所以C语言当之无愧地成为思想交流的首选载体语言。

       本课程以C语言作为载体语言,介绍计算思维方法和程序设计基本思想,但并不拘泥于C语言本身的语法,对C语言本身采取了“有所取、有所不取”的策略。对于那些常用的语言成分,直接与讲述程序设计方法有关的语言成分,穿插在程序设计过程中详细准确的介绍。对于那些与程序设计方法联系不太紧要,但是还常用的部分,放在最后简单介绍。对于那些与讲述程序设计方法关系不太大,也不常用的部分则根本不涉及。这样做的目的是使您在学习程序设计之后,不受编程语言限制,灵活应用这些思想和方法。

       综上,经过本课程的学习后,您会掌握基本的程序设计思想和方法,具有初步的计算思维能力;举一反三,不受语言限制,编写小规模程序。

授课目标

您会掌握基本的程序设计思想和方法,具有初步的计算思维能力;举一反三,不受语言限制,编写小规模程序。

课程大纲

第一周课程:  绪论 & 顺序程序设计(1/2)

1.1  鸡兔同笼——计算

1.2  算法

1.3 程序

2.1  求绿化带宽度——简单程序

2.2  基本符号

第一周-- 绪论 & 顺序程序设计(1/2)--单元测试

第一周-- 绪论 & 顺序程序设计(1/2)--单元作业

第二周 课程:顺序程序设计(2/2)

2.3  数据

2.4  语句

2.5  表达式

2.6  顺序控制结构

2.7  数据类型

2.8  输入输出

第二周--顺序程序设计(2/2)--单元测试

第二周--顺序程序设计(2/2)---单元作业

第三周课程:分支程序设计 & 循环程序设计(1/2)

3.1  判断成绩是否及格——双分支程序设计

3.2  成绩加上获奖信息——单分支程序设计

3.3  逻辑判断——布尔类型

3.4  获奖分等级——多分支程序设计

4.1  计算平均成绩——循环程序设计

第三周--分支程序设计 & 循环程序设计(1/2)--单元测验

第三周--分支程序设计 & 循环程序设计(1/2)--单元作业

第四周课程:循环程序设计(2/2)

4.2  计算全班每人平均成绩——多重循环

4.3  程序设计实例

第四周--循环程序设计(2/2)--单元测试

第四周--循环程序设计(2/2)--单元作业

第五周课程:函数 & 数组(1/3)

5.1  求给定三角形重心——模块化程序设计

5.2  函数

6.1  成绩统计——数组类型

6.2  统计多科成绩——多维数组

6.3  程序设计实例

第五周--函数 & 数组(1/3)--单元测试

第五周--函数 & 数组(1/3)--单元作业

第六周课程:数组(2/3)

6.4  线性表——分类与检索

6.5  带学号的成绩排序——数组初值

6.6  表示姓名——字符串

第六周--数组(2/3)--单元测试

第六周:数组(2/3)--单元作业

第七周课程:数组(3/3) & 指针(1/2)

6.7  类型定义

6.8  线性表——栈和队列

7.1 指针与变量

第七周--数组(3/3) & 指针(1/2)--单元测试

第八周课程:指针(2/2) & 结构体

7.2  指针操作

7.3  指针与数组

7.4  指针与字符串

8.1  成绩单管理

8.2  保存成绩单——结构体

8.3  程序设计实例

第八周--指针(2/2) & 结构体--单元测试

第八周--指针(2/2) & 结构体--单元作业

第九周课程:再论函数 & 递归程序设计

9.1  参数

9.2  函数值

10.1  递归程序设计

10.2  程序设计实例

第九周--再论函数 & 递归程序设计--单元测试

第九周--再论函数 & 递归程序设计--单元作业

第十周课程:文件

11.2 文件概述

11.3 文件打开关闭

11.4 文件IO操作

11.1 户籍管理

第十周--文件--单元测试

第十一周课程:程序开发 & 动态数据结构(1/2)

12.1 自顶向下逐步求精

12.2 结构化程序设计原则

12.3 程序风格

13.1 保存实数序列——动态数据结构

13.2 动态变量

第十一周--程序开发 & 动态数据结构(1/2)--单元测试

第十一周--程序开发 & 动态数据结构(1/2)--单元作业

第十二周课程:动态数据结构(2/2)

13.3 链表

13.4 程序设计实例

第十二周--动态数据结构(2/2)--单元测试

第十二周--动态数据结构(2/2)--单元作业

预备知识

证书要求

评分按照单元测验、单元作业、期末考试和课堂活跃度的情况进行,所占比例分别是25%、35%、30%、10%。

‍评分高于 60 分颁发合格证书;高于85分颁发优秀证书。


参考资料

课程网站:http://cc.jlu.edu.cn/programming.html

教材:《程序设计基础》(第二版)张长海、陈娟,2013年9月 北京 高等教育出版社

习题练习: 《程序设计基础习题集》 张长海、陈娟、兰书梅, 2008年7月 北京 清华大学出版社 

常见问题
  • Q1:如何学好该课程?

  • A1:“程序设计基础”是实践性极强的课程,想要学好就必须上机实践。首先通过视频学习,在开发环境中演练课堂中的例题;然后,练习编写作业中的习题,最后,根据自己的喜好,选取主讲教材和习题练习册中的题目进行练习。如果您还有参加ACM程序设计大赛的打算,还可以去网上各类ACM在线评测系统刷题,得到进一步的提高。有关ACM程序设计大赛的内容,请查看百度百科。

  • Q2:使用什么样的C语言开发环境?

  • A2:Turbo C、VC++、DEV C++、Code::Blocks 都可以。本课程所涉及的都是基本的程序设计思想和方法,对开发环境并没有太多的依赖。本课程主讲教材,采用的是微软VC++6.0开发环境。大家可以很方便地通过百度(www.baidu.com )或谷歌(www.google.com.hk) 搜索到所需开发环境的软件。