海洋饼干叔叔 @ 重庆大学

最近这几年,Python火上天了。历史上,即便是Python它菩提老祖C语言(Python解释器是用C语言写的),也从未那么火过,毕竟在C语言刚出来那个年代,计算机只有很有钱的人家(比尔盖茨他妈是IBM董事,社会活动家)才有,编程还是少数技术人员拥有的特殊技能。

Python火起来的最大原因是所谓人生苦短,我用Python。易学易用的特点使得编程不再是需要专业训练的特殊技能,下至高校教师,家里的小祖宗,上至家里管钱管厨房的领导,进行引力波探测的顶尖科学家,都可以使用Python来编程。什么?不信?我们选择一个特别的角度证明给你看:下面是各种牛掰语言的爹地合集, 包括C++他爸Bjarne Stroustrup,?Java之父James Gosling,PHP他爹Rasmus Lerdorf,?Go语言之父Rob Pike, 以及造就Python的伟大"河(去声)南" 雷峰 - Guido van Rossum。猜猜这几张照片哪位是Python之父Guido van Rossum ?

答案就是: 头发最茂盛那位!

工业界为之疯狂,阿里https://edu.aliyun.com/course/505

微软https://www.bilibili.com/video/av69042526/

谷歌https://developers.google.com/edu/python/

都推出了自己的专属Python课程,急吼吼地想培训和吸引P8以上的有福报能加班的年轻人。好像不免费提供一点像样的Python课程,都不好意思说自己是负责任的国际大公司。

中国的教育界也疯了,先是浙江传出消息,管教育那帮人终于睡醒了,从高中课标里删除了老掉牙,没人用的Visual Basic, 用Python替代,顺带着把Excel, Access也踢出了课标,因为Excel, Access能干的活好像Python也能干。

然后,山东,上海,北京,重庆相继表示,我们也不能落后,除了往中学课标里加入Python内容外,还顺带把”先进的科学”直接送到"我们的祖国是花园”,小学六年级的《信息技术-Python入门》给大家感受一下。

看这架势,Python进入高考已是板上钉钉,以后的泱泱中华,要想再找出一个没学过编程的小朋友,真如大海捞针一般困难。

中小学都上了, 大学自然也要上。无论是中国还是美国,Python正取代C/C++语言,成为大学最受欢迎的编程入门课程。大学里讲编程基础课的老师好像也松了一口气, 终于不会因为C语言劝退诸多懵懵懂懂的小朋友了。要知道,C语言以”从入门到放弃"而闻名而世,特别当你选用早期的C语言书作为教材的时候。在那个年代,学习编程的大多是一些智商超群的人,所以彼时的作者高估了读者的智商,专门挑一些没什么大用处,然后又特别烧脑的断头路(比如i = i++ + ++i,i之前等于0,问之后等于几?),死路,带着萌新们一条道走到黑,,,成功降低了程序员市场的竞争烈度。这么说其实对当时的作者也不太公平,老先生的书,在当年已经算是很浅显的了,在向社会普及计算机及编程知识方面,功勋卓著。

所谓内行看门道,给大一,大二的小鲜肉们上菜,不能太马虎。上一门借Python之名的程序设计课程,显然不能只讲语法,那是舍本逐末之举。作者在某985大学教了15年编程(从C, C++一直教到Python),又同时在工业界当了15年程序员,还跨圈画了数年的电路图,还曾经对着三视图跟模具工程师、结构工程师讨论过公差配合,运动噪声消除,材料耐用性之类的"高深”问题,,,,, 大着胆子,分享一下一家之言:Python程序设计课应该带给学生什么?

1. 算法 - 用计算机解决问题的思维习惯

乔帮主(布斯)留下话:学习编程教你如何思考。孔夫子也说过,学而不思则罔。所以不管学生的层次(985,211,三本,专科, 高职)如何,一定要在课程里带点算法以及使用算法解决问题的例子给他。包括但不限于下述示例,它们都是用Python写的,大部分都是带图,带动画的。(如果一直print, 老师学生都会疲倦)

发现圆周率?- 使用投点方法,借助于均匀分布的随机数函数,重新估算圆周率

一对兔兔与函数的增长?- 讲述著名的斐波那契数列, 以及函数的递归调用, 嗯,再帮助学生回顾一下《高等数学》中无穷大的阶的不同在计算机里如何体现,我们把斐波那契数列与n2, n3函数进行了作图比较,观察函数的增长速度

汉诺塔?- 递归求解的经典案例,古老的印度智慧

文本进度条?- 旧科技时代的回望

2. 语言 - 简单实用的语法

变量与数据类型、缩进、输入输出、条件分支、列表、名字绑定、循环、字典、函数抽象、文件的读写、高级的字符串处理这些都是必不可少的语言知识。但笔者认为,面向对象也是一种思维方式和设计哲学,不可或缺。所以,在程序设计课程里应该有面向对象的一席之地。

除此之外,异常处理、单元测试、类序列化、迭代器与生成器等则属于非必要的语法知识,其讲授可根据学生的层次,以及学习目标而定。

对于C/C++这类复杂的语言,即便是一个熟练的程序员,也大概只会使用到其中20%的特性,另外80%则几乎不用。对Python而言,情况好一些,在选择课程内容时,应该挑出那些实用的,常用的语法特性加以认真发挥,而对于那些生僻的,生僻且晦涩难懂的,不讨论为妙。

但是,对于那些重要的特性,比如range(), 比如切片语法,则一定要讨论清楚。作者相信:图比文字清楚,所以画很多的流程图来帮助解释数值列表与切片及其他关键的语法:

总之, 语法的介绍要从实用出发, 而不是"考试”出发,象 i++++ 这种类型的"劝退”语法,坚决不涉及。

3. 代码 - 优美的编程习惯示范

好的代码应该读起来跟散文一样优美。所以教材中给学生的示例代码大部分长这样:有行号,字体优美,匈牙利命名法则,连字体也精心选择的。

我们相信,学生会模仿老师的代码。老师的代码如果质量高,学生会潜移默化地学到优美,良好的编码风格和习惯。在书里面,我们还经常提及断言、单一职责原则、单元测试等简单的软件工程原则,希望在教授表面语法同时,顺便传递一点"内功”。

4. 实践 - 与专业相结合我一个学新闻的,为什么要学编程?

我们法学院,开个毛线编程课!

我只想静静地做个医生,不行么?

隔壁数理学院,开编程课,为什么我们学土木的也要开?

这是非计算机专业的学生在学习编程时的常见抱怨。 原因有二:

a. 课程内容与实践脱节,为教而教,为考试而学,学完就忘;

b. 课程里的案例与学生的专业没有关系,学生没有获得用编程方法解决本专业问题的体验。

为了解决这个问题,我们设计了很多示例,涉及数学、美术、文学、历史、信号处理、医学、经济学、游戏、科学计算、人工智能等众多学科门类和领域。众多不同专业的学习者,都可以在本书中找到与本专业相关的应用实例。放几个大家感受一下。这些示例,有难有易。事实上,考虑到部分示例的复杂性,我们并不指望大一年级的新生能够完全读懂,我们只是希望让明白,学好编程,对他的专业发展颇有助益。

一棵树的建造?- 树形数据结构、递归、分形、树的宽度优先遍历算法

汉诺塔?- 定时器、pygame框架、汉诺塔算法、计算复杂性分析、复杂程序的结构、生成器

GDP前15工业图家的冒泡排序演示?- 多线程、GUI程序设计、PyQt、分时图形界面程序框架

图像风格迁移?- 深度学习、神经网络

缙湖下雨啦?- matplotlib动画、numpy多维数组

Mandelbrot集合?- 分形数学的开山之作

对ECG信号进行数字滤波

唐全诗数据分析?- 关系数据库、字典、数据分析

5. 手把手的私教学习体验

新形态"电纸"书,凡是涉及实践操作的每一步,都有视频/图文步骤指导,扫扫二维码,轻松可得。

全书提供数百个二维码,提供在线课堂、先睹为快、操作指导、扩展阅读等各种在线协助。为读者的编程学习提供手把手"私教"。

6. 配套火爆B站的在线MOOC,学习轻松不怕难

写到了这一步,我的小心机藏不住了,对,我就是向读者推荐优质Python入门教材的,它长这样,某东、某宝、某当有售。

python程序设计是什么专业-那门用Python讲授的程序设计课程能带给学生什么?相关推荐

  1. 那门用Python讲授的程序设计课程能带给学生什么

    那门用Python讲授的程序设计课程能带给学生什么? 海洋饼干叔叔 @ 重庆大学 最近这几年,Python火上天了.历史上,即便是Python它菩提老祖C语言(Python解释器是用C语言写的),也从 ...

  2. python程序设计学什么-那门用Python讲授的程序设计课程能带给学生什么?

    那门用Python讲授的程序设计课程能带给学生什么? 最近这几年,Python火上天了.历史上,即便是Python它菩提老祖C语言(Python解释器是用C语言写的),也从未那么火过,毕竞在C语言刚出 ...

  3. 与python相关的考研专业-给考研人:掌握这项技能,让你每天的学习高效又充实...

    原标题:给考研人:掌握这项技能,让你每天的学习高效又充实 有不少同学在紧张的备考过程中问老付:老付我觉得自己好笨啊,明明很努力在学了,花的时间和其他同学一样多,但是效率一直提不上去,感觉自己压力好大啊 ...

  4. python使用符号 标示注释-第一章:Python语言程序设计

    关于课程: 课程作者为北京理工大学教授嵩天 学习账号是微信账号登陆:昵称为coke 1-1节:程序设计的基本方法 计算机与程序设计 编译和解释 程序的基本编写方法 计算机编程 1-1单元小结 计算机与 ...

  5. 《Python语言程序设计》——1.6 开始学习Python

    本节书摘来自华章计算机<Python语言程序设计>一书中的第1章,第1.6节,作者:[美]梁勇(Y. Daniel Liang) 更多章节内容可以访问云栖社区"华章计算机&quo ...

  6. 数学不好、英语不好、非本专业,想学python数据分析,能安排吗?

    全世界有3.14 % 的人已经关注了 数据与算法之美 "非本专业想转型做数据分析,有救吗?" "数学不好,英语不好,想学Python数据分析,有救吗?" &qu ...

  7. 专业本的C语言,以解决本专业问题为导向的C语言程序设计课程教学探索

    以解决本专业问题为导向的C语言程序设计课程教学探索 发布时间:2019-08-07 来源: 摘 要 针对C语言程序设计课程在计算机及其相关专业中存在的"狭义工具论"的教学现状,本着 ...

  8. MOOC《Python语言程序设计》(第15次)Python计算生态概览(第九周)

    MOOC<Python语言程序设计>(第15次) Python计算生态概览(第九周)21.8.26 文章目录 MOOC<Python语言程序设计>(第15次) Python计算 ...

  9. 转专业考试c语言试题,C语言程序设计实训题目.doc

    C语言程序设计实训题目 C语言程序课程设计题目 题目1:年历显示 功能要求: 输入一个年份,输出是在屏幕上显示该年的日历.假定输入的年份在1940-2040年之间. 输入年月,输出该月的日历. 输入年 ...

最新文章

  1. DotNET企业架构应用实践-企业管理软件架构(计算)的历史与发展(上)
  2. 我为什么看好IPFS
  3. C++ std::condition_variable wait() wait_for() 区别
  4. jquer each 遍历的结果不显示 null_SpringBoot系列(三十一)- Thymeleaf如何用th:each 做条件遍历
  5. Gensim加载word2vec模型与简易使用
  6. 晨哥真有料丨生而为人,你讨好世界的样子真的很丑!(讨好型人格)
  7. c语言常用单词大全,c语言必背专业英语词汇大全
  8. 20170223找女朋友之路思考总结
  9. 华为云免费SSL域名证书申请_亲测成功
  10. 小布老师oracle,小布老师-oracle-1
  11. Unicable技术在卫星接收方案设计中的应用
  12. 用 Python 20秒画完小猪佩奇“社会人”
  13. python白名单验证是什么意思_JWT黑名单和白名单
  14. 搜索控件SearchView的用法
  15. Springboot-项目启动加载类
  16. [Python]简单抓取百度blog
  17. 使用Xshell连接Ubuntu 20.4系统时提示
  18. android调用资源文件配置,Android资源文件
  19. Math数学方法,String字符串型、Date日期
  20. HTTP请求头部+响应码

热门文章

  1. 质量管理 - 成熟度常见模型
  2. 【Linux操作系统应用T1】
  3. 信息安全数学基础——模重复平方计算法(两种方法实现C+JAVA)
  4. iphone和android照片传输,将照片从Android传输到iPhone的8种方法很容易
  5. 探索测试-大富翁KYM练习笔记
  6. javascript的基本数据类型有哪些?
  7. RabbitMQ从入门到实践
  8. 售前工程师——PaaS
  9. 走近求伯君1 求伯君,1964年11月26日出生于浙江新昌县。
  10. 《计算机系统基础》—— 运算