《程序设计课程大学计算机基础教学改革.ppt》由会员分享,可在线阅读,更多相关《程序设计课程大学计算机基础教学改革.ppt(53页珍藏版)》请在三一办公上搜索。
1、程序设计课程&大学计算机基础教学改革,陈海宝,计算机科学与技术系,程序设计课程主要内容,创新,计算机科学与技术系,计算机基础教育改革主要内容,大学生的两种精神与九种能力,上课要有一种精神,一种激情,什么是“计算机基础”教育?,创新实践、学会学习!,兴趣是最好的老师!,计算机科学与技术系,程序设计课程与计算机编程语言,程序设计课程计算机编程语言?教师的认识?学生的认识?大环境(大学中的普遍现象)小环境(我们系),计算机科学与技术系,程序设计课程对我们计算机系的重要性,学生情况分析:精英教育大众教育我们学院的办学方针:培养应用型人才 体现在我们系学生的编程能力上,计算机科学与技术系,程序设计课程教
2、学方法,程序设计课程的教与学还存在问题 理论课(知识量大,学无止境)实验课目前存在的问题总结:重教轻学,重理论轻实践教学一般围绕语言自身的体系展开,忽略了对学生程序设计能力的培养,计算机科学与技术系,程序设计课程教学方法,开展程序设计课程的教学改革是解决上述问题的有效途径。目的是培养学生的程序设计能力,以适应新世纪人才培养的需求。改革的内容包括:教学内容教学方法教学手段考核方式(以浙大C程序设计课程为例),计算机科学与技术系,教学内容,程序设计思想为主;编程语言知识为辅。,计算机科学与技术系,教学方法,以编程应用为驱动教学内容分主题,以程序设计做为贯穿各主题的主线。各主题的教学过程:“案例分析
3、要点讲解”“自学/编程实践”“疑难解答”,计算机科学与技术系,教学方法(传统教材知识模块),计算机科学与技术系,教学方法(教材改革主题分类),计算机科学与技术系,教学手段,通过实践教学体系:培养学生的基本实践能力与创新实践能力基本实践能力培养:通过实践训练体系(2类训练/3种作业),从知识点、内容主线和应用面3个层次上逐步提高编程能力 基本编程训练:自测作业和主题作业综合编程训练:大型作业,小组合作、自己命题、分组答辩,计算机科学与技术系,基本实践能力培养,鼓励个性化、自主学习学生根据自身水平和兴趣,选择适合的训练方式提供丰富的资源供学生自学,计算机科学与技术系,创新实践能力,(1)组织学生开
4、发实用系统(2)学生自己组织与参加多种训练比赛 内部训练、网上公开赛 国外网上竞赛、亚洲区竞赛 学生从中体味求知和竞技的乐趣,吸引了来自世界各国的编程爱好者参与竞赛的组题以及网站的维护和管理,计算机科学与技术系,网络支撑环境建设,鼓励个性化、自主学习;提供丰富的资源和练习机会,让学生自主学习,使不同基础的学生都能有相应的发展空间,计算机科学与技术系,考核方式,笔试在线编程考试平时练习,计算机科学与技术系,教学的理念和策略,强调实践 使学生从第1周起,就开始练习编程,并贯穿始终。循序渐进 快速入门 逐步深入 分散难点,计算机科学与技术系,快速入门:模仿改写,第2章“用C语言编写程序”通过5个实例
5、 经历“模仿改写”的上机实践过程,学生第一周开始练习编程 经过五次练习,就能运用C语言的顺序、分支、循环3种基本控制结构和函数编写简单的程序 优点:上手快,兴趣浓,有成就感,在练习中掌握知识,大大减少了畏难情绪。,计算机科学与技术系,逐步深入:改写编写,引入“分支”、“循环”、“函数”三个主题 由于学生已经能编程实现指定次数的循 环和简单函数设计 继续进行更深入的学习也就顺理成章了 上机练习随之进入“模仿改写编写”的阶段。,计算机科学与技术系,分散难点,入门:第2章函数:第5、9章指针:第7、10章语法内容分散在多个章节中,以问题为中心例如:C程序设计基础课程设计,计算机科学与技术系,C程序设
6、计基础课程设计,第1章:通过一个简单的“扫雷”游戏软件的开发,详细讲解基于软件工程的大型程序开发方法第2章:介绍编写大型程序可能会涉及到的硬件基础知识第3章:一些高级编程技术,包括文本和图形的显示、键盘和鼠标的操作控制、图形绘制、动画生成、乐曲演奏、汉字显示、图像显现和精确的时间控制等;第4章:分析3个大型程序范例,通讯录计算器俄罗斯方块第5章:提供8个大型程序训练的题目,给出了问题的描述、难点分析、主要数据结构及主要算法提示,计算机科学与技术系,C程序设计基础课程设计,从应用出发,通过案例和问题引入内容重点讲解程序设计的思想和方法结合相关的语言知识的介绍 以学生为主体:研究学生,快乐学习,受
7、欢迎 计算机专业:不怕编程喜欢编程,计算机科学与技术系,创新,每位教师都有自己的思路,计算机科学与技术系,大学生的两种精神与九种能力,大学生应有的两种精神:社会主义人文精神和科学的创新精神。人文精神是每一个大学生必须具备的。以人为本是人文精神的一个重要内容。大学生要关怀人,要爱人类;要有责任感,爱他的国家、他的民族和他的学校。大学生应有的九种能力:包括五种创新能力(发现问题的能力、解决问题的能力、实际动手能力、交流能力和表达能力)和四种可持续发展能力(学习能力、适应能力、协调能力和组织能力)。,计算机科学与技术系,计算机基础教育改革,计算机基础教学的许多规律并未被我们充分认识,因此我们必须牢固
8、树立科学发展观,以人为本、以应用为主,继续深入地探讨教学规律,更扎实地向前推进改革什么是大学的“计算机基础”教育?是“基础教育”还是“产品教育”“软件基础教育殖民化”的倾向,计算机科学与技术系,上课要有一种精神,一种激情,要把上好每一节课作为一种责无旁贷的责任,一种沟通交流的乐趣,一种展示自我的享受。要通过我们的讲授感染学生,给学生灌输一种强烈的信息技术的应用意识。基础课不能照本宣科,更不能照“片”宣科,教材只是学习者最佳的自学读物。每一讲精彩而受欢迎的授课,无不包含着严肃认真的前期备课,引人入胜的教学内容,轻松愉快的教学方法,师生交融的课堂组织,活泼新颖的教学手段,以及教学艺术、风格、人格的
9、融入等等。,计算机科学与技术系,课件趣味教学,计算机科学与技术系,课件算法举例1,有两个变量和,要求将它们的值互换。例如:=3,=5;互换后=5,=3。可以有两种算法实现两个变量的值互换。算法1,引入一个辅助变量C作为过渡进行交换;算法2,不引入辅助变量,仍用三个步骤完成交换。算法表示如下(强调有序、有限、可解、计算机存储等特性):算法1节省时间,可读性好 算法 节省空间,可读性差 S1:;S1:;S2:;S2:;S3:。S3:。算法举例不一定要很复杂的例子!,计算机科学与技术系,创新实践、学会学习!,计算机基础教育决不是计算机专业教育的“压缩饼干”,而是一项“顶天立地”的创新事业。我们不能站
10、在传统计算机学科的立场来考虑计算机基础教学内容的设置与内涵,而要从社会对具有“信息素质”人才需求的角度来评价和考查课程质量。计算机应用能力的提高要求大学生们在学习计算机技术时要从应用出发,“眼高手低”、“小题大做”、创新实践、学会学习!,计算机科学与技术系,兴趣是最好的老师!,计算机技术领域太深太广,而且发展极快,给了教师很大的讲授空间;但同时我们也应该给学生应有的学习空间,让他们学会学习!“生怕学生学的少或学不会”是目前教师的普遍心态,样样都想教给学生,结果却事与愿违,传授给学生的知识成了“夹生饭”或“准文物”。,计算机科学与技术系,兴趣是最好的老师!,计算机基础课程的教学改革一定要与所在地
11、区和所在院校有鲜活的匹配性。兴趣是最好的老师!我们应该认真研究图形界面软件中自学自会以及“所见即所得”的许多设计思想和方法(菜单技术、可视化编程、用户友好性的保障等等),把它灵活地应用于计算机基础教学之中,并以此取舍现有的教学内容和教学方法,以增强教学工作的科学性、合理性、实用性和趣味性。,计算机科学与技术系,图灵机,图灵是谁?图灵的贡献图灵机的结构图灵的应用举例,计算机科学与技术系,图灵是谁?,阿兰麦席森图灵 1912年生于英国伦敦计算机界的最高奖定名为“图灵奖”,计算机科学与技术系,图灵的贡献,他对计算机的重要贡献在于他提出图灵机的概念;许多人工智能的重要方法也源自于这位伟大的科学家。提出
12、了重要的衡量标准“图灵测试”该实验把被提问的一个人和一台计算机分别隔离在两间屋子,让提问者用人和计算机都能接受的方式来进行问答测试。如果提问者分不清回答者是人还是机器,那就证明计算机已具备人的智能,计算机科学与技术系,图灵机,图灵机被公认为现代计算机的原型图灵机奠定了现代数字计算机的基础(冯诺依曼就是根据图灵的设想才设计出第一台计算机的),计算机科学与技术系,图灵机模型,计算机科学与技术系,图灵机模型,一个无限长的纸带 一个读写头 内部状态(盒子上的方块,比如A,B,E,H)还有一个程序对这个盒子进行控制 这个装置就是根据程序的命令以及它的内部状态进行纸带的读写、移动。,计算机科学与技术系,图
13、灵机模型,工作原理从读写头在纸带上读出一个方格的信息并且根据它当前的内部状态开始对程序进行查寻。然后得出一个输出动作,也就是是否往纸带上写信息,还是移动读写头到下一个方格。程序也会告诉它下一时刻内部状态转移到哪一个。,计算机科学与技术系,工作原理规则表,具体的程序就是一个列表,也叫做规则表,是这样的:,计算机科学与技术系,工作原理规则表,图灵机只要根据每一时刻读写头读到的信息和当前的内部状态进行查表就可以确定它下一时刻的内部状态和输出动作了。图灵机就是这么简单!而只要你变化它的程序(也就是上面的规则表),那么它就可能为你做任何计算机能够完成的工作。可以说,图灵机就是一个最简单的计算机模型!,计
14、算机科学与技术系,如何理解图灵机,小虫的比喻 假设一个小虫在地上爬,那么我们应该怎样从小虫信息处理的角度来建立它的模型?首先,我们需要对小虫所在的环境进行建模。我们不妨就假设小虫所处的世界是一个无限长的纸带,这个纸带上被分成了若干小的方格,而每个方格都仅仅只有黑和白两种颜色。,计算机科学与技术系,建模,这个小虫要有眼睛或者鼻子或者耳朵等等感觉器官来获得世界的信息。我们不妨把模型简化,假设它仅仅具有一个感觉器官:眼睛,而且它的视力短,也就是说它仅仅能够感受到它所处的方格的颜色。因而这个方格所在的位置的黑色或者白色的信息就是小虫的输入信息,计算机科学与技术系,建模,我们还需要为小虫建立输出装置,也
15、就是说它能够动起来。我们仍然考虑简单的情况:小虫的输出动作就是往纸带上前爬一个方格或者后退一个方格。有了输入以及输出装置,小虫还不能动起来,因为它并不知道该怎样在各种情况下选择它的输出动作。,计算机科学与技术系,建模,于是我们就需要给它指定行动的规则,这就是程序!假设我们记小虫的输入信息集合为I=黑色,白色,它的输出可能行动的集合就是:O=前移,后移,那么程序就是要告诉它在给定了输入比如黑色情况下,它应该选择什么输出。因而,一个程序就是一个从I集合到O集合的映射。我们也可以用列表的方式来表示程序,计算机科学与技术系,建模,程序1:输入 输出黑色 前移白色 后移 这个程序非常简单,它告诉小虫当读
16、到一个黑色方格的时候就往前走一个方格,当读到一个白色方格的时候就后退一个格。假设小虫所处的世界的一个片断是:黑 黑 黑 白 白 黑 白,小虫从左端开始。,计算机科学与技术系,建模,现实世界中的小虫肯定不会这样傻的在那里无限循环下去。我们还需要改进这个最简单的模型 首先,我们知道小虫除了可以机械地在世界上移动以外,还会对世界本身造成影响,因而改变这个世界。比如虫子看到旁边有食物,它就会把那个东西吃掉了。在我们这个模型中,也就相当于我们必须假设小虫可以改写纸带上的信息。,计算机科学与技术系,建模,因而,小虫可能的输出动作集合就变成了:O=前移,后移,涂黑,涂白。我们可以把程序1改为比如:程序2:输
17、入 输出黑 前移白 涂黑纸带:黑 黑 白 白 黑小虫将会不停的重复上面的动作不断往前走,并会把所有的纸带涂黑,计算机科学与技术系,建模,小虫比起真实世界中的虫子有弱点:给它固定的输入信息,它都会给你固定的输出信息!每当黑色信息输入的时候,无论如何它都仅仅前移一个方格,而不会做出其他的反应。在现实环境中遇到食物:真实的虫子有两种反应:吃/不吃,计算机科学与技术系,建模,这就是加入小虫的内部状态!假设黑色方格是食物,虫子可以吃掉它,而当吃到一个食物后,小虫子就会感觉到饱了。当读入的信息是白色方格的时候,虽然没有食物但它仍然吃饱了,只有当再次读入黑色时候它才会感觉到自己饥饿了。因而,我们说小虫具有两
18、个内部状态,并把它内部状态的集合记为:S=饥饿,吃饱。这样小虫行动的时候就会不仅根据它的输入信息,而且也会根据它当前的内部状态来决定它的输出动作,并且还要更改它的内部状态。,计算机科学与技术系,建模,计算机科学与技术系,扩展小虫模型,小虫的行为比以前的程序复杂了一些。尽管从长期来看,它最后仍然会落入机械的循环或者无休止的重复。然而这从本质上已经与前面的程序完全不同了,因为当你输入给小虫白色信息的时候,它的反应是你不能预测的!它有可能涂黑方格也有可能前移一个。如果你已经彻底搞懂了我们的小虫是怎么工作的,那么你已经明白了图灵机的工作原理了!因为从本质上讲,最后的小虫模型就是一个图灵机!,计算机科学与技术系,扩展小虫模型,可以把小虫的输入集合、输出行动集合、内部状态集合进行扩大,这个模型就一下子实用多了。但是所有这些改变仍然没有逃出图灵机的模型:输入集合、输出集合、内部状态、固定的程序!就是这四样东西抓住了小虫信息处理的根本。图灵机由哪几部分组成计算机由哪几部分组成它们之间的关系,谢谢!,