计算机科学系该教些什么?

来源:互联网 发布:淘宝服务市场有什么用? 编辑:程序博客网 时间:2024/05/18 21:42

简介

从业内人士角度抨击了现在英国大学内计算机教育与实际市场要求的脱节;作者提出了应列入课程的一些实际型的科目。


    每周我们都会收到大量简历,相当一部分来自计算机科学系的毕业生。

    我检查了他们的学习内容,尽管听起来迫有趣,却似乎和就业市场无关: 神经网络, 计算机视觉,人工智能,机器人技术,编译工程,机器学习,量子计算,贝叶斯网络,嵌入式系统 ... 这些毕业生中有多少会经常使用这类知识? 这些课程可不是骗人的,而是来自英国前5位的计算机科学系(根据一家有名的国内报纸的排名)。

    这种不协调(教育和技能)部分是被一个观点误导了: "计算机科学”毕业生不必去搞软件, 所以应该多教点科学而非职业上的方法。可是,我所认识的计算机科学毕业生都没去搞科学,而是去搞软件编程了。有意思的是,我随机抽取了大约10-15所大学的课程,只有2所教软件工程。

   还有相当奇怪的是,只有一个课程涉及XML, 还是可选部分。而在当代软件中还有不用XML的吗? 那为什么计算机科学毕业生不能说出何时用SAX何时用DOM呢 ?

    那么,哪些内容应当包含在当代计算机科学/软件开发专业的课程中呢? 我粗略地写在了下面( 顺序没有考虑,只是按照意思流来的...):

  编程基础(变量,数据类型,引用,指针,作用域,错误处理,迭代,核心算法-搜索,排序等)
  基础数学,基础统计学
  模式和反模式(真实世界的例子,不只是理论)
  现实世界中的数据库(正规化和反向规格化, SQL,索引)
  良好的代码架构基础:松耦合等
  面向对象的设计,接口等
  规划的重要性和工具: Spec'ing,UML等
  架构:C/S,SOA,P2P等
  一两个'大'语言(Java, C#,C/C++)
  一两个'脚本语言或'敏捷'的语言( PHP,Perl, Python,Ruby)
  XML (DOM/SAX, XSLT/XPath, 等)
  经济学,商学,成本项目,商业压力
  版权,隐私,数据保护
  项目管理/时间管理
  国际化,本地化,编码, Unicode
  语法,标点符号,简洁和明确的书写
  界面设计,易用性,可获取性,人机交互
  安全
  代码阅读
  常见协议( TCP/IP,HTTP,SMTP,FTP )
  测试,调试,性能,重构
  问题分析
  代码控制,变更管理
  典型的软件生命周期
  元数据,信息架构等
  地理信息系统基础
  触摸输入
  健康和安全(营养?)
( Dan Zambonini 作为技术总监服务于Box:一家英国Internet开发和咨询公司. 作为语义web和XML技术的倡导者,他的工作领域包括XML, XSL, RDF, SVG, P3P, OWL, XHTML, CSS, XForms和其它一大堆缩写的技术 )