基于网络的中学算法与程序设计学习支持系统

2011-12-29 00:00:00胡志洪
中国信息技术教育 2011年13期


  ● 中学算法与程序设计教学的问题
  
  首先是课时少。目前,上海的高中信息科技课一般在高一开设,要在60~70学时内学习的内容很多。而根据笔者十几年的教学实践,至少需要40以上学时,大部分学生才能学会初步BASIC程序设计,80以上学时才能进行真正的程序设计或算法设计。
  其次是分层教学和个别评价困难重重。学生的个体差别大,给教学组织带来了很大的困难。统一的实验内容、形式及难度不能适应每个学生的情况。而且教师不能完全了解每位学生的掌握情况以及各方面的能力,简单的评价甚至评价缺失让学生失去了对程序设计学习的信心。
  
  ● 网络学习支持系统的功用
  
  网络教学环境提供给学生的是非线性的、相互关联性很强的大容量信息。基于网络的学习将书本知识和社会信息相结合,将教师传授与学生自主学习、相互合作相结合。我们并非只将网络作为传输知识的工具,而是将网络作为学生的认知工具。网络学习支持系统通常由以下三个部分组成:学习资源支持系统、交互性支持系统、管理和评价支持系统。
  从理论上说,网络学习支持系统具有实现任何人在任何时间与地点学习任何自己需要的知识的能力,是实现终身教育的一个有效途径。然而,很多网络学习支持系统重内容,交互不多,即系统的主要任务就是向用户提供大量的教育信息资源,如试题、教案、课件、讲解、新闻等,好像有了内容就会人气十足,实则不然。现有的网络学习支持系统并不能从根本上满足个性化学习的需要。如何在网络学习支持系统中真正实现对学习个体的主动适应和智能化支持,是当前迫切需要解决的问题。
  
  ● 算法与程序设计学习支持系统设计原则
  
  1.找准主要问题,突出支持服务的针对性
  一要针对学习时间缺乏的问题,扩大支持服务的开放性。二要针对学习基础问题,追求支持服务的个别化。三要针对学习方法的不适应,加强学习策略支持。
  2.切合学生需求,强化支持服务的有效性
  调查表明,学生在遇到困难时主要是向教师请教,但目前教师提供的支持服务还不够到位,所以,要多方面增加服务内容。
  3.克服弱点,加强资源服务和技术支持的力度
  资源服务和技术支持子系统是目前学习支持系统的弱点。要努力提高现代化设施的完备程度和课程资源的品质与丰富程度。在资源服务方面,通过有效整合和综合利用,提供更多适合网络学习、自主学习的资源和可供选择的各种媒体形式的资源。在技术支持方面,一要加紧完善设施建设,二要重视对学习者计算机网络应用能力的培训。
  4.重视智能化,突出交互性
  学习交互是指在学习过程中,以学习者对学习内容产生正确意义建构为目的,学习者与学习环境之间的相互交流与相互作用。一般网络课程的教学交互设计主要包含三个方面:学生与媒体界面的操作交互、学生与学习资源的交互、学生与学生和学生与教师间的人际交互。
  5.反馈和评价及时、清晰、具体
  学习支持系统的设计要运用教学讯息设计中的及时反馈与评价策略。我们知道,在学习者完成具有挑战性的任务之后,紧接着,给他们一些积极的反馈,将有助于学习者的进一步努力。反馈评价应该以学习者为中心,并与学习活动相结合,成为学习的一部分。反馈形式有两种,一种是积极的、具有激励性的反馈,一种是纠正错误的矫正性反馈。反馈评价如果及时、清晰和具体,就能够针对具体的题目为学习者提供纠正和强化。
  6.问题的设计有利于学生进行探究
  大多教育家都认为问题解决是最有意义和重要的学习与思维活动,几乎所有的教学活动都与问题有关。在基于网络的探究学习过程中,应该精心设计递进式的、有层次的、前后衔接、相互呼应的探究问题。这样才能促使学生紧紧围绕某个主题,逐步深入开展探究活动。
  
  ● 基于网络的算法与程序设计学习支持系统的实现
  
  系统设计需达到的主要目的为:①充分体现“培养学生自主学习能力”的特色。平台应为学生的自主学习提供充足的学习资源,为教与学提供高效的交流平台,成为以教师为指导者,学生自主学习的“双主”系统平台。②具有良好的通用性。能适用于算法与程序设计以及其他各学科课程的在线学习。③提供实时交互工具,以支持教师的实时教学和学生的实时学习,并在工具的设计中使教师与学生之间的答疑更为智能化。④具有良好的可扩展性。系统平台应采用开放的体系结构和松散的耦合方式,为使用者提供一个先进开放的空间,并为系统平台的扩充和技术升级提供极大的支持。⑤提供一个完备的测试评估系统。并且在组题方面能依照学生以及试题的类型、等级等更为方便、灵活和快捷地组题,体现系统的个性化辅导功能。⑥具有简单的操作性。无论用户计算机水平如何都能很容易地使用。⑦具有足够的安全性。系统应在身份认证、资源管理、数据库等环节采取严格的安全措施,保证数据的安全和正确,保证系统平台不受侵害。
  学习支持系统一般包括:课程学习、巩固练习、家庭作业、阶段测试、智能答疑、交流学习、学习笔记、学习日志等内容。中学阶段算法和程序设计的学习要求并不高,所以学习支持系统并不需要在练习、作业和测试上下很大工夫,重点要放在课程学习、智能答疑、交流学习以及评价反馈等方面。
  教学经验告诉我们,对程序设计一无所知并且学习负担很重的中学生,要想掌握程序设计的基础知识和方法,必须从兴趣入手,从生活中的实例中抽象出解决问题的算法。有很多中学生一开始抱着很大的好奇心学程序设计语言,但是一旦深入学习就会发现发程序设计枯燥难懂,逐渐消退了学习的兴趣。在支持系统中要安排一些好玩的、稍微带有挑战性的例子,来保持学生的学习兴趣,如VB中小球怎样逐渐变大、取款机密码的识别、规则图形的打印等问题,每个问题既要给出参考的算法,还要分别围绕各个知识点作进一步的说明。
  对一般的流程图和程序,大部分学生只要稍加培训都能看懂,但是要学生自己画一个完整的流程图或者编写一段程序代码却较难。如一元一次方程ax+b=0的解,问题虽然简单,但由于受数学习惯思维的影响,学生在VB中也许就把方程直接写在代码里,误以为程序自己会把解求出来。主要原因还是学生不懂算法的特点,不知道每一种程序设计语言有哪些基本算法语句。如果我们的支持系统能通过训练让学生理解了算法的特点,也掌握了所学程序设计语言有哪些基本语句,那么一般性的算法问题的描述和编程问题就不会让学生无从着手。这样的问题可以通过选择、填空等形式来训练学生。
  通过对一些关联问题的提问等形式,可以了解学生对知识的掌握情况,系统要将一个班级中学生的掌握情况进行归类并显示。如在分支结构学习时,到底有多少学生的问题出在逻辑表达式的书写方面,有多少学生不理解顺序书写的代码的执行是可以选择执行的。对学习支持系统进一步的要求,就是根据学生出现的情况给出学习建议。
  学生学习碰到的问题往往是类似的,学习支持系统要能将学生碰到问题和解决方法记录下来,其实一个论坛就能满足了。