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语言啊。
----------------------
/*
哎呀,别顶了各位,我都不好意思了。
因为python和java这种高级语言更加用以上手。
现代编程课程主要教的是数据类型,变量作用范围,逻辑,条件,循环,这是面向过程阶段的。
还有面向对象阶段的继承,多态,抽象等特性都能很好满足。
并且它跨平台,容易出产品。
如果你用C系,尤其是在linux下,你需要care的和特定语言相关的细节太多,
不是老学究或者是系统工程师,在入门阶段了解太多意义不大。
*/
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语言居然成了落后和低水平的标志?
不愿意学改行干别的去。