dacity有两门编程入门课:intro to programming in javaintroduction to programming以及introduction to computer science, 这门用的是pythonintro 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语言居然成了落后和低水平的标志?不愿意学改行干别的去。