APP下载

基于专题的程序设计教学

2014-04-29曹文平

计算机时代 2014年11期
关键词:计算思维程序设计教学

曹文平

摘 要: 为提高大学程序设计基础的教学质量,提出基于专题的教学方法。专题式教学方法首先培养学生的程序设计思维方法,以此为基础进行后续的语法及算法的教学,使学生能在学习之初远离繁琐的语法,掌握正确的计算思维方法。专题包括计算机工作原理、流程图、基本语法、基本算法、模块化编程等。该教学方法在实践中取得了较好的效果。

关键词: 程序设计; 专题; 教学; 计算思维

中图分类号:G642.0 文献标志码:A 文章编号:1006-8228(2014)11-72-02

Teaching of program design based on theme

Cao Wenping

(Hubei university of arts and science, Xiangyang, HuBei 441053, China)

Abstract: To improve the quality of teaching of programming design basis, the teaching of programming based on theme is proposed. Teaching based on theme will cultivate thinking methods of students, with syntax and algorithm of teaching, which enable the students to stay away from the tedious grammar and master the correct way of computational thinking in the beginning of the study. The theme includes working principle of computer, flow chart, basic grammar, basic algorithm, modular programming, etc. The teaching method achieved good results in practice.

Key words: programming; theme; teaching; computational thinking

0 引言

针对高校程序设计基础课程普遍存在学生难以掌握的情况,许多文献提出了很多教学方法。文献[1]阐述了计算思维方法在教学中的作用,并提出了在实践中如何培养学生计算思维的方式;文献[2]提出了从建立学生的兴趣入手,通过兴趣的培养来提高学生的学习效果;文献[3]指出了教材在教学中的地位及作用。这些思想或方法在教学中都能起到重要的作用,但如果学生没有思维方法作为基础,则兴趣或教材也就无从谈起。思维方法的培养,应该无人质疑它的重要性,但实践中却收效甚微。究其原因,主要是把思维方法培养和语法教学合二为一,造成学生疲于应付语法的繁琐而无暇顾及思维方法的训练。而思维方法的训练由于要改变原有的思维方式,所以是该课程教学中的难点。本文提出以专题教学的方式将思维方法培养和语法教学分开,在实践中取得了较好的效果。

1 专题教学

目前一般性的教学方法,学生会在学习的过程中出现这样的情况:课堂上都能听懂,课后无从下手。实际是学生没有掌握正确的思维方式,无法站在计算机的角度来思考问题。专题教学先从训练学生的思维方式入手,完成学生的思维方式转变,在此基础上进行语法及算法的教学。整个教学包括六个专题:计算机工作原理、流程图、基本语法、基本算法、模块化编程、其他。思维方法的训练主要在前两个专题中完成。

1.1 计算机工作原理专题

要训练程序设计思维方法,就必须站在计算机的角度思考问题,必须了解计算机的运行过程。这一部分不需要深入讲解,特别是对于非计算机专业的学生来说,只需要知道计算机的运算过程即可。专题中重点讲解内存及其和Cpu的关系,使得学生理解数据在计算机中的流动过程。

这是让学生将抽象的计算机思维具体化的过程,将计算机解题过程和现实生活结合起来的过程,使得学生在设计程序的过程中,自然而然地将问题转化为可计算问题,同时也成为后续专题的基础。

1.2 流程图专题

流程图专题是学生完成计算思维基础的重要一环。该专题主要教授学生对一个具体的问题的完整计算机解决方法。

在一般的教学方法中,流程图仅仅被认为是描述算法的一种工具,所以基本不被重视,特别是非计算机专业学生,可能根本不学。实际中,学生很少能用流程图来描述自己的算法,一方面是因为问题比较简单,另一方面是学生无法用完整的计算思维来解决问题,所以反映出来的是学生的思维方式有问题。

该专题采用流程图作为工具,迫使学生对一个问题有一个完整的解决方案,从而养成正确的思维习惯。专题中需要解决的问题有以下几点。

⑴ 伪代码编写。由于学生没有正式接触编程,所以需要让学生理解伪代码的作用只是简化描述。这时的伪代码可以忽略语法中的细微部分,例如不需要定义变量的类型。可以引入语法中容易理解的部分,例如数组的用法,这样可以很好地和后续部分结合起来。

⑵ 结构化设计。这是至关重要的问题,也是后续程序设计的难点问题。需要让学生完全理解选择结构和循环结构,这里的理解不是指概念的理解,而是细微处的完全理解。对这两种结构来说,需要把握结构的进点和出点,以及这两点的变量状态,只是循环结构需要注意的是每次循环的进出点的变量状态。

⑶ 算法验证。由于算法没有具体的程序,无法运行,所以算法的验证需要人工进行。可以根据计算机的运行原理,人工进行计算,完成验证。这一过程也是对学生计算思维的一个具体化过程,加深学生对计算机解决问题方式的理解,同时也为后续的程序调试打下了基础。

上述三个问题如果解决得较好,则有助于学生的思维方式训练,有了基本的思维方法就等于拿到了进入程序设计的敲门砖。学生若能应用这些思维方法,在后续的学习中就能如鱼得水,逐步完成整个思维方式的转变。

1.3 基本语法专题

这个基本语法专题正式进入程序设计实际操作阶段。因为有了前面的思维方法训练,这一部分变成了非常简单的内容。而在一般的教学中,恰恰这个应该是最容易的部分,却花费了学生大量的时间,使得学生仅仅局限于语法的细节,而偏离了编程思维训练的主要内容。

尽管如此,语法仍然是程序的载体,需要熟练地掌握。可以将语法专题分为多个层次来讲解。第一个层次是基础,主要包括运算符和表达式,特别是c语言,可以说运算符和表达式构成了整个C语言编程的基础,需要学生深刻理解运算符和表达式的深层次含义。第二个层次是结构,前面的流程图训练有了结构的基本知识,这一部分需要加强理解,不管是读还是写程序,首先就是划分程序的结构改变以前大部分学生都没有认识到结构的重要性的现象。第三个层次是运算符和表达式的一些编程技巧,这也可以提高学生的学习兴趣,让学生感觉到自己的创造性,体会到编程也是一种很快乐的事情。

1.4 基本算法专题

在掌握了基本的程序设计思维方式和基本的语法后,一些常用的算法是提高编程层次的必要知识。这一部分内容不能太难,否则有可能打击学生的自信心。对于非计算机专业的学生,不需要掌握太难的算法;对于计算机专业的学生,后续也还会有数据结构的课程。

1.5 模块化编程专题

这一部分仅仅是对前面知识的一个拆解,将一个较大的程序分解为几个相对完整的小部分,所以本质上没有什么新知识。主要讲授特定语言对于拆解的一些常用做法和语法细节。对于C语言来说,就是函数原型的设计问题。这一部分需要训练学生的整体设计方法,模块的划分方法及考虑因素,同时也为后续的软件工程课程提供必要的实践基础。

1.6 其他专题

前面的专题基本完成了程序设计的主要方面,本专题讲授与程序设计相关的一些内容。以C语言为例,包括:头文件概念、结构体概念、文件概念等一些扩充内容。

2 实践效果

实际应用中,本文方法相对一般的教学方法是一个很大的转变,主要体现在最初的教学上。学生的初始学习很容易迷失方向,不知如何进入状态,需要老师有较强的掌控能力,让学生能够领会计算思维和编程本质之间的联系,同时需要进行大量的课外练习,完成第一阶段即思维方式的转变阶段,这一阶段是最重要的,同时也是最难的部分。通过了这一阶段,可以说程序设计基础就完成了大部分内容,后续内容的教与学都会非常顺利。

3 结束语

实践中,本文方法和一般教学方法相比较来看,学生的反映普遍较好,对编程知识的理解明显较为深刻,成绩有较大提高,所以该方法在实际教学中具有可行性。本教学方法仍有许多需要改进的地方,例如专题的划分是否合理,老师的能力是否能支撑该方法,课外练习的设计是否合理等等。后续工作应该对基于专题的教学方法进行更加系统的研究,形成合理完整的教学体系结构。

参考文献:

[1] 张昱,李封,高克宁,李金双.程序设计基础课程计算思维方法研究与

实践[C].第三届教学管理与课程建设学术会议论文集,2012.8.

[2] 栾好利,杨政.基于兴趣的“程序设计基础”课程教学策略的研究与实

践[J].计算机教育,2008.2.

[3] 秦玉平,马靖善.“C语言程序设计”课程教材建设与教学方法研究[J].

计算机教育,2010.4.

猜你喜欢

计算思维程序设计教学
微课让高中数学教学更高效
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
“自我诊断表”在高中数学教学中的应用
对外汉语教学中“想”和“要”的比较
高职高专院校C语言程序设计教学改革探索
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养