目录
回复内容:
首页 后端开发 Python教程 Python 在编程语言中是什么地位?为什么很多大学不教 Python?

Python 在编程语言中是什么地位?为什么很多大学不教 Python?

Jun 06, 2016 pm 04:11 PM
mit python

MIT使用python作为导论课的教学语言。

回复内容:

首先,大学教材更新速度慢是真的,只要在大学图书馆里看看Access和VB书的数量就知道了。当然,有些人说大学学的是基本能力,但我觉得这个解释很勉强,因为学不学基本能力跟学不学新东西根本不是矛盾的,新东西就不能学基本能力了吗?

然后,自学Python确实是完全没问题的,但我认为除了正儿八经的CS你好好学学C/C++啥的,别的都可以用Python来入门。现在大学非CS专业的情况是什么样的呢?一门课下来,70%左右的人不知道编程为何物,甚至对此产生了恐惧,还不如学Python快快乐乐地了解基本理论和方法。

最后,对于非码农而言,Python是日常真正能用的工具,用Python代替VBA操作Excel、用Python写个小爬虫从网上采集一些数据、用Python进行小规模定制化的自动测试,都是非常给力的。 我觉得楼上各位说的挺好,但都是“作为资深码农,如果我去教大学生,为什么我会教c”。远远高估了大部分大学教授和教研组的责任心和水平,其实还有别的原因

实际上作为本科生的老师,他们的实践水平是远远不能和一线人员比的,对于大部分c语言老师来说,会python的大概不多,不用说主要精力放在教学评估上的老师,很多老开发者都还在执着于mfc。

更重要的是,更换一个教学语言对于大学来说,太麻烦了,他们现在还在用vc6.0教学。(当然,教那点东西它确实够用了) 英国王尔德说过
真正有价值的东西 学校里没人教你(意译)


  • 原文:Education is an admirable thing. But it is well to remember from time to time that nothing that is worth knowing can be taught.
教育事業是值得欽佩的,但請不時想起:並沒有什麼值得知道的事是能夠被傳授的。 大学也不教PHP的,大学能教会怎么学习就不错了,Python真的很简单,有学习能力的学生很快就可以掌握基础 大学学习的基本设计思想,老师教授一两张语言即可,关键自己得去钻研,看自己喜欢什么就去多看多练习多钻研才可以 真的不明白为什么楼上要纠结大学入门课程教什么语言,对于入门来讲,语言知识一个桥梁,更多的是理解理念和,楼主所为的MIT拿python作为导论的语言,对于零基础或者没开发经验人来讲,我拿Ruby python,C++ 甚至java C #作为导论的语言其实没什么区别,导论课的核心在于导论,在于给没基础的人讲什么是数据结构,什么是算法,什么是基本的数据格式,内存,线程这些东西一类的,这门课就不是在教什么语法,更不可能是框架什么的东西,说白了就不是在教开发。至于开发,我认为有底子以后看个人兴趣自学了,有了底子上手什么语言都快。高等教育是一个引导,而不是说教你什么学什么, 如果说就为了学个语言,用会某个语言,不深入理解然后去做点东西就满足了,那还不如去北大青鸟上个JAVA python速成班来得快。说到底,高等教育不是功利性的教育,但很多学生没有理解到罢了。 Python在高级语言里面经常和Ruby、Perl拿在一起做比较。所以要看看Ruby和Perl或者Lua的地位,也可以知道一点Python的地位。

Python应该是定位于快速开发,作为低级语言粘合剂的脚本语言。

如果要看编程语言的地位的话,可以看看编程语言排名
sd.csdn.net/a/20110711/

python还是可以排在前十的。

国内的互联网企业,从最老的金山,网易,到新进的豆瓣,有很多使用Python的公司。应用范围也很广,从服务端后台、工具脚本到游戏客户端开发,非常多。总的来说,依然是应用非常广泛的。

为什么很多大学都不教Python呢?
个人觉得有两个原因:1 Python是可以自学的,比起C/C++来说简单多了;2 大学的教材和课程更新速度远远不及技术发展的速度。 刚毕业,正好我接触过各类背景的同学,从C/C++/Pascal/Java/Python入门的都有,讲讲我的感受,求轻拍

先讲个题外话:不要太低估国内大学计算机系的水平,国内比较好的大学开设的课程,其实都很紧跟国外的教学趋势的,前些年的Perl,最近的Python和ARM、hadoop,几乎都会有对应的课程。所以也可以不用那么愤青啦~

其实交大从去年开始电类专业的程序设计思想与方法就从C++转向了Python,用的教材是Core Python Programming. 基本上现在的格局是:
电类专业:一学期Python + 一学期C++
非电类专业: 一学期C++?
然后后面要用什么语言就自己去学吧,Java也好Verilog也好Haskell也好学校都不教了。

好处呢就是一开始Python的确比C++好上手啊。
坏处是:Python是一门好语言,但它不适合教学,特别是不适合电类的教学。结果是学弟学妹们并不是特别适应:

一方面,国内的硬环境,是除了计算机和生物类,几乎没有人大规模使用Python——对于很多行业内仍然在用VC6/MFC写界面的电气类学生,你教他Python,他还是要再回头学C++。更进一步说,由于C++的教学时间缩短,而人们又离不开C/C++——起码操作系统课要用,写ARM程序要用,所以反而使得新生没有办法专心掌握一种语言。

另一方面,Python并不适合入门:

Python之于C++,并不像是Lisp之于C,是计算模型的不同导致的简化。相反,Python和C++的计算模型都是命令式为主的,而Python的美好,在于自然而隐藏了很多细节,像自省啊词典啊动态化啊。但是Python本身的计算模型是比较杂糅的——有一点过程、有一点对象、有一点函数式。这就要求编程者要选用合适的方式来实现自己的方法——如@莫宇诚 所述,这是很实用主义也很精彩的设计。但是命令式的计算模型和强类型系统决定了,这部分的复杂度并没有消失,只是隐藏了起来。理解这些复杂度,是能够顺畅使用Python的前提:我正在操作的是什么类型?这个for语法隐式的使用了哪个对象的迭代方法?方法有没有默认参数?

而偏偏,新生是很难理解这些的——在C语言里明明白白的写出来,都有很多人头痛,不要说藏起来隐式调用。就好像C++里的流,不深刻理解模板重载和迭代器,根本不会理解这东西“为什么能这么写”。

所以学Python和学C++的时候,都会有很多学弟妹惊讶的问——呀,为什么这个地方能这么写,不能那么写?我真的很难解释——因为这些问题,往往牵扯到类型啊对象啊继承啊——恰恰是语言的简单背后藏着的那些东西。

=========================

所以对于新生来说,我觉得入门的语言要的是简单:这种简单,不是指代码量上的短,而是指思维、语法和计算模型上的简单:让新手可以集中注意力理解少数几个概念,不需要纠结于很多惯用法啊隐藏的细节啊:那是给熟手加快进度用的,不是给新人学习用的。所以我觉得Python/C++/Java这种大型语言,都不适合入门——太复杂,太难掌握,最后只能学个皮毛,还不如教一种学生能吃透的语言,以后触类旁通。C/Scheme,在我看来是很好的语言:它还算好用,而且模型简单,学生容易彻底理解。日后比照着学习其他更加抽象化的语言,也更加容易。

至于C的缺点,是可以通过教学来改正的——教育学生合理的抽象,适度的隐藏,学会使用迭代和递归。而我觉得这,才是程序设计导论课区别于C++语法课的关键所在。但是很遗憾,不管使用什么语言,能讲到这个层次的老师,都太少了。(学生也不爱听,他们只关心怎么能做大作业,实现更多的功能)

=====================

其实MIT自己也认为现在学生用Lisp入门不太好,这里有一篇文章引用Sussman的话解释了原因。

cemerick.com/2009/03/24

总之,语言教学这件事,重点不是要赶时髦,而是要接地气。 想想大家为什么用 Python。从语言上说,Python 并不够 clean。目前还有 2.x vs. 3.x 的分歧。从工程上说,Python 的集成性并不比 C 好,因为业界有很多库还只是 C 接口,用 Python 必须有一些封装。大家用 Python 是因为它的资源能够帮助很多人解决问题。

但是这个「Python 是因为它的资源能够帮助很多人解决问题」的问题不是大学生面临的问题。大学生面临的更多是 big, clean problem。这种问题需要逻辑纯洁的方案,或者完全形成标准的方案。比如学语言用 C,学计算用 Lisp,学 kernel 用 Linux, BSD 都是没问题。但是 Python 属于战场专业工具箱,应该等等。 编程范式,设计模式,MVC,软件开发方法和思想这些才是应该教而没有教的东西,编程语言都是些小角色,完全可以穿插到里面作为一个章节或一两个课时的内容。偏偏国内的很多高校,学了一个学期的java,对接口interface的存在充满疑惑,甚至很多学生还以为面向对象编程中的封装和信息隐藏是为了保密(让源代码不被泄露出去!)。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

手机XML转PDF,转换速度快吗? 手机XML转PDF,转换速度快吗? Apr 02, 2025 pm 10:09 PM

手机XML转PDF的速度取决于以下因素:XML结构的复杂性手机硬件配置转换方法(库、算法)代码质量优化手段(选择高效库、优化算法、缓存数据、利用多线程)总体而言,没有绝对的答案,需要根据具体情况进行优化。

怎么在手机上把XML文件转换为PDF? 怎么在手机上把XML文件转换为PDF? Apr 02, 2025 pm 10:12 PM

不可能直接在手机上用单一应用完成 XML 到 PDF 的转换。需要使用云端服务,通过两步走的方式实现:1. 在云端转换 XML 为 PDF,2. 在手机端访问或下载转换后的 PDF 文件。

C语言 sum 的作用是什么? C语言 sum 的作用是什么? Apr 03, 2025 pm 02:21 PM

C语言中没有内置求和函数,需自行编写。可通过遍历数组并累加元素实现求和:循环版本:使用for循环和数组长度计算求和。指针版本:使用指针指向数组元素,通过自增指针遍历高效求和。动态分配数组版本:动态分配数组并自行管理内存,确保释放已分配内存以防止内存泄漏。

有什么手机APP可以将XML转换成PDF? 有什么手机APP可以将XML转换成PDF? Apr 02, 2025 pm 08:54 PM

无法找到一款将 XML 直接转换为 PDF 的应用程序,因为它们是两种根本不同的格式。XML 用于存储数据,而 PDF 用于显示文档。要完成转换,可以使用编程语言和库,例如 Python 和 ReportLab,来解析 XML 数据并生成 PDF 文档。

xml怎么转换成图片 xml怎么转换成图片 Apr 03, 2025 am 07:39 AM

可以将 XML 转换为图像,方法是使用 XSLT 转换器或图像库。XSLT 转换器:使用 XSLT 处理器和样式表,将 XML 转换为图像。图像库:使用 PIL 或 ImageMagick 等库,从 XML 数据创建图像,例如绘制形状和文本。

XML转换成图片的流程是什么? XML转换成图片的流程是什么? Apr 02, 2025 pm 08:24 PM

XML 转换图片需要先确定 XML 数据结构,再选择合适的图形化库(如 Python 的 matplotlib)和方法,根据数据结构选择可视化策略,考虑数据量和图片格式,进行分批处理或使用高效库,最终根据需求保存为 PNG、JPEG 或 SVG 等格式。

xml格式化工具推荐 xml格式化工具推荐 Apr 02, 2025 pm 09:03 PM

XML格式化工具可以将代码按照规则排版,提高可读性和理解性。选择工具时,要注意自定义能力、对特殊情况的处理、性能和易用性。常用的工具类型包括在线工具、IDE插件和命令行工具。

有没有手机APP可以将XML转换成PDF? 有没有手机APP可以将XML转换成PDF? Apr 02, 2025 pm 09:45 PM

没有APP可以将所有XML文件转成PDF,因为XML结构灵活多样。XML转PDF的核心是将数据结构转换为页面布局,需要解析XML并生成PDF。常用的方法包括使用Python库(如ElementTree)解析XML,并利用ReportLab库生成PDF。对于复杂XML,可能需要使用XSLT转换结构。性能优化时,考虑使用多线程或多进程,并选择合适的库。

See all articles