这篇博客是作为软件工程课的阅读作业,要求
出于个人兴趣,我或是粗略或是详细地阅读了:
Discuss: Is “Computer Science != Software Engineering” an excuse to teach programming poorly?
和一些来自不同身份的人(学生、engineer)相关的讨论和意见。
对于这个”习而学“的问题,也有了一些我自己的看法。
首先,习而学的提出显然是创新的,是值得考虑的,当前大学里学然后习的方法也确是有弊端的。在这个讨论中,我主要讨论计算机和软件(而非茅以升先生提出的桥梁工程)领域,从我个人的角度来看,我认为学然后习的弊端,有以下几点:
- 毕业生的工程实践能力差
- 学生在低年级对自己所处的领域了解非常有限,对当前学的东西一知半解,要很久以后才能理解知识和实践之间的联系
- 对研究 or 工程的选择太仓促
其原因,不能简单地归咎于体制问题或社会风气问题,因为这个原因是多方面的复杂而深层次的。我在这里想说几个:
其一,现行的高等教育选拔制度使得大多学生和家长在选择大学和专业十分盲目,追热点或是盲目选的人我身边有很多
其二,工程学科在大学里有一个天然的弱势,就是高校里的老师很多离工程实践很远,或是很久,以至于学生即使进入了这个专业也没有办法从他们那里了解到真实的工程实践是怎样的,老师本身也早已不重视学生的工程实践能力和行业视野
其三,大多数学生的学习方法并不适合学习如何做工程(当然也大多不适合学习如何做研究)
关于上述问题我的一点想法:
茅以升先生提出的“习而学”方法在我看来是很值得应用的,然而由于时间已久,事实上存在一定的落后,即是那时的大学生由国家分配工作,大约是在入学时便知道了自己将会在那个领域工作,但如今并非如此,因此,如果真的要实行此”习而学“之做法,应当考虑探索学生的兴趣和发展方向,所以必然不能一入学便教授桥梁工程施工条例,如此倘若学生沿此道路学到四年级,发现设计桥梁的建筑学更加有趣,但此时再去学习美术学已然晚了。
回到计算机领域,也是因此,要让学生在知道计算机科学与软件工程的区别以前就选择在这个领域中的专攻,未免强人所难。最近开始流行的大类招生稍稍有了这个意向,我觉得是一个好的改革方向。然而大类确是大类了,课程结构至少在科大是没有大变化的,在专业选择时学生依然是云里雾里,”桥梁工程导论“,”计算机科学导论“之类的课又未免看起来就让人反胃。我能想到的是在一年级教授基础课(数学、物理,在我看来这是必须的)的同时,开设一门类似于科大的“科学与社会”研讨课的课程,科大的新生可以听几场学术界大佬的讲座,也会在青年教师的领导下做一些非常非常基础的小项目。这个课可以推广,把如果把请大佬现场做报告换成看视频,把做基础小项目换成在广泛的领域做调研,出一份大领域的研究和工程现状的调研报告,在我看来是极好的。
习而学中的习指的是什么呢?做一个假设,软件学院的学生未来会做软件工程,计算机学院的学生不知道自己未来是做软件工程还是CS研究(而事实上,他们都很可能去做银行柜员)。那么邹老师提出的课表对软件学院的同学们是很好的,如果要为计算机学院的同学制定一个习而学标准的培养计划,应该如何呢?
至此以超出了我的见识和规划能力,因此不再继续。只是希望这样的改革尽快到来。