以计算思维为导向的中职信息技术教学案例设计研究
——以程序设计入门模块《认识算法》一课为例
2022-10-27张海青山东省青岛市城阳区职业中等专业学校
张海青 山东省青岛市城阳区职业中等专业学校
2020年1月20日,教育部颁布的《中等职业学校信息技术课程标准(2020年版)》(以下简称“课标”)明确指出,通过对信息技术基础知识与技能的学习,有助于增强学生的信息意识,发展计算思维,并将计算思维作为主要学科思维融入核心素养的设计中。课标还指出,在具体实施教学时,教师要根据教学内容提炼计算思维的形成过程和表现形式,引导学生在解决问题的过程中经历分析思考、实践验证、反馈调整的过程,逐步形成计算思维。面对课标的最新要求,中职学校如何认识计算思维、如何将计算思维落实到课堂教学实践中成了教学一线教师最为关注的问题。为此,本文在参考现有计算思维相关研究的基础上,以中职信息技术课程《程序设计入门》模块为例,对计算思维结构在模块中的具体化表现进行了探讨,并在《认识算法》一课中开展了教学设计与具体应用。
● 信息技术课程计算思维的内涵与结构
根据课标的界定,计算思维是指个体运用信息技术的思想方法,在分析处理信息、解决问题过程中产生的一系列思维活动。但这只是一种整体性描述,只涉及计算思维的内涵及要求。计算思维是一个复杂的科学思维综合体,要深入认识计算思维,并将思维过程落实到课堂教学实践中,必须进一步厘清计算思维的意蕴与结构,并在结构关系中理解其具体表现,逐步提炼出隐含在不同教学内容中的计算思维表现形式。
关于计算思维结构的研究,李艺教授团队提炼了信息技术课程中的六组思维主题,于颖博士探索了包含六大思维主题的信息技术课程计算思维三棱结构,并对计算思维结构的要素内涵及其关系进行了表征(如下页图)。
以此三棱结构为基础,于颖博士依据高中信息技术课标,探索了计算思维结构在“数据管理与分析”模块中具体表现的分析方法:首先需要根据课程标准,分析模块的核心特征;其次通过对学科核心素养的内涵与水平划分及模块内容标准的分析,将相应的计算思维水平描述与内容标准条目描述对应到计算思维各主题中;最后结合计算思维水平描述与模块内容标准的分析结果,提炼出模块计算思维的具体表现形式。
虽然高中和中职属于两种不同的教育类型,但信息技术课程作为两个学段的公共基础课,都属于通识教育体系,其对学科核心素养培养目标的四个方面,即信息意识、计算思维、数字化学习与创新、信息社会责任的内涵界定趋向一致,因此,可以借鉴以上计算思维结构在课程模块中具体表现的分析方法,来进行中职课程模块的计算思维具体化。
● 计算思维在“程序设计入门”模块中的具体表现
1.“程序设计入门”模块主要特征
中职信息技术课标的课程结构,包括8个必修模块和10个拓展模块,“程序设计入门”是必修模块中的第5部分,与其他模块相比,它的核心概念、表达方式和逻辑结构更注重引导学生运用算法和程序设计解决问题的能力,以此模块作为培养计算思维的试点,可以相对容易地提炼计算思维的表现形式,更容易切入实施。而且,中职生在中小学有一定的程序知识基础,尽管之前的信息技术课堂课时少,时间久,但是他们利用程序设计解决问题的意识并没有失去,这对计算思维的落实提升大有助益。
2.中职课标关于计算思维水平的要求
中职课标关于计算思维的描述,主要体现在三方面:一是在学科核心素养与课程目标中有整体性的描述和要求;二是在课程各模块内容的具体要求和教学提示中有说明;三是在学业质量水平划分方面,将其隐含在质量水平描述之中,并与附录中按照课程内容划分层次要求进行了对应,如课程内容基本要求对应学业水平一、课程内容较高要求对应学业水平二。可以说,对于计算思维的具体表现,尽管中职课标有以上三方面的描述,但没有像高中课标那样从不同的水平等级进行进一步的细致表述,需要教师在开展教学时,进一步提炼计算思维的形成过程和表现形式。
信息技术课程计算思维三棱结构
3.计算思维在“程序设计入门”模块中的具体表现
基于高中课标中关于计算思维水平的划分,抛开了具体知识内容,是从一般意义上进行的计算思维水平划分,因此中职模块可以此为参照,并依据中职课标内容与学业质量要求,遴选适合中职生思维水平的描述,即按照“模块对应计算思维水平描述分析(高中课标)—模块内容标准(中职课标)—模块计算思维总体描述—模块计算思维具体表现形式”的思路,将其具体化于思维主题中(如下页表)。
以此具体表现为基础,“程序设计入门”模块中各部分内容蕴含的思维主题就能够比较清晰呈现。笔者参考课标12课时的总体要求,以及内容的具体条目、学业水平要求和相关教材资源,设计了模块的初步内容划分、课时安排,及其对应的思维表现安排,具体如下:
①初识程序设计(2课时)——主要以了解程序设计理念、理解运用算法思想解决问题的一般过程为主,对应思维主题主要是抽象建模的对象与管理思维,以及现实问题的解决必须遵循一定的步骤和规则的规则与安全思维。
②设计简单程序(4课时)——主要以掌握数据的区分、表示、计算,程序的流程控制,函数应用,算法的具体实现为主,对应的思维主题主要以数据与计算、设计与制作为主,并渗透了规则与安全、系统与工程思维。
计算思维结构在“程序设计入门”模块中的具体表现
③运用典型算法(4课时)——主要以排序、查找、枚举典型算法,以及功能库扩展程序为主,以设计与制作为主要思维主题,数据与计算、规则与安全、系统与工程以及协作与交互思维渗透在设计与制作过程中。
④算法程序的综合应用(2课时)——主要是对整个程序设计入门知识的综合应用,主要以设计与制作、系统与工程思维为主体,其他思维主题贯穿其中。
可以说,划分了大课时的内容安排,在关注整体思维培养的同时,更关注各部分的思维主题及其之间的联系。下面,笔者以初识程序设计中第一课《认识算法》为例,来探索具体的单课时课堂教学案例设计。
● 以计算思维为导向的教学案例设计
1.确立学科内容主题
《认识算法》的第1课时引领学生从无到有理解算法概念,掌握算法解决问题的一般过程,初步具备从算法角度观察问题、抽象建模,并对算法进行恰当描述的对象与管理思维,将规则思维渗透其中;第2课时引入程序设计语言,在第1课时基础上对算法的现实实现有初步体验,同时进一步强化和巩固对象与管理思维、规则思维。由此,将课堂内容设计为:陈述性知识——算法、程序概念、算法特征;程序性知识——从实际问题中发现算法、利用算法解决问题的基本过程;策略性知识——在用算法解决问题过程中需要的主要思维方法,即抽象、建模(不同问题情境)。
2.确立生活内容主题
在《认识算法》一课的教学中,教师选取了新生报到流程设计的生活主题,原因其三:一是学生作为高一新生,对入学报到的场景记忆犹新,有比较强的心理体验;二是学生参与了报到过程中的流程体验,对算法的理解及流程设计的意义能有更多的体会;三是报到过程的缴费问题作为实际所需,在日常生活中有普遍的应用,有助于学生对知识的拓展和迁移。
3.教学目标的确定与表述
《认识算法》一课的目标设计,不局限于算法的概念、算法解决步骤等学科知识问题,而是通过参与设计的各种活动,如模拟新生报到、在线缴费等,来达成具体的思维水平。具体表述如下。
学科知识:算法的概念与特点;算法解决问题的基本步骤:抽象建模——算法设计;流程图的描述方法。
问题解决:根据实际问题要求设计合理算法,并进行描述。
学科思维:用算法设计的思想考虑真实情境问题,提炼问题关键要素,进行抽象建模。
另外,本课在解决问题过程中需要遵循的基本课堂规则意识,师生、生生之间的交互协作能力,也渗透在对象与管理思维主题的培养之中,在描述学科思维目标时不再单独列出。
4.教学情境创设和内容组织
课堂教学情境的创设和内容组织一般需要考虑三个方面:其一,对于概念或原理等抽象概括性的陈述性知识,在将其作为学习者学习或应用的新知识时,需要以生成性的方式存在,如算法的概念,不是笼统地告知教材中已有算法概念的表述,而是将其放在熟悉的报到场景中,通过角色扮演、观察分析等活动,主动生成关于算法概念的理解,以便纳入学生原有的认知体系之中;其二,对于解决问题的基本过程、方法等程序性知识,可以通过实例研讨方式,按照从认识到形成,从具体化到一般化的认知过程进行,如算法解决问题的基本步骤,教师不是直接呈现抽象建模——设计算法的基本流程,而是在实例中通过引导学生从常规数学思维计算转变为利用计算机工具来解决问题方式进行,并通过多类型场景,强化对这一认识的巩固和运用;其三,对于解决不同问题情境或综合性问题中的算法设计等策略性知识,可以设置有一定复杂度的情境或差异化情境,如在运用算法流程解决问题的过程中,设置活动拓展,引导学生发挥自我探索将新生报到流程设计继续完善,设置在线电影票付费、有问有答(询问名字地址)两个不同情境,训练学生综合运用抽象建模与流程设计的过程来解决问题。
这三种不同的情境设置,需要丰富的素材储备,除了教材中的实例、实践应用,还可以参考题库中的例题,以及教师自主设计的活动主题等。
5.教学活动的组织与实施
为保持单一课时的思维目标与整个模块培养目标的统一性和连贯性,笔者将《认识算法》一课纳入到整个模块学习项目(第5模块——了解算法设计与Python程序实现)中进行活动设计。考虑到中职学生初步接触程序设计的特点,各课时以微项目来组织课堂,鉴于目前教师课堂教学普遍使用任务驱动教学方法,因此各课时将微项目与课堂任务相结合,并以任务形式表述,每个任务下设相应的多个活动,每个活动明确活动要求,并设置活动基本流程。在活动开展过程中,为便于思维引导及活动的过渡,每个活动开始之前设计一个引领性问题。以下是《认识算法》一课的教学活动设计。
情境体验:观看新生报到视频,思考报到中的流程问题。
问题1:什么是算法?它与算术、程序设计有什么关系?
活动一:模拟新生报到签到。
活动要求:观看学生扮演新生报到的过程,思考报到的步骤与特点。
活动开展:探讨新生报到签到过程可以分解为哪几步;思考新生报到中遇到一些特殊情况怎么处理;理解算法、算术和程序设计的关系;辨析算法的主要特点,并总结。
问题2:如何从算法的角度思考解决问题?
活动二:新生入校在线缴费。
活动要求:学生入校需要购买校服、书本,并缴纳一个月饭费,现在想通过手机APP在线方式缴费,如何计算付款金额?
活动开展:分析计算金额涉及的要素——问题抽象;用数学符号描述计算模型——建模;设计算法——算法描述(用自然语言描述在线缴费的步骤;用流程图描述——手画/Raptor可视化流程图绘制)。
活动拓展:完善新生报到流程算法设计(学生——缴费)。
活动三:生活中的算法分析。
活动要求:设计网购电影票,显示付款金额算法/设计有问有答(询问名字地址)算法;
活动开展:①根据设计步骤提示,完成实例算法过程;②探讨生活中类似的问题算法;③Raptor流程设计转换成设计语言一览。
课堂小结:思维导图梳理算法要点。
课后作业:课后继续完善报道流程,巩固算法设计能力;学有余力学生思考变量设计细节,提供探究入口。
● 案例应用效果及反思
为了解本节课的实际应用效果,笔者选择一个班级学生通过课前问卷、课堂观察及课后问卷形式加以反馈。从整体上来看,与常规课堂相比,学生的积极性明显提高,课堂思考的机会增多,思考的程度也明显加深;从学生个体来看,存在一定差异,有的学生理解能力好,能即刻响应教师,有的相对较慢,需要教师的指导,因此教师需要实时关注,及时调整教学进度,并合理设置合作学习。
总体而言,经过精心的设计和反复探索,本节课的教学实施达到了预期的教学效果。不过,以计算思维为导向的课堂设计实施,由于特别强调了学科思维的重要性,其对师生的要求都有所提高。特别是对于绝大部分中职生来说,仅仅通过一两次问题解决活动还不足以内化并形成稳定的计算思维素养,需要通过多次主体活动、反复经历计算思维过程才能最终形成,这些在后续的课堂设计实施中,需要特别关注。