对还在强制用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...
无力了都
19944 次点击
所在节点    程序员
108 条回复
momo5269
2013-03-26 00:46:50 +08:00
我学校NOIP时候也是这么说的 但是我都给装上vc6.0了 后来还弄了Dev-Cpp...实在是不清楚为啥要TC 要是说故意给我们用386和奔1机器用tc还说得过去 可是我装出好几台图拉丁啊
momo5269
2013-03-26 00:47:37 +08:00
就算不用tc和vc 替代方案也不少的...
lingyired
2013-03-26 00:48:35 +08:00
呵呵
一边强制教你asp.net,一边苦口婆心的告诉你:“一门通门门通”
darcy
2013-03-26 00:49:01 +08:00
楼主可以给贵校老师推荐一下codeblocks 既可以很"底层"的工作,又符合标准(gcc),还有更加人性化的UI
darcy
2013-03-26 00:50:22 +08:00
@momo5269 dev c++ 很久没更新了
zhouhua97
2013-03-26 00:53:20 +08:00
也许是老师上这门课太久了,不想换新东西,呵呵。
zzNucker
2013-03-26 00:56:43 +08:00
@darcy @momo5269
鄙校老师看来是完全没打算放弃TC 愈演愈烈
闹了好几年了都不该 感觉C大程课就是用来让你学TC的坑爹bios库和更坑爹的图形库
这感觉就跟写汇编没区别啊尼玛.... 还是C程课么...

这事跟强制大家学谭浩强的教科书有区别么.... 就TC那坑爹的语法兼容性
Linxing
2013-03-26 01:00:55 +08:00
@lingyired .net这门课开了根本木有用..我这个学期也在学.net感觉现在用.net写的网站很少很少了,浪费生命啊..不如开PHP

PS.讲起C语言就让我想起了那位sb老师..
chemhack
2013-03-26 01:51:19 +08:00
我觉得你们老师回复的很好啊。大部分计算机专业的学生上大学之前基本是什么都不懂的,如果都和你一样的水平就不用开这门课了啊。用VC++估计教怎么设置环境就够烦死人的。美国一堆大学还在教lisp呢.
SharkIng
2013-03-26 01:54:49 +08:00
我们老师强制用LInux下 VIM或eMacs lol
yedingding
2013-03-26 02:05:49 +08:00
TL;DR 你知道的太多了.... 我当年进去的时候连编程是啥都不知道,给用 TC 就用了,觉得也挺好,而且不需要做 CLI 相关的东西,感觉没什么问题,不知道现在课程是怎么安排的,为什么需要用图形库... 不过我相信大多数学生应该不像你那么有基础,即使现在是 2013 年。FM 算很开明了,他在 weibo 上已经表态不颤和这事...

Anyway,这事内部讨论讨论好了呗,干嘛上 V2EX。
yyfearth
2013-03-26 02:16:20 +08:00
相比VC应该用GCC才对,又可以运行在现在的OS上面(Win/Unix),而且用命令行可以了解一些用IDE不能了解的细节。
而且开源免费,可以用各种编辑器,不会养成对IDE的一来。
我们这边的教授教C的时候都是用这个。
@momo5269
@zzNucker
老师强调用TC的原因,我认为主要是因为教材和懒惰。因为他们的教案,他们所知道的东西都仅仅针对TC,如果你用VC可能很多问题他们解决不了,就比如C标准的问题,由于和教材不一致,就会造成很多问题,他们不想产生更多问题,所以才严格限制TC。
gateswong
2013-03-26 02:35:37 +08:00
我们学校的C语言老师要求用Borland C,过了几节课后就教了VC6的用法
当然没有要求死
所以我从头就在用VS的最新版。(大一时是2008)

我觉得老师的引导很重要
因为几乎所有的学生的代码都用txt保存,甚至有word保存的。
典型的操作:VC里编写 --> 保存到TXT,复制到U盘 --> 下次上机打开TXT --> 复制粘贴到VC里

而且要是学C的话,应该不会首先教库吧?
包括C++也是,只是课堂上的话应该也只是基本的语法知识,最多涉及STL的iostream什么的

还有LZ说TC是16位程序。
那么在现在来看真心不合适了。许多电脑都装了64位系统,为了16位程序还要跑模拟器/虚拟机/32位系统。真的是很麻烦的一件事情。

还有LZ提到的库的问题
我感觉大学基本没有区分出来库的概念。都是将库揉进语法里讲,就好像输入输出语句就是语法的一部分一样。
当然不知道是不是我自己平时学习不够的问题,我到后来才明白库的重要意义。大学几年里没少造轮子
for4
2013-03-26 02:57:18 +08:00
也觉得你们老师回复得挺好的。
cassyfar
2013-03-26 04:20:20 +08:00
我觉得你们老师说得有道理。
其实站在老师的角度,无论VC,TC,还是GCC,都只是一个C的编译器,只是一个工具而已。他想交给你们的是编程的思想,比如他举到的中断,微处理机知识,至于用什么工具去把这些实践出来,重要吗?
LZ确实这方面基础不错,但上大学并不是简单学几个流行的工具毕业后直接拿技能就业的,那不成技校了。
另外你提的那些对TC的不满,如果不能增加课程的学习难度,其实是无所谓的,毕竟老师重点在科研,教学上只要这些工具能满足实验要求就可以了。如果你们要编译32bit kernel或者写32bit driver,那么TC确实蛋疼,但是如果没有,又何必要求人家兼容32bit OS呢?
momo5269
2013-03-26 04:45:18 +08:00
@darcy 是啊不过 我们学校NOIP是09年时候的事情... 后来我就休学了

@yyfearth 是撒 VC有些地方比较烦 可是又不是只有VC一个 = = gcc的dev cpp就挺好啊。我也觉得教材也是因素,节省他们的各种成本。

@cassyfar 这个还是有些关系的 比如你初学自行车 现在的小型和常见自行车不用 非得去用单杠的凤凰自行车 虽然照样能学会 也只是工具而已 可是毕竟麻烦许多啊 。重点并不是用什么工具去实践,而是某种工具本身落后了,之外选择很多,为什么不选择?

而流行工具和技校那个就扯远了 - - 工具再好也是为思想为人服务的,学会用工具谁不能。人家只是吐槽一下工具而已。 你看tc用来做最基本的题目都比较d疼,因为不符合现在的习惯 不能够良好的进行交换(尽管可以通过打开输出文件来交换)而内存限制和不符合标准等楼主的问题,也不是小事情吧? 使用TC的好处也只有培养录入习惯和他们省事而已吧?

说个题外的NOIP的环境 我们那时候一开始是dev cpp 后来是他们自己的工具 好像再后来是kdevelop等等。
(我只针对楼主第2、3点进行的说明)

p.s.不过我还是留了一份TC在硬盘里面。
cassyfar
2013-03-26 05:38:08 +08:00
@momo5269 我当时NOIP是用的turbo pascal,大学第一门C的课是在很老的solaris 8上用nano敲的(连VIM都没有...)。但是当时一个大牛硬生生用nano敲出了个支持鼠标的CLI程序之后,我觉得沉得下心来搞技术的,才是王道。所以我觉得TC什么真的没什么,老师是懒,但是没什么错。
kneep
2013-03-26 08:22:52 +08:00
显然不像话。我想不出任何理由用tc。
tc在现实中早就消失了。
用编辑器+gcc不就行了,和以后的现实接轨。

我觉得这老师也不是懒,就是对技术没啥sense,不够热爱。不够热爱的事情,咋做都无所谓,没啥强烈的是非观。估计也就一照本宣科的普通教员。
liwei
2013-03-26 08:56:13 +08:00
我只想问“C大程”是什么东西?
robertlyc
2013-03-26 09:12:41 +08:00
TC的确应该淘汰了

同理VC这种东西也应该淘汰

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

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

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

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

© 2021 V2EX