基于任务驱动的高级语言程序设计课程改革

时间:2022-10-02 10:27:44

基于任务驱动的高级语言程序设计课程改革

摘要:程序设计思维能力是计算机及相关专业学生最重要的专业能力之一,程序设计课程教学的重要任务之一是培养学生的程序设计思维能力。本文分析了高级语言程序设计课程的现状,提出基于任务驱动,以提高学生程序设计能力为目的的课程体系改革与实践,从课程教学内容、教学方式、教学手段和考核方式等方面进行了教学探讨。

关键词:程序设计课程;教学改革;程序设计能力

1 研究背景

程序设计能力是计算机及其相关专业学生最重要的专业能力之一,它是评价本专业本科生培养质量的首要指标。高级语言程序设计是计算机专业学生的第一门专业基础课程。通过该门课程的学习,学生应该掌握正确的、规范的编程方法;掌握通过编程解决问题的方法和思路;加深对计算机基本概念的理解,训练逻辑思维能力,培养严谨的科学作风。因此,该门课程的教学质量直接决定了学生程序设计能力的高低,对学生专业素养的形成具有重要的影响作用。

在高级语言程序设计课程的教学过程中常常会出现这样的矛盾冲突:教师抱怨课时少,课本上的内容不能讲细讲全,学生底子薄,难以深入理解课程的要义和精华;而学生则抱怨课程概念比较复杂,规则繁多,枯燥乏味,难以学习,难以实际运用,因而缺少学习的兴趣和动力,更谈不上自主学习。

在多年的教学实践中我们感到,老师在课堂教学中过于注重语句、语法和一些细节的讲解,考核(特别是标准化考试)也是偏重于语法,课程基本上是以高级语言自身的体系脉络展开的;在常用的“讲授语法规则,给出例题,再加解释”简单三步式的教学中,学生花了很大精力学习语法,但还是不知如何编写一个正规的程序,不知道怎样通过编程去解决问题,忽视了程序设计思想的学习。分析问题、解决问题的能力不高,很大程度上影响了学生专业技能的培养。为此,我们对课程的教学现状作了调查和分析研究,主要状况如下[1]:

1) 目标定位不明确。学习编程语言还是学习程序设计方法?教授编程知识还是培养用编程知识解决实际问题的能力?程序设计类课程目标定位不明确,没有建立课程目标体系,专业基础课的作用不明显。

2) 对专业能力的培养重视不够。课程教学中太过强调程序语言本身的要素,以知识点为目标,忽视了对知识综合运用和实践能力的培养。

3) 对课程的实践性重视不够,实际知识运用的训练较少。实践教学不够系统和完善,实践项目的设计没有充分考虑能力目标的培养而过多关注程序语言本身的特性。

4) 练习和考试。多采用书面或验证性实验的形式,以标准化习题和简单的编程题为主,缺少对知识灵活运用的练习题,缺少专业性编程基础的练习题,缺少对程序实际运行的检查,从某种意义上引导学生只关注基本概念和语言要素,忽视了对程序设计能力的锻炼和培养。

5) 从教学效果上来看,学生基本程序设计能力差,遇到程序设计问题不知如何下手,缺乏完整系统的程序设计方法,工作效率低;缺乏专业程序设计的能力和意识,代码质量意识弱,代码质量差,缺乏中等规模以上的程序设计能力。

2课程体系改革

2.1教学内容的改革

经过分析,我们认为在高级语言程序设计课程中一些更为重要的内容没有教给学生(或强调得不够),那就是程序设计的方法和编程解决问题的思路。为此,我们对程序设计课程进行改革,在教学内容的设计以及教学过程的各环节设计中,弱化学生对编程知识和语言本身的关注,突出对知识的运用,使学生能从更高的角度认识学习目的,并在第一门程序设计课程中引入软件工程的思想,指导学生编写规范的程序。改革后的教学内容如表1所示。

2.2教学方法的改进

在教学中,努力贯穿程序设计语言的语法服务于任务求解和程序实现的思想。以知识点为主线,采用问题驱动方式,通过实例来讲授程序设计的概念和方法。重点放在编程构思上,试图贯穿以程序编写带动语法教学的模式,引导学生掌握计算机语言的核心编程方法,提高应用能力,做到计算机语言知识和应用开发能力的融会贯通。

任务驱动是指由教师根据教学内容,以任务为核心组织每一堂课的教学,将学生自主学习和探究过程置于一个特定的情境中。通过交流,引导学生发现问题、解决问题、反思学习,充分发挥学生的主动性和积极性。在教学中,我们把原来“讲授语法知识讲解算法思路学生理解算法思路用该种算法解决实际问题”的课程授课体系,改革为“提出问题分析问题解决的思路和方法(算法分析)解决问题(编写程序)语法小结程序测试、结果分析用该方法解决实际问题”。在专业学生的第一门专业基础课程中引入软件测试的介绍,使学生一开始就建立一个正确的软件测试观点,对提高学生的程序调试能力有很大帮助。

我们学院高级语言程序设计课程是以C语言作为教学语言。下面以“选择结构程序设计”单元为例,说明课堂教学组织结构。

1) 选择结构程序设计教学案例。

任务一:计算一元二次方程的根。

任务二:从键盘输入你和你朋友的年龄,判断谁的年龄最大,输出最大者的年龄。

算法1:用不带else子句的if语句编程

算法2:用带有else子句的if语句编程

算法3:用条件表达式实现

任务三:给出由身高与体重计算的“体指数”,判断某人是否属于肥胖。

算法1:用不带else子句的if语句编程

算法2:用在if子句中嵌入if语句的形式编程

算法3:用在else子句中嵌入if语句的形式编程

任务四:根据输入的百分制成绩,转换成相应的五分制成绩并打印输出。

算法1:用嵌套的if语句编程

算法2:用switch语句编程

任务五:编程设计一个简单的计算器,要求根据用户输入的表达式计算,指定的运算符为加(+)、减(-)、乘(*)、除(/)。

2) 语法小结――if-then; if-then-else; switch。

3) 程序测试――白盒测试法。

4) 编程练习。

在课堂教学组织中要做到选择任务典型,能够代表一些基本的算法,并能留下深刻印象;随着问题算法由浅入深地介绍,语法知识逐步展开;将程序测试引入,不仅需要设计合理的测试数据,还需要设计不合理的测试数据,让学生建立正确的程序测试观点。

2.3教学手段的变化

在教学手段上,积极采用多媒体教学,但不局限于多媒体教学。我们发现,并不是所有的教学内容都适合采用多媒体教学,多媒体技术不恰当的使用会分散学生注意力,不利于培养学生的逻辑思维。在高级语言程序设计课程的教学过程中,我们将传统教学与多媒体教学进行了有机的结合。将一些概念、语句的格式说明、案例代码制作成课件,在课堂上展示,加大信息量的投入。大部分例题和习题直接在C编译环境下讲授,但部分案例的分析和程序的编写过程,则采用传统的黑板板书教学方式,随着老师的讲解和板书,将问题层层剖析、层层深入,能有效带动学生的积极思维,增强师生互动。

建立网络辅助教学平台可以有效地利用教学资源,扩大学生的知识面,增强师生互动。该网站收集了完整的网络课程资料,包括教学大纲、教学录像、网络教学课件、实验指导、在线测试、下载中心、在线答疑等栏目,为学生自主学习提供了丰富的资源。

2.4课程考核方式的改变

衡量高级语言程序设计课程学习的好坏,不是看学生“知不知道”,而是“会不会干”。所以,建立一个服务于课程目标的学生成绩评定方法是一项非常重要的工作。我们要求成绩评定应具有激励、反馈、导向三大功能,达到“以考促学”的目的。因此,在评定内容上不仅仅是基本理论、基本知识的掌握,更要重视对学生学习过程的考核,重视实践和动手能力的考核,侧重考核学生解决问题的能力。

以往,高级语言程序设计课程成绩的评定是以8∶2方式,即期末笔试成绩占该课程总成绩的80%,平时成绩占总成绩的20%的方式。在新的成绩评定体系下,采用5∶3∶2评定方式,即期末笔试成绩占总成绩比例由80%降为50%,增加了实践环节成绩,占总成绩30%,平时成绩仍占总成绩20%。其中,实践环节成绩包括课程学习过程中的10个实验成绩以及课程结束时的实践环节考试成绩。这种考核进一步促进学生对实践能力培养的重视。

3结语

课程特点和教学目标的定位决定教学方法的选择和对教学内容的设计,“案例引导,任务驱动”的教学模式是实施高级语言程序设计课程教学的有效方法。我们对近几年的程序设计教学进行了调查,学生普遍反映课程教学的改革提高了他们的学习兴趣,动手能力和编程能力有了明显提高,为进一步学习和工作打下了良好的基础。

参考文献:

[1] 马雪英,王桂平.以能力为导向的程序设计类课程教学体系[J]. 计算机教育,2011(4):74-78.

[2] 苏小红,陈惠鹏,孙志刚,等.C语言大学实用教程[M]. 北京:电子工业出版社,2009:84-99.

[3] 徐小青,李晓东.“高级语言程序设计”课程教学改革与实践[J]. 计算机教育,2009(13):46-48.

[4] 揭安全,李云清,杨庆红,等. 项目教学模式指导的“数据结构与算法”教学改革[J]. 计算机教育,2008(11):21-23.

Reform on High-level Language Programming Based on Task Driving

ZHU Minghua, JIE Anquan

(College of Computer Information & Engineering, Jiangxi Normal University, Nanchang 330022, China)

Abstract: Programming thinnking ability is one of the most important abilities must be possessed by students majoring in computers specialties. One of the most important tasks of Programming Course is to cultivate students’ programming thinking ability.This paper analyzes the present situation of high-level language programming course. In order to promote the professional programming ability, the paper presents a curriculum system reform and practice based on task-driven, and discusses about curriculum content, teaching methods, teaching methods and evaluation methods.

Key words: Program Design; teaching reform; programming ability

上一篇:在计算机组成原理课程中培养学生动手实践能力 下一篇:师范院校计算机专业程序类课程群设置