计算机程序设计课程的系统化云教学设计

2018-12-18 10:16黄瑜岳
电脑知识与技术 2018年26期

黄瑜岳

摘要:针对计算机程序设计课程经验化教学设计存在的问题,提出了一种结合云教学手段的系统化教学设计方法,并以一维数组知识点为例,阐述如何使用系统化教学设计来优化设计教学过程中的各种教学成分,使内部事件和外部事件有效互动,进而提升课程的效率、保证课程的效果、增强学习者的参与,提高教学质量。

关键词:系统化教学设计;移动云教学;程序设计教学改革

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)26-0152-03

1 概述

计算机程序设计是一门计算机相关专业的基础课程,其主要目的是通过对C语言的语法规则、数据类型、数据运算、函数、程序结构等的学习,使学生较好地掌握结构化编程的思想,具备应用C语言进行程序设计的技能,为今后的程序开发奠定一个良好的基础。但是,在实际教学中,教师的教学设计往往还停留在经验化教学设计的阶段[1],“自嗨”式、“放任”式的课堂效率较低。所以,往往是教师辛辛苦苦完成整个学期的程序设计教学工作后,学生对知识和技能的掌握程度并不是令人满意。这种情况正是目前困惑多数从事计算机程序设计教学工作教师们的“头疼”问题。

教育心理学家加涅通过对学习发生的过程及学习发生所需要的内、外部条件来研究教学,他认为教学是通过安排一系列符合学习者内部条件和外部条件(事件)来促使学习的发生[2],内外事件两者是相互检验相互促进的关系。所以,导致这种“头疼”问题的很大部分原因是我们的教学忽略了内部事件和外部事件的交互,即教师的教与学生的心理获得之间的交互。教学设计模式被证明是科学有效的方法,那么,怎样的教学设计能达有效提升学生的学习体验和心理获得呢?答案系统化教学设计,他能科学合理的组织我们的教学成分,优化整个教学过程。

2 系统化教学设计

教学本身是一个由学习者、教师、教学材料以及学习环境等成分构成的系统,教学过程本身也可视为一个旨在引发和促进学生学习的系统;因此在教学设计中,应坚持系统观,充分重视教学系统中所有成分所起的重要作用,充分重视这些成分之间的有效互动[3]。系统化教学设计认为教学过程包含10大教学事件,如图1所示,其中目标描述、教的活动、学的活动这些可观察的事件属于外部事件,学习动机、学习体验、心理获得这些看不见的事件属于内部事件,测试实验、学习反馈、记忆迁移、小结复习用于帮助教学开展的事件属于辅助事件,在进行教学设计的过程中必须要精心设计和组织这些事件,使他们能有效互动,促进教学。

在实际教学过程中教学活动应该设计成教师和学生共同参与式的。教学活动可以包括描述学习目标、讲授知识、演示过程、学生进行练习、学生完成活动、阐述这部分知识和技能的学习动机、学生进行测试、学生的反馈和教师对学生的反馈、学生对内容进行描述和定性、通过一定的方法对内容进行记忆、对知识点的教学进行总结等,这些教学活动与上述教学事件的对应关系如表1所示。可以看出系统化教学设计非常注重教师和学生的对话和共同参与,并不是教师一味“刺激”式的教学,而是设计有效的教与学的活动来提升学生学习的体验,并设计相应的辅助活动来引导学生将他在教学过程中的心理获得表现出来,增强其学习的积极性,促使主动学习的发生,这样教师也能从学生心理获得的外化表现来评价目标的达成情况,并实时优化和调整相关教学成分,使教学更适应学生的情况,从而真正提高教学质量。

3 计算机程序设计课程的系统化教學设计

下面以计算机程序设计课程中一维数组知识点的教学为例进行系统化的教学设计,设计过程按照表1的活动顺序进行。相关活动的开展可以结合时下流行的蓝墨移动云教学手段。

活动1:课程导入(5分钟)

教师设计一个能关联学生生活或兴趣、能让学生能乐于接受的案例,比如设计一个处理学生成绩的问题,要求学生在输入完10个学生成绩后求出所有成绩中的最大值、最小值和平均值,并能将数据按从小到大的顺序排列显示。要求学生用已有的知识来给出解决这一问题的思路,过程中学生发现求最值问题完全可以用已有的知识解决,但是后面对数据排序就无法实现了。通过引导,让学生知道原因是因为10个成绩在程序运行过程中并没有保存起来,无法对他们进行进一步的处理。这时就可以导出解决数据存储问题的方法就是接下来要介绍的数组。

活动2:教师描述学习目标(3分钟)

学习目标就是学完本节知识后学生能获得什么样的知识、掌握什么样的能力,对于一维数组知识点而言,学习的目标包括以下4点:

(1) 了解什么是数组。

(2) 掌握一维数组的定义、初始化以及引用的方法。

(3) 理解数组在计算机内部的存储形式。

(4) 能利用一维数组解决一般的数据存储与处理问题。

活动3:教师讲授知识(5分钟)

知识讲授环节对应系统化教学设计中的外部条件W2,也就是教的活动,切忌将所有知识点一股脑的灌输给学生,效果肯定是不好的。应该循序渐进的讲授,比如第一个知识点数组的概念是相同类型数据的集合,不能简单的直接告知概念,应该配合生活中的例子来进行描述,帮助学生理解。比如可以将数组比喻成一列火车,分为一节一节的车厢,每一节车厢大小都是一样的,里面可以乘坐旅客,每节车厢都有一个编号,旅客可以通过编号在找到对应的车厢。然后,再引导出数组的概念,这样学生就容易理解数组的概念。

活动4:教师演示过程(25分钟)

演示过程也对应系统化教学设计中的外部条件W2,和活动3一样教师是否能设计好的案例直接关系到学生学习的体验,案例一定要由浅入深,否则很容易导致学生听不懂而产生畏难情绪,影响学习效果。在演示过程中教师先选取一个相对比较容易的问题展开演示,比如,设计一个要求存放3个学生成绩的整型数组,通过现场编程展示给学生,引出数组定义的语法格式,再介绍三种初始化数组的方法并同步演示给学生,使学生了解数据是如何初始化到数组中的。数组的引用以及数组在内存中的表示形式等内容的教学设计在这里就不展开了。

活动3和活动4开展的过程中,按照传统的课题往往老师问学生是否理解的时候,学生的参与性较低,一般都比较害羞,不愿发声,顶多部分同学点点头,教师很难全面的掌握学生对所授内容的理解情况。移动教学引入课堂后手机成为解决这一问题的好帮手,课前教师事先把表示对错的图片(如图2)发给学生,在课堂上统计学生们是否理解的时候,就可以让学生打开手机选择相应的图片并举起手机展示给教师看,教师一眼扫过课堂就可以根据屏幕的颜色或图案了解所授内容的理解程度,如果进行课堂选择题的答题也可以采用这一方法,只要事先把表示答案A、B、C、D的图片发给学生即可。

活动5:学生进行练习(15分钟)

教师根据演示案例的难度,利用蓝墨云班课APP布置类似题目进行课堂作业进行练习,比如:要求学生定义一个保存10个成绩的浮点型数组,利用循环求出这些成绩中的最大值、最小值和平均值。要求学生在草稿纸上完成程序的编写,然后利用蓝墨云班课的手机APP将自己的程序拍照后上传到云班课,由同学互相匿名批阅给分,教师能查看所有的作业完成情况。当然如果有条件的话,学生带笔记本直接在电脑上完成作业最好,学习的体验将更好。

活动6:学生完成活动(10分钟)

教师利用蓝墨云班课手机APP发起一个头脑风暴活动保证学生的参与性,并分5个学生一组,活动主题是“数组在使用过程中需要注意的地方有哪些”。每个学生都根据自己掌握的情况发表个人的看法,完成后小组相互之间匿名评分。

活动7:阐述这部分知识和技能学习的动机(5分钟)

教师阐述本节学习的动机,即强调数组知识对于学习编程的意义,主要关注以下4个方面:

(1) 关注目的:想要存储一批同类型数据就要采用数组来实现,可以使程序设计变得更加直观容易理解,而且数据保存后能在后期进一步处理。

(2) 知识的前后关联:数组在后续的学习和工作中将大量使用,理解并掌握后对你以后处理数据带来很大方便,同时对于理解和掌握其他集合的使用具有重要意义。

(3) 信心提升:强调数组很容易学会,只要你认真听,认真练习,没有问题

(4) 满意:强调使用数组来解决问题后对比原先的方法,有无提升。

活动8:教学测试及评估(5~10分钟)

本活动对应系统化教学设计中的辅助教学事件,用于测试评估本次教学中学生对于相关知识点的掌握情况。活动可以借助于蓝墨云班课手机APP的测试活动展开,教师课前预先精心准备好关于一维数组的测试题,测试题的选取一定要有代表性且难度与题量恰当,可以检查所授内容的掌握情况,由于是理论课使用,所以题型以选择题和判断题为主。题目准备好后通过蓝墨云班课的web端应用提交至蓝墨云服务器。课上进行到活动8的时候教师开启活动,学生在5分钟内完成答题,教师能实时查看学生的答题情况和最后的考核分析,及时掌握本次课程学生的掌握情况,学生也能从评价结果看到自己的所掌握的情况,这样学生的心理活动就能由内到外的抒发出来,能很好的激励学生学习的动力。

活动9:学生的反馈及老师对学生的反馈(5分钟)

要求学生根据活动6和活动7的完成情况谈下自己对于数组在编程中的作用和价值与老师和同伴进行一种分享,相互之间给出反馈,以加深其对知识点的理解和掌握。

活动10:用三个词定性描述数组加深记忆(5分钟)

要求学生经过以上活动后用三个词语给出对于数组知识点的定性描述。

活动11:对知识点的教学进行小结(5分钟)

教师对本节内容进行总结,明确数组是什么、用于解决什么问题、在使用时需要注意哪些问题、以及数组对于编程的价值是什么。最后,布置课后编程练习的作业,题目如下:

(1) 编程实现输入10个整数保存在一个数组中,要求找出所有的素数并打印。

(2) 编程实现输入10个数并将他们前后颠倒排列。

(3) 编程实现输入10个数后查询某个数所在的位置并显示。

有条件的学校,可以将课后编程作业放到在线评判(OJ)系统中,让学生将写好的代码上传到OJ系统,教师就能非常轻松的查看学生作业的完成情况和质量,学生也能。

4 结束语

系统化教学设计是一种简单有效的教学设计方法,只要掌握了其设计过程,在实际教学中就可以靈活运用。计算机程序设计课程从经验化教学到系统化教学设计的转变,使教学的内部事件和外部事件进行了有效的互动,避免了“自嗨”式和“放任”式的教学。各教学成分经过精心设计并配合当前的云教学手段后能显著提升学生的参与度和学习的体验,并能有效的将学生心理获得外化出来,促进了学生主动学习的发生。

参考文献:

[1] 周付安.教学设计模式的核心要素及特征[J].北京教育(高教),2017(5):80-82.

[2] 加涅. 教学设计原理(第5版)[M]. 华东师范大学出版社,2007.

[3] W·迪克.系统化教学设计[M].华东师范大学出版社,2007.

[通联编辑:王力]