(3)数学问题:越来越多的学校把传统的数学课程让位于新科技、新技术、新编程语言等。然而,大家都知道,数学是科学的语言(language of science),数学能力的缺失使得计算机系的学生在处理软件工程,特别是嵌入式软件工程时遇到更多的麻烦。譬如很多计算机系仅仅教授离散数学、概率论等,对于连续数学(譬如微积分、线性系统)等涉及很浅。我有一个新加坡的同学,从新加坡的computer science系转到我们学校的computer engineering系。我们系要求学习electronic circuit,里面用到微积分,这个时候该学生就很痛苦,而不动electronic circuit,如何做一个合格的嵌入式工程师呢?此外,嵌入式软件一个重要的问题就是软件的security问题。而security对数学的要求比较高,这个时候计算机系的同学在处理软件安全性问题上就显得力不从心。
(4)以Job Market为导向的教育思路:在美国越来越多的学校把编程语言从传统的C、C++转向了Java,因为懂得Java能够更好的找到工作。让我们引用美国学者与工业界同仁争论的一个观点“adopting Java to replace previous languages used in introductory programming courses – such as Pascal, Ada, C or C++ -- was a step backward pedagogically. Many universities went to Java because ‘that’s where the jobs are,’ but ironically may have produced a generation of programmers with over-specific but superficial skills who are now losing jobs to overseas competition with broader and deeper talents”。观点的基础是:如果你不懂的汇编语言,不懂得C语言,很难从较低的层面对系统的硬件与软件有一个深刻的理解,更谈不上编写出有效率的嵌入式程序,虽然Java给你带来了很多OOP的优势。