APP下载

基于PAD课堂教学模式的高级语言程序设计课程改革与实践

2022-10-25

贵州师范学院学报 2022年9期
关键词:程序设计实验评价

左 欣

(贵州师范学院数学与大数据学院,贵州 贵阳 550018)

引言

高级语言程序设计课程是高校工科专业开设的一门专业基础课程,既是对前序课程的深化和扩展,也为学生将来能够更好地学习其他专业课程或是毕业后从事软件开发等工作奠定基础。本门课程还是人工智能、数据科学与大数据技术、物联网工程等新工科专业最重要的核心基础课程之一,对研究生阶段的学习同样有深远影响。由于高级语言程序设计课程具有概念多、知识点广、逻辑性强、抽象程度高等特点,使得该课程既不好教,也不好学。该课程大都以任务驱动为主线,以培养学生的分析能力、设计能力和创新能力为目的,因此需要互动性较强的教学模式。

PAD课堂教学模式是由复旦大学张学新教授[1]提出的一种立足中国教育现状,以教育心理学理论为依据的新型教学范式,是传统课堂与自主课堂的折中融合,其核心理念是将课堂时间一分为二,一半留给教师讲授,一半留给学生进行讨论,实质上是在讲授(Presentation)和讨论(Discussion)之间引入一个心理学中的内化(Assimilation)环节,让学生对讲授内容进行吸收之后,有备而来地参与讨论[1]。

图1 对分课堂基本流程

PAD课堂教学模式并不排斥讲授法,它强调先教后学、合作探究,将讲授与讨论进行有机的结合,对传统的教学范式进行重构。对于任何一项新内容的学习,都是从讲授开始,教师精讲留白,充分而不过分地引导,然后学生独立学习,小组讨论,全班交流[2]。这种两阶段的学习通过“对分”的形式克服讲授式教学中学生被动接受知识的现象,引导学生参与课堂教学活动,使学生通过听课、自学、作业、讨论等方式对知识进行积极建构,增加教学中的师生交流与生生沟通,使教师和学生在教学中都发挥作用[3]。国内各高校也逐渐将PAD课堂教学模式引入课堂,通过国内文献检索平台知网,以“PAD课堂”和“对分课堂”为主题进行检索,共检索到来自国内复旦大学、云南师范大学、上海理工大学等高校一线教师发表的2584篇相关研究文章,内容涵盖了《心理学研究方法与实验设计》[4]、《大学计算机基础》[5]、《计算机网络技术》[6]等50门以上专业课程,说明各高校教师逐步认可PAD课堂用于教学模式改革,但将PAD教学模式与《高级语言程序设计》课程相结合鲜有人研究。因此,通过对高级语言程序设计课程开展PAD教学模式改革值得探索。

师生作为教学活动中对立统一的两个主体,“PAD 课堂”以科学的方式分配对教学活动的掌控权,把传统讲授式课堂和讨论式课堂各自的优势相结合,并灵活地将教师讲授和学生讨论两部分错开,中间预留足够的时间使学生能够进行自主性学习和个性化的内化吸收,构建真正的师生共同体。这样的“隔堂讨论”更具针对性,课堂参与度高,课堂气氛活跃,课堂讨论的质量有显著提升。本次课改尝试以信息化辅助教学平台为依托,将PAD 课堂新型教学模式引入到高级语言程序设计课程教学实践中,期望突破长期以来高级语言程序设计课程教学中面临的困境,全面提升教学质量。

一、基于“PAD课堂”的课程教学改革

新工科背景下,进行程序设计课程教学,要解决两个方面的问题:一是要学习和掌握解决问题的思路和方法,二是学习怎样实现算法,即用计算机语言编写程序,达到解决实际问题的目的。本门课程是为了培养学生的系统分析与设计能力、解决实际问题能力和计算思维能力。本次用两个学期的时间对本门课程进行PAD课堂的初步实践,围绕教学“知识、能力、素质”三个方面,打造“编程技能、专业知识、专业素养”三位一体模式,从理论教学、实践教学及课程评价三个方面做出课堂教学改革的探索,提升课堂的“抬头率”,提高课程教学质量。

PAD 课堂的核心理念是分配一半课堂时间给教师讲授,另一半给学生讨论,并把讲授和讨论时间错开,让学生在课后有一周时间自主安排学习,进行个性化的内化吸收[4]。PAD 课堂通过讲授、独学、讨论和对话4个要素重构了教学流程,而对于每个环节的具体实施则需要教师根据课程特点、学生学情等要素进行重构。因此,与对分理念相匹配的课程教学设计至关重要,需要对讲授内容、时间分配、作业布置与反馈、分组讨论、学习评价等进行细化设计,形成可行有效的教学实施方案。在执行PAD 课堂的过程中,做到教学目标清晰,讨论环节有针对性,重点突出,引导到位。

(一)课堂实施

本门课程共12个章节单元,PAD课堂模式实施主要用到的信息化平台及资源有PTA程序设计类实验辅助教学平台和OnlineEDU自建的微课平台,如图2所示,整个教学实施过程贯穿课堂课前、课中、课后3个环节,同时围绕“三测两研一反馈”展开,即“课堂前测—研讨—课堂中测—研讨—课堂后测—反馈”。将教学重新设计,把问题前置,在上课之前给学生提出问题,学生需要自主思考,并对布置的问题进行解答,在课堂上能够积极讨论。教师在课堂中根据教学案例设计问题,并对学生进行提问,督促学生学习,通过这种模式增加学生的积极性,激发学生的自学能力。

图2 信息化平台支撑下的PAD 课堂

课前学习:教师通过录屏软件,将知识单元的导学内容及知识点程序实例制作成微课,并上传至OnlineEDU自建微课平台,学生通过手机或电脑都可以完成课前学习。为检测课前学习效果及上一堂课知识内化的成效,使用PTA程序设计类实验辅助教学平台完成课堂前测,以此来完成这部分教学内容的教学评测。

课堂教学:通过PTA程序设计类实验辅助教学平台完成课堂前测和中测,一方面能掌握课前评测效果,另一方面也完成点名等教学环节。课中讨论环节实施分组,每小组5人以内,小组发言时间控制在5分钟以内,每个主题讨论时间20分钟以内。各小组轮换主题发言,其他小组可通过在线系统提交讨论结果,教师结合线上线下讨论情况做答疑总结。在隔堂对分环节中,引入课堂中测,通过对重难点的强化,巩固提升教学效果。

课后巩固:本门课程是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好程序设计语言的。因此,学生可以依托OnlineEDU微课平台,完成课程中的重难点微课的学习回顾,以达到知识内化的目的。同时教师可依据系统反馈,查询系统统计结果,了解学生反复学习知识点的状况,并根据学情动态调整教学活动。依托PTA程序设计类实验辅助教学平台,强化实例代码练习,设置程序填空题、函数题及编程题,布置实验练习题及项目大作业。学生提交结果后,系统自动判分,立刻可查自己的成绩及全班统计结果,对错题可选择重做,加强对知识的内化。

(二)学时安排

本课程共64个学时,理论32个学时,实验32个学时。为让对分课堂教学更有效,根据知识单元的理论性和实践性的特点,设计了当堂对分、隔堂对分和不采用对分三种方案,课堂实施详细安排如下表1所示。其中当堂对分26个学时,隔堂对分34学时,不采用对分4学时,对于基础性和理论性较简单的知识单元,例如“简单的C语言程序设计”,采取当堂对分的方式,同时在PTA程序设计类实验辅助教学平台提前安排好讨论实践内容。对于理论性与实践性并重的知识单元,例如“函数”“数组”“指针基础”等,采取隔堂对分的方式,使用PTA程序设计类实验辅助教学平台完成课前测试,对学生知识内化的情况进行前测,提前掌握学生学习的情况。对于总结回顾性的知识单元,例如“数据类型与表达式”,采取不使用对分的方式。同时每个知识章节包含1组教学实验,并由多个小实验来支撑理论教学内容,将理论教学一体化设计,并进行对分课堂实施。

表1 课堂实施详细安排

对于课中讨论环节,安排分组讨论完成后全班讨论答疑,同时将讨论环节延伸到线上,组建线上课程学习交流群,定期组织线上集中答疑活动,各小组组长为微助教,参与线上讨论答疑活动。整个过程体现了以学生为中心的教学思想,教师的一切教学活动都是以学生为中心开展的,碰到状况学生应先跟教师交流,去探寻问题的根源。通过这种安排,课堂讨论参与度和学生“抬头率”得到有效提高。

二、基于“PAD课堂”的实验教学体系改革

高级语言程序设计课程是一门实践性很强的课程,该课程的学习有其自身的特点,学生必须通过大量的编程训练,在实践中培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法[7]。理论教学与实验教学是不可分割的有机统一体,两者相互依存、相互促进。本门课程实验教学内容由基础性实验和综合项目性实验两个部分构成,基础性实验着重问题的抽象理解和应用;综合项目性实验强调实际案例问题求解、小组协作讨论和计算思维的培养,以提升学生实践编程能力。

传统的程序设计实验课程报告为纸质,学生对实验结果的掌握较为延迟,同时教材中都有现成的代码和分析过程详解,学生缺少“自主分析问题-设计解决方案-编程实现”的实践环节,导致学生听课时能理解明白,但一旦编程实践,就找不解决问题的思路和方法。因此,在本门课程实验教学中,结合理论课内容,精选实验内容,分为有11个实验组,从易到难,形成课前、课中、课后递进式的训练体系,让学生从第1周起就开始练习编程。其中第1部分“简单的C语言程序设计”到第7部分“指针基础”的实验组,侧重于基本知识和基本编程能力。第8部分“结构”到第11部分“文件”的实验组,着重于用结构化程序设计思想实现复杂问题的编程和求解。借助PTA实验辅助教学平台为实验教学提供支持,充分利用PTA实验辅助教学平台自动测评、查重与监考等技术优势,督促学生从基础知识、综合设计两方面进行训练,同时通过基础验证实验、综合项目设计实验,将知识从课内迁移到课外,多层次全方位对学生进行实践训练。

图3 PAD 课堂范式

通过“仿写—改写—编写”的上机实践,在循序渐进的引导中,逐步熟悉编程环境,理解和掌握程序设计的思想、方法和技巧,全面提高学生的分析能力和设计能力[8]。在第2部分到第4部分中,分别讲解分支结构、循环结构及函数程序设计的思路和方法,在实验中引导学生逐渐完成从仿写到改写的转变,培养学生学习兴趣。针对第5部分到第11部分的实验组,通过项目化的小作业和小组的大作业,指导学生完成从改写到编写的升华。让学生在实践中去检验自己理论学得怎么样,应该怎么用,为后续“操作系统”“数据结构”“编译原理”等专业课程的学习和应用打下良好基础,实现从“以内容理念知识为本”向“以学生综合能力为本”的转变。

三、基于“PAD课堂”的教学评价方法改革

科学的评价方法对促进和激励学生的学习具有很强的导向作用。传统上对学生学习效果的评价常以期末考试成绩作为终结性评价,导致学生平时上课出勤率低、考前突击复习现象频出。而且,传统教学评价目标单一,基本上忽略了对其它教学要素的评价。而在本实践改革中开展了全方位、立体化的教学评价研究,一改原来单一的评价方法,重视过程性评价,将评价方式改为过程性评价与期末考试相结合,避免了学生的死记硬背,一考定成绩的现状。其中过程性评价分为课前测试、课中讨论表现、课后练习及每月月考等,并将课堂“隔堂对分”的部分,如“函数”“数组”“指针基础”知识单元中的基本数据类型、简单构造类型和指针、数据处理中的表达式等,放在课前测试部分来验证效果。

图4 课程评价过程

为了充分发挥教学评价的诊断、导向、调控功能,本课程成绩由平时成绩和期末考核成绩两部分构成,课程成绩以百分制计算,分配比例为50%对分,即平时成绩占50%,如图4所示,主要包括课前测试、线上作业、线下作业、小组活动、随测讨论、每月测试,考查小、大作业的完成程度,小组的完成程度,实验课的考试结果等;期末成绩占50%,期末考试采用上机考试的考核方式,试题由考试系统从题库中自动组卷完成,考试采用闭卷形式,题型由选择题、程序填空题、函数题、编程题等题型组成,考核内容涵盖本门课程中的概念、定义、原理及重难点等。

四、教学实践效果

根据学校教务系统三个班级同一教师的评教数据汇总显示,详见表2数据,学生在“认真辅导答疑,重视作业检查并及时解决问题”“注意启发引导,师生相互沟通,学生积极性高”“理论联系实际,注重学生创新能力的培养”“内容充实,讲授熟练,突出重点,讲清难点”等方面的得分率都有所提升,课程总体平均分提高明显,学生的获得感增强,课堂参与度及“抬头率”得到提高,教学效果得到师生一致认可。

表2 课堂实施效果

但同时也存在一些问题,一是对分策略需要教师根据学生情况做适当调整,加强讨论环节的精准引导。“PAD课堂”一改传统的漫灌讲授式课堂,学生从“被动学习”转变为“主动学习”,但在讨论环节,学生提出的问题深度不够。这就需要在精讲留白时,将最有知识价值、最能构建知识能力结构、最需要发散思维的部分进行拣选,并适时调整对分策略。这对教师的综合素质提出了更高、更新的要求,倒逼教师在精讲、小组讨论、共性答疑等环节中提前做好系统性的准备,在讨论中引导到位。二是“PAD课堂”的流程化要求教师加强教学过程化管理。教师在课程开课前,需要说明对分课堂的基本流程,详细阐述教学活动的目的、意义、具体方法及期待取得的效果,让学生充分认识到在“PAD课堂”中的主体责任。同时由于课堂评价方式改变为包含课前测试、小组讨论、项目作业等多个环节,这就需要科学、完整、精确地记录各部分的成绩,做好过程化管理。

五、结束语

本文就高级语言程序设计课程教学改革进行了阐述,在教学实践中将“PAD课堂”的新型教学理念、教学方法和评价手段融入到程序设计课程教学过程中,并精心设计了各知识点的对分策略。同时在课堂信息化技术的应用上以PTA程序设计辅助教学平台为支撑,建设高级语言程序设计试题库,借助线上平台完成教学评价和过程考核,并通过汇聚及创建课程优质学习资源,构建线上微课学习平台,拓展学生的自主性学习空间。通过课堂教学实践,PAD教学模式的应用能充分调动、发挥学生的学习自主性,课堂气氛比较活跃,实现了课堂教学的高效性和学生学习的个性化,提升了学生的分析能力、实践能力和创新能力。

猜你喜欢

程序设计实验评价
记一次有趣的实验
基于SolidWorks和VBA的电机阶梯轴建模程序设计
医学专业“Python程序设计”课程教学改革总结与思考
从细节入手,谈PLC程序设计技巧
关于植物的小实验
2006—2016年度C—NCAP评价结果
实践十号上的19项实验
2006—2015年度C—NCAP评价结果(3)
2006—2015年度C—NCAP评价结果(2)
2006—2015年度C—NCAP评价结果