对还在强制用TC来编写C大程的老师无语了..... 大家觉得这像话吗

2013-03-26 00:43:13 +08:00
 zzNucker
今年变本加厉了..... 不用TC不行了
大家纷纷开始吐槽:

1.
C大程大部分老师还是要求用过时了几十年的Turbo C
连VC6都不让用
理由倒是不错,“为了让学生更好地了解底层”……
我就问下,这到底哪里有关系了?C大程到底是希望学生做什么的?用一个以后肯定用不上的IDE写一些以后都用不上的函数来画出落后时代几十年的界面?
底层以后还要学的啊,这门课能学到什么底层的东西啊?还不如利用这个难得的机会,好好学学某些库怎么用,总比苦逼对着Dosbox调试好啊。
这还跟国际接轨?接的是哪一年的轨道啊?

2.
学长们当年也许都是虽然说要TC,可是也并没有特别强硬地要求,到头来还是大批MFC甚至QT的情况。

而今年的情况是——老师命令禁止TC以外的所有IDE、编译器和库,白纸黑字地写明了一定要用TC写(题目也规定死了)。根据我询问几个学长去年的要求辞令,明显今年的用语要强硬了许多,而且至今所有老师(除了fm以外)都没有让步的意思。今年的情境比去年还严重。

3.
TC缺点:16位DOS程序,其本身和其编译出来的程序都无法在现代操作系统上运行,并且还要面临640KB的内存限制——写个字典程序连词库索引都放不下!另外,其绘制界面和控制硬件的方式已经不是“传统”,而是“完全淘汰”——就算是CLI程序,使用curses库来绘制才是正确的方式(ncurses或pdcurses),而一个用户空间应用程序控制硬件怎么还能用中断!最后,TC不遵从ANSI标准,有些ANSI C程序无法通过编译,而能够通过其编译的程序也大都不符合标准。

我想问,为什么我们在2013年还要抱着一个1989年的产品不放?为什么BORLAND出于纪念意义免费释放出来的TURBO C被我们当作宝贝一样捧着?为什么我们要浪费时间学习这辈子都不可能再用到的Turbo C graphics库?为什么我们要在内存上G的年代里受困于640K的限制?为什么我们要对着8bit界面谈什么“漂亮”、“设计”、“华丽”?



------------------------------------以下是老师的回复------------------------------------------
你的想法很好,我也和其他老师沟通过,该课程是否需要有所改变。我是这样理解的:
1、虽然我们现在接触的很多是超大规模集成电路,但电子课程还是需要从二极管、三极管开始讲。我们这里介绍很多基本的中断、微处理机知识,就是要让大家了解底层知识。
2、这么课的前置课程就是C,如果用到C++,VC甚至其他知识,就不是本课程的要求了,今后,可以有其他课程来完成。
3、我并不完全排斥用VC,但不希望用VC大量的库,只用其基本功能,发挥编程方便完全可以。
4、这门课时间非常有限,要求也不可能很高,我觉得你还是可以在底层知识方面深入研究,如对图像的处理、中断等。对底层研究很深的人,今后一定是计算机安全等领域的高手。



------------------------------------吐槽---------------------------------------------------------
我个人觉得强制用TC纯属浪费生命啊.... 老师的几个理由完全站不住脚
1. 中断什么的以后会有专门的汇编课来学习,C大程课的重点难道不应该是作为第一个大型程序来培养一种写代码的手感和能力么 凭什么就一定连按个键的响应都要用中断实现,并且就算是你想要求这样也完全可以用其它编译器达成啊,可以做成options供大家选择的
2. 不用TC也可以用VC啊 规定不能用C++很难么
3. 不用库你也可以规定啊 何必限死编译环境, TC很多地方都是培养恶习和陋俗的啊
4. ..............没让你要求高


大家觉得强制TC有道理么...... 这都什么年代了学校还在用TC...
无力了都
20024 次点击
所在节点    程序员
108 条回复
LokiSharp
2013-03-26 16:25:54 +08:00
VIM + gcc 算什么水平呢?
glume
2013-03-26 18:16:15 +08:00
老师的诉求和学生的诉求不统一。老师们想的根本不是那回事。看你们老师的回复就明白人家知道怎么回事但根本不在意。你就是自己写个C编译器又怎么样,在课堂上要听话,至于你要学好,自己努力吧没有人拦着你,但你要老师帮助你创造一个学好的环境,凭什么?
cloudream
2013-03-27 12:28:35 +08:00
墨尔本的学校是这样:
IDE:
教师们:VIM
学生:随意

运行测试评分采用学校提供的sun solaris + gcc
darklowly
2013-03-27 12:44:20 +08:00
小题大做。
不就是上个实验课,要你用tc呗。课上自己练练手,把课程内容完成好。
课下自己爱用什么用什么。多大点事情。
况且大学里面高手100%都不是课上那么点东西。更多更多的是课外。

而且你们老师说的部分话,还是有道理的。没有站不住脚。
node
2013-03-29 17:59:13 +08:00
我觉得楼主的吐槽很靠谱,作为一个非常熟悉底层的过来人,你们老师的那些个回复纯属外行,你对其中每一条的吐槽,句句在理,我当年没你这么好的底子,所以本科也就稀里糊涂的混过去了

在国内的学术圈子混了那么多年,我是很清楚圈子里所有角色的水平和立场的
1. 老师是靠paper混饭的,编程能力多数不及动手能力强的学生
2. 多数老师也不太care教学工作,因为这对他们的收入待遇没什么影响
3. 多数老师远离产业界,对工业标准、流行的商用产品根本不了解,许多还抱着他们上大学时学到的知识体系不放,美其名曰“基础”,却基本无法对将来要就业的学生起到帮助作用
4. 每个人的学术研究领域都非常狭窄,很多分配给老师的本科教学课程也不是对口的,难免赶鸭子上架

当然,我也了解到有些教学水平很高的老师,但实在凤毛麟角

就楼主这个课程而言,目的是增强学生的动手实践能力,就应该在编译器这个不太重要的环节上采取包容态度,vc有什么不可以,不一样可以编译纯c代码么,和ansi c的差异不会比tc更大吧,即便是考虑到库的因素,按照现在业界的标准,编译器显然应该选gcc,围绕unix环境和gcc的开源库一应俱全,相应的ide可以选择比较友好的codeblocks、dev c++或者是eclipse,tc时代能有几个库?资料现在还好找么?学会了以后能用的上吗?笑话!
至于他回复的好让学生了解中断、微处理机的底层知识,神马?居然用pc来了解?!他是准备让大家都拆掉自己保护模式的操作系统,装上实模式的dos,然后int两下软件中断来了解吗?本来还想偷偷给他推荐bochs或者qemu去折磨楼主的学弟学妹们的,不过想想估计他也不愿意学 XD 好吧,玩笑话,至少我上微机原理课的时候还是有专用的教学设备查看8086管脚时序图的,现在8051的仿真器开源软件网上都能找的到,用pc来了解,我只能呵呵了~ 而且最后那句今后一定是计算机安全等领域的高手,我只能再呵呵一下了
说到底,这种限死编译器纯粹是懒惰和推卸责任的表现
XDA
2013-03-29 18:11:04 +08:00
vim+gcc
thinkinnight
2013-03-29 22:11:43 +08:00
LZ,看了你老师的回复和你的吐槽

------------------------------------以下是老师的回复------------------------------------------
你的想法很好,我也和其他老师沟通过,该课程是否需要有所改变。我是这样理解的:
1、虽然我们现在接触的很多是超大规模集成电路,但电子课程还是需要从二极管、三极管开始讲。我们这里介绍很多基本的中断、微处理机知识,就是要让大家了解底层知识。
2、这么课的前置课程就是C,如果用到C++,VC甚至其他知识,就不是本课程的要求了,今后,可以有其他课程来完成。
3、我并不完全排斥用VC,但不希望用VC大量的库,只用其基本功能,发挥编程方便完全可以。
4、这门课时间非常有限,要求也不可能很高,我觉得你还是可以在底层知识方面深入研究,如对图像的处理、中断等。对底层研究很深的人,今后一定是计算机安全等领域的高手。



------------------------------------吐槽---------------------------------------------------------
我个人觉得强制用TC纯属浪费生命啊.... 老师的几个理由完全站不住脚
1. 中断什么的以后会有专门的汇编课来学习,C大程课的重点难道不应该是作为第一个大型程序来培养一种写代码的手感和能力么 凭什么就一定连按个键的响应都要用中断实现,并且就算是你想要求这样也完全可以用其它编译器达成啊,可以做成options供大家选择的
2. 不用TC也可以用VC啊 规定不能用C++很难么
3. 不用库你也可以规定啊 何必限死编译环境, TC很多地方都是培养恶习和陋俗的啊
4. ..............没让你要求高

感觉你可以继续和老师进行沟通,其实你老师的第3条已经说明了,并不排斥使用VC,只是不希望使用VC的大量类库,估计也就是MFC或者codeproject,sf,codeplex上面的一些库吧。
不过你老师用词不是很准备,让你误认为是强制使用TC吧。
看了之后,感觉你老师还是很认真负责的,首先他和其他老师讨论过,同时还列出123来回复你,这就是一个负责的老师。

首先不管这个课程的目的,这个老师布置任务的目的是:
1. 前面的课程是使用C,所以大家完成任务使用C语言
2. 不管使用什么样的IDE,不要使用大量现成的类库
3. 最好能在里面使用到中断,以及图像处理算法等

只要达到这个目的就可以了,并不一定要纠结于IDE环境,如果不想用TC,那直接用CL好了,或者gcc,这个我感觉并不矛盾。
像LZ吐槽里面,规定死不用C++,不用库什么的实际上操作比限定TC要困难,而且前面就已经有先例,交上来如果不符合不用C++,不用库的话怎么办?打回去重新做吗?不可能吧。

其实,做项目没有什么神秘,如果要真正像一个项目来操作,可以参考下面。
1. 使用正规的软件流程,如waterfall,如Scrum
2. 使用UML,可以使用一些开源的UML画图工具
3. 使用SVN,git来进行项目管理
4. 使用单元测试
5. 定时间点,进行Report,例如周报等

主要是能够分清接口和模块,分清每个人负责的模块,然后各自实现。尽量能够实现重用的目的。

与其抱怨IDE,不如不断的实现和重构,你可以列出TC的不足,那就在TC上实际操作一个系统的实现,然后针对这个具体系统的实现,来写下在实现它过程中的不足,然后再使用一个其他IDE,如VC,不使用C++,不使用库,来再次实现这个系统,其实项目经验就是这么来的,而且在你第二次实现的时候,会发现TC中系统中很多部分是可以重用过来的,而不能重用的部分,可以重构出来。

希望对你有用。
darasion
2013-03-30 00:03:06 +08:00
当年在学校的时候,一个老太太老师教我们机械电算课,用tc做矢量计算加减乘除...
各种苦恼,好在没有任何算法数据结构的,一个超大大的main函数搞定。
zx900930
2013-03-30 00:23:35 +08:00
学校的时候,可以自由选择,其它人包括老师都是Emacs+gcc,就我一个vim+gcc,对,还有用kdevelop的,不过学校里的版本有些古老
binux
2013-03-30 00:52:27 +08:00
作为一个面向可能从未接触过电脑的学生的课程,他们问出的问题*一定*和C无关,如果不指定IDE,问个VS怎么编译,老师不知道,也没有义务知道,这不是愿不愿意接受新知识的问题。
能提出这样问题的学生,一定是有编程基础的,但是并能保证能完全搞定一个不一样的环境,也就是说,无法保证学生不问出C以外的,有关环境的问题。上面说过,这样的问题,老师是没有必要知道答案的。为了避免这种情况的最好方法是什么?

如果环境和C两者你都能搞定,可以尝试申请免修,如果这太麻烦,就用TC完成课程很难吗?
LZ也无需为学弟学妹争辩什么,除非你能保证他们不问出TC以外的环境问题。如果无法保证,我认为老师所做的是合理的。
zzNucker
2013-03-30 01:33:46 +08:00
@node
@thinkinnight

谢谢各位 这个问题的最新情况是多数老师也支持我们的 现在院长准备在4月初开一个座谈会让我们去和老师公开讨论 决定这个课程的最终归属

我们学院的老师还是很好的 我们的意见能够得到重视很满足
hxgdzyuyi
2013-03-30 01:39:04 +08:00
这就是情怀啊
Xe0n0
2013-03-31 10:01:01 +08:00
难道贵校是 ZD?之前在 twitter 上看到一个同学吐槽的说。
XDA
2013-04-01 14:12:35 +08:00
你下课来我办公室一趟!
larkifly
2013-04-02 18:04:53 +08:00
换vc老师要有学习代价的啊,于是老师懒了,就不让用
whtsky
2013-04-02 18:24:17 +08:00
我们还在用 Free Pascal ……
zeroten
2013-04-03 15:21:37 +08:00
@darcy Dev-C++ 5.0也不算太久吧
erylee
2013-04-03 16:27:44 +08:00
你们老师很棒:) C这么漂亮的语言,用VC这屎一样的工具写,是不应该的。
jimrok
2013-04-03 22:50:43 +08:00
还是不要弄c++先,现在大部分的库还是C做的,稍微复杂的业务一般就是python + C。TC教学没有什么问题,通过这门课程了解C语言就行了。其实最原汁原味的还是在Unix上学习C。VC可以放放。大学教育其实重视的是基础。国外也是一样的,大学学习基础的知识,研究生做基础研究,企业负责将研究转换为应用实现。
srdrm
2013-04-03 23:55:15 +08:00
看了这么多回复,我觉得一条很重要,老师已经落后了,怎么可能让教出来的学生一毕业就能适应社会需要?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/64027

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX