程序设计基础混合式教学实践与思考

2019-08-24 08:58邓春燕张长海
计算机教育 2019年8期
关键词:程序设计线下考核

陈 娟,邓春燕,吕 帅,李 河,张长海

(1. 吉林大学 计算机科学与技术学院,吉林 长春130012;2. 吉林大学 软件学院,吉林 长春 130012)

0 引 言

慕课(Massive Open Online Courses,MOOC)作为全新的网络课程学习模式,自2012年出现就迅速风靡全球,以自己特有的方式改变着各国在线学习模式。慕课以其完全免费和开放的理念在促进教育公平和推动教育大众化、国际化、民主化以及终身教育方面具有独特的优势[1-2];然而慕课没有先修条件、缺少互动答疑、完全依赖于学习者的自控力和学习力等缺点使得单纯慕课教学并不适合于普通高校教学。

SPOC是Small Private Online Course的英文缩写,是面向特定人群的、面向“线下线上结合”的集管理、网络媒体教学环境和网络媒体教学工具于一身的辅助教学手段[3]。SPOC则具有更多的选修要求和控制措施,课程的学习者也具有相同的知识基础和认知结构,更贴近高校教学的过程,更符合高校教学管理的实际,更具有可操作性[4-7]。

狭义上来讲,SPOC和慕课对线上内容的组织和操作等技术实现层面是相同的;不同的是受众规模大小。慕课难以实现面对面师生交流,而SPOC则有可能实现。如果将这种线下或线上线下的交互作为SPOC的外延,广义上SPOC=MOOC+课堂。SPOC具有针对性强、能对学生进行有效管理、个性化教学等特征,MOOC和SPOC的具体区别见表1。

高级语言程序设计是计算机类重要基础课程,本课程以“程序设计”为主线讲解程序设计的思想、方法和技巧,培养学生的计算思维。广义的SPOC意味“线上和线下的结合”。通常情况下,SPOC难度高于MOOC,MOOC是SPOC的基础,SPOC是MOOC面向专业学生的拓展和延伸。因此在混合式教学实践中,应转变教学理念、筛选线上线下教学内容、明确各阶段教学目标和考核方式、创新教学模式。

1 教学理念

传统“黑板+多媒体”的线下教学由教师主导整个教学过程,课程所有内容都通过线下课堂传递给学生,学生作为观众跟随教师完成整个教学活动,难免缺乏主动性。SPOC混合式教学中一部分教学内容被转移至线上,教学活动被分为线上和线下两部分,因此可以通过线上学习来调动学生自主学习的积极性,但又不同于完全线上的MOOC课程,完全自主学习。混合式教学中,学生是在一种“半监督”的环境中进行学习:线上自主,线下监督。线下教学时,因学生已有一定基础,教师就应避免“一言堂”的填鸭式授课方式,多采用启发式方法来引导学生。教师从教学活动的“主导者”转变为“指导者”,学生从“观众”变为“主角”。

2 教学内容

混合式教学中,如何对教学内容进行筛选,不同的课程有不同的标准。但通常线上教学内容难度要低于线下教学内容,且主要集中在基本定义、概念类内容,这主要是由线上“无监督”学习性质决定。循环程序设计是初学者遇到的第一个关卡,其难度主要在于理解循环执行过程,抽象出循环要素,并用来解决实际问题。通过观察各变量在循环过程中的变化来理解循环执行是解决此难点重要的手段。循环程序设计教学内容被分解在3个教学单元内(1个教学单元对应2学时),线上和线下内容见表2。

从表2不难看出,整个教学内容的设计主要采用“案例驱动”方式由浅至深进行,通过大量的实例训练和培养计算思维和编程能力。线下内容是线上内容的补充和深化。

第1单元内容是“单层循环”,目标是让学生掌握3种循环控制语句。线上内容介绍基本概念,并列举5个实例。通过线上学习,学生可以基本理解循环执行过程,但仍会有疑问。线下内容侧重介绍“程序断点调试功能”,应用线上实例带领学生在开发环境中观察变量变化,深入理解循环;与此同时还会以实例形式展示“死循环”“无效循环”等。这样通过此教学单元的学习,学生不仅掌握了循环基本结构,同时还可以掌握程序调试的初步技能。

第2单元内容是“多重循环”,目标是让学生掌握循环嵌套。线上内容通过日常实例讲解嵌套循环使用,培养思维方式。通过线上学习,学生基本可以理解嵌套循环的概念。线下教学中,一方面要培养学生使用规范的行文风格编写代码;另一方面重点训练学生对3种控制结构的应用熟练度。这里会介绍由Boehm和Jacobi提出并证明的“结构定理”——任何程序都可由顺序、选择、循环3种基本控制结构构造。图1所示为实际教学中流程图转换为PAD图的用例。PAD图因使用了结构化、概括和抽象的几号系统,因此比流程图更清晰、简练、紧凑、层次分明(流程图不是结构化的),比NS图更易于修改(NS图是封闭的)。这里通过将非结构化的流程图(基本人人都能读懂)转化为结构化的PAD图,强化训练学生对3种控制结构的理解。

第3单元内容是“迭代”和“自顶向下逐步求精”的程序设计思想,目标是让学生掌握这种思维方式。线上内容主要通过日常实例,对问题分解和迭代演示教学内容。通过线上学习,学生基本理解迭代和逐步求精的设计思想。线下教学中,一方面通过讨论总结已有的循环知识,答疑解惑;另一方面通过课堂测试题目进一步强化训练。在学生可以接受的前提下,课堂中会引入如语法图或状态机,引导学生根据不同的抽象方式,灵活使用三种控制结构编写代码,增加理解深度。图2所示为实数字符串翻译为数值的语法图。

3 考核方式

混合式教学中,线上和线下教学目标不一样:线上教学目标强调对基本概念与操作的理解和掌握;线下教学目标侧重于实际操作、解题思路的考核。从而导致考核方式的不同,在课程总评成绩所占比例也有所不同。

平时成绩主要考核学生平时学习情况,占总评的20%。以往这部分成绩的主要依据是作业、课堂表现等。当教学班级人数不多时,这种考核方式是可行的;当人数较多时,这种考核方式将变得困难,或者难以实施。采用混合式教学后,慕课成绩作为平时成绩依据。一方面慕课进度与平时线下教学匹配;另一方面线上作业都是周期发布、定期截止,这种马拉松的作业长跑贯穿整个教学过程,恰好完成对学生平时学习效果的检验和考核。

图1 非结构化的流程图对应的结构化PAD图

图2 实数翻译语法图

表2 “循环程序设计”线上、线下教学内容对比

实验成绩主要考核学生实际操作和动手能力,同时是最能反映学生实际能力的考核手段,目前占总评的30%。虽然线上考核有超过60%的内容以在线测评(Online Judgement)方式进行,在一定程度上可以考核学生动手能力,但仍不充分,线上作弊相对线下更加容易,且更难发现。因此我们期望通过线下实验考核削减这部分不利影响。实验考核分别在期中和期末进行,各占10%和20%。教师依据课程进度,选取2~3道题目,现场对所有学生进行考核,采用类OJ方式评判学生的完成质量。除此之外,还会参考学生用时长短,衡量学生知识掌握的熟练程度。

期末考试主要侧重知识综合掌握情况,占总评成绩的50%,主要采用闭卷方式,重点考核学生计算思维能力,题目为4~5道编程题目。选用笔试,原因有以下4点。首先,这门课程的目标是培养学生计算思维能力,需要学生转变思维方式,这种思维方式培养需要相对较长的消化理解时间。通过试卷可以反映出学生掌握这种思维能力的程度,而非OJ题目的“一锤定音”。其次,多年教学实践中发现部分平时表现良好的学生,思路清晰,但在实验中因某些小错无法获得成绩,笔试则可以减少这部分影响。第三,学习这门课的学生多是大一新生,上大学后无论从生理和心理都需要一个巨大的转变,完全上机考核,往往会使学生产生巨大压力,而变得无所适从。最后,闭卷笔试采用严格的监考制度,可以进一步避免作弊对学生成绩的影响。

上述各种考核综合为理论课总评成绩。从中不难看出,所有考核强调“个人独立完成”。根据“中国工程教育认证”人才培养基本要求的指标体系[8-9],本课程除了为“掌握相关工程基础和专业知识、分析解决能力”提供支撑;还要为“培养团队合作能力”提供支撑。所以我们在大一下期开设课程设计,要求学生2~3人一组,协作完成某信息管理系统的设计与实现,如成绩、档案、电话簿、药品、学生卡等,重点训练数组、排序、检索、单向链表以及文件等操作。每个团队需要对所完成题目进行演示与答辩。指导教师首先根据课程设计的总体完成情况(功能完成比,系统鲁棒性,用户体验度等)综合给出一个团队的起评分;然后根据每个成员的完成情况独立考核。个人在团队中工作量多、质量高,部分功能具有特色和创新,可以酌情加分或提档;个人在团队中的工作量少、质量差,需要酌情减分或降档。

4 教学模式

图3 程序设计基础混合式教学模式

混合式教学的目的是使学生充分发挥主观能动性、有针对性地学习。线下教学时,学生有一定基础但对知识理解并不透彻或者有偏差,教师通过简单的课堂测验或对线上学习数据的统计分析获得学生学习情况,针对某些知识点重点讲解,并组织学生讨论,这使得翻转课堂成为SPOC课堂授课部分最好方式。

程序设计基础混合式教学模式如图3所示,教学过程分为线上和线下两部分。从学生角度看,利用线上资源自主学习,完成课程先导内容的预习、复习、效果评价以及答疑等基本教学环节;线下通过课堂、实验和课程设计与教师面对面交流,进行针对性学习。从教师角度看,教师提前将基础概念性知识作为线上内容,提前向学生开放,同时通过线上考核了解学生学习动态,在理论和实践教学环节有针对性地讲解和讨论。这样学生既可以通过线上教学,掌握显性的知识;又可以在课堂授课和实践教学过程中对知识进行归纳总结,形成隐性知识即能力。

5 结 语

图4 计算机与软件学院采用混合式教学后各分数段人数比例分布

吉林大学“高级语言程序设计”课程,2009年评为国家级精品课、2013年列入国家级精品资源共享课,2014年吉林大学正式启动慕课建设项目,2018年被评为国家级精品在线开放课程,这些都为混合式教学提供良好政策和平台支持[10-11]。自2014年9月吉林大学“高级语言程序设计”慕课在中国大学MOOC平台上线后,团队首先在软件学院进行混合式教学尝试,一年后在计算机和软件学院同时进行。经过4年的实践我们发现,采用混合式教学方式后学生的成绩稳中有升,且学习的主动性和效率都有明显提高。图4所示为两个学院在采取混合式方式教学后各分数段人数比例分布,可见及格率明显上升,优秀率也有一定的提高。教师日常工作强度大幅下降,教学针对性更强,考核方式更加全面合理。分析其原因主要如下:①线下和线上教学配合,而非简单的线上内容重复,促使学生必须进行课前预习,提前学习基本概念性知识,提高了课堂教学授课效率。②“马拉松”式线上考核,多层次线下考核,持续强化“功夫在平时”的学习模式,避免了“考前突击”,提高了知识掌握扎实程度。③自动化作业批改,在线师生、生生交流,即时反馈结果,避免了手动批改反馈时间长,针对性差、交流不充分的问题。④加大实践考核力度,考核方式中实验占总评成绩30%,线上考核占20%,其中大半是OJ题目,使得实际动手考核占总评成绩至少达到40%,同时期末考试虽是笔试,但也都是实际编程题,避免死记硬背而是灵活应用。⑤线下教学更有针对性,通过线上课程可以及时掌握学生情况,因材施教更易实施,通过对学生平时作业数据的分析,可以即时发现重点关注的学生,这样为线下教学提供了针对性指导。

混合式教学为传统教学带来了巨大冲击,无论学生还是教师都需要进行较大的改变。教师需要转变角色,从学习的“主导者”变为“服务者”,引导学生自主学习;同时也需要教师提高专业素养,才能更好地服务学生。学生则需要从“被动接受”变为“主动寻找”,混合式课程容量较传统课程有增无减,但课内学时却相对减少,这就需要学生有更强的自主学习能力和自制力,协调合理时间安排,完成课程学习。随着人工智能的深化发展,使用相关智能工具分析学生学习行为模式、学习效果、预警监测等方面,将更利于线下教学开展。根据不同组织模式,线上课程可分为“基于内容”“基于网络”和“基于任务”三类[12]。目前多数团队采用基于内容的幕课进行混合式教学,这类课程侧重于知识的传播和复制。然而更新快、实践性强是计算机类课程的特点。侧重创造性的“基于网络”的慕课,以及侧重专业技能协同的“基于任务”的慕课对于支撑工程认证中关于“创新性”和“协作能力”的指标点更具有优势,期望在后续的教学实践中尝试。

猜你喜欢
程序设计线下考核
“线上+线下”混合式体操教学的应用研究
基于SolidWorks和VBA的电机阶梯轴建模程序设计
2022年4月部分家电线下市场简评
医学专业“Python程序设计”课程教学改革总结与思考
COZMINE线下集合店
基于Visual Studio Code的C语言程序设计实践教学探索
从“偶然”的疫情大爆发到“必然”的线下线上教学结合
“表里不一”如何识别——富平增强考核洞察力
考核偏向:错把经过当结果
从细节入手,谈PLC程序设计技巧