论文部分内容阅读
摘 要: 本文介绍了任务引导式教学方法及该方法在程序设计类课程中的具体实践过程,该方法的实施提高了课堂教学质量,为实践环节的改革提供了参考。同时,实践证明,该方法充分调动了学生学习的主动性,增强了学生的实践动手能力和团队协作意识。
关键词: 任务引导式教学 程序设计类课程 教学方法
程序设计类课程是高校计算机专业开设的一类主要的专业课程,通常至少开设一门,此类课程多为实践性内容较多。程序设计类课程注重实践动手能力的培养,因此课程的教学和实践环节具有同等重要的地位。本文针对程序设计类课程的特点,提出了在教学过程中应用任务引导的方法,从而在提高学生学习主动性的同时,增强他们的实践动手能力和团队协作精神。
1.任务引导式方法
1.1任务引导式方法的主要内容
所谓任务引导式教学是指在教学过程中,教师布置相关任务,学生依照任务要求逐步完成对教学内容的学习及实践的过程[1,2]。在传统教学方法中,学生处于被动接受知识的状态,对新技术的掌握完全局限于教师讲授的内容,而任务引导式教学方法强调,以教师提供的任务作为引导,学生在完成任务的过程中主动地学习知识,教师在整个教学过程中的作用不再仅限于对知识的讲解,更多的是对学生所学知识正确性的确认及纠正。
任务引导式教学方法主要包括以下几个主要内容:
教师布置学习任务,教师在课前将学习任务通过交流平台(公共电子信箱或E-class等)布置给学生,学生通过分组讨论的方式学习,然后撰写并提交学习报告。
教师以布置的学习任务为主线,以解决任务中的问题为目标,讲授知识点,重点讲解学生讨论后提出质疑的问题。
学生上机完成学习任务中的实践部分,这是针对计算机相关技术课程设计的环节,学生通过实践进一步对所学知识进行巩固,教师在此环节中起到辅助指导的作用。
教师通过学生在完成任务过程中提交的学习报告和上机情况,对学生进行考核。
1.2程序设计类课程中应用任务引导方法的必要性
目前,在程序设计类课程的教学过程中存在一些问题,表现为:
程序设计语言类课程,通常由基本语法入手,层层递进,对于初学者而言不熟悉的术语和关键知识点较多,对没有任何编程经验的学生而言具有一定的难度。
教师采用传统教学模式,填鸭式地讲解,学生处于被动接受的状态,学习过程枯燥无味,严重缺乏学习主动性。
程序设计语言虽然自身语法简单,但涉及内容广泛,教学内容离散性较强,知识点太多,且应用领域广泛,仅靠课上教师讲解,往往事倍功半。
针对以上这些问题,应用任务引导式教学方法,可以使得学生在完成任务的过程中完成学习。在课前的分组讨论中充分地打开视野,了解相关领域知识,通过按照学习任务要求整理学习报告,进一步对这部分知识进行理解,同时将问题带入课堂,带着问题接受教师的讲解;教师依照任务实现的过程讲解知识点,使得知识的离散性问题得以解决,同时学生学习时有备而来,教学过程不再是单方向的活动,增加了教学的互动性可能;在实践环节中,学生通过动手实现任务,了解实践过程中的知识要点,巩固课堂教学内容;教师在任务结束后,对学生的学习过程和结果做出点评并进行考核,及时纠正学生学习中存在的问题。
在任务引导式教学过程中,通过任务的完成,帮助学生掌握各个知识点,培养学生的自学能力和独立分析问题、解决问题的能力。
2.任务引导式教学的实施
本文以C语言为例,讨论如何在程序设计语言课程中实施任务引导式教学方法。在C语言课程教学过程中,通过参考多本教材和大量中英文文献,整理出符合课程教学需要的相关知识点[3],针对这些知识点设计出相关学习任务,共计九项,任务的概要说明如下:
数据类型、运算符和表达式的计算:给出表达式,设计程序完成计算过程;
顺序程序设计:实现华氏温度与摄氏温度间的转化;
分支结构程序设计:(a)实现三角形形状的判断,(b)求解水仙花数;
循环控制:(a)打印二维图案,(b)求最大公约数和最小公倍数;
数组的应用:(a)检验并打印魔方矩阵,(b)判断字符串是否回文;
函数的使用:(a)设计实现汉诺塔游戏,(b)显示斐波那契数列;
指针的运用:(a)冒泡排序,(b)二维数组元素求和;
结构体、共用体的使用:实现学生多门课程成绩打印输出;
文件的应用:磁盘文件复制。
本文以任务3为例,介绍任务引导教学方法的实施过程。
2.1布置任务
针对了解并掌握分支结构程序设计方法及其用途的教学目标,在课堂教学开展之前,为学生布置相关任务,如下:
了解if语句和switch语句;
了解如何设计条件表达式;
设计一个实现程序可以输入三角形的三条边,判断是否是一个合法三角形;
设计程序分解一个三位整数。
学生通过交流平台接到任务信息后,按预先分组开始学习和讨论。分组学习讨论有以下优点:首先,可以集思广益,新的知识需要从不同的角度去理解和学习,小组交流可以增加知识吸收的数量,提高知识吸收的速度;其次,小组交流可以取长补短,学生作为学习的个体,每个人对这一领域知识的接受能力都是不同的,讨论可以使得学生相互促进;最后,小组讨论还可以培养学生的参与和协作意识。
每组在讨论后,将相关内容整理为学习报告,每组提交一份。小组成员按不同的任务轮流撰写,培养对知识的总结、归纳、表述和整理的能力。
2.2课堂教学
课堂教学围绕任务中的要求展开,分别介绍相关知识点: 了解if语句和switch语句。知识点:if语句的3种形式及对应的语法规则、执行流程,switch语句的语法规则、执行流程。
了解如何设计条件表达式。知识点:6个关系运算符、3个逻辑运算符的基本概念、基本属性、运算规则。
介绍分支结构程序设计的基本过程。知识点:算法分析,确定问题可以利用哪种分支语句实现,以判断三角形形状的问题为例,讲解整个程序设计过程。
在整个教学过程中,对知识点的讲解及资料的组织,都围绕任务中的三部分内容进行,同时允许学生在讲解过程中随时提出问题,因为学生在此之前对相关知识已经有一定程度的了解,所以提出的问题相对比较有代表性;同时,前期的学习过程,让学生对相关内容产生兴趣,使得课堂教学效果事半功倍。
2.3上机实践
依据课程开始之前布置任务的内容,结合上课讲解的知识点,对原有任务进行修改细化,让学生通过实际动手完成任务,对知识点加深理解。细化后的任务概述如下:
2.3.1输入三角形的三边长,判断这个三角形是否是直角三角形。
2.3.1.1算法分析:直角三角形斜边最长,要先找出三边中最长的边,判断最长边的平方是否等于其余两边的平方和,若相等就是直角三角形。
2.3.1.2源程序:
#include
void main( )
{
int a,b,c,t;
/* 三边设为a,b,c,t是用于交换的中间变量 */
scanf("%d,%d,%d",
关键词: 任务引导式教学 程序设计类课程 教学方法
程序设计类课程是高校计算机专业开设的一类主要的专业课程,通常至少开设一门,此类课程多为实践性内容较多。程序设计类课程注重实践动手能力的培养,因此课程的教学和实践环节具有同等重要的地位。本文针对程序设计类课程的特点,提出了在教学过程中应用任务引导的方法,从而在提高学生学习主动性的同时,增强他们的实践动手能力和团队协作精神。
1.任务引导式方法
1.1任务引导式方法的主要内容
所谓任务引导式教学是指在教学过程中,教师布置相关任务,学生依照任务要求逐步完成对教学内容的学习及实践的过程[1,2]。在传统教学方法中,学生处于被动接受知识的状态,对新技术的掌握完全局限于教师讲授的内容,而任务引导式教学方法强调,以教师提供的任务作为引导,学生在完成任务的过程中主动地学习知识,教师在整个教学过程中的作用不再仅限于对知识的讲解,更多的是对学生所学知识正确性的确认及纠正。
任务引导式教学方法主要包括以下几个主要内容:
教师布置学习任务,教师在课前将学习任务通过交流平台(公共电子信箱或E-class等)布置给学生,学生通过分组讨论的方式学习,然后撰写并提交学习报告。
教师以布置的学习任务为主线,以解决任务中的问题为目标,讲授知识点,重点讲解学生讨论后提出质疑的问题。
学生上机完成学习任务中的实践部分,这是针对计算机相关技术课程设计的环节,学生通过实践进一步对所学知识进行巩固,教师在此环节中起到辅助指导的作用。
教师通过学生在完成任务过程中提交的学习报告和上机情况,对学生进行考核。
1.2程序设计类课程中应用任务引导方法的必要性
目前,在程序设计类课程的教学过程中存在一些问题,表现为:
程序设计语言类课程,通常由基本语法入手,层层递进,对于初学者而言不熟悉的术语和关键知识点较多,对没有任何编程经验的学生而言具有一定的难度。
教师采用传统教学模式,填鸭式地讲解,学生处于被动接受的状态,学习过程枯燥无味,严重缺乏学习主动性。
程序设计语言虽然自身语法简单,但涉及内容广泛,教学内容离散性较强,知识点太多,且应用领域广泛,仅靠课上教师讲解,往往事倍功半。
针对以上这些问题,应用任务引导式教学方法,可以使得学生在完成任务的过程中完成学习。在课前的分组讨论中充分地打开视野,了解相关领域知识,通过按照学习任务要求整理学习报告,进一步对这部分知识进行理解,同时将问题带入课堂,带着问题接受教师的讲解;教师依照任务实现的过程讲解知识点,使得知识的离散性问题得以解决,同时学生学习时有备而来,教学过程不再是单方向的活动,增加了教学的互动性可能;在实践环节中,学生通过动手实现任务,了解实践过程中的知识要点,巩固课堂教学内容;教师在任务结束后,对学生的学习过程和结果做出点评并进行考核,及时纠正学生学习中存在的问题。
在任务引导式教学过程中,通过任务的完成,帮助学生掌握各个知识点,培养学生的自学能力和独立分析问题、解决问题的能力。
2.任务引导式教学的实施
本文以C语言为例,讨论如何在程序设计语言课程中实施任务引导式教学方法。在C语言课程教学过程中,通过参考多本教材和大量中英文文献,整理出符合课程教学需要的相关知识点[3],针对这些知识点设计出相关学习任务,共计九项,任务的概要说明如下:
数据类型、运算符和表达式的计算:给出表达式,设计程序完成计算过程;
顺序程序设计:实现华氏温度与摄氏温度间的转化;
分支结构程序设计:(a)实现三角形形状的判断,(b)求解水仙花数;
循环控制:(a)打印二维图案,(b)求最大公约数和最小公倍数;
数组的应用:(a)检验并打印魔方矩阵,(b)判断字符串是否回文;
函数的使用:(a)设计实现汉诺塔游戏,(b)显示斐波那契数列;
指针的运用:(a)冒泡排序,(b)二维数组元素求和;
结构体、共用体的使用:实现学生多门课程成绩打印输出;
文件的应用:磁盘文件复制。
本文以任务3为例,介绍任务引导教学方法的实施过程。
2.1布置任务
针对了解并掌握分支结构程序设计方法及其用途的教学目标,在课堂教学开展之前,为学生布置相关任务,如下:
了解if语句和switch语句;
了解如何设计条件表达式;
设计一个实现程序可以输入三角形的三条边,判断是否是一个合法三角形;
设计程序分解一个三位整数。
学生通过交流平台接到任务信息后,按预先分组开始学习和讨论。分组学习讨论有以下优点:首先,可以集思广益,新的知识需要从不同的角度去理解和学习,小组交流可以增加知识吸收的数量,提高知识吸收的速度;其次,小组交流可以取长补短,学生作为学习的个体,每个人对这一领域知识的接受能力都是不同的,讨论可以使得学生相互促进;最后,小组讨论还可以培养学生的参与和协作意识。
每组在讨论后,将相关内容整理为学习报告,每组提交一份。小组成员按不同的任务轮流撰写,培养对知识的总结、归纳、表述和整理的能力。
2.2课堂教学
课堂教学围绕任务中的要求展开,分别介绍相关知识点: 了解if语句和switch语句。知识点:if语句的3种形式及对应的语法规则、执行流程,switch语句的语法规则、执行流程。
了解如何设计条件表达式。知识点:6个关系运算符、3个逻辑运算符的基本概念、基本属性、运算规则。
介绍分支结构程序设计的基本过程。知识点:算法分析,确定问题可以利用哪种分支语句实现,以判断三角形形状的问题为例,讲解整个程序设计过程。
在整个教学过程中,对知识点的讲解及资料的组织,都围绕任务中的三部分内容进行,同时允许学生在讲解过程中随时提出问题,因为学生在此之前对相关知识已经有一定程度的了解,所以提出的问题相对比较有代表性;同时,前期的学习过程,让学生对相关内容产生兴趣,使得课堂教学效果事半功倍。
2.3上机实践
依据课程开始之前布置任务的内容,结合上课讲解的知识点,对原有任务进行修改细化,让学生通过实际动手完成任务,对知识点加深理解。细化后的任务概述如下:
2.3.1输入三角形的三边长,判断这个三角形是否是直角三角形。
2.3.1.1算法分析:直角三角形斜边最长,要先找出三边中最长的边,判断最长边的平方是否等于其余两边的平方和,若相等就是直角三角形。
2.3.1.2源程序:
#include
void main( )
{
int a,b,c,t;
/* 三边设为a,b,c,t是用于交换的中间变量 */
scanf("%d,%d,%d",