成为VIP会员查看完整内容
VIP会员码认证
首页
主题
发现
会员
服务
注册
·
登录
0
手记|当北大文科生遇上编程
2019 年 9 月 23 日
新智元
新智元推荐
来源:北大青年(pkuyouth)
整理编辑:张佳
【新智元导读】
当一篇抱怨“文科生学python”的帖子被顶上未名BBS十大时,我们的思考是:问题从何而来。编程纳入文科计算机课程到底该不该?文科生学编程是一种怎样的体验?听听北大的文科生们怎么说。
当一篇抱怨“文科生学python”的帖子被顶上未名BBS十大时,我们的思考是:问题从何而来。
当时作为一名18级本科生,我刚好在春季学期选修了文科计算机实验班课程。在主编的鼓励下,我承担了在北青的第一次主笔工作。
为了尽量准确地认识文科生对学习编程的态度,我们访问了许多同学;我们找到坚定支持文科生学习Python的老师,聆听他对世界范围内“编程热”的讲解;我们也采访了已经离开校园的文科学子,了解编程这一技能在职场中的应用。
在调查问题的过程中,记者往往会产生自己的答案。但行文时,我一直告诉自己:温和地阐述事实。我们会避免流露主观的看法,以留给读者思考的空间。看到文章引发了更多人的讨论,我想这就是一个调查记者最大的快乐。
——李润泽
点击了PyCharm中的Run后,谢云腾带着疲惫爬上床,留下电脑在黑暗中飞速运行。这已经是他写这次文科计算机基础实验班课程作业的第三个晚上。
这是一次网络爬虫作业,要求爬取“新浪每日热点新闻”版面连续31天的新闻内容,并对字数、图片等信息进行分析。
由于数据量庞大,运行整个程序耗时长达45分钟;再加上校园网不稳定,经常导致程序报错,停止运行,没有点好运气,程序很难执行成功。
所幸第二天早上醒来,谢云腾终于看到了“Process finished with exit code 0”
(程序执行成功,正常退出)
。
谢云腾的困扰在北大并非个例。自从程序设计被全面纳入文科计算机教学,许多文科生都不得不面对这个陌生的领域。随之而来的是种种不适应:老师讲得太快,难以跟上;作业得不到细致讲解,答案很难看懂;上课听得明明白白,自己操作却总是失败……一时间,文科生学编程被推上了风口浪尖。
△
未名BBS上对文科生学编程的抱怨
编程归来
实际上,编程并不是在2018年秋季学期第一次进入文科计算机课程。
早期的教学计划要求文科生必选两个学期的文科计算机课程,第一学期教授计算机基础知识和办公自动化,第二学期教授程序设计。2000年后,随着Office的普及,第一学期的内容变为计算机基础知识和Office,第二学期则提供多个专题供学生自主选择学习,其中包括程序设计。2015年前后,随着毕业学分调整,文科计算机课程被压缩成一学期;同时,信息科学技术学院也开始了让编程回归文科计算机必修课程的探索。
2018年是试验的第3年,也是最后一年。此后,不管是在实验班还是基础班,编程都成为了必修内容。
但编程的回归并未得到普遍欢迎,反而引发了不少争论。
教学方式是争论的焦点。“老师没有操作代码,直接把例子放在课件上展示,当我们还在看代码是什么意思的时候,已经放过去很多张幻灯片了。”国际关系学院2018级本科生张宸赫说。他认为编程教学进度过快,效果不好,不如把课程分为两个学期,第一学期详细学习Office,第二学期慢慢学Python。“就像学语言一样,从学音标来开始。”
“培养科学家和培养实际使用者,这两个是有区别的。”负责文科计算机基础实验班教学的邓习峰老师猜测,第一次讲Python的老师可能采用了培养专业“码农”的方式,转换成适合文科生的教学方式需要一个过程。“另一个问题在于时间太短,”邓习峰分析,“现在的文科计算机课程由原来双学期的课变成单学期,时间缩短导致内容讲不完,不够精细,学生容易处于‘半生不熟’的状态。这是课程建设过程中要继续优化的内容。”
但他也表示,课程开设之初,学院就制定了针对文科生的教学计划,编程语言的选择就是特点之一。
“这次选择经过了复杂的决策,但后来我们都选了Python。”邓习峰说。相比其他编程语言,Python具有跨平台、入门简单、数据处理能力强、功能库丰富等优势。也正因此,近年它的流行程度上升很快,并成为2018年TIOBE编程语言排行榜年度语言。
△
热门编程语言的百度搜索指数
由于处在过渡期,2018年秋季学期的编程教学没有设立统一大纲,不同班的教师自主选择授课方式和内容。“但只要是程序设计,内容基本是差不多的。”邓习峰说,“可能每个老师对难度的把控是不一致的,但到了2019年秋季学期就会相对统一。”同样,试卷也由各班教师自主命题,但均包括笔试与上机测试,按不同比例计入总成绩。
文科与编程
在邓习峰看来,“自用程序设计”是文科生学习编程的主要目的。相对于“公用程序设计”,后者目的在于给别人使用,而前者注重满足自己的需求。
“比如处理研究数据时,如果Excel解决不了,就可以先用Python解决,再交给Excel做可视化。” 他以自己研究的北京交通大数据举例:北京一天的交通数据约有1600万条,Excel完全无法处理,其他软件的效果也不好。但用Python处理只需要很短时间,就可以得出每个车站的客流量、乘客上下车时间、不同地区乘客的乘车偏好等信息。再将数据进行拓展,加入每个站的经纬度,结合地图后就可以分析哪些地方人最多、人群的流向是哪里。这就为国民经济的决策提供了保证。
而在人文学科中,中国历代人物传记数据库(CBDB)也为历史学研究提供了更多角度。CBDB依托程序设计与数据库技术,收录中国历代40余万人物的传记和谱系。借此,研究者可以查询某地在科举和出仕方面的表现,或将某特定时空下的个人创作连接起来进行分析。
△
CBDB 中已知籍贯的 67,000 历史人物的地理分布图
“这样的技术应用到了历史学,很多概念的呈现会更加可视化、更加直观。”邓习峰认为,相比于定性研究,编程更多是在用数与算的概念去衡量我们所面对的世界。这在一定程度上弥补了中国传统思维的欠缺。
对2015级元培学院光华方向本科生韦铭杰而言,编程属于专业的一部分。在他学习的量化金融领域,编程的地位举足轻重。他表示,国外有些面试地点就有计算机,要求面试者现场编程。一次量化金融行业的实习面试中,面试官当场提出一个问题让应聘者写程序,并现场对程序进行点评。
由于当时的文科计算机教学不包含程序设计,韦铭杰特意选择了计算概论B。在他看来,学校学的和工作用的编程是有差异的,实际用的编程一定比学校学的复杂,但如果没有课程内容做基础,是做不到实际运用的。
2012级经济学院本科生唐奕波在大四时尝试过自学编程,因为感到投入产出比太低而放弃。他认为编程不能只依赖于效率较低的自学,更希望能有比较熟练的人引导,这样有问题可以直接问他们。
编程无用?
但是,对于大部分选择就业的学生,编程并不是必备技能,在应聘中也不一定锦上添花。
“(就业对编程是否有要求)主要看找哪方面的工作。
” 2012级经济学院本科生沈士竣介绍,“做量化金融或搞学术的话,对编程的要求还是很高的。
但如果做行业员、投行、基金、PE
(私募股权投资)
等,要求不高。”从本科到研究生,他接触的编程主要集中在MATLAB、Stata等数据分析软件。但对于学习Python、C++等编程语言,他表示尚未考虑:“暂时接触不到。”
同样,虽然唐奕波从事的股票研究行业需要相关程序,但他所在公司有专门的IT部门负责研发模块,自己基本用不上程序设计。他告诉记者,股票研究企业招聘时,除非是量化研究,否则就对编程没有任何要求,也不会有“掌握编程优先”的情况。
这也正是很多文科生心中的疑虑:如果未来用不到编程,现在花很大力气去学,有什么意义?
信息科学技术学院的郭炜老师认为,“没有用”很多时候是“不会用”导致的。“如果会编程的话,你可以主动发现这样的机会,在工作中展示自己。这个才能对你的职业发展很有利。”他希望学生不要抱着“这个东西好像没什么用,我就不学”的想法。“那很可能以后有用却来不及再学,就错失这个机会了。”
同样受到重视的,还有编程学习对思维的影响。邓习峰很看重编程对文科生数理逻辑和计算思维的养成。“比如,把一个大的任务分解成几个小的任务,或定义若干函数,每一个都要把自己一段的任务做好。实际上这是一种思维的训练。”
2016级信息科学技术学院本科生吉如一也有相同的看法。“编程和说话不一样。说话可以有些模糊不清的地方,但是编程必须很严谨,逻辑性很强,不能出一点失误。”
热遍全国
当校园中探讨着文科生是否需要学编程时,编程热已经遍布全国,乃至世界。
△
热词“编程”的媒体指数
在百度指数中以“编程”为关键词进行分析,早在2012年,“编程”的媒体指数就经历过一次高峰,之后多次登上新闻头条。进入2018年,媒体指数又迎来高潮。正如郭炜所说:“现在所有人都要学编程。”
“原因很明显。”郭炜说,“计算机在各行各业都得到了很广泛的应用。所以,不管什么行业,你很快就会遇到需要编程的场合。以后编程可能不那么‘热’了,我觉得是因为它就像数学一样,每个人都要学了。”
邓习峰认为,编程入门难度的变化也是原因之一。随着软件提供的编程环境让程序设计的门槛降低,“热”形成了初步条件。“就像计算机的操作,原来是字符界面,进入图形化的界面后,计算机在全国、全世界都更加的普及。”邓习峰说,“程序设计是联系逻辑思维、实证思维和计算思维的重要途径,它能帮我们更好地理解当今信息社会。我相信未来它会成为中国大学生必备的基础技能。”
在哈佛大学,编程已经成为基础课程。CS50是哈佛大学的编程公开课,面向所有专业的学生,讲授包括C, PHP, JavaScript, SQL, CSS, HTML在内的多种语言,早在2015年秋季学期就已经成为校内最热门的课程,得到超过800人注册,其中只有10%有过编程背景。
△
CS50公开课网站
“我相信我们能做到比它更好。”邓习峰说。
何去何从
“课程压力很大,这是推行编程的代价。”邓习峰说,“但我们还是要坚持,我认为我们走的是正确的方向,更多老师也都已经认可了。这是大势所趋。”
但文科计算机课程依然需要改善。
更好的教学效果需要更多的时间。由于学校的课时已经非常紧张,增开课时并不现实,通过引入新技术提高上课效率是当下最好的办法。邓习峰表示,未来计划采用MOOC
(massive open online courses,大规模网络公开课,俗称“慕课”)
和翻转课堂的形式,把Office和计算机基础知识放到网上供学生自学,给编程教学更多课堂时间。
同时,上机课的教学也会引入新的形式。“比如说我们把每一次作业都做出多种解决方案,学生之间可以互相比较,看有没有更好的方案,让学习的质量更高。”此外,他表示如果时间允许,将会设计“百练百讲”,为每个教学专题附加难度适中的题库,帮助学生通过实践,尽快上手程序设计。
邓习峰还认为,学生需要改变抵触情绪。在文科计算机课程纳入编程前,Office和计算机基础知识是主要的学习内容,大部分同学对此已有一定基础,学起来相对容易。相比之下,编程的难度显然更高。“如果这门课改个名字,叫‘计算概论C’,可能很多人心里就平衡了。”他开玩笑说。
但他认为,程序设计绝不是文科生无法接触的。他表示,在Windows没流行起来之前,文科生用DOS系统学FoxBASE、FoxPro(编程软件),甚至没有可视化界面,但学的效果也不错。“当然,对文科生的教授方法,比如说教学的案例、内容需要我们去优化,但是不能说文科生就学不会程序设计。”
变化仍在继续。邓习峰相信,随着课程本身与文科生结合更紧密,编程一定会走进文科生内心,达到最终目标: “通过程序设计,文科生能掌握一门伴随自己工作和学习的程序设计语言,也能更好地去理解当今的信息技术。”
图1来自未名BBS
图2来源:https://index.baidu.com
图3来源:https://projects.iq.harvard.edu/chinesecbdb
图4来源:https://index.baidu.com
图5来源:https://cs50.harvard.edu/extension/2019/spring/
文中谢云腾、张宸赫为化名
本
文经授权转载自北大青年(pkuyouth)
登录查看更多
点赞并收藏
0
暂时没有读者
0
权益说明
本文档仅做收录索引使用,若发现您的权益受到侵害,请立即联系客服(微信: zhuanzhi02,邮箱:bd@zhuanzhi.ai),我们会尽快为您处理
相关内容
编程
关注
51
人们为了让计算机解决各种棘手的问题,使用编程语言
编写程序代码
并通过计算机运算得到最终结果的过程。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【硬核书】不完全信息决策理论,467页pdf
专知会员服务
351+阅读 · 2020年6月24日
【纽约大学】最新《离散数学》笔记,451页pdf
专知会员服务
128+阅读 · 2020年5月26日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
【经典书】Python算法第二版,303页pdf,掌握Python语言中的基本算法
专知会员服务
215+阅读 · 2020年3月29日
【经典】论文是怎样炼成的,108页PPT教你研究生毕业通关秘籍
专知会员服务
136+阅读 · 2020年3月21日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
139+阅读 · 2020年2月16日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
Python数据分析案例实战
炼数成金订阅号
5+阅读 · 2019年5月9日
硬核| 在麦肯锡,行研和数据分析要这么做!
行业研究报告
20+阅读 · 2019年3月26日
吴恩达机器学习课程:完全用Python完成,可以的!(附代码)
新智元
52+阅读 · 2018年10月13日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
一文掌握高薪行业必备数学知识(附学习资源)
算法与数学之美
7+阅读 · 2018年6月7日
福利 | 当Python遇上大数据与机器学习,入门so easy!
DBAplus社群
13+阅读 · 2018年3月11日
福利 | 恶补线代、概率、数据库,这 7 本经典计算机书籍免费送!
AI研习社
12+阅读 · 2018年1月23日
重大改革:Python 语言将被加入高考科目,VB 惨被淘汰!
程序人生
3+阅读 · 2017年12月11日
【入门】数据分析六部曲
36大数据
18+阅读 · 2017年12月6日
一位数据分析师的书单
R语言中文社区
12+阅读 · 2017年10月28日
Financial Time Series Representation Learning
Arxiv
10+阅读 · 2020年3月27日
Graph Convolutional Networks for Temporal Action Localization
Arxiv
5+阅读 · 2019年9月7日
Reward learning from human preferences and demonstrations in Atari
Arxiv
8+阅读 · 2018年11月15日
To Cluster, or Not to Cluster: An Analysis of Clusterability Methods
Arxiv
4+阅读 · 2018年8月24日
W-net: Bridged U-net for 2D Medical Image Segmentation
Arxiv
19+阅读 · 2018年7月12日
Relational Deep Reinforcement Learning
Arxiv
5+阅读 · 2018年6月5日
Reproducibility Report for "Learning To Count Objects In Natural Images For Visual Question Answering"
Arxiv
4+阅读 · 2018年5月21日
An Improved Evaluation Framework for Generative Adversarial Networks
Arxiv
3+阅读 · 2018年3月27日
Graph Convolutional Networks for Named Entity Recognition
Arxiv
17+阅读 · 2018年2月14日
Interpreting CNN Knowledge via an Explanatory Graph
Arxiv
10+阅读 · 2017年11月22日
VIP会员
自助开通(推荐)
客服开通
详情
相关主题
编程
CVPR 2022
北京大学
Python
量化金融
编程语言
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【硬核书】不完全信息决策理论,467页pdf
专知会员服务
351+阅读 · 2020年6月24日
【纽约大学】最新《离散数学》笔记,451页pdf
专知会员服务
128+阅读 · 2020年5月26日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
【经典书】Python算法第二版,303页pdf,掌握Python语言中的基本算法
专知会员服务
215+阅读 · 2020年3月29日
【经典】论文是怎样炼成的,108页PPT教你研究生毕业通关秘籍
专知会员服务
136+阅读 · 2020年3月21日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
139+阅读 · 2020年2月16日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
热门VIP内容
开通专知VIP会员 享更多权益服务
OpenAI十二天总结与Agent新范式
【伯克利博士论文】高效深度学习推理的全栈方法
【AAAI2025】多层次最优传输用于语言模型中的通用跨标记器知识蒸馏
大规模语言模型增强推荐系统:分类、趋势、应用与未来
相关资讯
Python数据分析案例实战
炼数成金订阅号
5+阅读 · 2019年5月9日
硬核| 在麦肯锡,行研和数据分析要这么做!
行业研究报告
20+阅读 · 2019年3月26日
吴恩达机器学习课程:完全用Python完成,可以的!(附代码)
新智元
52+阅读 · 2018年10月13日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
一文掌握高薪行业必备数学知识(附学习资源)
算法与数学之美
7+阅读 · 2018年6月7日
福利 | 当Python遇上大数据与机器学习,入门so easy!
DBAplus社群
13+阅读 · 2018年3月11日
福利 | 恶补线代、概率、数据库,这 7 本经典计算机书籍免费送!
AI研习社
12+阅读 · 2018年1月23日
重大改革:Python 语言将被加入高考科目,VB 惨被淘汰!
程序人生
3+阅读 · 2017年12月11日
【入门】数据分析六部曲
36大数据
18+阅读 · 2017年12月6日
一位数据分析师的书单
R语言中文社区
12+阅读 · 2017年10月28日
相关论文
Financial Time Series Representation Learning
Arxiv
10+阅读 · 2020年3月27日
Graph Convolutional Networks for Temporal Action Localization
Arxiv
5+阅读 · 2019年9月7日
Reward learning from human preferences and demonstrations in Atari
Arxiv
8+阅读 · 2018年11月15日
To Cluster, or Not to Cluster: An Analysis of Clusterability Methods
Arxiv
4+阅读 · 2018年8月24日
W-net: Bridged U-net for 2D Medical Image Segmentation
Arxiv
19+阅读 · 2018年7月12日
Relational Deep Reinforcement Learning
Arxiv
5+阅读 · 2018年6月5日
Reproducibility Report for "Learning To Count Objects In Natural Images For Visual Question Answering"
Arxiv
4+阅读 · 2018年5月21日
An Improved Evaluation Framework for Generative Adversarial Networks
Arxiv
3+阅读 · 2018年3月27日
Graph Convolutional Networks for Named Entity Recognition
Arxiv
17+阅读 · 2018年2月14日
Interpreting CNN Knowledge via an Explanatory Graph
Arxiv
10+阅读 · 2017年11月22日
大家都在搜
无人艇
自主可控
大规模语言模型
CMU博士论文
无人机系统
palantir
洛克菲勒
HPC
MoE
出海产品从 0 到 1 该怎么做
Top
提示
微信扫码
咨询专知VIP会员与技术项目合作
(加微信请备注: "专知")
微信扫码咨询专知VIP会员
Top