学生的第一门编程语言应该是什么?

“学生第一次开始学习计算机科学(computer science,CS)时,应该从哪种编程语言开始学习?”这一问题一直让教育工作者备受困扰。来自密歇根大学的计算机科学教授 Mark Guzdial 也对此进行了大量思考与研究,然而其近期发表在《ACM 通讯》上的一篇文章则指出,他的两个来自不同学校的 CS 同事都认为,学生的第一门课程学习何种编程语言并不重要,重要的是 CS 的学习成果。因为如果学生很好地学习了这些概念,那么他们接下来就可以简单地将其应用到任何要学习的语言当中。

对此,Guzdial 则在文中指出,当这个领域还处于比较早期的阶段的时候,这种想法或许是正确的。但那是在 20 世纪 60 年代末,课程刚刚建立的时候;而今天,所有不同年龄段和经验水平的学生都在学习如何编程,且他们最终都有着不同的需求。

对于这一问题,不同的大学也仍然有不同的答案,这从某种程度反映了他们的教学理念和看法。THENEWSTACK 指出,斯坦福大学在 2017 年就曾因其计算机科学专业的入门计算课程的一些变化引起了强烈的反响。

斯坦福大学的学生报纸报道称,斯坦福大学计算机科学荣誉教授 Eric Roberts 花了五年时间致力于将该课程从 Java 过渡到 JavaScript,并最终创建了该课程基于 JavaScript 的新试验版本。因此,该课程被命名为 CS106J,而不是 CS106A。这一变化涉及到创建新的教科书和作业、以及培训新的助教,Roberts 本人也从退休状态中走出来教授该课。

此前,斯坦福大学的入门课程一直是基于 C 语言编程的(更早之前是 Pascal 语言)。然而在 2002 年,Roberts 通过编写教科书、并与其他教师合作重组课程和作业,帮助学校将课程转向了 Java。根据 Roberts 的说法,Java 很早就被设计为“互联网语言”。但在过渡到 Java 十多年后,他又认为,Javascript 已经取代了 Java 作为网络语言的地位。

现在,再次查看斯坦福大学的教学大纲,你会发现 CS106A 似乎正在使用 Python(和 PyCharm IDE),而 CS106B 的教学大纲则表明他们正在使用 C++。

与此同时,哈佛大学自己的入门课程 CS50 多年来则一直坚持使用多语言方法。在第一周,学生们采用 Scratch 编写程序,之后切换到 C 语言;接着在后面几周再次切换到 Python,再然后是 JavaScript。该课程的官方 FAQ 解释称,"CS50 不是只教一种语言,而是向学生介绍一系列'程序性'编程语言,每一种都是在概念上建立的。最终的目标是让学生觉得他们不是'学会了如何在 X 中编程',而是他们'学会了如何编程'。 "

至于为什么要从 C 语言开始,该课程的讲师 David J. Malan 教授则认为,学习 C 语言的几周让学生有机会了解所有编程语言的一些基本构件,同时也提供了解释缓冲区溢出这一关键安全概念的机会。

"我认为在一周时间内用 C 语言实现一个哈希表(或 trie),然后在一周左右后仅用一行 PHP 或 JavaScript 代码就能实现同样的内容,这也是一件很强大的事情"。此外,C 语言也是一种相对较小的语言,所以 "到了学期中期,学生们几乎已经了了解到了所有的东西(除了 unions 和函数指针)。"

不过,ACM Communications 的一篇文章指出,截至 2014 年,Python 已经成为美国顶级计算机科学课程(包括麻省理工学院和加州大学伯克利分校)的入门课程中最受欢迎的语言。具体来说,排名前 10 位的 CS 系中有 8 个(80%),排名前 39 的系中有 27个(69%)在 CS0 或 CS1 的入门课程中教授Python。Java 紧随 Python 之后,其次分别是 MATLAB、C、C++,然后是 Scheme 和 Scratch。

2016 年,三位英国研究人员进行的一项调查则指出,在英国大学中,使用 Java 的课程是 Python 的两倍多。“尽管事实上,相同的受访者认为 Python 更容易教学和学习”。对此,研究人员引用的一个可能的解释是:由社区指数衡量的长期的行业流行。

而温斯顿-塞勒姆州立大学的三位研究人员在 2019 年为 ACM 的计算机科学教育小组撰写的一篇论文中甚至认为,每个计算机科学学生也应该掌握大数据和云计算的基础知识,并拥有一些在云中部署和管理大数据应用程序的实践经验。还提出,与其单独开设云计算课程,不如将这些材料整合到多个本科计算机科学课程中。

根据英国研究人员的说法,向初级程序员教授什么仍然是一个重要问题。他们的论文认为,不能轻易掌握编程几乎肯定意味着不能在计算机科学领域取得进展。并指出,因此自从大学开始进行计算机科学教学以来,先教哪种语言的问题一直存在着激烈的争议。

密歇根大学教授 Guzdial 则仍然认为,学生从哪种语言开始学习是很重要,但他也希望教育工作者重新审视一个形成性假设。他在自己的 ACM 文章中回顾了 1979 年的一项研究,该研究认为,一旦学生学会了更广泛的语义概念,他们就可以将其应用于任何后续语言(只需要掌握相对容易的语法差异)。

但是 Guzdial 指出,在那个时代,大多数计算机科学的学生都是传统的大学生。早期进入计算机科学的学生通常比今天学习编码的普通学生具有更强的数学背景。因此,早在 20 世纪 70 年代末,教育工作者可能高估了转换编程语言的难度,因为他们最终只是在已经理解的数学基础上教授编程。

Guzdial 认为,如果我们根据学生已经知道的数学来教授编程语言的语义,那么新的语法只是一种新的数学形式主义。我们没有必要让编程与数学有关,如果我们不期望学生首先了解数学,也许早在 40 多年前就能期望更多的人学习编程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1382305.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

编程语言是怎么发展的?

说到编程语言,我们通常会想到JAVA、C#之类的。不知道你有没有好奇过,编程语言到底是怎么发展而来的。别急,听小编慢慢道来。 编程语言的定义为计算机和人都能识别的语言,通过编程语言,程序员将指令发给计算机&#xf…

什么是 Python 编程语言?

Python:是世界上最流行的解释型编程语言之一。Python 由 Guido van Rossum 设计,作为“ABC”编程语言的继承者,于 1991 年首次发布。它是一种高级通用语言,其设计理念是通过使用缩进来强调代码的可读性。Python 的语言结构旨在帮助…

Python 编程语言

💂 个人网站: 海拥 —— 一个乐于分享技术与快乐的博主🤟 版权: 本文由【海拥】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦💅 想寻找共同摸鱼的小伙伴,…

编程语言应该如何选择?

我们到底该选择学习哪一门语言?(观点仅供参考) 关于编程语言的选择,我一直认为你选择了什么样的编程语言,就会在以后大概率走上什么样的道路。如果你一开始就把编程语言选错了,你将会走许多弯路,最后不得不回到“正确…

第一门编程语言选谁?

Are You Ready? Go! ——第一门编程语言选谁? 金旭亮 说明: 这篇文章是专门针对大学低年级学生(和其他软件开发初学者)写的,如果你己经是研究生或本科高年级学生,请将这篇文章转发给你的师弟或师妹&…

【雕爷学编程】Arduino动手做(09)---火焰传感器模块5

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

异常处理:从生活中的插曲到代码中的挑战

文章目录 1. 异常:生活中与代码中的无奈2. 异常的体系结构:错误与异常3. 异常处理:抓取异常,保障稳定3.1 throw 和 throws3.2 try...catch3.3 finally 4. 自定义异常:灵活应对特定问题结语 在人类的日常生活和编程世界…

刘涛入职阿里,年薪超过欧阳娜娜!揭秘阿里巴巴的明星员工和职级薪资!

【文末有送书福利!】 来 源:网络整合 继前段时间欧阳娜娜加入阿里之后,现又有刘涛入职阿里成为了聚划算官方优选官! 一时,阿里巴巴的职级薪资体系引起广泛关注,不少HR看到后纷纷表示:马云要HR吗…

移动硬盘在电脑上的设备和驱动器中没有读出来,另一台电脑上是好的

今天不知道怎么回事,移动硬盘插到台式机上,设备和驱动器突然就没有读出来,以前都能读出来的,但是右下角硬盘的设备标志显示出来了。 插到另一台电脑上又可以读出来。 不放弃的反复试了几次还是一样。 网上描述的也跟我的情况不一…

关于电脑雷电3、雷电4、USB3.1/3.2全功能Type-C接口能否直接连接Type-C耳机做出如下解释

关于电脑Type-C接口能否直接连接Type-C耳机做出如下解释 1、电脑Type-C接口大多数未配置音频解码器(物理设备),所以直接连接电脑无任何反应(这是硬件问题,不是安装一个驱动能解决的,不管是雷电3、雷电4、U…

计算机控制菜单在哪里,电脑菜单在哪里

电脑菜单根据系统会分布在不同位置,如果是Windows系统,位置在屏幕左下角,点击之后可查看最近使用的程序,以及文档、图片、音乐等等;如果是macos系统,电脑菜单在屏幕左上角,点击苹果图标后可查看系统信息、系…

lscpu的各个参数是什么意思?

$ lscpu Architecture: x86_64 #架构 CPU op-mode(s): 32-bit, 64-bit #运行方式 Byte Order: Little Endian #字节顺序 CPU(s): 96 #逻辑cpu数 On-line CPU(s) list: 0-95 #在线cpu Thread(s) per core: 2 #每个核包含线程…

腾讯高级音视频架构师郭亮:解密互动直播技术

https://www.oschina.net/news/77113/decryption-interactive-broadcast-technology 2016年9月10日,第52期【OSC源创会】在珠海圆满落幕,350余名OSCer齐聚报业大厦,聆听了一场诚意满满、干货多多的技术分享盛会。 本期源创会由5位讲师分别针…

一招让你快手抖音上热门拍摄拥有源源不断的素材军火库-阿甘电商

大家好今天我们来聊聊自己在原创抖音或者快手短视频的过程中会遇到哪些问题。 一、原创素材哪里找? 1、自己瞎琢磨:难度大、火起来的概率低、一旦火非常火 2、做搬运和微创新:各大视频网站找素材,去水印、合拍加工 3、原创改编思维: ①抄:平台什么视频火抄什么 ②重…

你家的猫也能来段东北话了:快手快影一键「智能配音」,三种方言随意换,还能配出《舌尖》风...

鱼羊 发自 凹非寺量子位 报道 | 公众号 QbitAI 日常想给家里的蠢猫拍个视频配个音,需要几步? 不不不,现在有了AI的加持,只需打开App,输入文本,秒秒钟就能搞定。 不只是四川话配音,东北老妹音也可…

如何将视频的语音变成文字播放出来?

看到回答中很多人分享的是软件,每次使用都需要下载,给大家分享两款在线端语音转文字工具,不用下载安装,在线登录就能使用,非常方便。 1、网易见外 网易见外是网易团队上线的一款转文本工具,上线了视频转写…

教育场景下的实时音频解决方案

本文来自网易云信 资深音频算法工程师 李备在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成。在分享中李备详细分析了在线教育的音频需求,以及一般软件音频框架,和行业的挑战。 文 / 李备 整理 / LiveVideoStack 直播回放&…

全媒体运营师胡耀文教你:从0到1搭建直播运营体系

越来越多 To B 企业开始做直播,无论是 SAP/微软/AWS 这样的老牌大厂,还是像很多 SaaS 创新企业,都投入到直播大潮中。疫情爆发后,To B 直播更如雨后春笋般涌现。 很多 To B 企业的朋友都想做直播,但是没想好直播的定…

抖音 K.O. 快手之后还能火多久?

本文来自作者 tepy 在 GitChat 上分享「抖音 K.O. 快手之后还能火多久?论抖音的运营之道」,「阅读原文」查看交流实录 「文末高能」 编辑 | 泰龙 前段时间,朋友圈忽然刮起了妖风,各种鬼畜的抖音短视频在某个晚上突然爆发般增长&am…

使用Python和pymupdf创建简单的PDF阅读器

使用Python和wxPython编写一个简单的PDF阅读器,并展示了PDF文件的内容。 介绍: 在日常工作和学习中,我们经常需要查看和阅读PDF文件。本文将介绍如何使用Python编程语言和wxPython库创建一个简单的PDF阅读器,让我们能够打开文件夹…