V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zzNucker
V2EX  ›  程序员

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

  •  
  •   zzNucker · 2013-03-26 00:43:13 +08:00 · 20329 次点击
    这是一个创建于 4264 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今年变本加厉了..... 不用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...
    无力了都
    第 1 条附言  ·  2013-03-26 09:51:35 +08:00
    可能我没说清楚这不是我吐的槽... 我只是把大家积怨已久的吐槽综合一下发出来看看大家观点......
    我的观点就是用这么脱节的编译环境其实是坑害学生, 而且我们大家都不反对的话大概会一直用下去, 跟IE6一样...
    第 2 条附言  ·  2013-03-26 12:47:45 +08:00
    再append下, 也许之前没说清楚,这个课叫C大程是因为它并不是C语言之类的基础课程,而是一个类似于做出一个相对的大项目的一个课,基本是学生独立选题组队做出作品。 所以我不认为这个课的IDE跟老师备课什么的有关系,同样也不觉得这个和学习C语言基础知识有什么关系。 这个课的目标应该是让学生体验大项目的开发过程和得到一些编码经验,而不是为了一些弃用的IDE特性而折腾来折腾去。
    108 条回复    1970-01-01 08:00:00 +08:00
    1  2  
    spenceryi
        101
    spenceryi  
       2013-04-04 19:18:55 +08:00
    遇见拿ie6来教web编程的。。。。
    orvice
        102
    orvice  
       2013-04-04 21:47:54 +08:00
    我们没有强制。。但是老师演示用TC于是大家都用TC。。

    我会告诉你我们大二了,学数据结构。。超过一半的人开虚拟机XP写C吗。。
    cythb
        103
    cythb  
       2013-04-06 13:53:44 +08:00
    哈哈,我记得我当时也是用的tc。
    jsjscool
        104
    jsjscool  
       2013-04-06 16:15:44 +08:00
    以后用这个!
    http://php.oil58.com/?p=523 除了标准,还是国产哦!
    FrankHB
        105
    FrankHB  
       2013-04-06 18:52:01 +08:00
    哪个烧饼老师误人子弟,报上名来。
    codepad什么的,比起liveworkspace还是弱爆了。
    FrankHB
        106
    FrankHB  
       2013-04-06 19:03:22 +08:00
    环境?既然要学C(不算混二级),环境本来就是 [必须折腾] 的东西。不会?不会RTFM?要是连这种基本功都死活折腾不好,学出来什么用?
    对于C来说,现在教pre-standardized impl几乎完全和实际需求脱节。而且C本来就设计得不怎么样,渐进改进对易用性实际上是有很大帮助的。就算M$冥顽不改,最起码也支持ANSI C89(而Herb Sutter也承认过不是完全无视需求而是资源的问题所以优先满足C++,C++11需要的部分C也实现了)。但TC/VC6这种早就过期/bug一堆/脱离实际的实现,负责任的老师是不会拿来浪费学生生命的。
    至于水平嘛……这个别指望了,要干活肯定得靠自学。国内的C相关著作的水平绝大多数没法指望,这个也差不多是常识了。另外我是相信现在非得抱着TC/VC6这种过时实现才会教的,99.9%以上自己都没入门。
    那谁,别黑Lisp了,Lisp根本就不算是 [一种] 语言。要说Scheme,不会像C那么过时,虽然R6RS改得有点多。Common Lisp什么的确实不适合入门。(但说到底其实C也不适合——坑多,而且不得不折腾环境什么的。)
    medlar
        107
    medlar  
       2013-04-07 18:43:30 +08:00
    老师的惰性而已,很多人多少年不改教案,知识陈旧也不想更新。考核他们的机制有问题。
    josephok
        108
    josephok  
       2013-09-18 09:01:26 +08:00
    @spenceryi 这个真是无力吐槽了
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1559 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:58 · PVG 07:58 · LAX 15:58 · JFK 18:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.