基于GitHub平台的高中信息技术教学设计与应用
2019-03-06俞淑燕
俞淑燕
[摘 要] 针对目前高中信息技术教学中出现的学生对知识内容的应用和迁移能力不足,课时不够、信息素养培养难度大等问题,基于GitHub平台构建课程学习空间,组建师生学习共同体,利用GitHub平台的协同学习模式引导学习者与学习内容、学习同伴之间的深度交互,协作完成项目任务,最终形成学习者对知识的意义建构和思维的深度发展,在实践中取得了较好的教学效果。并以“网页制作”这一小节内容为例,说明整个教学环节设计过程,为高中信息技术教学提供了一种可以参考的模式。
[关键词] GitHub;信息素养;设计应用
最新修订的《普通高中信息技术课程标准(2017年版)》(以下简称《高中信息技术课程标准》)中明确提出,高中信息技术课程的基本目标是全面培养和提高学生的信息素养。[1]任友群(2017)教授认为,这里的信息素养包括信息意识、计算思维、数字化学习与创新和信息社会责任。[2]祝智庭(2015)教授认为,信息技术课程更着重于帮助学生形成利用信息技术认识世界的独特思维方式。这些思维方式主要包括计算思维、设计思维和批判性思维。[3] 可见信息素养的培养,尤其是利用信息技术解决问题的思维培养是高中信息技术教学的核心目标。
从赵杉(2015)、孙崇青(2018)对高中信息技术课程教学的研究中了解到,相对于高中信息技术课程的教学内容,目前课程课时量偏少,通过课堂内的学习要培养学生的信息素养,尤其是计算思维有一定的难度,学生面对问题的解决能力有待提高,对知识内容的应用、迁移能力不足,不能举一反三。[4-5]
针对课程教学困境,颜士刚(2015)、刘海斌(2017)、郭守超(2014)等不少学者进行了教学改革的研究和探索,他们提出:翻转课堂、微视频等在信息技术教学中的应用,使用Scratch平台、App Inventor等网络教学平台开展教学活动,基于项目、问题解决等等进行教学设计。[6-11]这些教学改革在优化教学过程、提高教学效果上都起到了不同程度的作用,但是这些研究所采用的教学环境大多为虚拟的环境,对于学生来说缺少沉浸感,可提供的教学情境不够真实等。本文提出一种基于GitHub平台的信息技术教学设计,将课程学习空间搭建在计算机从业人员云集的GitHub平台中,师生形成线上线下学习共同体,创设信息素养发展的教学情境,在深度交互的过程中促进计算思维能力的发展,在更为真实的信息世界中培养信息素养。
一、基于GitHub平台教学的特色及其优势
(一)基于GitHub平台教学的特色
1.GitHub为学生信息素养的培养提供了一种有效的学习环境
杜威(1990) 指出: “人的心智是人类逐渐成功地适应环境的过程中进化的。”“教育,唯一方法是控制他们(学习者)的环境,让他们在这个环境中行动、思考和感受,通过环境间接地进行教育。 [12]建构主义认为,知识就是在学习者与学习环境相互作用的过程中构建起来的。理想的信息技术学习环境应该要有丰富的信息化资源,易于创设信息技术支持的交互性、真实性的学习活动,能够体验到信息技术行业实践者真实的工作模式,能够让学生感受到信息技术所引发的价值冲突,从而能思考个体信息化行为对自然及人文环境的影响。
GitHub是一个开源协同开发平台,支持代码库(Repository)、项目分支(Fork)、代码提交(Commit)、代码合并请求(Pull Request)、代码合并(Merge)等功能,最初用于项目的协同开发。平台中活跃着两千多万用户,很多优秀的开发者在平台上贡献资源,分享经验,他们的资源、社区中的行为都是计算机领域最“新鲜”的学习资源;借鉴GitHub的协同开发模式可以形成协同学习模式,学生可以真切地感受到信息技术从业人员真实的工作模式和思考方式,在这种模式中容易创设促进信息素养发展的教学情境,激起多样的认知冲突,激发学习者内在学习动因;与从业人员一同活跃在社区中,可以学习到这些信息技术从业人员的精神和理念,也更易激发学生学习兴趣和热情,为日后从事相关行业奠定基础;此外利用GitHub平台搭建线上线下相结合的课程学习空间,也是当下信息社会生态环境的缩影,为学生适应信息社会奠定了基础;社区中用户的价值冲突,也能够激起学生思考个体信息行为对社会的影响。
2.基于GitHub平台的协同学习模式有利于促进知识的深度理解、应用和迁移
社会建构主义理论认为,学习是基于一定的社会文化背景,在他人(老师或同伴)的帮助下,通过社会性参与和互动完成的意义建构(Vygotsky &Cole;,1978)。教师在GitHub中创建的课程空间,可以与教师的个人空间、学生的个人空间联通,通过交互促进知识的深层互动,并通过课程空间或者个人空间将个体的学习资源进行聚合以及分享,构建课程的协同学习模式。就某个知识内容,亦可以形成协同学习模式,此时组建项目小组,来解决学习情境中的项目任务。老师、学生甚至GitHub中的技术专家形成课程学习共同体,通过协调共同体中成员、学习资源等各要素之间的关系,可以促进学习者与学习内容、“老手”与“新手”之间的深度互动,有利于共同体成员知识的构建。上述知识的聚合、分享、构建的过程中,提高学生解决不同问题的能力,促进知识的深度理解、应用和迁移。
3.基于GitHub平台构建的线上线下课程空间,可以拓展学习时空
一般普通高中的信息技术课程必修与选修一周共计2课时,对于其包含的教学内容来讲,课时相对不足。此外,也不能满足部分对信息技术感兴趣的同学进一步学习的需求。基于GitHub平臺构建线上线下的课程学习空间之后,部分的教学内容可以拓展到课外。
(二)基于GitHub教学的优势
1.GitHub能提供丰富、优质、便于访问的学习资源
GitHub作为当前全球最大的软件项目托管平台(开源社区),来自世界各地的数以千万的开发者活跃其中[13]。因其强调源代码的免费、开放,平台上共享了很多的软件数据、产品以及开发者的技术交流心得、学习资料等等,并且这些资源包含的内容丰富,更新及时。
GitHub提供的功能可以使教师和学生方便的获取资源,实现资源的互通:Watch功能可以让学习者关注某一个人或者项目;Star功能可以用于收藏某个用户,方便后期进入项目库;Fork、Pull和Push功能可以实现资源的上传和下载。
教师可以在GitHub平台中构建课程空间,在空间中可以为学生提供教学大纲、进度计划等指导性文件,课程视频、PPT、工具等教学资源,也可以将与课程相关的其他的资源或者开发者的空间链接到课程空间中。
2.GitHub协同开发模式契合计算机学科问题求解的思维路径
《高中信息技术课程标准》指出:“计算思维是指个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。”[14]美国《K-12计算机科学框架》将计算思维的概念延伸到设计算法、分解问题、建模现象等能力。[15]GitHub协同开发模式主要流程包括创建组织、创建项目仓库(Repository)、根据项目创建分支(Fork)、解决各分支问题、合并分支(Merge),这个过程与计算思维解决问题的路径(包括问题建模、算法设计、问题分解)非常契合。在基于GitHub的教学设计中教师创设一个任务教学情境,学生分组来完成。各个小组根据这个任务将问题进行建模、分解并建立分支(Fork),每个分支去设计算法或者步骤来解决各个分支的问题,然后检查、合并(Merge),最终完成项目任务。在这样一种真实的协同开发模式中,将知识的理解、应用和迁移融入问题的解决过程,让学生领会计算机学科问题求解的方式,在完成任务的同时发展计算思维。
3.GitHub的开源API为教学提供学习过程的智能化学习分析与评价支持
利用 GitHub 平台所提供的编程接口API,可以抓取到学生在课程空间的活动数据进行学习行为分析。根据学生在项目中的贡献、课程空间中的活跃程度、对课程空间知识的贡献等对学生的平时学习情况形成评价。可以将学生的评价数据作为课程的即时讯息,显示在课程空间中,帮助学生获取评价信息,对学习情况进行及时的反馈和跟踪,促进学生的学习积极性。
二、基于GitHub平台的教学设计原则与实践应用
(一)设计原则
1.学生为主体,教师为主导
教师单向的输出知识不能够培养学生运用信息手段解决问题的信息素养,而应为学生创设提供知识支架的学习环境,教学过程充分发挥学生的主体作用,让学生在不同的情境中,运用信息技术手段分解问题、建模现象、解决问题。在此过程中教师作为引导,让学生能根据自身行动的反馈信息来形成对知识的认知和解决实际问题的方案。
2.创设交互、协作、分享的学习情境
提倡在协作、交流中建立起对知识的意义建构。建构主义认为,学习者与周围环境的交互作用,对于学习内容的理解起着关键性的作用。[16]除了面对面的协作和沟通之外,在线上构建开放的、互联互通的课程空间、个人空间,积极引导学生创建Issue提出疑问分享所学,激起成员之间的协商和辩论,成员间的认知冲突能够激发学生深度思维,促进个体对知识的内化、迁移,也利于集体智慧的生成和共享。
3.给学生提供自主学习的环境
《高中信息技术课程标准》指出:在学生学习教材之后,要形成自主学习信息技术的能力,能熟练地对信息进行获取、加工和表达。[17]建构主义认为,学习环境是学习者可以在其中进行自由探索和自主学习的场所。将学生置身于信息化的资源中,适当地给予工具、方法的支持,让其能够根据需要从资源中提取信息,“在大量数据中寻找隐藏的模式、趋势和相关性来关联、整合,使之具有系统性,成为可扩展的知識体系”(祝智庭等,2008)。
(二)实践应用
基于GitHub平台的教学设计可以描述如下(如图所示):教师构建课程学习空间,将班级学生链接进入到课程空间,形成“人人通”的学习共同体;将教学资源托管到课程空间中,将与课程相关的行业内技术专家的GitHub主页链接到课程空间,便于学生对课程形成认知;课前课后任务可以通过Issue发布;课中利用库中资源授课,布置项目任务,利用其协同开发模型[创建项目(Repository)—建立分支(Fork)—提交合并请求(Pull Request)—检查项目(Review)—合并项目(Merge)]开展项目式教学;学生通过Issue提交作业,分享学习心得;教师根据线下学习情况以及评价系统对学生线上学习行为的评价,对学生形成整体评价。
基于GitHub平台的课程教学
以高中信息技术基础课程为例,学期之初教师在GitHub平台中建立课程空间,将学期教学大纲、课程学习目标、与信息技术课程相关的资源链接、课程的评价方式等放入课程空间中,让学生明确课程学习目标。第一次课程中为同学们介绍GitHub的资源情况和基本使用方法,也可以开帖(创建Issue)引导学生挖掘GitHub的使用方法,比如如何提交作业,如何搜寻资源、分享资源等。当每位同学创建好各自的账号后,将学生个人空间地址维护到课程空间中,形成学友链接。教师、课程、学生都进行互相关注,教师也可以在课程空间中推荐相关的开发者的个人空间链接,让学生关注,以获悉其知识动态。以此形成互通的网络学习共同体,支撑学生开展线上线下的学习。
接下来以课程第六章《网页的设计与制作》中“6.2网页制作”这一节为例,介绍基于GitHub的课程教学。在此之前,学生已经了解万维网的基本结构,理解网页的作用,掌握网页元素和网页构件的使用,对网页制作的工具有所了解和使用。
1.创建任务
建构主义学习理论认为学习是在一定情境下发生的,因此在教学中必须创设有利于学生意义构建的学习情境。在设计任务时候,要充分考虑到,学生通过任务的完成能够掌握网页策划和设计的基本过程,学会设计和制作网页,并给出工具和资源为学生学习提供支撑。在课前,教师在课程空间中提交一个Issue,给出课程任务:利用5课时时间制作一个介绍世界遗产的网站,并给出具体要求,如页面基本要求、分工要求、最后的分享要求等;提供相关的示范性的网站,如:教师空间中的案例示范、中国世界遗产网(http://www.whcn.org)、模板之家(http://www.cssmoban.com)等;还提供工具、学习资源等,如:截图小工具FSCapture.exe、千库网(http://588ku.com)、网站制作技术专家阮一峰GitHub中相关的资源(https://github.com/ruanyf)以及他所著的Web学习网站W3CSchool(http://www. w3school.com.cn)等等。
2.任务确定
教师在课上讲解课程任务、制作要求,介绍示范网站、工具、资源等,要求以小组的形式完成网站,引导学生根据自身的特长进行组队,一般3—4人一组为宜。此阶段要求明确课程任务、明确分组、明确学生在小组中承担的任务。一般组内设项目经理1名,负责网站的策划构思,把控任务进程;美工1—2名,负责页面素材的收集和制作;网站制作1名,负责制作工具的深入学习、组内分享制作方法、指导组员共同完成网站。教师就分组和分工进行协调,并引导小组就任务展开讨论。
3.分工协作
项目经理在其个人空间中建立一个任务库(Repository),对任务目标、时间进程、组员分工等进行描述。组员建立任务的分支库(Fork),将工作结果上传到分支库中。以上过程中,组员分析各种信息资源,运用信息技术完成任务,组员之间既要分工也要协作。除了上课时候面对面的协作,也可以通过GitHub平台建立Issue进行商讨。同理,教师曾在课前开设的Issue中,除了要求各个小组把就网站制作建立的任务库地址上传之外,也可以在此提交一些问题,分享一些资源。教师在此过程中关注各个小组的问题,必要的时候进行集中讲解。比如涉及网站制作的时候,教师可以就知识点、问题点展开讲解。
4.任务合并
在任务的开展过程中,对于阶段成果(视频、图片、文档、源代码等),组员可以根据情况提交,便于组内分享。GitHub平台中的协同开发模式方便项目组进行版本控制,便于项目组内的合作。组员发送合并请求(Pull Request),项目经理对上传文档进行检查(Review)与合并(Merge)。这里的合并是一个不断迭代的过程,随着网站制作工作的开展,组内可能会有新的想法或者需求迸发,因此任务的合并会存在多次。教师都可以通过关联的任务库查看各个小组的情况,以便提供适时的帮助和指导。
5.提炼分享
各小组完成网站后,教师在课程空间中开设就本项目的分享Issue,要求将网站成果、小组成员的工作内容、工作亮点、学习收获等提前分享到Issue中,其他同学都可以在Issue中跟帖评论。教师收集评价系统对学生在这个项目学习行为中的评价数据,结合课堂表现,生成评价,为后续课堂点评做好准备。在课堂内设置演讲环节,各小组派代表分享网站制作过程的经验得失,教师针对完成的过程和情况进行点评,也可以引导其他同学一起参与点评。通过分享、评价,引发师生进行深度思考,实现对知识的深度加工,从而将思维引入高阶发展的阶段。
GitHub平台天生为开发者而生,但不局限于对于开发的协作,因此课程中非实践类的教学,也同样可以在平台上开展。
随着GitHub平台用户的增加,GitHub逐渐成为最流行的开源软件开发平台之一,出现了许多基于 GitHub社交编码服务、特性和方法的教学方法[18]。我们经过教学实践认为,在GitHub平台中搭建课程空间,有利于激发学生学习兴趣,有利于学生感知真实的开发者世界,从而感知信息社会,培养信息意识;将学生置身于数字化学习环境中,让其真切感受到海量的学习资源,从而思考和学习如何搜索和使用资源;通过在GitHub平台中搭建个人空间,并且和其他空间进行交互,从而感知和形成网络时代信息化的交互方式;通过基于协同开发模式的项目合作,相互对话、彼此互动来加深对知识的理解,批判地学习,在解决问题的过程中,促成学生信息素养的提升;通过学习内容、教师、学生、资源的关联与聚合,促进知识的融合与创新。
参考文献
[1][14][17]教育部.普通高中信息技术课程标准(2017年版)[S].人民教育出版社,2018.
[2]刘向永.面向核心素养的高中信息技术课程标准修订——访教育部高中信息技术课程标准修订组组长任友群教授[J].中国信息技术教育,2017(12):4-8.
[3]祝智庭.面向学科思维的信息技术课程设计[J].中国信息技术教育,2015(22):4-9.
[4]赵杉,李雅源. 翻转课堂在信息技术教学中的应用[J].教学与管理,2015(5):113-115.
[5]孙崇青. 对高中信息技术教学中存在的问题分析及解决策略研究[J].教育现代化,2018(1):222-223,258.
[6]颜士刚,李赛男. 网络教学平台支持下的知能课程教改实践研究——《信息技术教学论》课程教学改革实践报告[J].远程教育杂志,2015(1):100-112.
[7]刘海斌. 基于项目的学习在高中信息技术教学中的应用探究[J].中小学电教,2017(6):66-70.
[8]王蕾. 翻转课堂在信息技术教学中的应用研究[J].中国教育信息化,2016(21):38-40.
[9]陳绯. 微课——高中信息技术教学的新动向[J].中国信息技术教育,2014(22):84-85.
[10]郭守超,周睿,邓常梅,狄长艳,周庆国. 基于App Inventor和计算思维的信息技术课堂教学研究[J].中国电化教育,2014(3):91-96.
[11]杨进中,张剑平. 基于社交网络的个性化学习环境构建研究[J].开放教育研究,2015(2):89-97.
[12][14][16]高文,徐斌艳,吴刚.建构主义教育研究[M].教育科学出版社,2008.
[13]刘琪琪. 论学术界对开源社区 GitHub 的贡献[J].现代计算机,2018(2):35-40.
[15]CSTA. K-12 Computer Science Framework[OL].https://K-12cs.org.2016.10.
[18]曾少宁,李慧,袁秀莲.基于 GitHub 平台的问题驱动式编程实验教学方法[J].计算机教育,2017(9):158-163.
责任编辑 满令怡