1、像计算机一样思考 算法体验与并行算法优化 一、一、教材内容分析教材内容分析 在高中信息技术颁布课程标准之后,参照高中课标,初中信息技术课堂也进一步渗透计算思维与 python 编程内容。本课以东湖中学信息技术拓展课为依托,参考不插电的计算机 ,以自编教材为 主进行体验式算法教学。 本课主要通过项目式体验教学,要求学生全员参与小组合作,层层理解并行算法优化,体验生活 中完整算法优化过程,并且引发进一步对并行算法的后续思考。 二、学情分析二、学情分析 八年级学生此前从未接触过算法和程序编程,对于算法思维还处于一知半解状态,但是对于算法的 概念已经在前面几节课中接触,八年级学生已经具备了进一步学习算
2、法编程的能力。于此同时,他们 在分析与表达项目方面还处于逐步形成锻炼阶段,对于算法优化的生活接触较少,需要老师在本堂课 中带领学生深入体验。 三、教学目标三、教学目标 1、了解并行算法概念; 2、通过自主探究、小组合作方式,在具体项目体验中运用算法进行有效优化; 3、体会并行算法在实际生活项目案例中完整实施方式,了解并行性算法优劣; 四、重点难点四、重点难点 教学重点:掌握并行算法的使用方法 教学难点:通过小组探究优化项目算法,并对优化结果进行分析结论 五、教学策略五、教学策略 本课以算法“体验”为核心,并且通过小组项目式探究层层推进,从一开始体验计算,到体验排序, 引出并行排序概念, 再到最
3、后体验生活中工程项目。 并且通过问题提问串联不同项目体验, 层层递进。 在项目式的体验合作伴随不断问题深入,学生思维方式与合作探究能力不断得到拓展。 六、教学过程六、教学过程 教学过程教学过程 教师活动教师活动 学生活动学生活动 设计意图设计意图 热 身 开 场 热 身 开 场 1.给出“0-1-5”三个数字,让同学简单说出人类感 官判断与计算机判断步骤差异(为本课算法步骤 执行打下基础) 。 2.简单复习算法的概念: 解决问题的方法和步骤。 学生互动、思考、回 答问题 复习旧知 编程课初期让学生逐步转换 思考问题方式 复习并巩固算法的概念, 为本 节课并行算法优化打下基础。 算 法 启 迪
4、算 法 启 迪 体验 1:六个数排序游戏 学生体验天平排序法进行排序,总结出需要 15 步。教师抛出问题:以小组为单位能否让 计算算法优化。 思考::计算机能否更快捷计算 体验 2:以小组为单位小组为单位进行 18 个数求和体验, 并进一步引导如何让小组计算更优。 思考:1.如何发挥“小组”最大作用?2.如何理解 “单核”处理到“多核处理”?3.学会不断思考有无 进一步优化算法的思维方式 通过体验2表明今天的课堂核心算法概念并对概 念进行巩固:并行算法可以理解为:由大问题分 解为若干独立的小问题或者可以通过同时进行 操作来优化算法。 学生参与、思考 学生参与、思考、小 组合作 学生理解概念 通
5、过游戏, 发现问题, 从而引 出解决问题的需求 需要花费一些课堂时间, 但是 只有当学生体验过才能体会 到并行算法的快速与便捷。 用 “小组”模拟计算机“多核”处理 器,引导学生小组合作。 在项目体验中完成概念描述 算 法 展 开 算 法 展 开 体验 3:再次引入六位数排序,通过刚才体验 2 中的“并行算法”概念运用到排序游戏中,由学生 模拟计算机“多核处理器”进行“并行排序”算法游 戏,其他学生观摩并思考 思考: 1. 在此案例中, 借助并行排序比借助天平 排序要快的多,因为并行网络排序中能同时进行 ( ) 组比较, 但并行排序网络需要用到 ( ) 倍数量的资源。 2. 如果让较小数字往右
6、移动, 较大数字往左移动 会发生什么? 3.展示“求最大或最小数”理解并行算法,进一步 理解并行排序算法带来的优劣。 学生全员参与,并游 戏 学生回答问题,参与 思考 学生继续回答问题, 并引发进一步思考 通过“发现问题-体验优化过 程-再回过头解决问题”引导 学生通过“并行算法”对排序 算法进行“并行排序” 提问, 让学生初步理解并行算 法原理 进一步提问, 巩固、 深入知识 项 目 体 验 项 目 体 验 体验 4:体验生活中算法的直接运用:新华路改 造工程体验。 要求全组一起完成体验项目,由小组长完成体验 报告,并带领组员上台展示优化算法过程。 思考:1 在完成项目基础上出示项目优化报告
7、; 2.进一步提问如果三个工程队同时开工呢?(引 出并行算法中的时间并行与空间并行,让学生课 后查阅资料) 学生深度全员参与, 通力合作,并且由组 长完成项目体验报 告 学生思考回答问题, 并留下课后探究 学以致用, 将计算机中抽象算 法具体到生活项目中, 充分利 用生活中有意义的案例调动 所有学生真正实施深入小组 探究, 让每个学生有参与, 有 协作,有思考。 项目体验报告让学生体会合 作, 体验项目式小组探究全过 程。 体验完成之后问题的跟进, 并 且留下课后思考, 继续进一步 挖掘探究。 深 入 巩 固 深 入 巩 固 总结:并行算法的优点? 1. 更快地完成计算(任务)节约时间 2.
8、用于处理更大规模的问题, 更好地利用非局部 资源 巩固思考: 1.是否所有的问题(算法)都能优化使用并行算 法?2. 并行算法一定能让算法更优?3. 你能优 化一下最近学习生活中碰到的一件事吗? 提出课后思考: 1. 如何将并行算法运用到正在学习的 python 编程中? 2. 了解并行算法中的空间并行和时间并行 (以马 路改造为例) 。 学生深度思考问题 学生进一步深度思 考问题,领悟并行算 法优缺点,体验算法 的实际运用 学生课后自行探究, 知识与问题跟进。 总结并行算法优缺点, 让学生 真正理解并行算法, 并且学会 何时用,怎么用 用问题引导学生进一步思考, 既巩固深挖知识点, 又让学生
9、 学会表达,敢于分享 让学生进一步课后探究, 最大 程度地发挥学生自我发现问 题, 探索问题的能力, 也为下 节课做好储备,做好知识跟 进。 七、课堂板书七、课堂板书 八、课堂反思八、课堂反思 近年信息课堂发展巨快,是好事。当年信息技术老师窝着 office 三大件时期,笔者大感不应该。但是当大 家又一窝蜂地跟着“信息技术核心素养”跑去的时候,笔者一个人偷偷走到了热闹的河岸对面,观望,思索,觉 得似乎又缺了点什么,不应该退出或者拿起一样新事物这么快的。 真正的教育思路,是最原始汲取知识意愿、出于自我学习原动力的过程,过程中间不应该干预过多。标题 口号式的教育理念,能够指引大部分没有想法的老师,
10、但是同时也会进一步束缚、狭隘教育方式。 本课亮点: 1、 基于学生沉浸式项目合作学习理念, 通过让学生体验完整的项目学习, 全员参与, 体会课堂核心知识。 学生课堂参与度很高,思维很活跃。 2、 把抽象的算法概念与算法优化具体化,学生通过合作与游戏直接体验算法,给接下来学习编程提供知 识储备。 3、 整堂课学生不停参与合作,思考探究,课堂生成性问题较多,对于教师与学生临场应变、知识储备能 力较高。 4、 提出“课后思考”环节,真正的深入合作学习是免不了课后学生继续进一步自主探究学习的,并且成为 下一堂课的知识点进行解决讲解,做好知识跟进。 本课问题: 1、 想真正让学生沉浸式合作学习,但是苦于
11、集体合作是一个长期思维与能力合作的过程,学生平时学习 并行算法: 由大问题分解为若干独立小问题 同时进行操作 规划、设计 算法优化(并行算法) 实现(编程) 解决问题 (程序编程) 很少参与合作,仅仅在信息课中完成合作显然从任务分配分工,彼此合作探究还不熟练。 2、 基于第一个问题,真正的小组合作,学生去真正思考了才能迸发出很多课堂生成性的问题,基于生成 性的问题再来解决问题,而不是老师带领学生回答问题。课堂思路引领者应该是学生。 3、 对于刚接触编程的学生, 并行算法无法讲得更深入, 但是又不能过于浅薄停留在表层。 到底讲到多深, 还值得继续思考。 笔者正在探索一条以项目完成为主线, 增强学生学习动力与自主学习意愿为目标, 课堂有趣味性、 参与性、 加以比较前沿计算机科技为辅助,以计算机编程算法和计算思维为依托的信息技术课程。本课就是尝试之一。