刘海平
江苏省徐州市第三中学 江苏徐州 221005
《可以复用的代码》是高中信息技术必修一教材《数据与计算》第二单元第4章节的教材内容,本堂课围绕“解决火柴棒摆数字问题”项目展开学习。通过火柴棒摆放数字问题,了解函数的作用;掌握函数的定义和调用方法。但在实际的教学过程中,笔者发现学生对“解决火柴棒摆数字问题”算法的理解阻碍了学生对使用函数必要性的认知,使得教师不得不把课堂的主要精力花费在非重点问题的梳理上,从而影响了整个项目活动的正常推进,导致教学效果大打折扣。
如何更好地开展项目教学,将学科知识与项目活动深度融合,让学生在学习知识、掌握技能的同时,达到各方面能力的全面提升。笔者就以上过的一节课堂实例入手,结合自己在课堂教学中取得的经验及存在的不足,简单谈谈对如何上好一节高中信息技术编程课的理解。
教学内容如何更好地服务学生,需要对教材内容进行整合,进行二次加工。任何教法,都离不开对教材的仔细研读。通过研读,教师才能对教材的体系架构、章节地位、相关案例进行整体把握,从而更好规划项目需求,让学生容易接受。项目需求规划好之后,教师可以根据不同项目需求的特点,对各章节的知识点进行重新整合,并有计划、有步骤地将其渗透到项目教学中。这样,项目之间的逻辑关系,知识衔接才会更加紧密。由此展开的教学活动可以让学生更加科学、系统地进行学习,使得项目式教学得到更好开展。
本堂课教学内容围绕“解决火柴棒摆数字问题”项目展开学习。但由于该项目本身就是一个比较复杂的问题,如果没有适时地调整教学内容,将该项目涉及的知识提前做好知识铺垫,学生在初次接触该任务时往往会不知所措。一方面,“火柴棒摆数字问题”的算法难度较大,因其涉及列表等相关知识,学生理解起来相对吃力;另一方面,在厘清算法思想的基础上,让学生感受代码复用的必要性是教学活动的关键,若对算法理解不到位,会直接影响后续活动的正常展开。
所以,在处理这一节内容时,为了顺利推进项目学习,笔者在仔细研读教材的基础上,对本部分内容进行了适当调整。根据知识的难易程度、逻辑关系,将项目中涉及的列表知识、“计算一个数各数位数字之和”的算法、双重循环的执行过程等相关知识有计划地在前期教学中做好知识渗透;在夯实这些知识后,再开始该项目的学习。在项目具体实施过程中,我首先引导学生将“用火柴棒摆数字的问题”拆解为“穷举需要6根火柴棒的自然数”和“计算一个数需要多少根火柴棒”两个问题,通过拆解让学生感受到程序中需要反复使用部分代码,从而顺理成章引出代码复用的必要性;接着讲解函数的定义和调用方式;最后通过程序的执行过程让学生简单了解函数参数的传递过程。经过这样的课堂设计,在项目开始之前,教师就可以根据项目需求,提前做好知识准备,从而把精力聚焦在新知识的解决上,这样可以有效地保障项目活动的展开,高效推进课堂教学。
新课程的核心理念强调课堂内的所有学生都要有参与感,新课程理念在课堂上成功实施的关键就是要尊重学生,提高学生的学习兴趣。教师要学会优化教学环境,加强学生之间的合作与交流,让每一位学生都有获得感,这就要求教学必须从学生实际出发。教材的内容、知识体系是相对固定的,但是学生对教材的理解肯定有所区别,这是因为学生的年龄特点、地区差异、家庭背景、知识层次都有所不同。新课程理念强调要发展学生的核心素养,要立足于学生的实际情况。教师的教学重心不能仅仅放在“结果”的取得,而是要关注学生获取知识的整个“过程”,关注学生学习的方法是否得当。项目式教学的“项目设计”环节注重激发学生的主动探究能力,是一种有别于传统教学的、注重创新实践的教学模式。在这种模式下,学生的活动围绕特定项目,在老师的指导下主动探究、发现并解决问题。学生在被激发了思维的同时,综合能力也得到全面提升。而教师的作用则是通过教学方法的改进、对学生的整体把握、对教学手段的创新去引导学生主动参与项目式学习。这样,课堂的生态得到了根本的改变,学生的主体作用、教师的主导作用都得到了有效的发挥。
民主化是建构新型师生关系和课程均衡管理体制的牢固基石。在项目式教学渗透新课程理念的每一个环节中,营造新型、民主化的“教学关系”是非常重要的。教师决不能在课堂上搞一言堂,而是要尊重学生,发扬民主,鼓励学生积极参与,敢于质疑,踊跃发言,通过各种形式,激发其探究热情。教师不仅要研究教材,研究项目设计,还要“以生为本”,认真研究学生。要根据学生的年龄特点、知识层次、个性特征找准学生的兴趣点在哪里,用科学的方法切入课堂,鼓励学生积极主动参与,大胆构想,勇于、愿意尝试新思维、新方法,从而使教学良性互动。项目式教学的形式展开要尽量多样化,可以通过辩论、竞赛、问卷、小组合作等方式调动学生的积极性,充分激发学生的求知欲,让学生体验课堂的“主人翁”感觉,这样就把传统枯燥的课堂变得活泼生动、有趣高效,学生思想的火花就会在民主的气氛中不断闪现,思维能力也能得到提高,从而帮助学生拥有更良好的体验感、获得感。
例如,本节课教师可在课堂引入环节导入一段有关火柴棒问题的益智类视频,激发学生对火柴棒问题的探究热情。然后适时提出如下问题:谁能快速说出6根火柴棒能摆出哪些数?你思考的过程是怎样的?在问题的引领下,让学生进行讨论,通过小组比赛的方式,让学生在自主探究的过程中发现问题、解决问题、建构知识、学会独立思考的能力。
任何教学的展开都是围绕着“问题导向”展开的,项目式教学也不例外,项目式教学的优势在于问题的提出更加有针对性。教师在设计项目式教学的问题时,要善于高屋建瓴,站在一定的高度按照学生的思维梯度、接受程度将新旧知识构建联系,并逐层推进,循序渐进,小跨度将“问题”逐层展开,这样学生就不会出现思维断档,并通过合理的问题预设让思维得到启发,让其感受到问题的解决就像玩游戏闯关一样步步深入,最终能够“茅塞顿开”,将最难的一关拿下。这样知识的习得就是一件水到渠成的事。
例如,在解决“用火柴棒摆数字的问题”活动中,如何表示摆一个数字需要多少根火柴棒,又如何将各数位数字所需火柴棒数量实现累加,是阻碍学生问题解决的核心问题。由于学生已经初步掌握了“判断一个区间,哪些数的各数位数字之和等于X”问题的算法,所以,在分析“摆火柴棒问题”时,教师可以引导学生借鉴前者的算法思想,然后针对性地提出问题:“计算一个数各数位数字之和”和“计算摆一个数需要多少根火柴棒”两个问题是否有内在联系?区别又在哪里?引导学生积极思考,从而帮助学生快速找出解决办法:其实两者都属于循环次数未知的迭代问题,区别在于一个是对数字本身求和,一个是对摆放该数字所需火柴棒数量求和。即更改程序中一条赋值语句,将原先的对数字累加变换成与之对应的火柴棒数量累加。
其次,由于列表的相关知识在前期的教学中也有所铺垫,所以在解决“计算各数位数字所需火柴棒数量之和”问题时,教师可以适时地抛出问题:“如何用尽可能少的变量表示摆放数字‘0’到‘9’所需的火柴棒数量?”学生自然而然就会联想到列表知识,那样列表中的元素就和摆放10个数字所需的火柴棒数量一一对应起来。由此可见,在老师对问题精心预设以后,学生的理解难度就会降低,学习兴趣就会提高,解决问题更加科学,知识获取也更加容易、高效。
除了科学预设问题,项目式设计教学还可以借助流程图来帮助梳理程序逻辑。学生在设计复杂程序时往往觉得很棘手,而流程图的特点是简洁、直观、逻辑清晰,可以将复杂的描述性文字用流程图的方式直观表达出来,使算法步骤更富有逻辑性。项目式教学在设计复杂程序时,要遵循学生的认知规律,从程序的顶层设计。将问题自上而下,逐级具体化。通过对一个个子问题的不断细化,使复杂向简单过渡,最后将问题整合,自下而上推演,从而得出最初问题的解决方案。笔者发现,在项目教学的推进过程中,教师如果能够有效借助流程图,学生就可以更加清晰、直观地把握程序的设计意图,并能够更好地了解程序主体和部分之间的逻辑关系。
例如,在分析梳理“摆火柴棒问题”时,教师借助流程图可使得整个程序的逻辑结构变得更加清晰直观。教师可以这样设计流程:首先,将问题拆解为“穷举需要6根火柴棒的自然数”和“计算一个数需要多少根火柴棒”两个问题。通过拆解,学生很容易从结构上把握问题的解决思路:穷举区间中的每一个数,计算摆放该数使用了几根火柴棒,若火柴棒数量满足要求则将该数输出;而“计算一个数需要多少根火柴棒”又是影响整个问题解决的子问题,又可以将其细化为若干个步骤。通过拆解、细化,学生很容易发现子问题需要被反复执行,而且每次执行都重复相同的步骤。这样从程序的逻辑结构上来划分问题,将主程序和子程序的功能独立开来,可有助于学生更深入地了解算法思想,明确主程序和子程序之间的执行过程。
回归生活是新课程改革的必然归属,也是不同课程追求的目标。传统教育有一个公共的弊病:教育与课程在一定程度上脱离了实际生活。而新课程理念强调课程源于生活,知识不是凭空出现的,而是出于生活的需要产生的。基于这个理念,新课程标准也是按照生活逻辑构建的。在生活中,直观的文字、图片、具象的事物容易理解,但是抽象的事物是很难在短时间内被接受的。人们的认知规律是一个渐进的过程,但是和其他学科不同,尤其是文科类学科,信息课教学的课堂上有相当数量的内容都很抽象,较难为学生理解。因此,在组织信息课的项目式教学中,教师要遵循学生的认知规律,善于将生涩、复杂、抽象的内容具体化、生活化。要将其和生活实际相联系,从抽象到具象,这样知识会更加形象直观、通俗易懂,学生接受知识更加容易,课堂效果得到提升。这也要求教师要从学生的兴趣点出发,找到转化抽象为具象的方法。要求学生根据自己的经验,通过自身的观察、调查、了解等活动并通过互相交流,深化其对知识点的认识。
例如,对于函数调用、函数参数的设置以及返回值问题,这些理论理解起来比较晦涩,教师在讲解这些抽象概念时,选择恰当的类比对象,会让学生的理解变得顺畅。教师可以将函数类比成生活中各种家用电器(比如榨汁机),调用函数的过程就是让榨汁机工作为自己榨果汁的过程;榨汁机接收水果,对应主程序将参数传递给函数;榨汁机榨汁的过程,对应函数的执行过程;人拿到果汁,则对应主程序接收函数返回值的过程。函数的本质就是一段可以被重复执行的代码,函数的参数和返回值则取决于水果的有无以及水果的种类。通过类比榨汁机的工作过程,学生的思维就可以将抽象内容具体化,并很容易从身边熟悉而简单的东西引入抽象复杂的思维概念。如此,学生会对函数定义、调用以及参数传递过程理解起来更加深刻。
任何教学的手段、方法、过程都离不开目标的达成,否则教学就成了一句不切实际的空话。在项目式教学设计环节,教师就要科学设定课堂目标,并按照课程标准,围绕教学目标开展教学,从而对教学全程实行有效把控,对教学结果也能够得到科学反馈,从而调整教学方式,反思教学行为,改进教学方法,做到教学的有的放矢。
教师规划项目时,要按照新课程标准对课程内容进行详细的由浅入深的设计,将提升学生信息素养和培养计算思维的总目标渗透到项目活动的各个环节。在设计具体探究任务的过程中,任务的安排要有梯度,能根据内容和目标选取恰当的情景环境,并能根据学生情况预见自主学习过程的突发情况提前做好预案。
基于项目学习模式下,在项目式教学中更加强调学生的自主学习,但项目式学习并不等同于把课堂全部放手给学生,放任学生的行为。因为在没有严格的考核和监管下很容易产生滥竽充数的现象。学生如果缺乏约束,缺少有效的监督,就会在学习的过程中趋于盲目。所以项目式教学切勿只是追求形式,忽视学生实际获得,教师要力争把课堂教学面向全体学生,而且对学生知识的掌握情况要做到心中有数,要关注个别学生的惰性心理,甚至对其要进行差异化辅导,从而真正落实学生的主体地位,让每一个学生都不掉队,都能真正地参与到项目中来。
项目化教学以问题解决为中心,避免了教师照本宣科讲理论,这是项目化教学普遍受到学生欢迎的重要原因。然而我们必须充分认识到,虽然项目化教学是以学生为主体的课堂改革,课堂上学生是主体,但教师的主导作用不容忽视,教师在课堂上的职责不仅是协助学生完成项目任务,更需要通过项目指导和总结来向学生传授专业理论。教师不能只重视实践操作,忽视理论知识传授,严重背离项目化学习初衷。
总之,通过本节课的教学实践,笔者认为,更加高效的项目式教学的开展,需要教师不断学习,用先进的教育教学理论和学科专业知识武装自己,也要注重自身“教学素养”的提升。理论联系实际,以生为本,勤学多思,研究教材教法,让项目式教学真正立足课堂,激发学生思维,使学生通过项目活动提高解决问题的能力,从而使学生信息学科的“核心素养”得到大幅提升。