督导简报
教师教学发展中心编 第74期 2017年3月27日
实验启发思考,课程服务生活
由环境学院
水分析化学实验还初步培养学生进行科学实验的能力,使学生具有严谨、独立和勤于思考的科学态度,合理利用课程知识和实验手段,能有效解决实际生活中的问题。如,同样在水中硬度的测定实验中,
将程序设计语言上成一门轻松的实战课
程序语言课程是计算机与信息工程学院的必开课程,往往给学生一种抽象、难以理解的感觉,其中教学检查的时候学生反映最多的问题是“听不懂”。这里面一部分的原因来自学生自己努力的多少,另外一部分来自教师课堂的组织形式。笔者最近听了潘伟丰老师讲授的《Java程序设计》课,有些感触,觉得他的有些方法可以给讲授类似课程的老师借鉴。
潘伟丰老师讲授的《Java程序设计》课程是软件工程专业一门重要的专业基础课,是后续学习服务器端程序设计及移动端开发的重要先修课。该课程以面向对象程序设计为主线,深入的介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生能够运用Java语言处理现实问题。应该说是一门实践性比较强的课程。如果纯粹以ppt的形式讲授,如同放电影,学生印象不太深刻。他在讲授这个课程的时候基本是脱离ppt的,以手敲代码的形式,全程实战,通过一些场景(问题)来引入及展开,以一种启发式的方式向学生介绍知识及其应用,使学生知其然,也知其所以然。
潘伟丰老师在讲授一个知识点的时候,大致分成了4个方面:
一、为什么要引入这个知识点?
程序设计语言中同一个功能往往有多种不同的实现方式。既然有了一种实现但是为什么还要引入另外一种方式呢?首先会设计一个简单的题目,让同学们思考如何用已有的知识解决。然后,现场从头开始敲代码快速实现这个题目,并引导学生了解已有实现方式实现的弊端,潜在的改进方法及适用场合(说明既然不好为什么还要用这种方法)等。
二、这个知识点是什么?
在了解已有知识解决这个问题的不足之后,会提出一种改进的思路(这种改进思路正是要介绍的新知识的基本原理),并对前面的实现方式进行重构,用代码简单实现这种改进的版本(实现其中比较重要的1-2个方法),说明其优势,并进行思路的总结。最后自然而然的引入要介绍的新知识点,并通过ppt快速介绍新的知识点。
三、知识点是如何实现的?
学习Java就是学习写类及用别人给的类。在介绍完一个新的知识点后,潘老师会带着同学们在去看这个类底层的实现代码,并与前面实现的代码进行比较,说明其原理的类似性,使学生恍然大悟。然后,快速的介绍这个类中其它几个比较简单的方法(基本一语带过)。他还会提供一些这个类使用的示例代码,对于课堂上没有展开的知识点,让同学们在接下来的实验课上自学。
四、知识点可以用在什么地方?
学了一个知识,重在如何使用这个知识。以实际系统中的一些功能点作为例子,用所学的知识点去实现这个功能。譬如,他在介绍Comparator这个接口的时候,引入电商平台中的一个功能(将商品按照价格、购买量等排序),然后用刚刚学到的知识去实现这个功能,并现场敲代码予以实现。
可以说潘伟丰老师的《Java程序设计》课程是一个原理课,不过更像一个实战课。老师一边得讲授新知识,另一边还得实现代码。为了更好的讲授,潘伟丰老师购买了导游用的那种扩音器,声音比较清晰,同时戴在头上,双手解脱出来可以敲代码;还购买了无线键盘鼠标,键盘可以拿起来让同学们看看IDE环境中一些快捷键的操作方式。同时,潘伟丰老师也蛮注重调动课堂气氛,对于个别上课迟到、玩手机、讲话的同学,他会以一些幽默性的语言提醒他们。
应该说,潘伟丰老师的上课方式取得了一定的效果。《Java程序设计》面向的是软件系的两个班,将近80位学生,潘伟丰老师没有点名,但是学生基本都会到。课堂上,除了个别同学,大家都抬头认真听老师讲课,也会回答老师设置的问题,偶尔也会被老师讲的冷笑话逗乐。课堂气氛轻松、活跃。(凌伟鸣)