基于翻转课堂教学策略的面向对象程序设计课程建设与实践探析
2023-04-27徐照兴
徐照兴
关键词:翻转课堂;构建课堂新生态;面向对象程序设计;课程建设;微课
中图分类号:G642.0 文献标识码:A
文章编号:1009-3044(2023)08-0157-04
随着信息技术、互联网技术的不断发展,学生的学习习惯、学习思维及学习方式发生很大的变化,比如学生可以很方便地使用电脑、手机查阅各种资料、观看各种学习视频,可以说很多知识都不用“死记”,那么在教育信息化2.0时代教学模式、方法及手段就要相应地进行转变。即“互联网+教学”“大数据+教学”的时代已经到来,和新技术融为一体的新教学是必然趋势[1]。教师不能再是单纯传授知识,而是要做到以学定教,比如,课前给定或指定相关学习资料让学生先自主学习,然后收集学生的相关学习疑问及难点,课堂进行精讲,学生可以课堂现场查阅资料进行回答问题,这样有利用培养学生综合能力,有利于培养应用技术型人才[2]。笔者就是在这样的思想指引下对面向对象程序设计课程进行了建设,下面给出具体的建设措施,以期为同行提供参考与借鉴。
1 面向对象程序设计课程的性质与定位
面向对象程序设计课程是计算机科学与技术、软件工程等的一门专业基础必修课[3],是理论与实践互为支撑的应用性课程,该课程的主要教学目标是培养面向对象程序设计的思想,并且熟练掌握一种开发工具来实践面向对象程序设计思想,具备WinForm应用程序开发基本能力。该课程与后续课程共同培养学生的软件工程实践能力,能设计与实现满足用户特定需求的高解耦、高扩展的软件系统。
该课程先修课程有计算机基础、程序设计基础(C语言程序设计)、高等数学等,后续课程有ASP.NET动态网页设计、NET开发框架技术、Java程序设计、JavaEE开发框架技术、PHP程序设计、数据库系统等。
2 当前面向对象程序设计课程教学中存在的不足
笔者有多年的实践开发经验,且做教学督导多年,听了很多同行教师授课,同时笔者对面向对象程序设计课程的教学进行了调研,发现主要存在以下不足。
2.1 重视理论课堂的教学,忽视实践课时的教学
教师在教学过程中非常重视理论课堂的教学,而忽视实践课时的教学,表现在以下三个方面:1) 理论课时的教案设计安排非常详细,有如何导入、提什么问题、注意什么事项及总结;而实践课时的教案往往只给出实践的主题或要求。
2) 理论课的教学过程中教师比较有激情、与学生的互动也较好,而实践课时的教学很多教师站在讲台或坐在教师机旁,与学生互动较少,很多时候是放任学生自由,缺乏对学生必要的督促与指导。
3) 理论课时安排偏多,也即教师讲解偏多,实践课时偏少,经与教师沟通了解到有些教师担心课程讲不完,所以教师自己多讲,这实际上就是满堂灌的一种现象,没有考虑学生才是课堂的主体,讲得多并不代表学生学得多[4]。
2.2 重视案例功能的实现,忽视面向对象思想的培养
教师在教学过程中非常重视案例功能实现的分析,而忽视案例为什么要这样实现[5],这样实现的优势是什么,即缺少必要的面向对象的设计模式分析,这样势必导致学生在遇到具体问题时思路不开阔,不会从设计模式角度去考虑实现方法,容易受到面向过程思想的影响,在实现项目功能时把所有代码放入一个类中,这样就与面向对象思想相违背。面向对象思想的核心是封装、继承、接口、多态、类与对象[6]。在设计类时每个类的功能职责尽量单一,然后可以通过继承扩大类的功能;另外需要考虑各个模块之间的耦合性,各模块之间尽量依赖接口,因此需要多设计接口,然后设计类去实现接口等,这些才是面向对象设计精髓,但是很多老师往往忽视,这与课程教学目标不吻合。
2.3 重视根据教学章节引入“小”案例,忽视根据课程目标引入“大”项目
教师在教学过程中非常重视根据当前教学章节引入“小”案例,而忽视根据课程目标引入“大”项目。这样导致的问题就是很多学生课堂上很活跃,好像所有问题基本都可以解决。然而,在实际开发过程中就会碰到这样那样的问题,而且发现很多问题好像是在平时上课学习时没有碰到的,这是什么原因呢。
简单说就是项目开发运行的不同环境所导致。具体来说就是平时教学中采用“小”案例,它所涉及的运行依赖环境是教师事先设置好或者它本身依赖的环境就比较少,这样在实现功能时出现的问题会比较少,即功能比较容易实现。而实际开发过程中的项目往往是综合性的,它的所有运行依赖环境需要开发者自己配置,而且这样环境配置好后,有些时候在“小”的案例中可以实现功能的方法,在“大”的项目中还不能解决问题,因为一些项目相关程序集的引入,会导致一些方法运行不了,这就不利于培养学生软件工程实践能力。
3 基于翻转课堂教学策略,构建课堂新生态的教学模式
以培养应用技术型人才为目标,基于“以学定教”的指导思想,依據面向对象程序设计课程的性质与定位,为解决上述面向对象程序设计课程教学中存在的不足等,提出基于翻转课堂教学策略,构建课堂新生态的教学模式,具体来说有以下几个方面。
3.1 重构教学内容
教学内容的先进与否可以说是决定一门课程是否为优秀课程的主要因素,如果只是传授过时技术概念、企业不用的技术,学生学得再好也不能做到学校的“及格”等于企业的“合格”[7]。基于此理念笔者对面向对象程序设计课程教学内容进行了大量调研,同时结合自己多年对此课程教学的经验,对教学内容进行了重构。
1) 教学内容选取原则
①密切跟踪行业发展,围绕行业常用技术、已成熟的新技术进行组织重构教学内容。
②针对岗位需求或者所需素养(面向对象程序设计主要为培养软件工程师服务),对必学知识重新排序,培养学生实际技能[8]。
③引入典型开发项目,将学习型实践转换为生产型实践。
④坚持理论适度的教学内容选择标准,强化实践教学。
2) 合理安排与整合教学内容
面向对象程序设计语言目前主要有Java、C++、C#,笔者选取了C#,因为C#是一门非常优秀且简单易学的语言,C#语言是2000年才开始发展起来的语言,它吸取了C++的优点,相比Java 具有简单易学的特点[9]。结合上面教学内容的选取原则,笔者把面向对象程序设计教学内容分为三大模块,具体见表1所示(含课时安排)。
3.2 借助“互联网+”技术手段辅助教学
“互联网+教学”已是一种教学趋势,笔者就把“互联网+教学”应用于面向对象程序设计课程的教学中。主要是借助于以下两种“互联网+”技术手段。
1) 网络综合教学平台
大多数高校均引进了网络综合教学平台,在该平台可以很方便地进行课程建设。通过该平台教师可以上传教学大纲、教学日历、教学课件、教学微视频、拓展资源链接等各种教学资料,此外,还可以布置作业、发布讨论等,更重要的是教师能够清楚地知道哪些学生观看了哪些资料。不过有些网络综合教学平台尚没有移动版本,也即是学生不能随时随地观看学习,教师也不能随时随地查看学生的学习情况及不能及时与学生沟通。因此笔者还引入了蓝墨云班课App。
2) 蓝墨云班课App
蓝墨云班课App是一款免费课堂互动教学App,也是一种融入人工智能技术的智能教学工具[10]。使用蓝墨云班课辅助教学具有以下特点。
第一,课前课后学习资源的推送。推送的教学资源可以有教学微视频、课件、配套测试题、数据库等素材、教师相关研究论文、学习资源链接、作业、通知消息。学生可以通过手机随时随地在班课中查看学习资源,教师可以通过班课查看学生的学习情况,并对没有及时完成的学生推送提醒通知。
第二,即时反馈调整教学。利用云班课可以对整个教学活动数据化,学生观看视频、参加教学活动(讨论、测验、头脑风暴等)都有详细的实时记录。测试活动可以设置多长时间完成、能否重做、重做的次数、什么时候查看答案,提交后会给出测验情况的分析,教师可以根据学生的反馈有针对性地开展教学,通过数据分析调整教学进度,真正实现以学生为中心,以学定教,提高教学效率和教学质量。这样,平常的教学过程性评价点被一一分解到各个资源学习、教学活动学习。使用QQ群、微信群可以发布教学资源,但是学生是否查看学习没有办法监控,现在云班课中可以清楚知道每个教学资源多少同学没看,对于没有查看的同学,还可以进行提醒。此外,蓝墨云班课的人工智能可以通过语音和文字形式反馈学生的学习情况给老师,也会反馈提醒学生。
第三,基于游戏理念设计经验值的获取方式。参加观看视频学习、非视频资源学习、讨论、头脑风暴、问卷、测验等活动可得到相应的经验值。这种设计基于游戏理念,学生的经验值要一分一分去挣了。在云班课的成员模块中,教师可以随时关注到每个学生的经验值获得情况,学生也可以关注自己的经验值情况,这对实现过程性评价的即时反馈和学习指导作用是有极大帮助的。
总之,使用蓝墨云班课就是要有足够多的资源、开展适量的活动、及时关注学生的学习情况。
3.3 运用翻转课堂教学策略
运用翻转课堂的教学策略其本质就是让学生课前自主学习,根据学生自主学习情况,课堂上教师精讲[11]。如何让学生课前更好的自主学习,这就可以利用蓝墨云班课和网络综合教学平台,但是这里关键是教师要能提供足够配套的优质资源,包括教学微视频、讨论题、测验题、拓展学习资源等,此外,还有一个非常重要资源要提供给学生——教学设计。那么这些配套资源如何成为优质资源呢?需要教师花大量时间去准备。研究结合近两年的翻转课堂教学经验及调研,给出教学设计撰写和配套微视频录制的注意事项。
1) 教学设计撰写及注意事项
撰写教学设计的目的有两个:一是方便教师录制微视频和教学时做到“心中有数”;二是方便学生整理笔记。撰写教学设计时要注意以下事项。
①根据本章节一级教学目标,分解成一个个二级教学目标,如果二级目标还比较大,再分解成三级目标,确保一节微视频只讲一个问题,时间控制在15分钟左右。
②根据一个个细分的小目标,选取或设计合适的案例,然后通过设疑、提问、试错、讨论等形式一步步引导学生去达成小目标。
③最后一定要总结梳理知识。
2) 微视频录制及注意事项
微视频是进行翻转课堂非常有效的一种学生自主学习资源[12],而且配套的微视频最好要是教师自己录制的,这样才更有针对性。录制软件建议采用Cam⁃tasia Studio ,录制输出格式建议为MP4,分辨率建议为1280×720,时长15分钟左右,不超过20分钟等基本参数要与省级和国家级在线开放课程建设技术规范要求相符。此外,录制时还要注意以下事项:
①录制时一定要充分备课,撰写好教学设计。
②錄制场所一定要安静,录制时不能有咳嗽等不必要的杂音及不能有超过2秒的空白,有的话一定要剪切掉。
③在录制前把这一节课需要的素材、窗口都准备好,在录制需要用到时直接切换到窗口即可,不要在录制的时候去找素材等浪费时间。
④录制前注意口腔保持干净,特别是牙缝里不能藏有杂物,否则影响讲课。
⑤对于代码编写分析课程,一定要在录制时手动敲代码,不要直接展示PPT,为了保证敲代码不受影响,教师不要留有指甲。
⑥录制的字体不能小于14磅,否则学生利用移动端观看时字体会很小,影响观看。
⑦由于录制时是面对电脑,很多教师声音过于平淡或者不自然,这样不利于学习者坚持学下去。因此录制时声音不要过于平淡,要有激情,甚至是手势,要想象下面有学生。
⑧录制时最好录制2遍,第一遍录制好后,自己听一遍,就会发现有些不足的地方,及时记下来,然后再录制第二遍改进不足地方。
⑨在导出生成MP4时,注意把鼠标的单击、右击给以突出强调。
录制时做到以上9点,就可成为优质资源或者说是“干货”。这些“干货”微视频建议教师同时上传到各大在线教育平台(比如51CTO学院、CSDN学院、腾讯课堂、网易云课堂)供其他院校学生或社会学员学习,可以设置为付费课程,一方面为教师自己辛苦付出获取一定的回报,另一方面教师课程如果被很多其他学校或者是社会学员学习,学生会对老师产生敬佩,也会更好地尊重教师,从而会更好地跟着教师学习。
3.4 采用“学生分享讲解、教师精讲点拨、师生共同梳理、有效布置任务”四步课堂教学流程
经给定充分且优质教学资源后,学生经过课前自主学习,课堂上教学流程必然要与翻转课堂对应,首先要对全班学生进行分组,组员建议按成绩好中差搭配,每组4人左右,并设定一名小組长[13],然后课堂上按照学生分享讲解、教师精讲点拨、师生共同梳理、有效布置任务四步教学流程执行。
1) 学生分享讲解
课堂上指定某小节教学内容,然后随机抽取一名学生上台讲解,该名学生讲解遇到问题时可以由该学生所在组的其他组员进行补充讲解。这里要点是两个随机。第一,随机指定某小节教学内容,当然这个小节内容不宜过长;第二,随机抽取一名学生。其目的在于督促激励每个学生课前要认真进行自主学习,同时培养学生的表达能力、团队合作协调能力。
2) 教师精讲点拨
教师课堂上一定要注意是精讲,所以在上课的前1~2天教师一定要收集学生自主学习过程中遇到的难点及学生给出的授课建议等。教师可以设计“个人/小组自主学习任务反馈单”及“小组自主学习任务反馈汇总单”,这两个任务单核心就是收集并汇总学生在自主学习过程中遇到的学习疑问、学习收获/感悟、对教师此内容授课的建议等。教师在收集到反馈任务单后,然后根据此再次备课。做到这些之后,教师在课堂上才可能真正做到精讲。教师在精讲过程中重在答疑,给出应注意及容易出错的知识点。
3) 师生共同梳理
教师在精讲点拨之后,要引导学生一起回顾梳理本次课主要知识点,从而进行归纳总结。这里教师要注意重在引导学生去回顾总结,可以通过小任务、提问、讨论等形式去引导。
4) 有效布置任务
在课堂的最后就是布置课后课前学生要去完成的任务。通常都有巩固本次课知识的作业及自主学习下次课的教学内容,也即要完成“个人/小组自主学习任务反馈单”。但不能简单地对学生说:去完成某某作业或者去自主学习某某教学内容,如果这样的话学生会认为教师不重视,学习的积极性自然不高或者纯属应付[14]。有效的布置任务才能更好地促进学生课后去积极完成。有效布置任务要做到以下几点:
①任务难度及学习量要适宜,同时交代清楚完成作业任务的作用意义,这也是备课的一个重要内容。
②要提供配套且充分的学习资源。
③明确每一项作业任务的上交要求、上交时间、谁负责收齐。比如:一些讨论答疑题、头脑风暴题可以直接在线作答完成;有些题目需要上交源程序的,就要明确上交要求,是直接把源程序压缩上交还是把源程序运行后操作过程录制视频或者截图等。
④让负责收齐作业的学生在截止日期的前一天通过班级群等方式提醒学生上交作业。
⑤不按要求不按时上交作业的后果是什么等都要说明清楚。
4 结束语
当前面向对象程序设计课程教学存在的主要不足是重视理论课堂的教学,忽视实践课时的教学;重视案例功能的实现,忽视面向对象思想的培养;重视根据教学章节引入“小”案例,忽视根据课程目标引入“大”项目。归根结底就是不能很好地为培养应用技术型人才服务。而翻转课堂的教学策略运用,本质是充分体现学生的主体地位,促进学生从被动学习向主动学习的转变,促进课堂上知识信息的有效传递,从而打造有效课堂和高效课堂[15]。翻转课堂是很好的培养技术型人才的手段,但是就面向对象程序设计课程而言,经实践研究表明:基于翻转课堂教学策略的面向对象程序设计课程建设是有效的。也即是在运用翻转课堂的同时,还要对教学内容进行重构,提供充分且优质的学习资源,然后借助于“互联网+”技术手段辅助教学,同时改变课堂教学流程,采用“学生分享讲解、教师精讲点拨、师生共同梳理、有效布置任务”四步课堂教学流程。
对面向对象程序设计课程要能有效地进行翻转课堂,对教师的要求是非常高的,首先教师要有软件开发实战经验,其次需要教师花费更多的时间备课,这就需要学校层面给出相应的政策支持。