APP下载

程序设计课程知识结构分层及教学方法探讨

2016-10-31徐伟光苗壮李阳王家宝

电脑知识与技术 2016年22期
关键词:知识结构程序设计教学方法

徐伟光+苗壮+李阳+王家宝

摘要:随着计算机技术应用的深度普及,理工科学生为了使用计算机解决本领域的实际问题,都需要具备一定的程序阅读和设计能力。因此《程序设计基础》已经成为理工科的公共基础课程。然而对课程知识层次不加区分,过度强调编程语言语法规则的讲授,使学生形成了对程序设计错误的认识,教学效果不好。该文将程序设计课程知识划分为编程语言语法规则、程序设计思想和计算机算法三个层次,并对各层次针对性的教学方法进行了探讨。

关键词:程序设计; 知识结构; 教学方法; 语法规则;算法

中图分类号:G642.0 文献标识码:A 文章编号:1009-3044(2016)22-0150-02

Abstract: As the application of computer technologies popularizing, in order to solve problems of their domains, students of science should have the ability of reading and designing program. Therefore, “program designing foundation” has become a public basic course for all students of science. However, ignoring knowledge hierarchy of the course and overemphasizing teaching grammar rules of some specific program language may leading students to a misunderstanding of program designing, and the effect of teaching is not so good. Knowledge structure of the course is divided into three levels in this paper, which are program rules of programing language, method of program designing, and computer algorithm. Methods of teaching for the three levels are discussed as well.

Key words: program designing; knowledge structure; teaching method; grammar rules; algorithms

1 引言

引言内容。 《程序设计基础》课程是一门公共基础课程,其教学目标是培养学生掌握编程语言的基础知识、技术和部分算法,掌握程序设计的思想和方法,培养学生编程解决实际问题的能力。然而,由于编程语言的语法丰富多变,需解决是的实际问题案例也相对较多,教师的大部分时间和精力都用于讲授编程语言的语法规则、语义、程序基本结构和算法思想[1]。尽管采用了教室理论讲授和机房实验实践方式结合,但是有针对性的引导和提高学生实际程序设计能力举措并不多见。这个问题的深层次原因是部分教师照本宣科,而对该课程知识分层和分层采取不同教学方法缺乏主动思考和探索。

2 知识结构分层及教学方法

早在程序设计未走入课堂之前,学者们就开始了对程序设计本质的思考。N.With认为程序就是算法和数据结构的结合。高福成等人认为程序设计课程的知识分为语言知识、程序设计方法和算法三个模块[2]。李海伦等人认为程序设计是算法设计、数据结构和程序设计方法三者的统一[3]。他们的各种视角和观点都是对程序设计知识分层的有益探索和推进。一般来说,利用计算机解决实际问题分为三个基本步骤。首先要以适当设计思想将实际问题分解,其次为分解后的子问题分别设计算法,最后再用某种语言编程实现。与这三个步骤相对应,程序设计基础课程所讲授的知识分为三个层次:编程语言语法规则、算法、程序设计思想。

2.1 编程语言语法规则

语法规则处于知识的最底层。从实际工程应用看,它是掌握编程技术的基础;从应试角度看,它是课程考核的重点。计算机二级考试中相当一部分题目都是对语法规则的考核。基于这些原因,课堂教学内容大部分都聚焦在各种语法规则和变化的讲授和实践上。而长久以来的这种解学模式形成了对学生的错误引导,很多学生认为printf和scanf的使用规则就是课程的全部。多年以后,那些不从事编程工作的学生留下的印象就只剩下“printf”,而从事编程工作的学生也需要相当长时间的实践才能纠正对程序设计的错误认识。因此,语法规则是程序设计教学内容的一部分,但不应该成为重点。

相较于填鸭式的灌输语法规则,更恰当的方式是以问题需求为牵引,在需要时引入新的语法规则介绍给学生。例如,当需要控制输出十进制整数占10位且左对齐右对齐时使用printf(“%-10d”, x);当需要一次定义多个同类型变量时使用数组;当不适用变量名访问变量时使用指针等。同时迅速在实验中让学生结合实际问题加以联系,从而达到记忆和熟能生巧的教学效果。

2.2 程序设计思想

语法规则处于知识的最高层。从实际工程应用来看,它是开发正确可靠的程序的前提,是提高程序复用性、可扩展性,降低调试和维护难度,缩短开发周期的重要手段;从应试角度看,卷面上只能通过程序设计题让学生设计编写一个完整程序以解决某个实际问题来考核,但由于考试时间和阅卷难度,该实际问题一般复杂度不高,所以并不能很好的考查学生对程序设计思想的掌握程度。由于考核方式牵引,教师往往在课堂上忽视对程序设计思想的教授和培养,最终导致很多考试成绩很高学生,在走上工作岗位后反而不会编程。

程序设计思想的培养,只能通过抽象思维的教学方法引导学生思考、模仿和锻炼。例如以贪吃蛇游戏等复杂度稍高的实际问题,讲解如何将复杂问题分解转化成子问题,以及如何建立子问题之间的逻辑关系和数据关系,激发学生的主动思考的兴趣,鼓励学生独立完成相对复杂程序的激情,进而使其程序设计能力得到潜移默化的提高。

2.3 计算机算法

计算机算法处于知识的中间层。从实际工程应用看,它是为分解后的子问题设计具体解决方案和最终形成计算机可执行的程序代码的过渡阶段;从应试角度看,一般通过程序阅读题考查学生能否跟踪算法并最终得到正确输出结果,通过程序设计题考查学生能否设计算法解决一个具体实际问题。

计算机算法是计算机科学中一项专门知识,包括排序、加密等具体复杂算法以及算法的时间复杂度和空间复杂度计算方法等。而在程序设计基础课程中,在算法上仅要求学生能读懂和理解程序运行流程,掌握设计和实现流程的能力。在该层次上的教学应当采用形象思维的方法,以具体案例为牵引,对涉及算法的,用流程框图直观的展现程序如何控制算法运行,引导学生逐步从形象思维过渡到抽象思维[2]。

3 结论

木工技术的知识结构层次与程序设计具有很强的相似性。要教出一个好木工,不仅要教会其熟练使用刨子、句子、墨线等基本工具,还要教会其将一件大家具分解成门板、腿、闩等基本构件及其组装方式的设计思想,教会其设计单个构件的制作工序,从而具备独立打造完整一套家具的能力。类似的,如果教师们能够按照程序设计基础课程的知识层次,有针对性的采用不同的教学方法讲授不同层次的知识,培养和锻炼学生的不同层次的能力,那么一定能取得较好的教学效果。

参考文献:

[1] 孔万增, 戴国骏.“因材施教”在《C语言程序设计》课程教学中的几点思考[C].计算机教学研究与实践——2009学术年会论文集, 2009.

[2]李海伦, 唐全.“程序设计”课程教学改革的研究与实践[C]. 全国高等院校计算机基础教育研究会2004学术年会暨全国高等院校计算机基础教育研究会成立20周年纪念大会, 2004.

[3] 高福成, 潘旭华.“程序设计”课程教学方法与手段改革探讨[C]. 全国高等院校计算机基础教育研究会2007年会暨全国高校计算机基础教育2007论坛, 2007.

猜你喜欢

知识结构程序设计教学方法
基于Visual Studio Code的C语言程序设计实践教学探索
把握核心概念 优化知识结构
我国正当防卫研究的网络知识结构与核心脉络
教学方法与知识类型的适宜
从细节入手,谈PLC程序设计技巧
概率统计知识结构与方法拓展
高职高专院校C语言程序设计教学改革探索
基于九因子模型的新手教师TPACK知识结构分析
PLC梯形图程序设计技巧及应用
我的教学方法