Home  >  Article  >  Backend Development  >  为什么国外本科学的第一门编程语言通常是Python或者JAVA,而我国大部分是C?

为什么国外本科学的第一门编程语言通常是Python或者JAVA,而我国大部分是C?

WBOY
WBOYOriginal
2016-06-06 16:22:441555browse

dacity有两门编程入门课:Intro to Programming in Java
Introduction to Programming

以及Introduction to Computer Science, 这门用的是python
Intro to Computer Science Class Online (CS101)

我没见过国外哪个学校第一门编程课是用C语言的,但国内基本上都是用C的(包括我自己在内)
编程入门课除了Udacity,Coursera,edX上也有很多,基本上都是用Java或python。
我完整地跟过Stanford的Programming Methodology,挺不错的,用Java

我猜:
因为C很难写。。。初学者没必要整天搞指针、内存分配这些的, 如果用python教的话我觉得我兴趣会大很多,畏难情绪会弱化很多。。走的弯路错过的青春,谭浩强的C语言毁人不倦的。。。

回复内容:

由写分号到不写分号易,由不缩进到缩进难. CMU, Caltech, Cornell 也都是用的Python...

是的,虽然C的语法简单明了,但必须得自己管理内存是一件很头疼的事。
而Java的语法过于麻烦,比如你去对比一下Java和Python里面用List/Array的代码数...

依我看来,Python是这三者中最好的Intro to CS语言。
在新手阶段你无法体会到C和Java的强大,但你可以体会到Python的简洁。
关于C,合理分配内存带来的效率应该是在至少在Intro课程后再学一门算法再来教的。
新手一开始可能会被SegFault弄得不想学了。
还有,OOP很难用C来教。
至于Java,它真正的强大是易于团队合作开发/程序的通用性(一个JVM什么平台都可以运行)。
新手则会过多关注语法而无法领会Intro to CS的要点。

对于真心想学好的人,其实我的建议是:
第一节课用Racket/Scheme + SICP教。
接着学Python。
之后Java,C就随便了。

如果不是那么认真,Python入门也可以。只是最好也稍微侧重一下Python中的Functional Programming,介绍一下lambda之类的。
个人观点是FP要尽早学,很开阔视野。
并且Intro课程中的Recursion之类知识点,个人认为只有用FP才能充分体现出其优雅性。
虽然Python也很能体现啦。 我靠,必须是使用我们由中国人自己掌握核心技术的谭浩强发明的C语言啊。
----------------------
<code class="language-text">/*
哎呀,别顶了各位,我都不好意思了。
因为python和java这种高级语言更加用以上手。

现代编程课程主要教的是数据类型,变量作用范围,逻辑,条件,循环,这是面向过程阶段的。
还有面向对象阶段的继承,多态,抽象等特性都能很好满足。

并且它跨平台,容易出产品。

如果你用C系,尤其是在linux下,你需要care的和特定语言相关的细节太多,
不是老学究或者是系统工程师,在入门阶段了解太多意义不大。
*/
</code>
lz调查过么...
至少我专业是大一开始就学Java的,加上一些基础课程(可能会涉及到C,但很少也不会单独教C)
而且本科四年完全和语言相关的课程只有Java,C/C++只是会在很多课程中涉及。 国内教育制度太垃圾,主要靠自学,感觉python比较适合入门。让人有成就感。c语言以后在学,学完python代码就会写的很漂亮。既简单深入学的话又能做大项目。不喜欢微软 我觉得中国这么做没什么不好。
原因
一句话:不学C,无以言

多扯一点:因为C是“中级语言”,可以上可下,有简单低阶的性能模型(对象模型),对软硬件专业学生都有好处。学C更有利于学硬件、学基础软件。学Python/Java等则对“解决问题”更有好处。
两种不同的思路。“想学的”,应该,也会多学几种语言。“不想学的”,学哪个都没有关系。 因为国外第一门课重点在于计算机导论,讲述重要的程序概念的,不是讲语言的,需要的是语言陷阱少,入门易,语法简单,特性丰富,能够用来阐述概念。python正好具有上述特性。

国内入门课就真就是在讲语法了,for,while语法都能讲几节课(这里要是从抽象代数角度讲还不错,并适时引入不变式,前条件,后条件。)

c更适合在system programming课程里简单介绍下,然后用于系统编程,类似于cmu的ics和ucb的cs61c。单独开课算个秋水仙数,纯属浪费。

匿一个。。
哈工大今年秋季学期 大一新生上的第一门程序课
就是python不是c。。

C很明显是比Java、Python更好的本科生入门语言,因为可以和“计算机组成原理”、“操作系统原理”、“算法”、“编译原理”这几门课紧密结合起来。Java、Python那么简单的东西自学就是了 计算机系学生学习C语言居然成了落后和低水平的标志?
不愿意学改行干别的去。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn