高级语言程序设计教学重塑与创新

时间:2022-06-16 15:31:57

高级语言程序设计教学重塑与创新

摘要:为了解决高级语言程序设计课程在教学实践中存在的问题,本文提出了课程重塑与创新方案,并在教学内容、教学模式以及教学评价三个方面提出了具体实施的措施。改革的实践结果表明,本文的方案能够有效解决传统教学存在的问题。

关键词:案例教学法;内容重塑;混合式学习;翻转课堂

1引言

目前,许多高校在课程建设和教学创新探索上进行了积极地探索,摆脱了旧有的知识框架,形成新的分析和解决问题的思路,以全面提升学生的素质、能力、思想。《高级语言程序设计》作为计算机学院重要的学科基础课,在课程矩阵中占有核心地位。区别于其他将该门课程作为通识选修课的专业,计算机专业的学生在该门课程上不仅仅要掌握编程语言的具体语法规则及简单应用,更重要的是通过C语言这门计算机编程语言使得学生理解计算机结构化程序设计的基本思想、掌握结构化编程的技术与方法,进而能够在此基础上解决一些具有一定复杂度的工程问题。这也为后面的一系列有助于学生深度理解数据结构与算法、面向对象的程序设计以及编译原理等人-机交互原理和方法的专业核心课打下重要基础[1-2]。这门课程的教学希望达成以下目标:(1)知识目标:要求学生能够举例阐释C语言的三大流程控制结构、数组、函数、结构体、指针、文件等基本语法规则,并在此基础上阅读、分析一般程序运行结果。(2)能力目标:要求学生能够灵活运用结构化程序设计的方法设计、编写、调试C程序,并解决具有一定规模的实际问题。(3)素养目标:要求学生具备科学思维、工程思维、创新思维、团队合作与沟通能力以及自主学习能力[3]。然而多年的教学实践发现,上述课程目标中的能力目标和素养目标达成度一直偏低。通过这门课程的学习,学生往往只掌握了编程语言的语法规则和简单应用,未能内化结构化程序设计的思维和方法,编程解决实际问题的能力非常有限。为解决如上问题,本文从教学资源与内容、过程与方法、教学评价等方面进行了卓有成效的改革与创新,形成了具有一定推广价值的做法。

2课程教学存在问题

本课程的课程建设和教学创新着眼于解决如下三个突出的问题:(1)缺乏兴趣与内驱力。由于课程本身的性质和特点,很多学生觉得编写程序是一项很困难、很枯燥的事情,解决问题耗时过长,造成他们缺乏学习获得感、成就感,影响进一步学习的内驱力,课堂参与度低。(2)能力目标达成度低。该课程授课对象是大一学生。这类学生缺乏人-机交流经验,计算思维还没有建立起来,一边要学编程语言的具体语法规则(外显知识),一边又要学习解决问题的思维逻辑(算法,内隐知识)。外显知识易掌握,但是内隐知识的习得却是一个较为漫长且困难的过程,需要大量的编程经验积累。因而第一门编程课往往看似听懂了课堂的全部知识,但是当动手编程时却困难重重。他们在编程模仿后面比较容易实现,但是当综合运用所学知识解决新问题时又存在较大困难。(3)核心思维与创新能力弱。在教学过程中,学生容易陷入在对具体问题的解决上,往往出现学过的、见过的题目会求解,未学过的问题则没有思路,缺乏深度思考、分析对比、归纳总结等科学思维,在举一反三、触类旁通的知识迁移能力、想象与创新能力、综合实践应用等核心方面的能力难以提升。

3内容与资源创新

3.1线上优质资源

本课程采用自建资源为主、同步引入中国大学MOOC和网易公开课中的部分资源为辅助资源,将自建资源在线上按章节编排形成较为系统的课程。辅助资源适合课堂“吃不饱”和“吃不消”的两级学生。不同学习基础和能力的学生都有对应的学习路径,从而实现个性化学习。自2017到2021年,本课程混合式教学目前开展到了第5轮。在多轮混合式教学实践过程中,伴随着新工科的最新人才培养要求以及学校、专业修订的最新人才培养方案,课程内容和资源也经过了不断地重构、迭代更新完善,形成了有效助力教学目标达成的教学视频资源库、习题库、项目案例库、教学案例库,以及用于拓展学生思维和能力的拓展材料、主题讨论集。资源的建设充分践行了“以学生为中心”的理念。很多教学微视频资源库的录制采集于学生结合例证讲解算法的教学视频。在教学案例库中,大量富有启发性、争议性和探索价值的“一题多解、一题多变、老题新解”的案例则来源于课堂上案例教学过程,由学生对于一个问题的不断追问、奇思妙想以及学生小组对于教师给出的算法不断优化、总结得来的。大部分实践案例库由往届学生小组开发的优秀案例集锦而成。这些实践案例对于学生有着非常强大的正向激励作用,促进他们仔细地观摩、学习、创新、超越。

3.2阶梯式教学案例库

在课程教学改革中,以内容为王。本着以学生发展为中心,牢牢抓住课堂是能力培养、价值塑造的主阵地,为将课堂打造成互听互学互辩的学习共同体氛围,着力进行内容重塑。结合课程难且抽象的特点和,以及学生会学不会做、会做不会用的实际学情,为把案例教学法开展得有深度,需要设计非常恰当的案例作为教学内容。经过多年教学积累,课程已经形成了非常丰富的案例资源库。按照难度和知识点密度划分,分为低阶、中阶、高阶三阶案例,难度呈阶梯上升的方式。在教学推进的不同阶段,选用对应的适当难度的案例对学生进行知识巩固、能力培养和思维启发。低阶案例知识密度小,一般在教学内容的初级阶段设置,案例设计和选择上多以“老题新解、一题多解、一题多变”的案例为主。“老题新解”促进学生前后知识关联与有效建构,“一题多解、一题多变”培养学生触类旁通、举一反三的知识迁移能力。这些案例在教学过程中,通过设置很多启发性问题、有争议的结论以及尚未解决的难点层层推进,为学生留有大量的思辨、提问和动手实践空间,将解决问题的方法逐渐推向最优化方向。按照建构主义的基本观点,学习最终是学生主动地建构自己的知识经验的过程,他人无法取代。而教学是激发学生建构知识的过程。在中阶和高阶案例的设计和选择上,需要具备有难度、有多解、有价值、有趣味等特点。选择知识难度适当、知识密度大且足够有启发性和探索价值的来源于生活实际场景或工程实践中的案例,有助于课堂深度开展CBL(Case-BasedLearning)案例教学。

4教学过程与方法创新

课程采用基于翻转课堂的混合式教学模式,线上自主学习基础知识,并完成教学活动和教学测验,对基础语法知识形成初步认知,带着问题进入课堂[4]。课堂则采用CBL案例教学法实现“做中学”,将理论和实践统一起来,加强师生互动、生生互动,激发学生的学习参与热情,推动学生积极思考、勤于动手。通过在课程教学中引入大量生动有趣、有探索价值的案例,串联知识点,将语法知识放在实际应用场景中,帮助学生进行知识应用和迁移。在案例中设置层层递进的问题,以问题促思考,培养学生的计算思维、分析问题、算法设计、动手编程解决问题的能力[5-7]。

4.1课前线上自主学习

学生课前通过自主学习教师的教学微课,形成对于本节知识的初步认知。通过完成该节内容的前测,对线上学习任务进行自我评估,完成巩固测验,参加讨论活动,了解知识漏洞,生成个性化的问题。课堂听课时既是巩固深化知识的过程,同时也是解决课前知识疑难的过程。教师课前利用信息技术、智慧工具收据学习数据,准确把握学情,以学定教,确定本节的教学重难点,重塑案例及案例中的启发性问题。课中通过讲解演示、二次测验等形式确认重难点掌握情况,确认低阶知识目标的达成。

4.2课堂CBL案例教学

课堂以面向解决实际问题的编程案例为载体,与学生一起进行高效优质的交互,从提出假设、大胆尝试,到编程求证、结果改进、反思总结,以科学研究的范式去进行教与学。教师首先将本节重点、难点贯穿到案例中,在分析难点、重点问题的同时,演示编程。接着利用2-3个案例,引导学生以小组形式分析讨论算法,动手编程解决问题,各组上传最终结果。最后教师将各组结果同屏展示,引导小组间互评互辩,分析各组算法优劣。课堂借助智慧教学工具,师问生答、生问生答、生讲生练,分组合作、组间竞赛等多种教学方式深化知识、培养能力、启发思维,多角度激发学生的学习内驱力、获得感与成就感。

4.3课后拓展延伸

学生在课后需要完成个人和小组两部分作业。个人作业有基础必做和能力提升两类作业。小组C语言开发项目贯穿整个学期,随着教学内容的推进逐步分阶段完成。学期初自选开发方向和课题,学期内边学边做,自主探索、查阅资料、协作探究、方案设计,最后以程序来实现课题。在整个过程中,有阶段汇报和教师指导。学期末进行演示答辩、项目验收考核。“做中学,学中做”的方式推动学生挑战自我、超越自我,从而解决会听不会做、会做不会用的问题。

5教学评价创新

5.1能力为主的评价

按照工程教育认证标准,课程评价以OBE产出为导向,对标人才培养要求,从过去的知识为主转变为以能力为主的评价[8]。编程语言的基础语法规则属于外显的知识。这部分知识的记忆、理解及简单应用在整个课程评价中只占30%。其余70%的分数则是对能力的考核和评价,着重在平时作业、实验以及期末考试中评价学生针对实际问题的算法设计能力、程序编写和调试能力以及实践项目开发能力。

5.2多元化评价方式

课前、课中、课后采用全流程评价可以更加科学、客观、公平地评测学生的学习成果以及课程目标达成度,最终实现以评促学、以评促教。评价方式多元化:诊断性+形成性+终结性评价;定量评价+定性评价。评价主体多元化:教师评价+学习平台智慧终端评价+小组评价+个人自评。评价内容多元化:课前基础知识掌握情况+课堂小组算法实现情况+课后个人编程实验完成情况+小组实践项目开发情况。具体的学业评价如表1所示。

6创新特色与教学成效

该门课程基于翻转课堂模式开展线上线下混合式教学。学生线上进行基础知识自主学习,课堂则开展CBL案例教学,以案例为载体,推动学生不断分析问题,利用编程解决问题,在课堂的师生、生生深度交互中培养学生的计算思维和编程能力。按照学生的认知规律,教学案例按难度和知识密度分为高中低三阶,在教学内容推进的不同阶段采用不同的案例,非常有效地推动学生进行知识建构。全流程多元评价的方式对学生的知识、能力和素养进行科学客观地评价,达到了以评促学的效果。该门课程自教学改革创新以来,取得了良好的教学成效,近两年课程的能力目标达成度由改革前三年的年均65%上升到了74%。学生在项目开发大作业上也表现优异,由原来的只能编写一些小程序转变为基于工程规范开发具有一定复杂度的工程问题。特别是近两年来,在工程教育认证大背景下,课程以产出为导向,由对知识的评价逐步转变为对能力的评价。在最近的一轮期末考试中,基础知识和程序设计能力考查比例由原来的60:40(100分试卷)变成了40:60,难度上升非常明显,但是及格率由原来的低于75%提升到89.1%,优良率(期末卷面成绩在80分以上的人数)为51.1%,平均分75.9分,标准差14.6。这说明,在教学改革与创新过程中,学生真正在能力和核心思维层面达到了预期教学目标。在最近一轮结课时对学生的教学质量问卷调查结果显示,86%的学生在学完之后,对该门课程比较感兴趣;73.64%的学生认为教学效果很好,对教师教学的满意度打出了95.33的高分。教学改革与创新始终本着以学生发展为中心的人才培养理念,在前面经验和最新学生学情的基础上不断的迭代更新,逐步反思前行,力求提升教学成效,从而为国家和社会培养一流人才。

作者:刘淼 单位:北方民族大学计算机科学与工程学院