美国计算机专业课程体系的调研报告

  • 格式:doc
  • 大小:52.50 KB
  • 文档页数:13

美国计算机专业课程体系的调研报告

摘要:在调研了美国中部有代表性的大学后,整理出这些学校计算机专业本科生课程体系建设的共同理念,描述了分层次的课程体系,重点阐述了核心课程的设置情况。通过分析具有代表性的学校的课程体系,以掌握本科教学和实验教学的主流方向,提高教学质量和实验管理能力。

关键词:计算机专业;课程体系;核心课程;教学

为了切实提高计算机学科实验教学水平,在教育部的支持下,国家级实验教学示范中心计算机学科组考察了美国中部多所院校,重点学习了各层次大学计算机科学(CS)和计算机工程(CE/ECE)本科专业的课程设置、实验教学体系、实验环境建设以及实验内容开发情况,本文重点报告计算机专业课程体系设置的调研情况。

1课程设置理念

每所大学都有自身的特点,但是通过总结不难发现,美国主要高校在计算机专业课程设置的理念上却大同小异,即以学生为本、兴趣培养为基础,在宽厚的理论和实践功底上,将学生培养成为计算机特定方向上的专业人才。

在课程体系建设时,各所大学首先坚持以学生为本。美国高校有公立和私立之分,以排名情况为参考,在相同层次的学校中,私立学校的本科教学质量较高,公立学校的本科学生数量很多,在教学质量上就略逊一筹。但是在课程建设时,各学校都是充分考虑为学生服务的,而私立学校学费高,考虑得就更周到一些。从低年级到高年级,课程由浅入深、层次清晰。在大多数学校,学生入学时可以多专业任选,每个专业都会将本学科的特点和作用以最浅显的方式展现给学生。换句话说,如果学生选择了计算机学科,就意味着他是对这个学科有浓厚兴趣的,整个培养课程体系都是来满足其兴趣要求的。当然,课程设置会充分考虑学生的能力,学分要求不是很高,课程的数量尤其是必修课程数量不多,核心课程最多不超过10门,更加强调专业基础[1-2],这一点将在核心课程设置部分详细阐述。

其次,在强调宽厚基础的同时,课程设置注重理论与实践相结合。在低年级课程中,几乎所有大学都开设了交流与写作课程(详细内容参见附录1),几乎所有课程中都有各种形式的实验,实验大多是以项目(Project)来设立的,每门课的项目数量不多,内容由简入难,使学生将所学知识逐步深入运用起来。理论课程与实验课程是紧密结合的,学校根据课程的特点合理分配理论和实验课时,让学生通过实践彻底领会理论的实质和内涵。

大学是培养人才的摇篮,不同层次的院校对自身所培养的人才有不同的定位。在课程体系建立时,各所学校都依据自身情况设定不同的人才培养方向。学生有较大的深入学习和发展空间,为成为有用人才打下坚实基础。广度和深度的学科方向设定情况将在下文详细说明。

2课程体系

各大学基本上按层次划分课程,同时采用了和我们相似的必修课\限选课\任选课方法。但美国必修课

的数量大大压缩,主要核心课程一般控制在10门以内,其他课程被分成若干个方向(Track或Breadth和Depth),学生根据需要选择1~2个方向来学习。

综合各学校课程体系,我们基本能够得到类似图1所示的课程层次结构图。

其中的基础课程主要是交流(Communication)与表达(Presentation)或者类似课程。广度(Breadth)和深度(Depth)课程是联系紧密的,是深入学习的不同方向,深度课程是在广度课程基础上的深化和加强,图1所列方向以西北大学的课程体系为主(各学校方向设定方式和具体课程设置情况参见附录2)。其他学校的方向略有不同,本文主要关注课程体系设置的方式及其核心课程设定,这里不一一列举各所学校的详细方向设定,核心课程的设定情况参见下节。

3核心课程

各个学校在核心课程上很相似,数量也不多。有些学校的计算机专业和电子计算机工程的核心课程差别较大(例如UIUC),我们就分别列举出来,如果差别不很大,我们就选择更具有代表性的设置方式,具体课程如表1所示。

图1课程体系结构图

表1核心课程列表

学校 课程

UIUC(CS)[1-2] CS 125 Intro to Computer Science

CS 173 Discrete Structures

CS 210 Ethical and Professional Issues in CS

CS 225 Data Structure and Software Principles

CS 231 Computer Architecture I

CS 232 Computer Architecture II

CS 241 System Programming

CS 242 Programming Studio

CS 373 (was CS 273) Theory of Computation

UIUC(ECE)ECE 110 - Introduction to Electrical & Computer Engineering

ECE 190 - Intro to Computing Systems

ECE 210 - Analog Signal Processing

ECE 290 - Computer Engineering I

ECE 329 - Introduction to Electromagnetic Fields

ECE 385 - Digital Systems Laboratory

ECE 391 - Computer Systems Engineering

ECE 411 - Computer Organization & Design

ECE 440 - Solid State Electronic Devices

CS 225 - Data Structure & Software Principles

普度大学[3] CS 18000 Programming I

CS 18200 Foundations of Computer Science

CS 24000 Programming in C

CS 25000 Computer Architecture

CS 25100 Data Structures

CS 35200 Compilers: Principles and Practice

CS 35400 Operating Systems

CS 38100 Introduction to the Analysis of Algorithms

西北大学[4-9] EECS 101 – An Introduction to Computer Science For

Everyone

EECS 111 – Fundamentals of Computer Programming I

EECS 211 – Fundamentals of Computer Programming II

EECS 213 – Introduction to Computer Systems

EECS 310 – Discrete Mathematics

EECS 311 – Introduction to Data Structures

IIT CS100 Introduction to the Profession

CS115 Object-Oriented Programming I

CS116 Object-Oriented Programming II

CS330 Discrete Structures

CS331 Data Structure and Algorithms

CS350 Computer Organization /Assembly Language Programming

CS351 System Programming

CS430 Induction to Algorithm

CS440 Programming Language/Translators

CS485 Computer in Society

芝加哥大学[10] CMSC 15100(Introduction to Computer Science I) or

16100(Honors Introduction to Computer Science I), and

CMSC 15200(Introduction to Computer Science II) or 16200(Honors

Introduction to Computer Science II)

CMSC 15300(Foundations of Software)

CMSC 15400(Introduction to Computer Systems)

CMSC 27100(Discrete Mathematics)

CMSC 27200(Theory of Algorithms)

综合各学校核心课程设置情况不难发现,目前国内的很多核心课程,在这些学

校已经变成了学生的限选或选修课,例如编译原理、操作系统、人工智能和网络原理等,作为可选的方向变成了方向性的课组,学生可以根据爱好选择一类同方向的课程。核心课程的设置具有以下特点:

1) 包括一门计算机入门课程,例如UIUC的CS125、西北大学的EECS 101、普度大学的CS 18200、IIT的CS100、芝加哥大学的CMSC 15100或16100。这些课程整体地而不是深入到某一方向介绍计算机各个领域的知识,让学生了解并产生兴趣,以便他们喜欢计算机专业,以后能够根据自己的爱好选择方向。

2) 包括一门必需的数学基础课程,专业必需的数学课程设定了离散数学,其他如随机数学、图论等,也作为特定学科方向的方向性课组选择开设。

3) 包括至少一门编程课。这类课程一般安排在较早的学期,让学生尽早掌握编程技巧,提高用计算机解决实际问题的能力。目前来看,第1门编程课多数是C语言,也有个别学校一开始使用Pathon,后来转换成C,或者直接用Java作为入门编程语言。

4) 各个学校无一例外将数据结构作为一门核心课,有些学校的CS会在数据结构课上安排一些算法内容。

5) 计算机组成和体系结构也被安排进了核心课,虽然各个学校的课程名称不尽相同。该课主要介绍计算机的组成,阐述它是如何工作的,CS偏向介绍系统如何工作、能做什么,而ECE偏向结构组成,这些在实验上也有充分体现。我们将在下一篇文章中专门讨论,这里不赘述。

在课程体系设立上,各个学校可谓大同小异,但是“小异”之处大多体现着学校特点。在核心课程设定中,有3所学校将算法类课程设为核心课程,也有个别学校将操作系统设为核心课程。

4反思

通过对美国中部UIUC、伊利诺伊理工、芝加哥大学、西北大学和普度大学这5所大学的调研,我们整理出了这5所学校本科生课程体系建设的共同理念,描述了分层次的课程体系,重点阐述了核心课程的设置情况。相比之下,目前国内计算机专业的课程体系设立的核心课程数量过多,导致学生压力大,不能集中精力深入学习,影响教学质量。此外,我们缺少对学生学习兴趣的引导,入门课程的学科基础普及教学没有得到足够重视,在对本科生在学科方向上的引导和开放学生的自由选择空间方面也有欠缺,这些问题都值得从事计算机专业教学的同行们深思。