1.开阔眼界的通识教育课(GER)
GER课程在斯坦福大学本科教学中占有很大的比例。为了拓宽学生视野,学校开设了700多门GER相关课程,涵盖人文科学、自然科学、应用科学与技术、人类和社会学等各个领域,学生必须从四个领域选修10门课程。
与国内通识教育课程可轻松过关的情形不同,斯坦福的GER课程常常伴随着大量阅读,学生需要读很多书,写论文,作报告。一位曾就读清华的中国留学生感叹到,斯坦福的人文课真不容易过关。然而,正是这一门门通识教育课开阔了学生的视野,潜移默化地培养了学生的写作和语言表达能力。
在教育学生做人方面,通识教育课起了不可替代的作用。以人文科学导论子领域为例,开设了公民、认识自我、阅读与个性形成、传统与变革、生死观、爱情与谎言、大自然思考、高雅艺术与大众文化的变迁等课程,通过这些课程,学生认识自我、了解社会、思考人生,学习如何做一名合格公民。培养方案规定学生在入学第一学季必须选修其中一门课程,体现了为学先为人的教学理念。
2. 启迪思维的计算机公共基础课
国内高校的计算机入门课主要以技能性操作练习为主,辅以基础知识介绍,比如众多高校开设的全校选修课“计算机文化基础”中,Windows操作、Office练习占了很大比重。斯坦福大学的计算机公共基础课以启迪思维、拓宽视野为主,开设了一系列新生研讨课,如“计算机系统结构的未来”,通过此课程介绍典型的计算机体系结构、技术发展以及局限性,探讨未来计算机一些可供选择的组织结构及程序系统;又如“计算机与信息安全”,介绍黑客入侵、计算机系统常见漏洞,防范攻击的技术措施、密码技术与计算机安全有关的法律问题;再如“计算机领域的重大突破”(Great Ideas in Computer Science),介绍计算机发展史上的主要成就,考查计算机理论与实践的相互影响,涉及的问题有计算能力的局限性、算法效率、密码技术、语言翻译、人工智能、计算机网络等。此外还有“计算机系统灾难”(The Downside of Computer System),同时还讨论计算机系统如何失效,计算机系统崩溃对社会造成的影响,并介绍了计算机崩溃导致灾难的一些实例,讨论计算机安全、容差结构等问题。
可见,国外一流大学的公共基础课是以计算机导论形式多角度地介绍计算机核心基础知识。不仅从正面介绍计算机技术成就、给社会带来的巨变,也从反面介绍计算机的局限性和教训,提出学习计算机需要思考的问题。同时引入新生研讨课的教学形式,这种课程模式对激发学生的求知欲有很大帮助。
3. 体系完整的编程及编程语言课
在程序设计方面,国内计算机专业只开设C、Java等少数几门编程课。而斯坦福大学计算机系开设的程序设计及编程语言课多达15门,既有讲解C、C++、C#、Java的专门的程序设计课,也有强调面向对象为特征的“C++与面向对象的编程”、“面向对象的系统设计”等编程课,还有讲解javascript、HTML、CSS、XML的网络客户端编程课;既有横向比较各语言难点和精髓的高级编程课,也有突出训练程序设计能力的软件实践类课,还有编程语言基础理论课。
程序设计入门课因分快慢班有三个课号,分别为CS106A、CS106B和CS106X。其中CS106A使用C,为初级编程,CS106B是CS106A的后续课,使用C++。CS106X面向有编程基础的学生,涵盖CS106A和CS106B的内容,在一学季完成。CS106是全校的公共基础课,也是绝大多数专业的必修课,每学季选课人数众多。为此,学校配备了大量助教,通常由修过此课的高年级本科生承担,称为Section Leader(SL)。学生每十余人分为一个小组,由一名SL负责辅导,并经常组织讨论。
最值得推荐的编程课有“程序设计范式”(CS107 Programming Paradiams),这是一门计算机专业的必修课,重点分析比较C、C++、Java、LISP的特点及难点,比如内存管理、系统资源利用、输入、输出等。讲解实现一种算法的过程中各语言的设计步骤和注意点。每1~2周有一个大作业,针对不同的任务,要求学生用不同的语言实现,使学生加深了解各类编程语言的应用场合。
与国内相比,必修的计算机专业课门数并不多,但几乎每门课程都有编程大作业,负担很重。虽然未设软件工程课,但通过一些大作业训练了学生的软件工程思想。
4. 重视培养表达能力的专业写作课
在培养方案中,设置专门的写作要求是斯坦福大学本科培养方案的一大特色。写作训练分为两个阶段。首先是基础写作,重点培养学生一般的写作能力和修辞技巧;其次是专业写作,学生需从含有较高写作要求的三门课程中选择一门,完成专业写作训练。
培养方案中没有综合论文训练环节,但有一门实践类课程“软件项目设计”(Software Project)使学生不仅受到了一次真正的软件设计训练,同时也受到了一次综合论文写作训练。在为期10周的课程中,学生1~4人分为一组,以Team Work形式完成一个有实用价值的软件项目,要求实现从设计立项、任务描述、编程到测试的软件开发全过程。除编写每阶段设计文档外,还要求学生撰写用户使用手册。这里没有抄书的余地,因为一切文档都与自己开发的软件相关。
斯坦福大学非常注意培养学生的表达能力,为此设立了专门的指导机构Stanford Writing Center。该中心开设了十多门写作课程,并时常举办写作系列讲座。工程学院也开设了一些旨在提高学生写作和演讲能力的课程。如写作实践课,帮助学生提高学术论文和学位论文写作水平;又如公众演讲课,内容涵盖正式演讲、即兴发言等与口语表达相关的方方面面。此外还设立了演讲与写作答疑室,配备了录像和播放设备,使前来答疑的学生可以看到自己的试讲录像,对提高学生的演讲能力帮助极大。