2018年第7期168
研究与探讨
信息技术与信息化
Jupyter Notebook在Python教学中的应用探索
薛煜阳* XUE Yu- yang
摘 要 针对国内高校程序设计课程教学的现状和存在的问题,本文提出利用Python 作为程序设计课程的教学
语言。Python 语言具有简洁性、易读性、可扩展性,有助于提高学生对计算机编程的兴趣,提升教学质量,有利于学生计算思维的培养。
关键词 Jupyter Notebook;Python;程序设计
doi:10.3969/j.issn.1672-9528.2018.07.052
* 新疆财经大学网络与实验教学中心 新疆乌鲁木齐 830012
1 引言
随着计算机技术对各行业的不断渗入,国内高校对非计算机专业通常都会开设一门计算机语言编程课程,以便培养学生的计算思维,主要讲授为C、JAVA、C++、VB 等传统程序设计语言。传统程序设计语言或语法复杂,对计算机相关理论知识要求较高,入门困难,对编程能力的要求较高,或功能、编程思想陈旧、版本陈旧不能适应计算机技术的发展。在面对“互联网+”时代背景下,这些传统编程语言的课程教学多年缺少变化,已经与时代有所脱节,尤其是在面对大数据分析、云计算、人工智能、计算机视觉等新兴领域,不具有优势。而Python 语言简单易学、扩展库丰富、功能强大,得到了包括谷歌、雅虎等工业界的青睐。随着导致国外教育界的广泛推广,但在国内目前采用Python 教学的高校较少。2 Python 程序设计语言python大数据就业前景
Python 是一种解释性高级语言,具有简洁、易读、扩展性好、平台可移植性、开源等优点,同时具有丰富、强大的第三方工具库。可广泛应用于科学计算、数据分析、数据可视化、数据处理、Web 自动化运营、自然语言处理、计算机视觉等领域[1]。
Python 语言在进行程序编程语言教学过程中,主要有以下优点:
(1)语法简单,易于阅读。Python 免费开源,舍弃了C、C++之类的关于指针的用法,学习的切入点多,有不同类型的源码,可以根据学生的实际情况进行选择。Python 自身所包含的关键字相对其他程
序设计语言较少,语法相对固定,结构清晰,便于学生进行阅读。
(2)Python 具有跨平台性,支持Linux、Windows 等多
种操作系统。根据不同的发行版本,能够自动解决第三方工具包之间的依赖,安装简单,不容易出错。Python 的IDE 工具也较多,包括PyCharm、Eclipse 与PyDev 组合、Komodo、EditPlus 等进行开发。
(3)功能强大。支持面向对象编程,提供了丰富的数据类型,如元组、集合、列表、字典等,过滤了底层内存管理,垃圾回收等细节。针对有速度要求的环境,可以调用C++、C 语言写成的库文件。
(4)文档丰富和第三方扩展库丰富
Ptyhon 目前主要有两个版本Python2和Python3,其中Python3成为工业界和学术界的主流。国内外使用Python 的人数较多,技术文档资源丰富,各类第三方扩展库。例如科学计算常用的扩展库:NumPy、SciPy 和Matplotlib,分别为Python 提供了快速数组处理、数值运算以及绘图功能;计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK 等各种行业的扩展库。这些扩展库都有专业的社区进行维护,功能强大,技术资源丰富,使各行各业的研究者都能到对应的工具包。
(5)Python 良好的就业前景。
目前Python 在云计算、大数据、移动互联网、创意游戏、机器学习、计算机视觉等方面有广泛的应用,就业需求广泛,包括数据分析师、运维工程师、产品测试等。3 国内外Python 教学使用情况
随着Python 语言的优势,逐渐获得了工业界、学术界的大量支持,如谷歌公司开发的Tensorflow,是目前使用人数最多的深度学习框架。Caffe 框架,基于运行效率的考虑,底层采用C++编写,然后提供Python 封装。在好莱坞,工业光魔公司采用 Python 制作商业动画, 效果令人惊艳。Python 在自动化运维方面已经深入人心,比如Saltstack、
Ansible 等自动化平台。YouTube、豆瓣等著名大型网站就是
2018年第7期
169研究与探讨
信息技术与信息化
利用Python 编写的。很多在线游戏的后台都是Python 开发的。
由于工业界的巨大需求,国内外有大量的高校采用Python 作为教学对象。目前国际上排名前 100 的高校中 80% 都在开设 Python 程序设计[3],包括麻省理工学院、斯坦福大学、加州大学洛杉矶分校等著
名高校。Coursera 等在线教育平台上有大量关于Python 的教学内容。在国内嵩天等人,在其高校内已经开展Python 教学改革,编著并出版了相应的教材。车万翔等人将C 语言和Python 语言对比,展示了相关教学效果[4]
。张莉认为采用 Python 教学可以较
好地提高学生的主动学习能力、学习兴趣和热情以及问题求
解能力[5]。
4 Jupyter 环境搭建及使用
Jupyter Notebook 可以让学生以浏览器远程访问的方式进行Python 的交互式编程,支持包括Python 在内的40 多种编程语言[6]。Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享程序文档,支持实时代码,数学方程,可视化等。建议教师在Python 教学中,推荐使用Anaconda 发行版本[7],其自带了Numpy、Scipy、Matplotlib、 Jupy-ter Notebook 等,该版本能够自动解决各开发包之间的版本依赖,安装十分简单。学生可以将其编写的Python 代码的说明文字、代码、图表、公式、结论都整合在一个文档中。不仅能在文档中执行代码,还能以网页形式分享。其他重要的插件主要有:tqdm_notebook、Collapsible headings
等。
图1 执行Python 的运行代码
用户启动Jupyter Notebook 后,点击新建按钮,建立Python3文档,进行交互编程,如图1。Notebook 文档是由一系列单元(Cell)构成,分为代码单元和Markdown 单元。对于代码单元,用户进行代码编写,点击运行按钮,其结果就会显示在本单元下方。代码单元左边有序列标记。Markdown 单元可以对文本进行编辑,采用Markdown 语法,来设置文本格式、插入链接、图片、数学公式等。在代码单
元,用户既可以单步执行,也可以输入一段代码进行执行。图1中显示,赋值变量采用单步执行,循环语句采用代码块的形式进行运行。最终的运行结果显示在代码单元的下方。
除了可以利用Python 进行编程外,还可以进行利用相关领域的工具包,进行专业领域的学习。如机器学习,通过下载scikit-learn 的关于PCA 算法的代码[8],
上传到服务器。用户在代码单元执行完毕,点击运行按钮,可以看到图形化结果,十分直观,同时可以整个运行过程可以做成文档进行
分析和记录。
图2 执行scikit-learn 代码效果演示
5 结语
本文讨论了Python 程序设计编程语言的特点,以及在工业界、国内外教学的使用情况,结合Jupyter Notebook 演示了在Python 教学过程中的使用,提出建立高校采用Python 语言进行程序设计课程的教学,以适应高校教学改革和人才培养的需要,以便取得更好的教学效果。
参考文献:
[1]赵广辉. 面向新工科的 Python 程序设计交叉融合案例教学[J].计算机教育.2017.8:23-27.
[2]秦科,刘贵松. 面向 Python 应用的大学教学改革初探[J].计算机教育.2017.9:21-25.
[3]嵩天,黄天羽, 礼欣. Python 语言: 程序设计课程教学改革的理想选择[J]. 中国大学教学, 2016(2): 15-20.
[4]车万翔, 苏小红,袁永峰,等.计算机专业高级语言程序设计课程改革探索[J].计算机教育, 2014(13): 56-58.[5] 张莉,金莹,张洁.基于MOOC 的“Python 玩转数据”翻转课堂实践与研究[J].工业和信息化教育, 2017(3): 70-76.
(收稿日期:2018-07-06)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论