近些年,越来越多高校的计算机科学与技术专业将锻炼及培养学生的计算思维能力作为计算机基础教学的核心任务。计算思维在地理信息科学专业也越来越受到人们的关注。《Web程序设计》是一门综合性和实践性较强的课程,对于学生操作技能、创新能力以及其综合素质等方面有着举足轻重的作用。对基于计算思维能力培养的Web程序设计教学进行研究和分析,设计以计算思维模式为主线的课程教学目标及内容。
《教育科学》主要刊登:教育改革方面的论文及实验报告、当前社会和教育界关注的重大教育方面的问题、国内外教育理论与实践研究的最新成果。读者对象为教育科学研究工作者、教育行政管理人员、师范院校师生。
《Web程序设计》课程是利用Java服务器页面(Java Server Pages, JSP)、交互服务器页面(Active Server Pages, ASP)或超文本预处理器(Hypertext Preprocessor, PHP)等网页设计技术,进行Web应用程序的开发教学课程。其通常作为本科计算机科学与技术的专业必修课,其先修课程包括《计算机网络》和《Java程序设计》等课程,是一门理论与实践紧密结合且应用广泛的课程。该课程能够锻炼学生的网页工程项目设计与编程能力。
笔者从事地理信息科学(Geographic Information Science, GIS)专业的教学与科研工作,由于专业领域不同和学时少等方面的限制,与计算机科学与技术专业不同,本专业并未开设《计算机网络》和《Java程序设计》等相关先修课程。而开设的先修计算机课程包括《计算机基础》《C程序设计》《C#程序设计》《数据库原理及方法》《计算方法》,这些课程为理解和掌握编程设计及计算思维埋下伏笔,本课程的开设为后修课程《WebGIS开发及应用》等课程的学习奠定良好的Web开发基础。因此,《Web程序设计》课程同样具有非常重要的地位。
由于本课程涉及的知识面相对较广,具体包括面向对象程序设计、Java、HTML、CSS、JavaScript以及JSP等方面的内容,该课程设计的总课时为48学时,其中理论学时为32学时,实践学时为16学时。由于该课程学时少和内容多,给笔者在讲授时增加了一些难度,并给学生全面理解、掌握及实践本课程带来了一定的困难。为克服以上困难,笔者采用面向计算思维的方式讲授该课程,以构建学生计算思维为主导的教学方式提升学生的知识理解能力和运用能力。
1 以计算思维能力培养为课程教学体系
计算思维(Computational Thinking)是借助计算机科学的基本原理和核心概念去解决问题、设计程序和理解人类的日常活动,是计算机类相关课程不可或缺的基础思维模式[1]。计算思维主要特点是采用启发式推理方式对问题进行建模求解,换言之,不确定情况下的规划、学习和调度[1-2]。近些年,许多高校将培养学生的计算思维能力作为计算机基础教学的核心任务。事实上,目前计算思维融入非计算机本科专业的培养方案的层次仍然尚浅,教师和学生对计算思维综合理解程度不深[3-4]。
通过笔者近些年的讲授计算机类课程的教学经验,总结该课程的特点即综合性与实践性较强,不同于其他GIS专业课程,由于Web技术的推陈出新,通常造成教材无法及时满足教学的需要,以往机械的教学方式已无法满足学生掌握Web程序设计能力的需要[5-6]。培养编程设计类課程思维模式的构建非常重要,能够让学生建立自身的计算思维模式,计算思维相比于机械的代码编写,目标性、自主性以及趣闻性增加了许多[7-8],运用面向计算思维模式的Web程序设计教学,实现对相关类编程设计的理解与运用,能起到触类旁通的效果。
2 面向计算思维模式的Web程序设计教学设计
2.1 面向计算思维教学目标的设立
在开展学习本课程前,学生已完成计算机编程类若干先修课程的学习,通过《C程序设计》的学习到基本的编程结构思想,如顺序结构、分支结构、循环结构;与此同时也学习到C#中面向对象的类、接口、命名空间、委托与事件等方面内容。基于此,在确立本专业《Web程序设计》课程教学目标时,应充分考虑当前授课对象、先修课程及学习能力,重点培养学生面向计算思维Web编程设计能力,并据此设计本课程面向计算思维的教学目标。
由于在先修课程《C程序设计》和《C#程序设计》尚未涉及计算思维培养方面,造成学生学习的编程设计知识相对比较零散,缺乏整体性和侧重性。因此在制定本课程教学目标时,应充分挖掘计算思维在计算机类型课程中的作用。实际上,在本课程教学过程中,计算思维能力不仅仅作为一种核心能力来培养,同时也是教学中的核心内容。本课程教学中以理论教学与实践教学相结合,教学目标主要为计算机思维的培养,教学主要内容为程序设计思维的引导与构建,并在课上进行适当的案例程序调试演示,并结合上机实践增加学生学习本课程的计算思维实践能力的培养,在每次上机实践中,为学生准备若干上机编程测试题,并将其作为实践训练,并将完成编程测试完成较好的同学的作品作为范本,并提供其在讲台上汇报、讲解其编程作品的机会。以此形式来激励学生的本课程编程兴趣,提升学生获得编程锻炼后成功的认同感。
2.2 面向计算思维教学内容的设计
在GIS学科中,本课程属于理论与实践并重型课程。要求教师运用理论与实践结合的方式,具体地,结合每一章节所需完成的知识目标和技能目标,将本课程的教学模块分为三个部分:分别是Java(后端开发基础)、Web基础编程(前端开发基础)和Web高級编程。教学内容安排及教学目标如表 1所示。
从表 1中可以看出,将教学内容分为理论和实践教学两个部分,其课时安排为32:16学时。平均来讲,每周4学时的理论课和2学时的实践课。由于Java在编程程序设计领域中具有较高市场占有率,如图 1所示。从图中可以看出,截至2016年各类编程语言的使用频率统计,Java程序设计语言排名仅次于SQL。由于笔者所在学院先修课程中并未开设Java课程,而是取而代之的《C#程序设计》课程。该课程的开设与Java课程并不矛盾,Java与C#两者均为完全的面向对象程序设计,在程序设计课程中有较多的相似之处,如本专业均未开设这门课程《面向对象程序设计》,而面向对象的思想在Java与C#中有着重要体现,笔者借助于这些相似之处将这两门面向对象语言进行有机融合,利用知识迁移的方式将C#学习过的面向对象的编程思想迁移至Java教学中去,使学生更容易理解Java的核心原理。
在完成第一分部Java(后端开发基础)学习后,由于本专业学生先修课程中并无Web相关课程,其Web基础几乎为零,因此,本课程在第二部分开设Web编程知识的讲解,主要包括对HTML、CSS和JavaScript三类前端开发进行讲解,该部分内容的开设为最后一部分Web高级编程奠定基础;最后一部分是本课程的核心,其中包括JSP、JavaBean、Servlet、MVC和Struts等内容,通过该部分使学生掌握实际工程项目开发的编程思想、结构、框架、理念等知识,并结合工程案例进行系统阐述与讲解,提升项目实践动手能力及完整项目研发能力。
在本课程实践教学方面,将综合验证实验、综合实验以及设计性实验等方式完成实践教学,积极促进理论知识和方法的理解与运用,使学生在积极动手编程中培养计算思维能力。
2.3 面向计算思维教学效果评价
本课程教学的最终目的是分析解决工程项目中的实际问题,并运用计算思维来对问题进行抽象、分析、构建问题模型,对问题进行总体设计、详细设计以及编程实现。计算思维在系统设计阶段至关重要,而编程语言是实现计算思维的载体。对于某种编程语言中的语法、语句细节的学习,是具有较多相似之处的。对于解决问题的思路、算法以及设计及编程实现是实现问题有效解决的主要手段及过程。应对此过程进行重点讲解与考察,避免知识点的孤立与分散,促进学生聚焦本课程所需掌握的重点知识。
为衡量教学效果,对学生的考核评价,倡导灵活多样的考核原则,根据学生的平时出勤、课堂提问、完成作业的情况以及期末考试卷面成绩来进行综合评定。考虑到本课程是一门编程类课程,对动手能力的要求比较高,因此,笔者在布置作业方面,应尽量减少书面部分,增加实践上机部分。
3 结论
本文针对面向计算思维的Web程序设计课程的教学目标、内容、方法、考核及评价方式等方面进行了有益的探索,取得了较为良好的教学效果,学生的学习兴趣和动手能力得到了大大提高。今后,笔者将继续努力提高计算机类型课程的教学水平与能力,逐步推广计算思维在该类型课程中发挥的功效,更好地满足学生的就业需求和市场对人才的需求。
参考文献:
[1] Wing J M. Computational thinking[J]. Communications of the Acm, 2006, 49(3):33-35.
[2] 李晓明, 蒋宗礼, 王志英, 等. 积极研究和推进计算思维能力的培养[J]. 计算机教育, 2012, 161(5):1-1.
[3] 王节. 高职学生计算思维现状及发展对策的研究与实践[D]. 重庆师范大学, 2015.
[4] 郭喜凤, 武仁杰, 米海英. 计算思维能力培养模式探索[J]. 河北北方学院学报(社会科学版), 2012, 28(5):115-116.
[5] 杨孜茁, 方志军, 黄勃. 《Web程序设计》课程建设策略研究[J]. 软件导刊(教育技术, 2017, 16(1):18-20.
[6] 李余琪. “web程序设计”教学改革探讨[J]. 中国电力教育, 2012(19):65-66.
[7] 梁艳瑞. 基于App Inventor的高职学生计算思维培养研究[D]. 四川师范大学, 2015.
[8] 葛明珠. 基于计算思维的协作学习模式在中学信息技术课程中的实践与研究[D]. 陕西师范大学, 2014.