高级语言程序设计

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

吉林大学

分享

  • 分类: 计算机
  • 平台: 中国大学MOOC
  • 语言: 中文

课程概述

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

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

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

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

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

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

证书要求

评分按照单元测验、单元作业、期末考试和课堂活跃度的情况进行,所占比例分别是30%、40%、20%、10%。
‍评分高于 60 分颁发普通证书;高于85分颁发优秀证书。

预备知识

授课大纲

第1周课程:绪论&顺序程序设计(1/2)
第一章 绪论
1.1 鸡兔同笼—计算
1.2 算法
1.3 程序
第二章 顺序程序设计
2.1 求绿化带宽度——简单程序
2.2 基本符号

第2周课程:顺序程序设计(2/2)
2.3 数据
2.4 语句
2.5 表达式
2.6 顺序控制结构
2.7 数据类型
2.8 输入输出

第3周课程:分支程序设计&循环程序设计(1/2)
第三章 分支程序设计
3.1 判断成绩是否及格——双分支程序设计
3.2 成绩加上获奖信息——单分支程序设计
3.3 逻辑判断——布尔类型
3.4 获奖分等级——多分支程序设计
第四章 循环程序设计
4.1 计算平均成绩——循环程序

第4周课程:循环程序设计(2/2)
4.2 计算全班每人平均成绩—多重循环
4.3 程序设计实例

第5周课程;函数&数组(1/3)
第五章 模块化程序设计——函数
5.1 求给定三角形重心——模块化程序设计
5.2 函数
第六章 批量数据组织——数组
6.1 成绩统计——数组类型
6.2 统计多科成绩——多维数组
6.3 程序设计实例

第6周课程:数组(2/3)
6.4 线性表——分类与检索
6.5 带学号的成绩排序——数组初值
6.6 表示姓名——字符串

第7周课程:数组(3/3)&指针(1/2)
6.7 类型定义
6.8 线性表-栈和队列
第七章 指针
7.1 指针与变量

第8周课程:指针(2/2)&结构体
7.2 指针操作
7.3 指针与数组
7.4 指针与字符串
第八章 表单数据组织——结构体
8.1 成绩单管理
8.2 保存成绩单——结构体
8.3 程序设计实例

第9周课程:再论函数 & 递归程序设计
第九章 再论函数
9.1 参数
9.2 函数值
第十章 递归程序设计
10.1 递归程序设计
10.2 程序设计实例

第10周课程:文件
第十一章 外部数据组织——文件
11.1 重新考虑户籍管理问题——文件
11.2 文件概述
11.3 打开、关闭文件
11.4 I/O 操作

第11周课程:程序开发&动态数据结构(1/2)
第十二章 程序开发
12.1 自顶向下逐步求精
12.2 原则
12.3 风格
第十三章 动态数据组织
13.1 保存实数序列——动态数据结构
13.2 动态变量

第12周课程:动态数据结构(2/2)
13.3 链表
13.4 程序设计实例
第13-14周:期末考试

参考资料

课程网站: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) 搜索到所需开发环境的软件。

Udemy
声明:MOOC中国发布之课程均源自下列机构,版权均归他们所有。本站仅作报道收录并尊重其著作权益,感谢他们对MOOC事业做出的贡献!(排名不分先后)
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc
  • 以及更多...

Copyright © 2008-2015 MOOC.CN 慕课改变你,你改变世界