基于Python的编程导论教学改革探索

2021-04-07 10:51肖克来提
科技风 2021年9期
关键词:C语言

摘 要:C语言作为20世纪70年代开发的语言,其出现的时代背景与应用需求和现在的需要相差甚远。然而由于惯性,基于C语言的编程导论课程体系依然沿用至今。本文分析了C语言作为编程入门语言所存在的缺陷,最终给出了麻省理工学院与优达学城的基于python的计算机专业课程体系架构的基本框架。

关键词:C语言;python;编程导论

计算机专业学生入学后的第一个专业课程的安排总是设计培养计划时讨论的焦点。其中比较热点的问题是,第一个专业课应该是介绍为主的还是开始尝试解决一些挑战性问题。20年前的做法是,第一个专业课以介绍为主,不引入过于专业的内容。然而,随着时代的发展,电脑得到了普及。编程语言的日益更新也为一些改变提供了方便。

1 基于C语言的教学体系

20世纪80年代,C语言首次作为编程入门教学语言被使用[1]。在那个时代,面向对象的语言还没有得到广泛的推广。很多人对计算机的基本理解还未成熟。在这种社会背景下,C语言就成为了当时的最佳选择。在国内,清华大学的谭浩强老师带头开发了基于C语言的编程教学课程体系。由于该课程体系符合当时的教学环境,得到全国高校计算机专业的普遍认可。然而,将近40年后的今天,虽然有更好的选择,仅仅是因为惯性,我们还是在沿用着当时的课程教学体系。

现在很多国内的大学在教学编程导论课程的时候依然将C语言选为程序设计入门语言。虽然从全世界范围统计,C语言的使用量与Python是不相上下的,可是由于以下几个原因,C语言已经不再是编程入门教学的最佳选择:

(1)C语言是比较原始的语言,其开发时间是1972年,那个时候写程序是以节省内存为主要考虑。其开发时的时代背景与应用需求和现在相差甚远。

(2)C语言是比较接近计算机底层的语言,对于新入校的学生教这种语言可能会有一定的压力,尤其是讲到有关指针的内容时,学生可能会比较困扰。

(3)从行业现状来看,能把C语言当成常用语言编程的程序员一般都是处在金字塔顶端的稀缺人才。换句话说,完全掌握C语言的灵活又实用的技巧需要很大的耐心和付出。如果学了一点语法就半途而废,学习的内容也不具备继承性。

(4)由于其他编程语言的快速发展,C语言适用的环境非常的有限。从商业角度看,现在C语言主要用于嵌入式开发,内核开发等编写比较底层的代码。相比之下,虽然Python不会用于底层,可其应用面很广,非常适合初学者。而C语言更适合学有所成,并想了解底层的开发人员。

2 基于Python的计算机专业教学体系

Python包含了一组功能完备的标准库[2]。在这些库的协助下,程序编写者可以高效的完成许多复杂的任务。它的语法非常接近人类的思考方式,它使用缩进定义语句块的方式简化了大多数程序设计语言使用大括号传统。由于上述原因,Python已成为主流大学最常用的编程语言。尤其是在教学编程的导论类课程中,大量的在使用Python编程语言。

Python之所以能如此流行起来,很大程度上受益于其简单的语法结构。Python的定位是“优雅”“明确”“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且如能深入学习,可以编写非常复杂的程序。

2.1 麻省理工学院

麻省理工学院(MIT)素以顶尖的工程学和计算机科学而著名。该校的计算机工程、电机工程等诸多工程学领域在2019—2020年世界大学学术排名中位列世界前五,在2018—19年US News美国研究生院排名中位列工程学第一、计算机科学第一,与斯坦福大学、加州大学伯克利分校一同被称为工程科技界的学术领袖。[3]。

2001年,美国麻省理工学院主导并启动了开放课件项目,决定将其所属二级学院的3000多门课程的所有资源发布到互联网上,供全球学习者免费使用。经过20年时间的积累,其资源的受益者已超过1亿[4]。

通过研究MIT《电子与计算机科学学院》的课程体系框架,不难发现,其中大多数需要计算机编程的课程是基于python展开的。这些课程贯穿算法、数据结构、数据科学、人工智能、机器人学等二级学科。开课层次不仅有本科生,还包含了研究生阶段。因此,MIT还专门开发了一门名为《Introduction to Computer Science and Programming in Python》的課程。而该课程被定位为所有后续需要编程的计算机类课程的先导课程。下表中给出了部分以python作为开发语言的课程名单与开课的层次。

2.2 优达学城

Udacity(优达学城)是由前 Google X Lab 创始人、斯坦福大学人工智能教授、全球无人车发明者 Sebastian Thrun 在2011年创立的在线前沿科技教育平台[5]。目前,优达学城在中国、印度、欧洲、巴西、迪拜5个国家设立分部。Udacity(优达学城)与全球行业领袖共同设计教育内容,让每个人都有机会学习并掌握人工智能、数据科学、自动驾驶、自然语言处理、计算机视觉、AI量化投资、区块链、云计算等前沿科技与热门信息与开发技术。Udacity(优达学城)的“纳米学位”认证项目和Google、Facebook、IBM、亚马逊、Nvidia等全球知名科技企业合作开发,通过系统的课程设计、项目实战和个性化辅导,将学员培养为优秀的工程师、开发者和数字经济时代为企业所需的优质人才。

优达学城的纳米学位项目,为学员提供贴合实际应用场景的实战项目、一对一技术辅导、个人职业建议和咨询服务,一门纳米学位课程的学习时长从3个月到9个月不等,到目前为止已发布超过30门的在线课程。而这些纳米学位课程中,一半以上的课程都是基于Python编程语言展开的。在编程语言的选择上该公司遵循的原则是,只要能用Python解决的问题,尽量不使用其他编程语言。而《Python编程入门》作为入门课程提供给零基础学员。下图展现了优达学城基于Python的课程教学体系。其中分别包含了《人工智能》《数据科学》与《无人驾驶》三个教学系列。而这三个系列都是以Python语言作为自己的编程语言展开教学的。

3 结语

C语言作为第一批广泛使用的编程语言之一,从开发至今在高校计算机教学体系内流行了40余年。然而随着计算机硬件成本的降低与开发人员人力成本的提高,工程开发效率逐渐放到了程序运行效率之前。在这种大背景下,python语言成为了很多国外高校与慕课平台的编程入门课程的首选。本文分析了C语言不适应当前教学环境的一些缺陷和python作为教学编程语言的一些优势,并进一步给出了MIT与优达学城基于python开发出的课程教学体系。

参考文献:

[1]陈婷.C语言程序设计实验教学改革探究[J].实验技术与管理,2010,27(10):182-184.

[2]肖旻,陈行.基于Python语言编程特点及应用之探讨[J].电脑知识与技术,2014,10(34):8177-8178.

[3]许涛,严骊.国际高等教育领域创新创业教育的生态系统模型和要素研究——以美国麻省理工学院为例[J].远程教育杂志,2017,35(04):15-29.

[4]李静,王美,任友群.解放知识,给力心智:访美国麻省理工学院开放课件对外关系部主任史蒂芬·卡尔森[J].开放教育研究,2011(4):4-11.

[5]赵宏媚.Udacity在线课程平台研发人工智能系统以实现慕课可视化[J].世界教育信息,2019,32(16):78.

作者简介:肖克来提(1988— ),男,维族,新疆博乐人,硕士研究生,讲师,研究方向:人工智能。

猜你喜欢
C语言
“C语言程序设计”课程混合教学探索
基于C语言的计算机软件编程技术探究
中职计算机C语言教学的探讨与研究
中职C语言单片机课堂教学中的趣味性探讨
计算机原理中C语言的应用价值
C语言教学网站设计与实现