论文部分内容阅读
摘 要: 高级语言程序设计课程是一门理工科大学生培养计算思维,提高信息素养非常重要的基础课程,如何帮助学生克服学习中的畏难情绪,激发学习兴趣是开展研究性教学的主要目的。论文分析了学生学习现状中的问题,围绕自测平台的应用,重新梳理和组织教学内容,通过分阶段、分层次、分目标的教学模式,加强了学习过程的管理,体现了因材施教的教学原则,明确了学生学习目标,提高了学生学习的兴趣和主动性。
关键词:测试平台;分阶段;分层次;分目标;研究性教学
中图分类号:G642.0 文献标志码:A 文章编号:1673-8454(2017)24-0041-03
高质量的人才培养是大学教学的主要目标,如何发挥课堂教学作用,提高课堂教学质量是人才培养质量保证的重中之重。安东尼·德·圣埃克苏佩里有一句名言:“如果你想造一艘船,你先要做的不是催促人们去收集木材,也不是忙着分配工作和发布命令,而是激起他们对浩瀚大海的向往”,研究性教学很好的诠释了安东尼的这句名言,如果在我们的教学中能够激发学生对学习所产生成果的向往,那么他们会在学习过程中迸发出极大的学习热情。
当前,高等教育界对研究性教学并没有形成统一的定义,但通常来说,研究性教学是指在教学过程中由教师创设一种类似科学研究的情境和途径,指导学生在独立的主动探索、主动思考、主动实践的研究过程中,吸收并应用知识、分析并解决问题,从而培养学生创造能力和创新精神,提高学生综合素质的一种教学模式[1]。由于高级语言程序设计课程普遍存在着学生学习兴趣不高,畏难情绪重,学生接受能力差别大等问题,我们在该课程中开展了研究性教学,通过C 程序设计语言的学习和使用,结合算法设计案例和研究性项目实践,培养和提高学生分析、解决实际问题的能力和创新能力,树立学生的计算思维,为进一步学习专业课程,利用计算机技术和方法解决专业问题打下良好的基础,取得了较好的效果。
课程考试是高等教育教学过程中的一个重要环节,是评价教学得失和教学工作信息反馈的一种手段,也是稳定教学秩序、保证教学质量的重要途径之一。研究性教学和以能力测试为导向的考试制度在目标、特征、要求等方面是内在统一的。如何深化中国大学课程教学的考试考核方法的改革是保障大学教学质量、提高人才培养质量的重要方面。基于研究型教学的地方高校考试改革方案覆盖教学活动的全过程,考核时间和考核方式的选择弹性大,考核内容丰富、考核口径全面,且可以充分调动教学活动利益相关者的积极参与,有一定的科学性。
一、程序设计课程学生学习现状分析
经过调研和总结,学生在学习高级语言程序设计课程中存在的一些普遍性问题,主要归纳为以下几点:
1.对学习产生畏惧心理
程序设计课程是以C/C 作为基础语言进行讲授,由于程序设计语言本身的抽象性和灵活性,初次接触的学生在学习过程中,不仅需要培养计算思维,还要掌握一些以前没有接触过的抽象概念,使得该课程的学习具有一定难度。另外,部分完成学习的学生对程序设计课程学习难度的夸大描述,也造成了学生对该课程的畏惧心理。
2.学习时间和精力投入不足
想要学好程序设计,大量编程的训练是毋庸置疑的法宝,而程序的设计、编写和调试需要学生进行长时间耐心细致的练习,根据我国计算机教学指导委员会对大学生编程能力訓练的测算,要培养一个基本合格的程序员,至少需要经过2500~3000行代码的训练。目前理工类高校中学生的学习负担普遍较重, 没有合适的激励机制,学生很难投入足够的时间和精力来完成如此多的训练。
3.学习缺乏动力
学生对学习程序设计的目的和作用认知不足,程序设计课程本身抽象枯燥的特性等原因,导致学生在学习这门课程时,随着学习难度加大,逐渐变得缺乏动力。
4.学生接受能力差异化
在学生学习过程中,对课程内容和方法的掌握呈现出差异化,有的学生可以很快接受程序设计的基本方法,树立起计算思维,有的学生则需要较长时间才能适应课程的学习。随着学习的深入,学生的学习目标也逐渐的分化,有的学生兴趣浓厚,以编程能力的提高和实际应用作为目标,有的学生则以掌握基本编程方法,完成验证性题目为学习目标。
从以上的问题出发,我们在程序课程的教学中,开展了以提高学生学习兴趣,增强学习动力为目的,体现因材施教教学原则的研究性教学,其目标是让学生从“要我学”转变为“我要学”,最终达到“我爱学”的学习境界。
二、研究性教学的设计与实现
研究性教学对程序设计课程的知识体系重新梳理,将知识点穿插进实际案例当中,采用重新设计的课堂教学方案和基于过程测试的考核方式,对整个教学过程实现了课程分阶段、教学分层次、学生分目标的全新教学模式,取得了良好的教学效果。
1.转变教学理念,重构知识体系
先讲知识,再布置问题,不利于学生的探究性学习,因此我们在教学中采用问题驱动的教学理念,并将问题驱动和项目驱动的教学理念贯穿课程始终。第一次上课,就给出了要实现的系统任务,对学生提出要求。之后的每节课都是从项目子任务的问题开始,将知识点穿插进项目的子任务中,引导学生进行主动的探索式思考,寻求解决问题的方法,逐步培养学生的计算思维。为此,我们将程序设计的相关知识点进行了梳理,课堂教学围绕学生在解决问题过程中的关键知识点展开,体现了“精讲”原则,有效发挥了课堂教学的作用。学生在学习过程中由于有了实际任务的驱动,在课下对任务实现中需要的知识细节,进行自主构建,教师在之后的课堂教学中完成对学生自学内容的深化和补充。
我们在教学中,将课程任务分解为三个阶段,第一阶段是程序设计基础阶段,主要引导学生完成程序设计基本流程控制,主要是以算法为主的问题驱动教学,目的在于引导学生能够逐步形成用计算机解决问题的意识和方法。第二阶段为提高阶段,主要引导学生完成对现实世界的数据抽象和程序结构的优化,数据抽象体现在符合数据结构的构造和使用,程序框架的优化则以有效利用函数实现程序模块化和提高代码的复用性为目标。第三阶段为实际项目设计阶段,在前两个阶段,学生已经对项目的基本开发过程有了一定的了解,在此基础上,进行完整实用系统的分析、设计和开发就成为了可能。这样循序渐进的教学安排,有利于学生在学习过程中树立信心,激发他们学习的兴趣和主动性。 2.压缩班级规模,机房分组授课
我们通常意义的授课一般是指教师以口头语言向学生呈现说明知识并使学生理解知识的行为[2]。从对学生学习的功能或作用上来讲,讲授实际上主要是一种为学生提供学习对象的教学行为。在讲授中教师以一种便于学生理解接受的方式向学生呈现所要学习的内容或对象,无论教师讲得多么好他实际上只是给学生提供学习对象,因为教师呈现的知识不能直接进入学生的大脑,教师的呈现也不能代替学生自己对学习内容的理解、消化和吸收。因此,讲授主要是促进帮助学生思考而不能代替学生思考,因为思考的过程需要学生亲身去经历和完成。
因此在课堂教学中,我们缩小了班级规模,并将课堂搬到了机房,利用网络教学软件完成课堂教学。通过网络教学软件,教师可以给学生进行集中演示,也可以对学生进行一对一辅导。学生学完后马上动手实践,既有利于学生快速掌握课堂讲授内容,也有利于老师对学生学习情况的准确把握。
由于授课班级规模缩小,分组教学成为了可能。我们将学生按特定条件进行分组,每组3-5人,推行合作式、互助式、讨论式学习。先由教师提出问题,并讲解经过精炼的背景知识,然后由学习小组进行自主学习并完成题目。学生在完成题目的过程中,会出现各种各样的问题,有些通过学生的努力(查阅资料、相互讨论)可以解决,而其他普遍性的问题则由教师在对学生的辅导过程中总结出来,在下一次课堂讲授的时候,集中进行讲解。教师在这样的教学过程中,主要起指导方向和答疑解惑的作用,从而使学生成为了整个教学过程的主体。小组式学习有利于学生之间的互助学习,引导学生在团队合作、相互激励等方面得到提高。同时,在课堂上采用多种形式开展具有趣味性的学习活动,并对各组的学习结果进行评价和对比,使学生在荣誉感和成就感的推动下,进一步提高学习的兴趣和能动性。
3.依托自测平台,实现分层次教学
考试在教学过程中具有非常重要的作用,通过课程考试可以起到导向功能,即指挥棒功能,引导学生把握课程的重点促进学生主动学习和获取知识,达到预期的培养目标。考试还具有诊断与反馈功能,学生可以通过考试结果了解自己知识的掌握情况,及时调整学习方法和策略,提高学习效率。另外,考试还具有正向激励作用,学生通过考试可以树立学习的自信,激发学习兴趣。另一方面,教师可以通过考试了解教学过程中的薄弱环节,改进教学方法和策略,提高教学质量,以期达到教学相长的目的。因此,我们依托校内教改项目,自主开发了程序设计训练与测试平台,这是一个在线训练、测试平台,教师可以通过平台提供的题库,为学生定制相应的训练题目,学生完成题目后直接提交给平台进行实时在线评判。训练测试平台的使用,将教师从繁重的批改作业中解放出来,使得作业考试化成为可能,教师随时可以利用平台进行测试,有效地改善了学生学习过程的管理。通过两个学年的推广使用,我们发现,学生上机训练的积极性有了明显的提高,很多同学下课了都不愿离开机房,继续进行程序调试,程序训练量得到明显提升,基本达到教学指导委员会所建议的程序训练行数。
根据我们课程教学阶段的安排,测试也相应的由一次期末考试,演变为三次测试,每一个教学阶段结束后,就要对学生进行一次阶段评测。第一階段学习结束后的第一次测试,满分50分,从表1的统计数据得到我们可以看出,满分超过50%,得0分的学生比例为3.91%,这说明绝大多数同学能够较好的完成第一阶段的学习。
第二阶段学习完成后进行的第二次测试结果如表2所示,可以看出学生的学习成绩出现了明显的分化,达到要求的学生接近75%,无法完成本阶段学习的学生超过了10%。
根据这一特点,第二阶段学习结束后,学生要根据自己的学习情况,对后续课程的学习方向进行自主选择。原则上,第二阶段学习达标的学生可以继续进入第三阶段完成实际系统的设计和开发。未达标的学生可以选择重新加强第一、二阶段的学习内容,体现了教学分层次的原则。经过分层次的教学,优秀学生脱颖而出,他们的目标是完成整个系统的设计和实现,最终通过答辩方式获得第三阶段学习的分数。而选择“吃回锅肉”的学生则以更好的掌握课程基本内容为目标,通过巩固和加强前两阶段的课程内容,完成第一、二阶段的第二次测试,获得最终的成绩(不高于80分)。
三、研究性教学的效果
整个教学模式的改革体现了因材施教的原则,训练测试平台的应用为改革提供了技术保障,使分层次教学成为了可能,也为教师节省了大量的时间,让他们有更多的精力优化教学内容,提高课堂教学效率。系统实时给出的结果评价能够让学生对学习的效果得到及时反馈,激发了他们学习的主动性,引导他们调整学习方向,及时补充欠缺的知识。
通过在高级语言程序设计课程中开展研究性教学,学生的学习兴趣有了很大的提高,计算思维和创新能力得到了培养。大部分学生都能够联系实际,利用计算机来解决生活学习中的实际问题,更有同学能够大胆创新,开发出了一些很有价值的应用项目。通过项目开发和答辩,学生对软件开发的整个流程有所了解,通过自主选题和分工合作,培养了学生创新能力和团队合作精神,为今后学生进行专业课程的学习打下了良好的计算机基础。
虽然我们取得了一些成绩,但是也存在一些不足有待进一步提高,比如课堂讲授内容的精简不够大胆,应用项目题目给出的时间偏晚,项目的种类不够丰富等。我们争取在今后的教学中进一步减少课堂背景知识的讲解,更加突出学生在整个教学环节中的自主学习。不断积累和挖掘,尽可能提供一些趣味性强,功能要求全面,有一定难度和挑战性的题目,尽早让学生接触实际的项目,使学生对课程目的有较好的理解,产生学习的动力和兴趣,提高我校学生在计算机方面的应用能力,为后续课程的学习以及今后的工作打下良好的基础。
参考文献:
[1]刘伟忠.研究性教学中的难点与实施重点[J].中国高等教育,2006(24).
[2]施良方,崔允漷.教学理论课堂教学的原理策略与研究[M].上海:华东师范大学出版社,1999:174;
(编辑:郭桂真)
关键词:测试平台;分阶段;分层次;分目标;研究性教学
中图分类号:G642.0 文献标志码:A 文章编号:1673-8454(2017)24-0041-03
高质量的人才培养是大学教学的主要目标,如何发挥课堂教学作用,提高课堂教学质量是人才培养质量保证的重中之重。安东尼·德·圣埃克苏佩里有一句名言:“如果你想造一艘船,你先要做的不是催促人们去收集木材,也不是忙着分配工作和发布命令,而是激起他们对浩瀚大海的向往”,研究性教学很好的诠释了安东尼的这句名言,如果在我们的教学中能够激发学生对学习所产生成果的向往,那么他们会在学习过程中迸发出极大的学习热情。
当前,高等教育界对研究性教学并没有形成统一的定义,但通常来说,研究性教学是指在教学过程中由教师创设一种类似科学研究的情境和途径,指导学生在独立的主动探索、主动思考、主动实践的研究过程中,吸收并应用知识、分析并解决问题,从而培养学生创造能力和创新精神,提高学生综合素质的一种教学模式[1]。由于高级语言程序设计课程普遍存在着学生学习兴趣不高,畏难情绪重,学生接受能力差别大等问题,我们在该课程中开展了研究性教学,通过C 程序设计语言的学习和使用,结合算法设计案例和研究性项目实践,培养和提高学生分析、解决实际问题的能力和创新能力,树立学生的计算思维,为进一步学习专业课程,利用计算机技术和方法解决专业问题打下良好的基础,取得了较好的效果。
课程考试是高等教育教学过程中的一个重要环节,是评价教学得失和教学工作信息反馈的一种手段,也是稳定教学秩序、保证教学质量的重要途径之一。研究性教学和以能力测试为导向的考试制度在目标、特征、要求等方面是内在统一的。如何深化中国大学课程教学的考试考核方法的改革是保障大学教学质量、提高人才培养质量的重要方面。基于研究型教学的地方高校考试改革方案覆盖教学活动的全过程,考核时间和考核方式的选择弹性大,考核内容丰富、考核口径全面,且可以充分调动教学活动利益相关者的积极参与,有一定的科学性。
一、程序设计课程学生学习现状分析
经过调研和总结,学生在学习高级语言程序设计课程中存在的一些普遍性问题,主要归纳为以下几点:
1.对学习产生畏惧心理
程序设计课程是以C/C 作为基础语言进行讲授,由于程序设计语言本身的抽象性和灵活性,初次接触的学生在学习过程中,不仅需要培养计算思维,还要掌握一些以前没有接触过的抽象概念,使得该课程的学习具有一定难度。另外,部分完成学习的学生对程序设计课程学习难度的夸大描述,也造成了学生对该课程的畏惧心理。
2.学习时间和精力投入不足
想要学好程序设计,大量编程的训练是毋庸置疑的法宝,而程序的设计、编写和调试需要学生进行长时间耐心细致的练习,根据我国计算机教学指导委员会对大学生编程能力訓练的测算,要培养一个基本合格的程序员,至少需要经过2500~3000行代码的训练。目前理工类高校中学生的学习负担普遍较重, 没有合适的激励机制,学生很难投入足够的时间和精力来完成如此多的训练。
3.学习缺乏动力
学生对学习程序设计的目的和作用认知不足,程序设计课程本身抽象枯燥的特性等原因,导致学生在学习这门课程时,随着学习难度加大,逐渐变得缺乏动力。
4.学生接受能力差异化
在学生学习过程中,对课程内容和方法的掌握呈现出差异化,有的学生可以很快接受程序设计的基本方法,树立起计算思维,有的学生则需要较长时间才能适应课程的学习。随着学习的深入,学生的学习目标也逐渐的分化,有的学生兴趣浓厚,以编程能力的提高和实际应用作为目标,有的学生则以掌握基本编程方法,完成验证性题目为学习目标。
从以上的问题出发,我们在程序课程的教学中,开展了以提高学生学习兴趣,增强学习动力为目的,体现因材施教教学原则的研究性教学,其目标是让学生从“要我学”转变为“我要学”,最终达到“我爱学”的学习境界。
二、研究性教学的设计与实现
研究性教学对程序设计课程的知识体系重新梳理,将知识点穿插进实际案例当中,采用重新设计的课堂教学方案和基于过程测试的考核方式,对整个教学过程实现了课程分阶段、教学分层次、学生分目标的全新教学模式,取得了良好的教学效果。
1.转变教学理念,重构知识体系
先讲知识,再布置问题,不利于学生的探究性学习,因此我们在教学中采用问题驱动的教学理念,并将问题驱动和项目驱动的教学理念贯穿课程始终。第一次上课,就给出了要实现的系统任务,对学生提出要求。之后的每节课都是从项目子任务的问题开始,将知识点穿插进项目的子任务中,引导学生进行主动的探索式思考,寻求解决问题的方法,逐步培养学生的计算思维。为此,我们将程序设计的相关知识点进行了梳理,课堂教学围绕学生在解决问题过程中的关键知识点展开,体现了“精讲”原则,有效发挥了课堂教学的作用。学生在学习过程中由于有了实际任务的驱动,在课下对任务实现中需要的知识细节,进行自主构建,教师在之后的课堂教学中完成对学生自学内容的深化和补充。
我们在教学中,将课程任务分解为三个阶段,第一阶段是程序设计基础阶段,主要引导学生完成程序设计基本流程控制,主要是以算法为主的问题驱动教学,目的在于引导学生能够逐步形成用计算机解决问题的意识和方法。第二阶段为提高阶段,主要引导学生完成对现实世界的数据抽象和程序结构的优化,数据抽象体现在符合数据结构的构造和使用,程序框架的优化则以有效利用函数实现程序模块化和提高代码的复用性为目标。第三阶段为实际项目设计阶段,在前两个阶段,学生已经对项目的基本开发过程有了一定的了解,在此基础上,进行完整实用系统的分析、设计和开发就成为了可能。这样循序渐进的教学安排,有利于学生在学习过程中树立信心,激发他们学习的兴趣和主动性。 2.压缩班级规模,机房分组授课
我们通常意义的授课一般是指教师以口头语言向学生呈现说明知识并使学生理解知识的行为[2]。从对学生学习的功能或作用上来讲,讲授实际上主要是一种为学生提供学习对象的教学行为。在讲授中教师以一种便于学生理解接受的方式向学生呈现所要学习的内容或对象,无论教师讲得多么好他实际上只是给学生提供学习对象,因为教师呈现的知识不能直接进入学生的大脑,教师的呈现也不能代替学生自己对学习内容的理解、消化和吸收。因此,讲授主要是促进帮助学生思考而不能代替学生思考,因为思考的过程需要学生亲身去经历和完成。
因此在课堂教学中,我们缩小了班级规模,并将课堂搬到了机房,利用网络教学软件完成课堂教学。通过网络教学软件,教师可以给学生进行集中演示,也可以对学生进行一对一辅导。学生学完后马上动手实践,既有利于学生快速掌握课堂讲授内容,也有利于老师对学生学习情况的准确把握。
由于授课班级规模缩小,分组教学成为了可能。我们将学生按特定条件进行分组,每组3-5人,推行合作式、互助式、讨论式学习。先由教师提出问题,并讲解经过精炼的背景知识,然后由学习小组进行自主学习并完成题目。学生在完成题目的过程中,会出现各种各样的问题,有些通过学生的努力(查阅资料、相互讨论)可以解决,而其他普遍性的问题则由教师在对学生的辅导过程中总结出来,在下一次课堂讲授的时候,集中进行讲解。教师在这样的教学过程中,主要起指导方向和答疑解惑的作用,从而使学生成为了整个教学过程的主体。小组式学习有利于学生之间的互助学习,引导学生在团队合作、相互激励等方面得到提高。同时,在课堂上采用多种形式开展具有趣味性的学习活动,并对各组的学习结果进行评价和对比,使学生在荣誉感和成就感的推动下,进一步提高学习的兴趣和能动性。
3.依托自测平台,实现分层次教学
考试在教学过程中具有非常重要的作用,通过课程考试可以起到导向功能,即指挥棒功能,引导学生把握课程的重点促进学生主动学习和获取知识,达到预期的培养目标。考试还具有诊断与反馈功能,学生可以通过考试结果了解自己知识的掌握情况,及时调整学习方法和策略,提高学习效率。另外,考试还具有正向激励作用,学生通过考试可以树立学习的自信,激发学习兴趣。另一方面,教师可以通过考试了解教学过程中的薄弱环节,改进教学方法和策略,提高教学质量,以期达到教学相长的目的。因此,我们依托校内教改项目,自主开发了程序设计训练与测试平台,这是一个在线训练、测试平台,教师可以通过平台提供的题库,为学生定制相应的训练题目,学生完成题目后直接提交给平台进行实时在线评判。训练测试平台的使用,将教师从繁重的批改作业中解放出来,使得作业考试化成为可能,教师随时可以利用平台进行测试,有效地改善了学生学习过程的管理。通过两个学年的推广使用,我们发现,学生上机训练的积极性有了明显的提高,很多同学下课了都不愿离开机房,继续进行程序调试,程序训练量得到明显提升,基本达到教学指导委员会所建议的程序训练行数。
根据我们课程教学阶段的安排,测试也相应的由一次期末考试,演变为三次测试,每一个教学阶段结束后,就要对学生进行一次阶段评测。第一階段学习结束后的第一次测试,满分50分,从表1的统计数据得到我们可以看出,满分超过50%,得0分的学生比例为3.91%,这说明绝大多数同学能够较好的完成第一阶段的学习。
第二阶段学习完成后进行的第二次测试结果如表2所示,可以看出学生的学习成绩出现了明显的分化,达到要求的学生接近75%,无法完成本阶段学习的学生超过了10%。
根据这一特点,第二阶段学习结束后,学生要根据自己的学习情况,对后续课程的学习方向进行自主选择。原则上,第二阶段学习达标的学生可以继续进入第三阶段完成实际系统的设计和开发。未达标的学生可以选择重新加强第一、二阶段的学习内容,体现了教学分层次的原则。经过分层次的教学,优秀学生脱颖而出,他们的目标是完成整个系统的设计和实现,最终通过答辩方式获得第三阶段学习的分数。而选择“吃回锅肉”的学生则以更好的掌握课程基本内容为目标,通过巩固和加强前两阶段的课程内容,完成第一、二阶段的第二次测试,获得最终的成绩(不高于80分)。
三、研究性教学的效果
整个教学模式的改革体现了因材施教的原则,训练测试平台的应用为改革提供了技术保障,使分层次教学成为了可能,也为教师节省了大量的时间,让他们有更多的精力优化教学内容,提高课堂教学效率。系统实时给出的结果评价能够让学生对学习的效果得到及时反馈,激发了他们学习的主动性,引导他们调整学习方向,及时补充欠缺的知识。
通过在高级语言程序设计课程中开展研究性教学,学生的学习兴趣有了很大的提高,计算思维和创新能力得到了培养。大部分学生都能够联系实际,利用计算机来解决生活学习中的实际问题,更有同学能够大胆创新,开发出了一些很有价值的应用项目。通过项目开发和答辩,学生对软件开发的整个流程有所了解,通过自主选题和分工合作,培养了学生创新能力和团队合作精神,为今后学生进行专业课程的学习打下了良好的计算机基础。
虽然我们取得了一些成绩,但是也存在一些不足有待进一步提高,比如课堂讲授内容的精简不够大胆,应用项目题目给出的时间偏晚,项目的种类不够丰富等。我们争取在今后的教学中进一步减少课堂背景知识的讲解,更加突出学生在整个教学环节中的自主学习。不断积累和挖掘,尽可能提供一些趣味性强,功能要求全面,有一定难度和挑战性的题目,尽早让学生接触实际的项目,使学生对课程目的有较好的理解,产生学习的动力和兴趣,提高我校学生在计算机方面的应用能力,为后续课程的学习以及今后的工作打下良好的基础。
参考文献:
[1]刘伟忠.研究性教学中的难点与实施重点[J].中国高等教育,2006(24).
[2]施良方,崔允漷.教学理论课堂教学的原理策略与研究[M].上海:华东师范大学出版社,1999:174;
(编辑:郭桂真)