研究性教学在程序设计课程中的应用

2010-04-04 13:01况迎辉姜晓彤
电气电子教学学报 2010年3期
关键词:上机程序设计学期

况迎辉,姜晓彤

(东南大学仪器科学与工程学院,江苏南京210096)

“算法语言与程序设计”是我校一年级本科生的一门重要通识教育基础课程,多年教学经验显示,入门难是该课程教学的最大特点。造成困难的主要原因是:

(1)思维表达方式陌生。程序设计的基础是算法设计,而面向计算机的算法设计需要对实际问题进行抽象和分解。这种模型抽象能力和逻辑描述能力是以往其他课程训练没有提供过的。

(2)感性认识缺失。从认识规律来看,感性认识是基础。由于思维表达方式的特殊,学生感觉深奥,一定程度上影响了思维的积极性。

加大实践环节学时数是解决教学困难的主要对策[1],目前上课与上机时数比基本已达到1∶1。但是,上课听讲和课后上机的被动学习模式,以及脱离应用背景的程序用例使上机环节在弥补感性认识缺失方面没有发挥出应有的作用,效果仍然不令人满意。本文介绍的改革正是针对这些问题力图进行突破,旨在激发学生自主学习的潜力和积极性[2]。

1 承上启下式的自主学习引导

我们利用上机作业对教学内容进行承上启下,引导学生主动学习。如在程序基本控制结构的教学中,分支结构与循环结构通常分两次课完成,而循环结构对于没有程序设计经验的学生来说是一个难点。我们在分支结构教学之后的上机作业中,提前加入循环结构的应用。作业之一要求学生利用分支结构实现一个简单计算器程序,并提出如下三步要求:①实现简单计算器(必做);②使计算器可连续进行5次计算操作(选做);③使计算器可一直处于计算状态,直到响应退出命令为止(选做)。

在两届学生中试点发现,几乎所有学生都比较顺利地完成了第二步,还有一部分学生独立或通过与教师讨论完成了第三步任务。

引导自主学习必须有教师的积极介入[3],以下要点需要特别重视:①选题针对性,要针对教学内容和教学目标,注意循序渐进;②学以致用,选题内容尽可能与实际应用结合,帮助学生从应用角度理解程序设计;③恰当提示思路,既起到方向性引导,又要留出足够的自学钻研空间。

2 研究性教学模式的应用

1)案例引导学生理解程序设计实质

初学程序设计者普遍存在会看不会用的问题,即能读懂程序,但不会自己写程序。

例如,一年级第一学期教学内容主要涉及简单输入输出、基本控制结构、函数、数组、结构体以及文本文件等基本数据结构。为了缩短学习和应用之间的距离,我们在进行函数教学的同时就给学生演示了一个基于控制台应用的“小型图书管理系统”的案例程序,通过简单的菜单操作实现图书的浏览、查询、借阅、归还和书库管理等。该案例中菜单的设计使用、程序的模块化设计方法、结构体数组使用和文件操作等各重要组成部分与教学内容紧密相关。对初学者来说,这是一个足够大的程序,但学生对这个系统的感性认识很强,都有到图书馆的经历使其神秘性相对降低。

再如,“面向对象”程序设计教学中,由于“对象”和“面向对象”等概念的抽象性,初学者很难理解“封装类”的意义何在。为此,我们以标准数据类型作为案例,从面向对象设计的应用需求出发,解释何为封装类和如何封装类,并与相关教学内容关联[3]。相应地,上机作业通常给出主程序代码,即以代码方式提出应用需求,让学生针对该需求进行对象封装。

2)目标式训练扩展自主学习内容

由于学时限制,课堂教学很难较多地涉及程序调试技术等实践环节面临的问题。我们采用提供阅读材料并配合训练作业的方法,将诸如复杂程序的多文件结构设计调试工具的使用和调试基本技巧的训练等重要内容贯穿到上机实践当中。编制了结合案例的针对性阅读文档,通过图文结合的方式提供直观的可参考信息。同时,结合训练目标在上机作业中提供错误程序让学生调试修改。

3)课堂讨论共享实践心得

本项改革较大程度地改变了教学和上机的关系。课堂教学针对主线、要点和难点进行讲解和启发,呈现出粗线条特征。而大量细化学习、深入钻研的工作则利用上机环节,通过做中学习的方式完成。我们在每次上机作业完成之后,都安排10~20分钟讨论环节。上机过程中发现的各类问题,甚至萌生的新想法,均可提供出来讨论。

3 课内外结合实现个性化培养

如何在缩减课内学时的情况下保障甚至提升教学效果,是研究型大学教师面临的重要课题。我们根据作业难度和课程进度规定完成作业的时间期限,例如每个学生每周至少设计调试一至两个程序,这样做的好处是既有训练目标和工作量限制。此外,我们还提供较大型的程序作业要求,让学有余力的学生在一个学期内完成。例如,作为演示案例的“小型图书管理系统”,提出功能要求,让学生利用学期内课余时间和假期时间完成。在第二学期开学初的时间段内提交并验收通过的学生,由教师认定并推荐能获得课外研学的学分。经过试点,课程班中约有五分之一的学生按时提交了该综合设计程序。

课余时间和选做作业在教师监督之外,为达到预期目的,教师在制定任务计划时应注意以下问题:①统筹规划整个学期的实践训练,做好内容衔接,使得进度较慢的学生能够逐渐赶上,而进度快的学生则有机会去钻研更有挑战性的问题。②综合设计性大作业应在适当时机布置,已有的知识储备让学生感觉到完成的可能性。

4 结语

本文提及的改革通过课堂教学和上机环节相配合,较早地引入了研究性学习模式。对教师来说,教学模式改变带来的挑战是巨大的,需要投入更多的精力和时间来组织和管理好整个教学过程。对学生来说,这种模式学习压力明显加大,但收获也是巨大的。经过一年学习能够让学生对程序设计保持较高热情,愿意主动完成具有挑战性的任务。

[1] 戚晓芳,C++程序设计教学新思路[J],南京:电气电子教学学报,2004,26(5):30-32

[2] 吴乃陵,面向对象C++程序设计教学改革[J],南京:电气电子教学学报,2003,25(2):9-11

[3] 李海文,研究型学习在程序设计实践课程中的尝试[J],南京:电气电子教学学报,2003,25(6):15-18

猜你喜欢
上机程序设计学期
周金应
新的学期 新的尝试
期末冲刺高二上学期期末模拟卷
标准化护理程序对体外膜肺氧合术患者上机各阶段用时的影响
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
上机数控“可疑”的高毛利率
八年级(上学期)期末测试题(D)
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用