好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于翻转课堂的程序设计课程教学改革实践.docx

14页
  • 卖家[上传人]:ji****81
  • 文档编号:226881081
  • 上传时间:2021-12-19
  • 文档格式:DOCX
  • 文档大小:27.63KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于翻转课堂的程序设计课程教学改革实践 翁佩纯 马慧[摘 要]程序设计课程是一门实践性很强的课程,其教学效果将直接影响学生对后续专业课程的学习信心翻转课堂强调以学生为主教师为辅的教学模式,通过延展学生课外学习时间,提高学生自主学习能力通过分析翻转课堂模式带来的挑战,针对程序设计课程设计了翻转课堂的教学案例,为程序设计课程提供一种新的教学思路[关键词]翻转课堂;程序设计课程;教学案例[] G642.0 [] A [] 2095-3437(2018)10-0089-04翻转课堂的思想自2007 年由美国科罗拉多州的两位化学教师提出以来,已成为国内外教育界关注的热点,并取得了令人满意的教学效果翻转课堂的核心思想是:课前学生自主通过线上的视频、测验等教学资源进行学习;课堂上学生通过各种教学活动,如小组讨论、实验操作等,达到知识的内化[1]程序设计课程是一门计算机核心基础课程,具有较强的实践性与应用性在该门课程的授课过程中,通过培养学生的计算思维能力,强化学生的上机训练,从而提高学生的编程技能其教学目标是培养学生解决问题的能力,并通过实际问题的编程实践培养学生的计算思维,强化学生的动手能力。

      在以往的教学中,学生的上机练习多以验证型为主,完成上机任务和课后作业,便极少投入时间加强编程能力的培养,学生对编程兴趣不高,学习积极性较差,属于典型的被动式学习翻转课堂的思想是以学生自主学习为主,教师启发为辅如何翻转课堂,变被动为主动,选择以生活中的实际问题和工程实际应用为背景的教学案例,从讲授编程语法为主转变为以启发学生的编程思维为主,从课堂上的被动学习转变为课后的主动学习,是进行程序设计课程翻转课堂实践的思考之一一、翻转课堂带给程序设计课程的挑战翻转课堂的思想是学生先在课前通过教学课件、视频、练习等进行知识的获取和学习;在课堂上经教师的启发和引导,通过实际题目的演练来完成知识的内化[2];课后再通过练习、测验等方式进行知识的巩固将传统的课堂中教师与学生之间的主辅地位翻转,形成“课前学习+课堂内化+课后巩固”的教学模式[3]将翻转课堂应用于程序设计课程的实际教学过程中,面临以下3个方面的挑战一)改革学生的学习方式,变“被动学习”为“主动学习”翻转课堂要求学生自主安排时间上网学习视频资料并完成试题对学生而言,最大的挑战则是需要改变原来被动接受知识的方式,培养主动学习,发现问题并总结问题的良好学习习惯。

      这需要学生有良好的自制能力和学习积极性二)改革教师的授课方式,变“课堂授课”为“引导协助”翻转课堂不仅需要教师根据教学资源,裁剪、整合、设计学习资料和练习,还需要教师充分发挥教育的统计和分析能力,在上课前先根据学生网上学习的记录、学习过程中反馈的问题,结合教学内容,设计适合课堂进行的教学活动计划在翻转课堂,教师不再占主导地位,而是协助学生分析问题、组织学生解决问题,答疑解惑、组织向导式学习的引导者三)改革成绩评定方式,变“传统笔试”为“上机考试”改革成绩评定方法,建立以上机考试和编程能力为主的客观评价体系打破以往期末成绩占大头的总评方法,完全取消卷面笔试,改为上机考试上机考试采用机器自动评分的考试平台,并借助考试平台对学生的答卷进行数据统计分析,使学生可以通过上机测验查漏补缺,教师可以针对学生的薄弱环节精讲精练为了客观公正地考核学生的编程实践能力,所建立题库必须做到题型多样化,覆盖面广等要求二、翻转课堂在程序设计课程中的实施程序设计课程的授课重点,不仅在于语法结构,更重要的是让学生通过实战训练去锻炼程序设计的思维翻转课堂的线上线下结合正好可以作为程序设计课程有效的实施手段为此,可将每个章节的语法知识提炼并录制视频,布置小测验让学生上学习并验证学习效果。

      再将实际案例设计为课堂小组协作题目,组织学生运用已学的知识点在课堂上开展讨论、分工、编程和协作在翻转课堂的教学内容和实践练习的设计上,应注意把握以下几个方面1)应多一些设计性的实践内容,少一些验证性的实践内容弱化学生对编程知识和语言本身的关注,着重对知识的运用2)课堂教学案例的设计应该逐步提高、前后连贯,要能紧密联系实际,让学生在实践中巩固课堂知识的同时,进一步增强学生独立分析问题、解决问题的能力3)在进行课堂教学时,由教师对实践题目进行分解,组织学生讨论,并制定解决方案,再以小组协作形式进行实践,使学生学习如何按“分而治之”策略解决一个具有相当规模与复杂性的实际问题4)鼓励学生在实践题目的基础上进行一定程度的创新,培养学生的创新能力5)在翻转课堂上,每组学生完成任务后,请一位代表进行课堂演示和答辩,组织全班同学对各组完成作品进行投票,并作为课程的考核方式之一这样一方面可以锻炼理科学生的演讲能力,另一方面也能帶动班级的学习气氛以C++程序设计为例,在讲授“类与对象”这一概念时,传统的实践练习一般局限于验证性实验的形式,强调某个语句格式、某个语法问题等例如,定义class A, 然后定义对象Aa。

      这种“重语法”的实践教学太过强调程序语言本身的要素,忽视了对知识综合运用和实践能力的培养因此在设计翻转课堂教学时,可以先提炼出语法的知识点让学生学习,实际课堂可以组织一些设计性的实践内容,少一些验证性实践内容例如,课前让学生学习如何定义类、如何定义对象、如何通过对象调用成员函数等等而在课堂环节,组织学生通过小组分工,设计并实现一个电子时钟,通过任务分解、课堂讨论、小组协作等方式让学生在实践中巩固课堂知识的同时,进一步增强学生独立分析问题、解决问题的能力把抽象的概念用具体的实例展示给学生,使学生能融会贯通课后通过布置学生作业,帮助学生巩固疑难点和遗漏点1.课前资源准备根据“类与对象”的知识点和理解难点,设计了4个相应的小知识模块提供给学生学习,包括:①类的定义;②数据成员的定义;③对象的定义;④成员函数的调用学生在学习完视频之后,需要完成一份测验,其中包括选择题、判断题、程序题等,经过分析思考或进一步看书、上网查询资料后验证所学知识如果学生对知识点理解有疑问,可以提问和讨论教师检查学生的完成情况,记录学生成绩,并根据学生的答题统计数据来修改和完善教学计划在本例当中,学生学习之后,要完成下列编程题目。

      定义一个电子时钟类,模拟如图1的电子时钟的功能,要求实现:l初始化时间(可初始为:00:00:00)l设置时间(小时,分钟,秒)l显示时间(格式如图所示)学生通过分析该题目,回答以下问题:l起个类名?(知识点:类的定义)l有哪些属性?(知识点:数据成员的定义)l如何初始化时间?(知识点:构造函数的定义)l有哪些功能?(知识点:成员函数的定义)通过以上问题,学生可以梳理出如下类的定义class Timer{public:Timer(); //构造函数,用于初始化时间void setTime(int h, int m, int s); //设置时间void showTime(); //显示时间private:int hour;int minute;int second;};Timer::Timer(){hour = 0;minute = 0;second = 0;}void Timer::setTime(int h, int m, int s){hour = h;minute = m;second = s;}void Timer::showTime(){cout << hour << “ : ”<< minute << “: ”<< second << endl;}2.课堂教学活动翻转课堂的关键在于课堂教学活动的设计,教师通过组织课堂活动来完成知识的内化。

      教师首先在课前对学生学习与测试的数据进行统计分析,了解学生学习时遇到的难点和理解误区,为课堂的教学活动提供设计参考在课堂上,教师首先对学习难点及学生普遍存在的问题进行统一讲解其次,设计实践题目组织学生进行小组讨论和协作开发所设计题目尽量兼顾实用性和趣味性实践案例的内容应注重前后知识运用的综合性和连贯性,后续案例以前续案例为基础例如,在讲授类与对象的知识时,设计的案例除了包含如何类的定义和实现,成员函数的调用等内容外,还应结合前面的基础,如数组,指针,选择结构,循环结构等编程语言要素这样一方面可以复习前面的知识,一方面可以培养学生系统化意识,以帮助学生建立知识体系另外,为了避免学生面对一个实践任务时毫无头绪,可将任务分解为一个个小任务,组织学生通过课堂讨论等形式,由易入难,逐步推进针对“类与对象”这一知识点,设计了如下题目让小组进行讨论任务1】完成Timer类的定义之后,组织学生进行小组讨论:问题1:如何使用Timer类定义对象?问题2:如何设置时间?问题3:如何调用showTime函数来显示时间?在课堂上开展讨论之后,让学生拟出解决的方案,并通过上机编程验证int main(){Timer timer1;timer1.setTime(1,59,59);timer1.showTime();return 0;}教师通过以上实例,讲解“类与对象”的概念,加深学生对这个概念的理解,使学生搞懂本次课程的所有内容,从而帮助学生完成知识的内化。

      在完成以上编程之后,教师可以设置以下编程任务任务2】针对以上完成的内容,提出改进的方向1)目前显示时间的功能仍不完善,例如01:59:59,会显示为1:59:592)如何让电子时钟的时间真正走起来?在課堂上再次开展讨论之后,让学生拟出解决的方案:①解决时间的显示问题可以用setw()和setfill()函数,该知识点属于“格式化输出”,在之前的章节讲授过,在此可以帮学生复习并梳理下思路参考代码如下:cout << setfill(0) << setw(2) << hour << “:”<< setfill(0) << setw(2) << minute <<“:”<< setfill(0) << setw(2) << second << endl;②让时间走起来,可以每次暂停1秒,并在当前时间上累加1秒,清屏后再重新显示时间这里可以提供给学生以下函数: (注:需包含头文件:windows.h)System(“cls”); //清屏Sleep(1000); //使程序暂停1秒③要考虑时、分、秒的进位问题通过上机编程进行验证,学生为Timer类新增了一个成员函数increase():void Timer::increase(){second++;if(second == 60){second = 0;minute++;}if(minute == 60){minute = 0;hour++;}if(hour == 24){hour = 0;}}修改showTime()函数,代码如下:void Timer::showTime(){while(1){system(“cls”);cout << setfill(‘0) << setw(2) << hour << “:”<< setfill(‘0) << setw(2) << minute <<“:”<< setfill(‘0) << setw(2) << second << endl;Sleep(1000);increase();}}通過上述的上机练习,学生。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.