高中信息技术课堂习题分层设计的研究

2024-12-15 00:00:00黄旻嘉
科技风 2024年34期

摘要:随着高中信息技术新教材的使用,Python编程设计成为学习和考查的重点,同一课堂下学生之间的差异性较之前显著提高。本文以Python程序设计为例,通过对学生的分层及课堂习题的分层设计的研究,尝试在保证统一教学进度的前提下合理设计不同层级的习题并分配给不同的学生,尽量兼顾不同层次的学生,让每个学生都能投入课堂学习中,提高课堂整体教学效率,真正做到因材施教。

关键词:信息技术;高中;习题分层设计;Python

随着高中信息技术新教材的使用,课程内容产生了翻天覆地的变化,学习及考查重点(这里主要针对操作题)从原来的对于大众信息技术工具的使用转变为编程设计,要求学生“掌握算法的基本结构,能够使用程序设计语言编写代码实现简单算法并发布”,伴随而来的便是课堂上学生的差异性较之前显著提高。面对这一现状,如何正视学生的个体差异性,合理设计课堂习题并做到分层使用,已经成为一线信息技术教师需要关注的重点。

一、高中信息技术课堂的现状

对于学生来说,要想学好编程,不仅要掌握基本的语法规则和语句结构,还需要有一定的编程思维能力,能够将一个具体的现实情境问题转化为数学问题并尝试用对应的算法解决。虽然高中教材选用了相对比较容易掌握的Python语言来进行教学,但对于理科基础一般的学生而言依旧是具备一定难度的。于是高中信息技术教师便迎来了与数学教师一样的困境,处于同一课堂的学生能力差异性巨大,同样一道课堂习题,有的学生在听过教师分析后很快就能想到算法并用程序语言实现,而有的学生甚至连理解这个算法的数学表达都很困难,更不要提将其转化为程序语言了。鉴于此,传统的全班统一进度统一习题的课堂教学方式显然已经不再适用,如果照顾接受能力差的学生放慢课堂进度,则很容易出现“吃不饱”的学生无所事事,久而久之,他们的学习积极性也会慢慢被消磨掉;如果照顾接受能力强的学生把课堂填得太满,则“消化慢”的学生完全无法跟上学习进度,很容易一上来就掉队然后彻底失去学习兴趣。如何在整体相对统一的课堂进度下精心设计课堂习题,兼顾不同层次学生的学习需求,让“吃不饱”的学生“有得吃”,让“消化慢”的学生“慢慢吃”,最终提高整体课堂效率,是我们需要认真研究的问题。

二、课堂习题分层设计的理论依据

课堂习题分层设计是指教师根据同一课堂下学生的知识基础、学习能力、学习习惯等方面将学生分成几个层次,在设计课堂习题时,针对同一知识点为不同层次的学生设计不同难度的题目,从而在保证整体进度统一的前提下兼顾不同层次的学生,激发学生学习兴趣,有利于学生个性发展,最终提高课堂整体教学效率。笔者在研究中发现,关于课堂习题分层设计的理论依据主要来自以下方面:

(1)因材施教理论。因材施教是教学中一项重要的教学方法和教学原则,在教学中根据不同学生的认知水平、学习能力以及自身素质,教师选择适合每个学生特点的学习方法来进行有针对性的教学,发挥学生的长处,弥补学生的不足,激发学生学习的兴趣,树立学生学习的信心,从而促进学生全面发展。因材施教对于教师、家长、学校以及教育公平的实现都具有重要意义。

(2)发展性评价理论。发展性评价是一种以评价对象为主体、以促进评价对象的发展为目的的教育评价。发展性评价强调发展的连续性,重视对对象过去学习状况的考查,以促进学生未来的发展;注重评价对象的个体价值,提倡评价者与对象协商,确定评价目标;强调对学生多方面能力的评价;重视学习的过程,及时反馈,以促进发展为目标,重视形成性评价的作用。

三、课堂习题分层设计的内容实施

(一)学生分层

研究表明,学生的身心在发展过程中呈现出显著的差异性。同时,学生在长期的学习过程中受到家庭、教师、学校等因素的影响,致使已有知识认知能力、学习能力、学习态度等方面存在显著的差异性。基于此,教师在分层设计课堂习题之前,应立足于学生之间的个体差异性,进行精准的分层。

具体来说,教师在对学生进行分层之前,应通过各种途径尽量全面地了解学生信息技术方面的各项能力。如笔者所在学校信息组搭建了moodle学习平台,在高一第一学期开始会设计一张测试信息技术水平的调研试卷并放在平台上,高一新生的第一节课就会安排学生在线进行一次练习,并据此评估学生的信息技术能力以进行初始的分层。比如将学生划分为简单、普通、提高三个层次,其中简单层次的学生信息技术相关基础知识匮乏,上机操作能力相对偏弱;普通层次的学生具备基础的信息技术相关知识,具备基本的上机操作能力,但对于信息技术课程兴趣一般;提高层次的学生有比较扎实的信息技术基础知识,上机操作能力强,对于教师课堂讲解的基本知识点能很快理解并融会贯通,且对信息技术课程具有一定的学习兴趣和探索精神。值得注意的是,在学期初始阶段,同一课堂内的学生分层不宜过细,一般分为普通、提高两个层次(针对生源较好的学校和班级)或者简单、普通、提高三个层次(针对生源较差的学校和班级)即可。在教师对班级学生有进一步的深入了解以及学生通过若干次练习更好地适应课程后,再根据实际情况进行适当的动态调整。

(二)课堂习题分层设计

在依据学生知识基础、学习能力的不同进行分层后,教师就要根据每节课的具体内容对课堂习题进行相应的分层设计。这里以Python程序设计的相关课程为例,在具体实施过程中,笔者发现课堂习题的分层设计大致可以分为基于同一道题的分层设计与基于统一知识点的分层设计两类。

1.基于同一道题的分层设计

考虑到高中学生的学情,要求学生针对具体的问题完全自主编程解决显然难度过高,因此高中信息技术的编程题形式以完善程序(即填空)为主。那么,针对一些希望每个学生都能接触的经典题目,我们在分层设计上就可以从“挖空”入手,针对不同难度层次的学生调整“挖空”数量和位置。当然,这里的“挖空”绝不是简单地增加数量,一定要在根据题目的结构结合学生学习的各个知识点综合考量下有针对性地“挖空”,甚至在某些特定的填空处可以通过简单调整增加该空的填写自由度,以达到分层设计的目的。以计数循环结构(For循环)的一道经典基础题“1到100的累加”为例,原程序如下:

s=0#设置s的初始值

foriinrange(1,101):

s+=i#求前i个数之和

print("1+2+3+4+……+100的结果是:",s)

“累加”是计数循环结构中最常见的一类应用,高中习题中有很多都是“累加”结构的延伸拓展,而本题则是“累加”中最基础的题目,属于讲完计数循环知识点后要求所有学生都应该接触并掌握的那类题目。那么针对具体的一道题目,我们就可以从题目中涉及的各个知识点着手,合理进行不同的“挖空”,对同一道题进行分层设计。这里我们根据“普通”和“提高”两个层级将这道题设计成两种形式:

(1)“1到100的累加”的“普通”层级形式。

s=0#设置s的初始值

fori①range(1,②):#只需填一个数字

s=s+③#求前i个数之和

print("1+2+3+4+……+100的结果是:",s)

(2)“1到100的累加”的“提高”层级形式。

s=①#设置s的初始值

foriinrange(②):#看看你能写出几种不同的形式

③#求前i个数之和(有两种写法)

print("1+2+3+4+……+100的结果是:",④)

在第一种“普通”层级形式中,基于本节课主要知识点是for语句的基本格式(①空涉及)和range函数的熟练使用(②空涉及),本题关键则是“累加”中循环体语句的写法(③空涉及),故设计了这三个关键位置的填空,力求所有“挖空点”都对应到本节课或本道题最核心的部分,让“普通”层级的学生能够在有限的答题时间内复习到最关键的知识点,帮助他们加深对这部分知识的理解和记忆。

在第二种“提高”层级形式中,则是在对核心知识点同样进行考查的基础上,增加了这两空的填写自由度,其中②空对应的range函数中的参数完全隐去不做任何限制,并鼓励学生结合本课知识尝试尽量多的写法,③空涉及的循环体语句同样完全放开限制,既涉及“累加”循环体语句的写法,又复习到了之前“赋值语句”知识点中“+=”的用法,而①空和④空则考查到了前面课堂上讲过的关于变量的知识(分别对应变量的赋值及输出语句中变量名的使用方法),所有这些设计都是为了尽量挖掘学有余力的同学的潜能,开放式的答案使这些操作较快的同学在尝试不同解法的时候充实了他们的答题时间,而当他们能够写出多种形式的答案并通过教师展示得到表扬时又能够获得满足感以提高他们的学习兴趣。

2.基于同一知识点的分层设计

在编程学习中,对于同一个知识点,往往会有很多对应的习题可供选择,教师如果能精心挑选出数道难度循序渐进的题目并进行合理搭配,往往能产生良好的效果。还是以计数循环结构(For循环)的“累加”这个具体知识点为例,在讲解并练习过基础题“1到100的累加”后,笔者选择了“求奇数的和”,“计算1-2+3-4…+99-100”和“判断完全数”三道题目作为课堂练习,三道题分别如下:

(1)求1到100之间所有奇数的和。

s=①#s中存放1100之间所有奇数的和

foriinrange(②,100,③):

s=④

print(s)

(2)计算表达式s=1-2+3-4...+99-100的值。

s=0

foriinrange(1,①):

if(②):

s=si

else:

print(④)

(3)判断完全数。

完全数是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,例如完全数6,6=1+2+3。请判定输入的正整数是否是完全数。

x=int(input("请输入一个正整数"))

s=①#存储因子和

forjinrange(1,x):

ifx%j==0:#如果j是x的因子

s+=②#将因子累加到s中

ifx③s:

print("Yes!")

else:

print("No!")

这三道题本质上都是“累加”,但是难度是层层递进的。“奇数的累加”一题相对于前一道“1到100的累加”题只需要对range函数中的参数进行修改(②空和③空),其余语句结构是完全相同的(①空和④空),属于简单拓展,目的是让学生通过实际题目加深对本课重点知识“range函数使用”的理解,同时让学生对“累加”结构语句的基本写法再熟悉一遍,因此适合放在“普通”层级供学生练习。而“计算1-2+3-4…+99-100”一题则是“累加”结构的升级版,在通过for循环实现累加的基础上嵌套了if结构以实现“一加一减”的效果,需要学生在掌握本节课计数循环语句结构的基础上(①空和④空),对于之前的分支语句同样能够灵活地运用(②空和③空),并理解两者如何通过嵌套搭配在一起完成相应算法,因此适合放在“提高”层级供学有余力的学生练习。“判断完全数”一题中的核心部分同样属于基于累加的for循环嵌套if语句的应用(①空和②空),但对于学生的编程思维要求更高,学生一定要理解本道题中使用的判断完全数的算法,方能进一步解题。这道题一般出现在综合复习阶段,但对于思维活跃、能力较强的部分学生,在for循环新课结束后完全有能力自行解出,将这道题作为“累加”知识点的“最终boss”提供给这部分学生进行挑战,既让他们的课堂时间能被充分利用,又能极大地提高他们的学习兴趣及解题完成后的满足感。当然,在实际编排题目时,不一定要一成不变地将不同层级的题目分别各取一题分配给不同的学生,可以根据课堂学生的具体情况灵活地安排,比如,“简单”层级学生完成(1)题,“普通”层级学生完成(1)(2)两题,“提高”层级学生则直接完成(2)(3)两题。最后,教师在讲解题目时也应根据班级具体情况合理分配每道题的讲解程度和花费时间,如果班级整体比较一般,“简单”“普通”层级的学生占大多数,则应精讲(1)(2)两题,第(3)题简单提下算法甚至把答案展示下即可;反之,如果班级整体比较优秀,则应精讲(2)(3)两题的算法及解题思路,对于基础题不必着墨过多。

总之,不管是基于同一道题的分层设计还是基于同一知识点的分层设计,目的都是尽量让每个学生都能投入课堂学习中,在具体的实践过程中需要根据每个班级的具体情况动态地进行调整,以达到最适合本班课堂的效果。

结语

信息技术课堂的分层教学作为一种个性化的教学策略,在一定程度上提升了不同层次学生的学习兴趣。通过合理的课堂习题分层设计,教师在保证课堂进度正常进行的同时兼顾大部分学生的具体学习情况,真正做到了“因材施教”,显著提高了课堂的整体教学效率。我们坚信,这样的分层设计不仅有助于提高学生的学习积极性和自信心,更能培养他们的自主学习能力和解决问题的能力。我们也期待在未来的教学实践中不断完善和优化这一策略,为学生提供更加优质、高效的学习体验。

参考文献:

[1]徐小辉,易圣,郭心毅.“互联网+”背景下在线课程分层教学设计与实施[J].当代教育实践与教学研究,2018(10):1314+19.

[2]李建琦.高中信息技术课堂实施分层作业的实践研究[J].新课程,2020(03):101.

[3]左香梅.高中信息技术课堂动态分层作业设计的策略研究[J].考试周刊,2021(67):1618.

作者简介:黄旻嘉(1987—),男,汉族,江苏常熟人,软件工程硕士,一级职称,研究方向:高中信息技术。