APP下载

技能、知识、兴趣:基于斯坦福2025计划之轴翻转的Python程序设计课程教学改革实践

2021-07-25彭鹏

电脑知识与技术 2021年16期
关键词:教学改革

彭鹏

摘要:Python语言是目前较流行且易于上手的程序设计语言,Python程序设计是软件技术专业的专业课程。文章结合斯坦福大学2025计划的核心举措之一“轴翻转”进行教学改革尝试,将教学环节改为四部分:1)速讲Python基础语法知识;2)项目技能模块化分解;3)反补知识夯实技能;4)重新应用项目技能。以此方式提升学生的编程开发兴趣,推动教学设计环节改革。

关键词:Python程序设计;斯坦福大学2025计划;轴翻转;教学改革

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2021)16-0116-03

开放科学(资源服务)标识码(OSID):

1 背景

2020年年底,在TIOBE于12月發布的最新排行榜中,Python涨幅占优,预计有望连续四年成为“年度编程语言”,在这一年中Python的涨幅最大,其次是C++、R语言等。Python语言逐步成为全世界最受欢迎的程序开发语言之一,而且生态系统应用越来越广泛,广泛应用于系统运维、图形图像处理、Web服务应用、网络爬虫、数据分析、办公应用、机器学习、人工智能等业务领域。随着人工智能时代的到来,Python强大的数据处理和科学计算能力体现出[1]。

1.1 Python程序设计语言的特色

Python程序设计语言是一种高层次的结合了解释性、编译性、互动性和基于面向对象的脚本语言,其语言的易读性相对强大,相比于其他程序设计语言(C、C++、JAVA等)尝试用的关键字以及一些标点符号,而且Python比其他语言更有相对特色的语法结构。

Python是一种解释型语言,表示在开发的过程中无需编译,可以直接运行,相当于PHP和Perl语言。Python是交互式语言,表示使用者可以在命令行提示符后直接执行代码。Python还是一种基于面向对象的语言,表示Python支持继承、封装、多态的面向对象风格编程技术。最后Python支持广泛的应用开发,对初级程序员相对友好[2]。

Python的特点:

1)易上手学习:语法关键字相对较少,结构相对简单,而且Python具备明确定位的语法;

2)易阅读理解:代码清晰,结构要求严格,更易于理解;

3)易维护代码:其源代码相对于其他语言便于维护;

4)广泛的标准库:Python具备相当广泛的库资源,全球的开发者共同维护更新,支持各种功能,而且跨平台,支持UNIX、Linux、Mac和Windows系统等;

5)支持互动模式:开发者可以在终端输入代码并直接运行获取结果,支持测试和调试代码;

6)可移植性:由于Python的开放特性,可以被移植到多个平台;

7)可扩展兼容:Python支持在其代码中添加并运行其他程序设计语言(如:C、C++);

8)数据库支持:Python支持所有主要的商业数据库接口方法;

9)GUI图形化编程:Python支持图形编程;

10)可嵌入式编程:开发者可以把python代码嵌入到C/C++程序中,使程序获得脚本化功能。

2 轴翻转特色

目前我校软件技术专业的专业核心课程有6门,包括C#程序设计、Java程序设计、数据库应用与维护、软件测试技术、JavaEE企业级开发、UML建模与设计模式;专业课共有4门,包括大数据分析与应用、Linux程序设计、数据结构、Python程序设计;专业基础课共有6门,包括信息技术基础、图形图像处理、计算机专业英语、软件工程、计算机网络、网页设计与制作。随着IT技术的迭代发展,Python作为程序设计语言愈发体验出其重要性,所以Python程序设计也首次加入专业课当中。

为了更好地支持软件技术专业学生的学习,结合斯坦福大学2025计划,针对软件专业学生进行相应的教学设计改革,斯坦福大学2025计划包含四项核心部分:开环大学[4]、轴翻转[5]、自定节奏学习[6]、有目的的学习[7]。其中轴翻转是此次进行的教学改革。

轴翻转(Axis Flip)是指由以往的强调知识转换到注重能力培养。现在教育模式普遍采用课程知识的教学,课程教学的重点是学科知识,对学生的考核往往是以每章节的知识点掌握程度为标准,反而相对忽视了学生对该门学科的技能掌握,尤其忽略了该门技术在目前行业中的流行程度以及行业中目前流行的标准。斯坦福大学2025计划提出的轴翻转强调该门学科的知识与技能的相互替换,强调该门学科对应技术的技能掌握。

据了解,我校软件专业学生经历了两年的学科学习和一年的顶岗实习后进入社会,依然无法满足软件企业岗位的要求,还需要在进行相应的学习,毕业生学到的知识与行业的要求差距较大,且动手能力较差。针对此现象尝试进行教学改革的尝试。

3 Python程序设计的教学实践

通过之前对Python语言及斯坦福大学2025计划中轴翻转部分的分析,可以把教学设计重新改革,把整个教学过程分割成四部分:1)Python基础语法知识;2)结合简单项目分模块化进行技能分解;3)根据项目技能涉及点反补知识;4)将知识点重新应用到项目的模块当中完成任务。

3.1 速讲Python基础语法知识

工欲善其事必先利其器,任何程序设计语言都需要先学习语法基础,在学习语法基础之前就需要搭建好开发环境,用较少课时的时间让学生在自己的机器上搭建好开发环境,教学使用基于Windows操作系统的Python3.8版本开发环境,开发工具使用PyCharm社区版,这两种工具方便安装,学生容易上手。

接下来用相对较快的时间把Python语言的基础语法知识讲授完毕,先让学生对语法有一定程度的理解,如:标识符、关键字和数据类型,常量与变量,运算符与表达式,源程序的书写风格,赋值语句,基础输入输出,字符串操作,Python内置函数,程序控制结构,列表、元组、字典和集合,Python函数和模块等。

在语法基础学习完毕后即可开展下一步项目。

3.2 项目技能模块化分解

兴趣是最好的老师,为了能让学生对Python程序设计持续产生浓厚的兴趣,需要结合目前互联网中实际应用到的代码量相对较少的Python项目程序。我校软件专业学生在开设Python程序设计课程之前已经学习过网页程序设计,学生已经对HTML/CSS有一定程度知识储备,并能熟练运用浏览器开发者模式进行元素查找,接下来将以相对简单Python项目(爬虫抓取网页内容)为例。

第一步:布置任务,要求学生获取豆瓣电影Top250页面的电影排行榜前四页的内容,将排行榜内容存储于文本文件(如:douban100.txt),内容包含名次、电影名称、导演、主演、时间、国家、类型、评分、评价人数等,并且将电影封面照片存储于硬盘的top100的文件夹中,图片名称对应名次,效果如图1、图2。

第二步:带领学生使用浏览器收集,逐页打开网页,手动复制文字存储于top100.txt,封面图片存于文件夹,通过人工步骤让学生体会当工作量大的时候人工方式的弊端,并逐步引入程序化方式。

第三步:带领学生使用谷歌浏览器的开发者工具功能,通过检查排名第一的电影的网页代码,让学生自己阅读网页代码,通过阅读发现之间的HTML元素的内容结构,效果如图3。

通过阅读代码发现每一部电影的网页代码均存在于ol列表下的li标签页中,其中封面在class为pic的div标签中,文字描述存在于class为info的div标签中,之后引导学生自行打开对应div标签进行更深一步的探索,如:封面图片的链接地址、电影名称、导演等。

第四步:引入XPath概念,快速讲解XPath概念,告诉学生XPath可用来在XML文档中对元素和属性进行遍历,并以电影排行榜的网页教授使用XPath的使用方式,如:

电影封面的语法为//ol[@class="grid_view"]/li;

电影名称的语法为div/div[2]/div[@class="hd"]/a/span[1]/text();

以此为例让学生自行对剩下的内容,如:排行、评论数、评分等模块进行编写。

第五步:引入Python第三方模块

此时介绍Python强大的第三方模块库,urllib库、request库和lxml的etree库,先讲解安装模块方式,然后演示程序写法,最后带领同学完成豆瓣排行榜第一页的内容抓取。

第六步:通过程序完成剩下三页的内容

通过分析电影排行榜的URL地址,引导学生需要对重复步骤代码进行合并,使用之前学习的基础知识循环进行操作,并对学生进行技术支持。

3.3 反補知识夯实技能

通过上一步的任务分解操作,总结其中的知识技能点,如:前三步涉及的HTML网页设计技能,第四步涉及的XPath技能,第五步涉及的HTTP请求和第三方模块使用方法等,对这些技能进行再次讲解,加深学生对这些知识点的理解。

3.4 重新应用项目技能

鼓励学生再次对代码进行优化,并鼓励学生进行其他网站页面的网页内容抓取,留下悬念如何避免某些网站的反爬虫机制。

4 结束语

结合斯坦福大学2025计划的轴翻转特色,对Python程序设计进行相应的教学改革,并不按照教科书上固定的章节内容进行讲授,而是在基础语法知识讲授后直接进行项目操作,通过项目设计的技能点反补教科书上对应的知识点,注重培养学生掌握的技能,并进一步提升学生对Python程序设计的兴趣。教学改革要适应IT时代的发展,尤其是技术的迭代更新,Python程序设计课程的教学目的最终是以学生熟练掌握Python语言后能自己动手进行项目开发,并培养出自学能力。

参考文献:

[1] 嵩天,黄天羽,礼欣.Python语言:程序设计课程教学改革的理想选择[J].中国大学教学,2016(2):42-47.

[2] 张莉,金莹,张洁.多样化可扩展的Python教学体系探索与实践[J].计算机教育,2017(8):18-22.

[3] 嵩天,礼欣,黄天羽.Python语言程序设计基础[M].2版.北京:高等教育出版社,2017.

[4] Stanford University 2025. Open Loop University[EB/OL].[2020-12-12].

http://www.stanford2025.com/open-loop-university

[5] Stanford University 2025. Axis Flip[EB/OL].[2020-12-12].http://www.stanford2025.com/axis-flip.

[6] Stanford University 2025. Paced Education[EB/OL].[2020-12-12].http://www.stanford2025.com/paced-education.

[7] Stanford University 2025. Purpose Learning[EB/OL].[2020-12-12].http://www.stanford2025.com/purpose-learning.

【通联编辑:谢媛媛】

猜你喜欢

教学改革
完全学分制下选课管理的思考与实践
金工实习教育对工科院校创客教育影响分析
新形势下小学语文教学方法研究