时间:2024-05-04
吴经志
摘要:在面向非计算机专业学生的程序设计课程教学中,相比传统编程语言如VB语言等过于强调语法,知识点繁多,且缺乏对程序设计思维能力的培养,使学生失去学习编程的兴趣,Python语言因其教学内容精炼及轻量级的语法和高层次的语言表示而更适合于学生学习掌握。
关键词:非计算机专业学生;VB语言;Python语言
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)29-0094-02
我校非计算机专业第二层次的计算机课程包括有VB语言程序设计、C语言程序设计、信息技术导论和多媒体技术应用等。其中理工科院系开设的是VB语言程序设计或C语言程序设计,从这几年的教学实践来看,作为教师,我们在教学过程中过于注重高级语言语法知识的讲解而忽略了学生的计算思维能力的培养;从教学效果来看,这些非计算机专业的学生普遍存在着对理论知识理解不够深刻,在程序设计过程中缺乏算法思想,同时学习积极性较差、自学能力不足、学习兴趣较难培养等。
1程序设计课程教学现状
目前我校针对多数非计算机专业理工科学生开设的程序设计课程为VB语言程序设计,教学内容分为理论知识教学和上机实验教学两部分,理论教学以教师讲授知识单元为主,实验教学以完成验证性实验作业为主。VB语言发展自早期的Basic语言,用于开发Windows系统中的视窗应用,其教学内容围绕窗体对象、按钮、文本框、图形界面、事件响应等开展,是一种基于视窗的语法设计体系。用VB语言及后续的VB.NET所开发的程序仅限于Windows系统,应用面狭窄,具有较大的局限性。
由于VB语言本身的特性及大多数非计算机专业的学生在学习程序设计课程之前并未接触过相关知识这两方面的原因,我们在教学实践中基本上都会碰到以下几个问题:一是教学过程中过于强调语法知识等语言细节。在教学中侧重程序设计语言本身,针对数据类型、表达式、函数等各种语法规则的教学占用了大量的课时和精力。语法基础虽然是编程基础,但知识点多且琐碎,需要理解、掌握和运用,学生极易在枯燥的语法学习中失去学习编程的兴趣,把课程学习重点放在学习语法规则,并没有掌握程序设计思想和方法,忽视对程序设计能力的培养。二是缺乏程序思维能力的培养。编写计算机程序的难点在于程序设计语言的学习,而重点是解决问题的思路,或者说是程序设计思维。程序设计思维是面向计算机解决问题的一种方式和方法,即运用计算机程序设计的概念、环境、工具和系统等从事计算机程序设计的一种思维方式。当前许多院校在程序设计课程教学中缺乏程序思维能力的培养,学生虽然能通过考试,但是在实践中如果遇到真正的编程问题,往往无从下手,不知该如何分析、分解问题,进而设计算法和解决问题。三是程序设计课程内容与专业结合不够。大部分院校的程序设计课程采用通用的计算机程序设计教材,案例也多针对计算机专业学生所设计,课程的教学内容是和实践没有同学生的专业应用结合起来,在多数非计算机专业的学生看来,程序设计课程是一门计算机编程课,和自身专业无关,后继的专业学习和实践中也很少会使用,因此对程序设计课程兴趣不大,缺乏学习热情。
2用Python语言替代VB语言
Python语言是目前美国大学最受欢迎的程序设计语言之一,由Guido vanRossum于1989年发明,是一种轻语法、弱类型的脚本语言。Python语言的教学内容是分支、循环、函数等基本的程序逻辑关系及功能强大的函数库应用,它是目前最接近自然语言的通用编程语言。相比我们目前开设的VB语言,Pv—thon语言只关心计算问题的求解,其轻量级的语法和高层次的语言表示表达了应用计算机解决问题的计算思维理念。
从计算思维培养角度来看,VB语言等传统编程语言因为过分强调语法,并不适合非计算机专业的学生。在传统应用技能教育向计算思维培养转变的过程中,Pvthon语言作为新技术时代的轻语法程序设计语言,无疑是更合适的选择。Pvthon语言解释器是开源的且开源协议限制较少,基于该语言编写的程序符合我国自主可控的信息安全要求;其易学易用的特点和丰富的开源库可以给学生带来一个全新的程序设计认识,改变目前学生想学好编程语言但学不会学不精的状况。随着大数据、云计算等概念的兴起,当代信息社会要求大学生除具备操作计算机的基础技能外,还应具备一定的編程能力,用于解决学习和工作生活中遇到的各类非通用计算问题,理解并实践计算思维。
从我校的程序设计教学情况来说,要用Python语言替代VB语言,在教学理念方面,有如下几个地方要做出转变:
(1)Python语言教学不是传统高级语言教学的Python版。
以VB语言为例,在程序设计教学中,语法是教学重点,教学过程围绕按钮、文本框、图形界面等展开,其诠释的是计算机视窗时代的计算思维。Python语言则弱化语法讲解,更注重程序本质。Python语言的特点是开源、跨平台、脚本执行、通用和具有粘性,其诠释了复杂信息系统时代的计算思维。
(2)Python语言教学不是基本算法表达的教学手段。
算法即解决问题的步骤序列,其作用是表述人类解决问题的思想,对于复杂的问题,直接写出程序是比较困难的,通常需要先设计算法,用自然语言或流程图或伪代码描述出来,再用高级语言进行编程。而在使用Python语言的时候,我们可以在描述算法的同时,让程序也同步编写出来,让学生更侧重于计算问题的解决。
(3)Python语言教学需要渗透“开源开放”思想。
开源指的是软件的源代码是开放的。在微软成立之前,程序是程序员思想和智慧的结晶,人们可以共享程序员的这种智慧成果。而自微软成立之后,人们意识到,程序是有知识产权的,软件是要花钱买的,在这种思想指导下,比尔·盖茨创造了微软帝国,软件的商品化也促进了软件产业的发展。但随着社会的发展,人们的计算机知识水平越来越高,这对于想要进行自我调整的软件产业来说,闭源就显得跟不上时代了,而应用开源思想,可以最大限度地集成各种各样的天才思想,使得软件系统更加完善,同时更加开放。
(4)Python语言教学需要提高练习题品味,激活创新。
面对非计算机专业的学生,我们的程序设计教学不能仅以数据处理为目标,这样会让学生觉得编程很无聊,使得课程本身缺乏对学生的吸引力。通过结合Python语言的特点,设计更好的教学案例,让学生觉得编程也可以很好玩,很有趣,很时尚,以激发他们学习的热情。
3教学案例
Python解释器提供了几百个内置类和函数库,此外,世界各地的程序员通过开源社区贡献了十几万个第三方函数库,几乎覆盖了计算机技术的各个领域,编写Python程序可以大量利用已有的内置或第三方代码,具备良好的编程生态。
我们这里以PIL库为例,介绍一下Python库的使用。PIL(Python Image Library)库是Python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素、色彩操作功能,还可以用于图像归档和批量处理等。PIL库支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、裁剪、叠加以及向图像添加线条、图像和文字等操作。根据功能不同,PIL库共包括21个与图片相关的类,这些类可以看作是PIL库的子库或P1L库中的模块。
这里有一张图片eat.1ipg,其存放于D盘py文件下,效果如图1所示,若要获取这张图片的轮廓效果,可通过调用PIL库中的Image类和ImageFiher类的相关方法实现。
Image類是PIL库中最重要的类,它代表一张图片,引入这个类的方法如下:
from PIL import Image
在PIL中,任何一个图像文件都可以用Image对象表示。表1列出了Image类的图像读取和创建方法。
要加载图像文件cat.jpg,方法如下,之后所有操作对iml起
其中第1、2两条代码分别为引入PIL库中的Image类和Im-ageFiher类,第3条代码为加载图片eat.jlpg并用变量im1表示,第4条代码为获取图片iml的轮廓效果并用变量im2表示,第5条代码为将图片im2保存至D盘py文件夹下并命名为ctcat.jpg。运行以上代码,即可获得图片ctcat.jpg,其效果如图2所示。
4结束语
在本学期的Python语言程序设计试讲教学过程中,我最大的感受是对于这门最接近自然语言的通用编程语言,多数学生都能够理解并掌握它。在学习程序的分支结构、循环结构、函数应用等知识点时,学生们并没有感觉到枯燥无味,反而因一些“简单”或好玩的Python库及实例,如turtle库、PIL库、词频统计实例等,激发了他们学习的兴趣和积极性。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!