使用Python进行非计算机专业程序入门教学的探讨
作者:张茗芳
来源:《电子世界》2012年第17
        【摘要】本文探讨了一种创新的教学方式:使用Python编程语言进行非计算机专业程序入门教学。文章探讨和展示了新的课程设计和教学大纲。本文提供的教学方法也可以非常容易的扩展到对计算机专业和信息系统专业的教学。
        【关键词】程序教学;创新教学;教学技巧;Python
        计算机教学的目标之一,是要使学生具有扎实的问题分析能力和独立的思考能力。要达到这个目标,一定程度的算法能力和编程实践能力必须尽早的教授给学生,也许大一第一/二学期就应该开始。目前,很多学校的计算机相关专业都在不断的发展和实践各种不同的教学方法,期望能让学生更好更快的入门编程。
        但是,众所周知,无论使用哪种编程语言(CC++等),程序入门教学都是比较困难的。程序入门教学的对象是初学者(包括计算机专业和非计算机专业),他们一般只具有
很少甚至没有任何编程经验和背景。程序入门课程面对的困难是:在教会学生掌握分析和思考能力的同时,也要让学生掌握一门具体编程语言的概念及使用。针对这个教学目的,衍生出很多创新的教学方式。而针对这个问题,本文也提出了一种创新的教学方式,即使用Python编程语言进行教学。这一教学方式在我校的计算机专业和非计算机专业都进行了尝试,结果证明这一教学方式是有效和令人满意的。根据学生的反馈和调查,以及不断增长的参加这门课程的学生人数,我们相信这个教学方式值得推广,可以广泛应用到各种不同的计算机专业和非计算机专业的程序入门课程。
        1.为什么选择Python?
        对大多数学校而言,针对非计算机专业开发这门课程是个挑战:首先,学习这门课程的学生完全是一张白纸,没有任何计算机编程或程序设计的概念。其次,通常程序入门是非计算机专业的一门选修课,学生来自不同的专业,有的具有很好的数学背景而有些没有。第三,这门课程教授的编程语言必须符合计算机发展的潮流,应该具有面向对象的特点。当然,可供选择的语言有很多,从CC++Java,但是,问题是,哪一种语言既足够简单能让学生快速上手,同时又能用来解决实际问题。在课程开始的一段时间里,大多
数学校一直使用的是C语言。根据我们自己的经验以及学生的反馈,我们认为,C语言虽然强大,但并不适于教授给没有任何编程背景和经验的非计算机专业学生。
        问题是为什么选择Python?免费,开源,跨平台,面向对象,丰富的Python教程,这些都是选择的理由,但最重要的还是因为Python本身极高的易用性和强大的功能。根据我们最近两年的教学实践,Python得到这一评价是实至名归的。Python的极高的易用性是学生可以把精力集中在对问题的分析和思考上,而不是花在学习复杂的语言结构和语法上。
        2.教学方式
        给非计算机专业教授程序设计,即使是入门级的课程,也是很有挑战性的。传统的程序设计教学包含很多的课时,测试以及考试,对于非计算机专业入门课程来说,这并不是一个很好的方式。主要因为以下几点:第一,因为学生的背景是各不相同,因此需要很多课时来学习基础的编程知识。第二,大部分学生都不喜欢冗长的静态教学,100分钟的课堂很难一直保持注意力。第三,课后作业(包括练习,试验等)并不能真正的让学生理解编程。实际上学生总是在互相copy彼此的作业。为了避免这些问题,教学时应尽可能的使学生在课堂上练习思考和研究问题,以提高学生独立思考和解决问题的能力。为了鼓励学生,
对于能独立在课堂上完成的学生,应给予额外加分。总的来说,教学方式的核心思想是把教师的职能从编程先学c语言还是python高高在上的圣人,变为指导学生的助手,从而来达到我们的教学目的。让学生通过有挑战性的问题,联系课堂活动,来理解程序设计。经过一段对课程的实践,我们观察到了学生的进步。首先,学生喜欢这样的互动教学模式(通过对学生调查和反馈);第二,学生愿意在课堂上花费更多的时间(有些学生甚至建议增加课时);第三,学生变得更加自信并且测验和考试通过率也更高。总而言之,学生比教学方式改变之前学得更好,期末平均成绩证明了这一点。
        3.教学任务和目标
        程序入门教学要达到以下教学目标:
        (1)教授给学生足够的计算机组织与结构知识(软件和硬件)