老莫

填坑:CS大法好之三——到底哪里好?(终章)

3
阅读(953) 评论(18)

经过了漫长的铺垫,终于要迎来CS大法好的终章。这一章里面我们要揭秘CS大法到底哪里好。

各位读者老爷们多次催更,一定要我谈清楚到底在Xilinx的大学计划宣传资料上看到了什么?其实倒不是我有意卖关子,本来一早就想更新的。但无奈牙髓炎发作了,牙齿一疼起来半边脸都在抽搐。所以没有办法长时间集中精力来做事情,也导致了本文迟迟未能更新。其实在五.一之前我和我一位曾经在某大型外企大学计划干过多年现在又出来做大学教育相关创业的师兄聊起来Xilinx的支持下的这一系列举措,就已经准备尽早更新这一版了。

今天下午去怒拔那颗已经烂掉的牙齿,终于一举解决了困扰已久的问题。被拔下来的牙齿确实烂掉了,我开始还想要不要把烂牙的照片传上来给各位读者老爷们看看以证明我真的是这几天牙疼而不是在故意拖延。但是烂牙的照片发朋友圈里后恶评如潮,考虑到这博客的公众属性更强一些,就更不能把这照片放出来吓大家了。

分割线,正式填坑开始———————————————————————————————————

前面讲到,计算机和电子的关系经历了三生三世。而这三世的发展中电子和计算机的关系一直在不断的发生变化。在不同的世代,因为为电子和计算机的关系不同,所以涉及方法和设计思路不同。与之对应的对人才的需求也并不相同。

首先我们需要明确一个问题:我们实现一个系统的时候到底是“计算机+”还是“+计算机”。这个问题其实在别工程/工业的领域很好回答,那一定是“+计算机”。但是在大的信息产业的领域或者说大一点大多数服务产业里面,其实是“计算机+”。不要小看这个“+”的位置,放前面还是放后面实际上代表了两种截然不同的思路。

“+计算机”的本质是什么?是在原有产业/行业的基础上引入计算机技术来辅助工作、简化流程、提高效率。而什么是“计算机+”呢?就是以计算机技术本身出发,进入到一个行业/产业里面去,彻底的改造这个行业/产业。举一个例子,比如说银行里面采用计算机来替代原来的手工做账、结算等一系列工作就属于“+计算机”。流程还是原来的流程,业务还是原来的业务,就是把工具换成了更趁手一点的计算机而已。而如果是是基于“区块链”技术搞出来了一整套新的银行业务流程,做出了真正的“互联网金融”,这个就是“计算机+”。

那么我们来看,其实在第二世,电子行业就处于“+计算机”这样一个阶段。在这个阶段计算机(无论是以单板机、单片机还是以IP核形式的)是被作为一种“超级元器件”使用的。在电路与系统设计的过程中,通过引入这个“超级元器件”以软硬件协同的方式来实现诸如检测、分析、控制等功能。所以在这个世代,电子信息大类专业的教育是通过开一系列“计算机相关课程”来让学生掌握如何使用计算机的。这类课程包括:“高级语言程序设计(C或者C++)”、“微机原理与接口技术”、“数据结构与软件技术基础”、“单片机和嵌入式系统”等。通过学习这几门课程呢,电子类的学生掌握了一些计算机的基本原理和编程使用方法。但是却并没有经过非常严格和完整的计算机系统性的学习。而同时代的计算机专业的学生呢?他们的课程虽然系统的学习了计算机系统的方方面面,但是侧重点也是偏上层应用。因为那个世代的计算机专业学生主要解决通用的计算机系统上如何开发系统软件和如何推广计算机应用的问题。因此他们学习一些数字逻辑、计算机组成之类的课程本质上只是为了更好的理解计算机运行的原理,而不是真正要从如何设计计算机的角度来学习和掌握这些课程。所以说在这个世代,无论是电子还是计算机专业的课程设置还算是比较合理。电子信息类专业通过学了那几门课,知道了如何把计算机做为一个部件或者元件用到电子系统设计中。知道了如何设计个电路和计算机接口,然后知道了如何写一点代码去处理信息并驱动外围的电路。

但发展到第三世就出问题了。到了第三世,“计算机+”的特性越来越明显。电子行业的“不幸”在于和计算机都是同样的物理基础,因此被计算机的“侵袭”也就更严重。而反过来看,由于“计算机+”的发展,又要求计算机专业的学生更多的去接触和设计“专用计算机”。无论是智能手机还是软交换的路由器,都可以看成是一种专用计算机。所以计算机专业的学生的知识体系同样需要发展和革新。

这一点,其实我们国家的教育部已经看到了。于是大概在2013还是2014年的时候就出台了一系列文件。文件中特别指出要革新电子信息类专业和计算机类专业的教学体系。其中有这么一句话叫:“要改变电子信息类专业学生惧软,计算机类专业学生怕硬的现状”。虽然这句话非常明确的指出了未来教改发展方向,但是如何落实却要看各个“教指委”和各个高校的具体措施。

今天身体不适,先写这么多。后面具体来填坑……

分割线,继续填坑——————————————————————————————————————

由于拔牙以后抵抗力下降,所以昨天有点感冒并引起了咽喉肿痛。于是昨天就早点回家睡觉了。虽然咽喉一直持续到现在依然很痛,但是为了把这个坑填完也只能继续来带病坚持填着。

闲话少叙,继续说这个“要改变电子信息类专业学生惧软,计算机类专业学生怕硬的现状”这一问题,就要依靠教学体系和教学内容的改革。但教育部只是一个行政主管部门,只能提出“倡议”和“意见”。而教改的具体规划在“教指委”这一一个机构,教改的具体承担方则是各个高校。而教改还需要有外力的支持,那就是业界大公司的大学计划部门和这些公司从事教育的第三方公司。这三个条件,缺一不可。

对计算机专业非常幸运的是,这三个条件都具备了。首先计算机教指委经过近两年的争论,明确的提出计算机专业的培养要注重“软硬结合”。具体的措施就是就是“系统能力”培养。或者更直白一点的说就是不但要理解计算机如何工作并学会利用计算机,还要培养如何设计计算机。清华大学把这类教改用了一个简单明了的口号:“奋斗三星期,造台计算机”。当然,对于清华大学这种国内顶尖学府的学生而言,奋斗三个星期在FPGA上造一台可用的计算机对大多数学生来说是可能的。对于一般的大学生而言,也许另外一种口号更为实际:“大一给你一块开发板,大四你交回一台计算机”。

教指委提出的这个口号目前已经有几个大学为此做出了非常完整的教学计划,并已经试验通过。而在这个过程中Xilinx及其合作伙伴与计算机专业教指委以及几个高校密切配合,将这些教学计划逐步完善、充实。这个教学计划的“可怕”之处在于从数字逻辑设计开始已经完整的重构了整个计算机教育的体系,基本实现了从数字电路的基本模块设计开始,逐步搭建完成一个完整的计算机。

具体的课程内容如下图所示:

可以看出这些课程从最基本的数字电路模块一直到计算机系统综合设计都已经涵盖在内了。换言之,按照这套体系培养出来的计算机专业的学生是有机会学习从完整的数字系统设计和软硬件协同设计相关知识点的。这就使得原本只是停留在软件层面的教育往硬件设计的上延伸了一大步。而前文又说了,现在的第三世是“计算机+”的时代,在掌握了如何在FPGA上设计并实现一个计算机以后,再往前进一步做一个硬件化的算法加速器挂总线上行不行?如果再加上这个,实际上就掌握了“SoC设计”的基本方法了。而走到这一步实际上已经是把电子系统中最核心的部分都做完了。

那么反观电子类专业这边呢?几乎没有什么动作。而且在课时缩减的大背景下还在“步步后撤”。一方面乱七八糟的课程越开越多,另外一方面基础的课程内容却在大幅度的缩减(这个是另外一个坑:缩减课时?改革大势所趋还是又在瞎折腾?)。软件能力的培养未见丝毫的加强,而所谓的硬件设计的训练还在靠一些什么数字钟、跑马灯、频率计混日子。对比一下上面计算机类学生开的那些实验课程。现在电子类的学生出来,有底气说做FPGA开发/IC设计会比计算机类的学生基础更扎实吗?这套改革措施一旦铺开,电子信息类专业的学生不单单是软件开发由于没有接受过系统的训练而做不过别人,连硬件设计中的一大块也不见得做得过计算机的。到时候无非看计算机专业的学生愿不愿意做的问题了。说到这不禁想起了之前帮朋友面试过的川内某高校的微电子专业的学生(非我电)。他本来是计算机专业的,由于觉得自己“热爱硬件”而转到该校的微电子系(其实他转之前打听打听他们那学校的微电子系是物理学院的,本质应该叫半导体物理系)。结果转过去以后自学Verilog一年,也没做出一个串口来。而不知道他如果得知他的那些留在计算机学院的同学们已经开始在FPGA上学习如何实现一个完整的计算机系统的时候会不会想想当初自己是中了什么邪才想到要转去读微电子。

所以,我感到震惊的就是:按照现在的计算机专业准备尝试的培养方案和现在信息技术实际的发展情况,电子信息类专业已经落后于一个世代。在理想情况下培养出来计算机专业培养出来的学生将牢牢占据信息技术的主流和核心位置。而电子信息类的学生能干什么呢?画板子?做电源?调天线?从此成为一个计算机外围电路设计人员?还是自学一些计算机类的课程转型去捡计算机专业学生的剩饭当一个低端码农?

我们做事情,首先是要做对的事情,然后才是想着怎么样把事情做对。虽然现在可以自我安慰说也不是哪个学校都有这么强的实力可以完全实现理想化的计算机类课程教学,这些课程的推广还需要时间,计算机专业也有很多学渣他们不会人人都很强。但是不能否认的是计算机类的专业教学已经开始走在了正确的道路上,而且已经走出了一条比较可行的道路。后面就是看哪些学校走得快哪些学校走的慢的问题了。只要走在路上,就总会向前走的。而在原地打转、徘徊不前、甚至是还在往后退步的人,差距只会越来越大。

面对挑战、何去何从?这是很多人需要思考的问题。尤其是身在其中的学生们需要思考的问题。当大环境无法改变时,如何能让自己准备得更充分一点,就需要多想想了。

不过呢?教改这事我是不参合的。第一,没有我说话的分量;第二,校长大人说的很对,35岁以前还是要以奠定学术基础为主;第三,科研压力还大得很呢,顾不上……

所以我也就是说说,发发感慨。大家看完了能想想,也就够了。

  1. @superdianzifans   

             对的,重要的是要有人带领学生来做。对于开发板,其实,高校都能买的起A/X家几千元级别的官方开发板的,但部分学校的采购基本上被厂家“公关”了,实验室到的东西都是不实用的。我以前拆过学校的FPGA实验箱。它里面没多少东西,售价却要2000多元

    请看我的最新番外——谁高兴了?

  2. @superdianzifans   

             对的,重要的是要有人带领学生来做。对于开发板,其实,高校都能买的起A/X家几千元级别的官方开发板的,但部分学校的采购基本上被厂家“公关”了,实验室到的东西都是不实用的。我以前拆过学校的FPGA实验箱。它里面没多少东西,售价却要2000多元

    请看我的最新番外——谁高兴了?

  3. @老莫   

    对啊,其实这些实验用digilent最便宜的那几个开发板做完全都够了。而且现在开发板价格越来越低。

    关键是实验课课程体系要建设好了,有组织的运作这个事。

    20160505_165759.jpg

             对的,重要的是要有人带领学生来做。对于开发板,其实,高校都能买的起A/X家几千元级别的官方开发板的,但部分学校的采购基本上被厂家“公关”了,实验室到的东西都是不实用的。我以前拆过学校的FPGA实验箱。它里面没多少东西,售价却要2000多元

  4. @blackorange   

    普通学校难道连一块开发板都买不起吗……

    对啊,其实这些实验用digilent最便宜的那几个开发板做完全都够了。而且现在开发板价格越来越低。

    关键是实验课课程体系要建设好了,有组织的运作这个事。

  5. @yjl070   

    普通学校哪有这样的条件啊

    普通学校难道连一块开发板都买不起吗……

  6. @天蝎   

    听说过自动化教指委、计算机教指委,咱电子信息的教指委呢?在干嘛呢?

    在搞什么物联网创新创业教育呢……

  7. @木易   

    “大一给你一块开发板”好多学校都在实施了吧!包括清华电子工程系、浙大等等。

    至于“大四能否交回计算机”好像没做要求。

    师姐平时接触的都是电子信息类专业吧……

  8. @yjl070   

    普通学校哪有这样的条件啊

    这条件又有什么难的……

  9. 普通学校哪有这样的条件啊

  10. “大一给你一块开发板”好多学校都在实施了吧!包括清华电子工程系、浙大等等。

    至于“大四能否交回计算机”好像没做要求。

  11. 听说过自动化教指委、计算机教指委,咱电子信息的教指委呢?在干嘛呢?

  12. @blackorange   

    怕怕,果真是CS大法好啊,快大三了,才慢慢开始学FPGA,好方啊

    关键别人CS是有组织的、科学化的培养,电子信息这边还在讲一些过时的,浅表的东西。学生想深入一点就得靠自学。这怎么和别人竞争。

  13. @xuefei_whu   

    三星期一个计算机啊,惊恐

    清华的学生确实有可能做到,其他学校的学生估计得三个学期吧。

  14. 三星期一个计算机啊,惊恐

  15. 怕怕,果真是CS大法好啊,快大三了,才慢慢开始学FPGA,好方啊