现在,“计算机科学导论”是大多数高等院校计算机科学与技术类专业一年级学生在第一学期必修的专业课程。课程讲授和计算机系统、计算机科学相关的基本概念,使学生对本专业的核心知识有全面的、概要的认识。

这门课程的开设要追溯到上世纪80年代。当时,“PASCAL”或“C”通常是学生的第一门专业课程。经过教学实践大家逐步认识到,以脱离计算机机器层次概念的程序设计高级语言作为专业学习的切入点并不妥当。第一门专业课程应该着眼于让学生认识计算机科学和计算机技术的宏观概貌,建立专业思想。为此,需要开设一门全面而简略、导论性的课程。

二十多年来,上述导论性的课程会冠名为“计算机科学导论”、“计算机导论”、“计算机文化基础”,等。可供选用教材的风格大致上可以分为三类:最早期的以介绍计算机的基本应用为主要内容,前面加一章游离而杂乱的“概述”;第二类教材罗列专业内容,书的每一章实际上就是相应一门专业课教材的一个浓缩版;近年来开始引进的国外版计算机科学导论教材,内容比较全面、新颖,叙述比较生动、容易理解,而且各具风格。

因为一年级新生通常要参加军训,本课程的一种典型教学安排是,每周课堂讲授3学时,14周共42学时。在相对短的时间内要完成覆盖面很广、内容极为丰富的专业知识教学,而又要使一年级学生能够理解,笔者认为关键在于:

(1) 要建立一个课程讲授结构体系;

(2) 要把握好内容广度和深度的关系;

(3) 要采用深入浅出的叙述风格。

在长期的教学实践中,笔者始终感觉在用的国内外教科书共同的不足之处是:对计算机科学作导论性质的介绍时,缺乏一个认识纲领,所以内容庞杂,章节之间缺少内在的联系,篇幅动辄四五百页,教师难以剪裁,学生难以接受,更难把握专业知识的相互关联。

可能是受到中学阶段学习方式的长期影响,不管教师如何组织讲授内容,大学一年级的学生仍然对课程所使用的教材非常在意、非常依赖。为此,笔者设计出以“一个本质核心,三条内容纲领”来统率计算机导论教程的讲义,使新生们能够在短短的十几周里对计算机和计算机科学能够有入门性的、比较全面的认识。

笔者的思路是:

计算机的本质功能就是数据处理,数据是客观世界一切事物的表达概念,归根结底计算机是一种数据处理机器;计算机科学是使计算机完成各行各业、形形色色数据处理任务所需要的理论、方法、技术的知识集合。

因此,可以依据三条纲领阐述和认识计算机科学的主要内容:

(1) 数据的分层表示方法学

计算机科学用“数据”作为手段,来表示客观世界里要处理的对象。而在计算机内部,能够物理实现的数据记号只有两个二进制数字“0”和“1”。因此,数据表示面临的任务是,用最简单的记号表示出内容复杂而形式多变的对象。计算机科学的解决方法是:划分出不同的数据表示抽象层次;每个层次上都对数据的表示概念和工具进行定义;它们既相对独立,又可以从上一个表示层次映射到下一个表示层次上去;从现实世界到计算机内部的物理实现,数据表示的抽象程度逐层降低,一直到“0”、“1”记号能够在硬件的层次上实现为止。这样,在完成数据表达任务的过程中,人可以根据需要选择适当的表达层次。而层次之间不同表示手段的转换,由人或者计算机系统本身,按照明确定义的映射规则来完成。

上述的数据表示层次可以总结为:

现实世界里的数据对象;

数据结构和信息结构层;

程序设计语言层;

机器层;

物理层。

(2) 数据加工的分层表示方法学

计算机科学的另一个核心任务是解决数据加工的表示方法。要计算机“记住”的数据加工过程复杂多变,而在计算机内部,能够物理实现的数据加工表示记号仍然只有两个二进制数字。因此,和数据的表示方法学一样,数据加工表示面临的任务是,用最简单的记号表示出内容复杂而形式多变的数据加工过程。解决方法仍然是分层次的表达方法学:划分出数据加工过程不同抽象表示层次;每个层次上定义相应的数据加工表示手段;它们既相对独立,又可以从上一个表示层次映射到下一个层次去;从现实世界的数据处理问题开始,把数据加工过程一层一层地转换到计算机内部的物理实现为止。这样,在完成数据加工表达任务的过程中,人可以根据任务的需要选择适当的表达层次。然后由人或者计算机系统本身,按照明确定义的映射规则,完成层次之间不同加工表示手段的转换。

上述的数据表示层次可以总结为:

数据处理问题描述;

解题模型;

算法层;

程序设计层;

机器程序层;

物理层。

(3) 计算机系统的构成

计算机系统是数据和数据加工表示方法的最终载体。已经比较习惯从硬件系统、软件系统、网络系统三个方面进行描述。

教材按照上述认识纲领展开,可以包含后续各门专业课程的主要概念,从而使学生对计算机科学的内容,特别是对后续专业课程之间的内在关联有全面、清晰、概要的认识。

教学实践表明,本课程的学习能够激起学生新的问题和思考。课程结束后,学生提出的疑问通常会比课程开始前还要多。这就说明本课程已经为学生后续几年专业课程的学习奠定良好的基础,真正起到了“导论”的作用。同时,本课程也成为对一年级学生进行专业思想教育的一个环节,具体而且有效。

按照上述思路编写的教材《计算机科学导论教程》(ISBN:9787302152347),已经由清华大学出版社出版。这既是笔者在中山大学和广州大学华软软件学院教学实践的总结,也是对计算机科学导论课程教学的探讨。期望得到同行们的指正。

好的计算机科学导论教材,对计算机科学导论教材的探讨相关推荐

  1. 计算机科学与导论期末论文题目,★计算机科学与技术导论论文题目计算机科学与技术导论毕业论文题目大全计算机科学与技术导论论文选题参考(3页)-原创力文档...

    ★计算机科学与技术导论论文题目计算机科学与技术导论毕业论文题目大全计算机科学与技术导论论文选题参考 1.计算机科学与技术专业导论课程相关问题探讨 2.高等学校教材·计算机科学与技术:计算机导论(第2版 ...

  2. 计算机科学导论论文文章,计算机科学导论论文(2)

    计算机科学导论论文篇二 <浅析"计算机导论"教学改革> 摘要:计算机导论是计算机专业学生必修的一门专业基础课程.也是计算机专业的入门课程.课程内容主要介绍计算机领域相关 ...

  3. 计算机科学与技术导论课本推荐,比较好写的计算机科学与技术导论论文题目 计算机科学与技术导论论文题目哪个好...

    [100道]关于比较好写的计算机科学与技术导论论文题目汇总,作为大学生的毕业生应该明白了计算机科学与技术导论论文题目哪个好,选一个好的题目后续的计算机科学与技术导论论文写作起来会更轻松! 一.比较好写 ...

  4. 计算机科学导论最新版,计算机科学导论论文2017

    计算机科学导论论文2017!2017最新计算机科学导论论文是计算机论文之一!不知道怎么写计算机科学导论论文,欢迎下载计算机科学导论论文! 计算机科学导论介绍 本书讲解了计算机科学的基础知识.主要内容包 ...

  5. 计算机科学引论2021英文,计算机科学引论= Computer Science Illuminated : 第3版 : 英文...

    摘要: 本书采用大量最新素材,全面介绍计算机科学领域的基础知识.本书由当今该领域备受赞誉且经验丰富和教育家NellDale和JohnLewis共同编写.就整体而言,全书内容翔实,覆盖面广,旨在向读者展 ...

  6. 计算机科学专辑算什么,计算机科学专辑

    为毕业生写计算机科学专辑提供计算机科学专辑范文参考,涵盖硕士.大学本科毕业论文范文和职称论文范文,包括论文选题.开题报告.文献综述.任务书.参考文献等,是优秀免费计算机科学专辑网站. 计算机应用中的科 ...

  7. 多伦多计算机科学大学,多伦多大学计算机科学开设了哪些课程

    计算机科学专业是多伦多大学留学优势专业,那你们知道多伦多大学计算机科学开设了哪些课程吗? 大师兄留学网[留学网 dsxliuxue.com]小编为大家带来多伦多大学计算机科学本科专业介绍,希望对大家有 ...

  8. 新编计算机科学概论考试,热门计算机科学概论论文题目 计算机科学概论论文题目怎么定...

    [100道]热门计算机科学概论论文题目,每一个论文题目都是精选出来的,看了后定能知晓计算机科学概论论文题目怎么定等相关写作技巧,让计算机科学概论论文写作轻松起来! 一.比较好写的计算机科学概论论文题目 ...

  9. web计算机导论读书报告,计算机导论 读书报告.doc

    文档介绍: 读书报告李佳(计1501班41524111)一.引言如何认识计算学科,存在很多争议.1984年7月,美国计算机科学与工程博士单位评审部的专家在犹他州召开的会议上对计算认知问题进行了讨论.这 ...

最新文章

  1. 0.爬虫 urlib库讲解 urlopen()与Request()
  2. 转】MYSQL性能调优与架构设计之select count(*)的思考
  3. mysql linuxl环境搭建_Linux环境下的MySQL搭建
  4. XV6操作系统代码阅读心得(二):进程
  5. NAR:脑疾病研究的“金牌助手”:BrainBase
  6. 数据结构-树与二叉树
  7. Mysql开启远程连接方法
  8. DotNetCore中异步编程的实用演练
  9. MySQL的DDL、DML、DCL、TCL什么意思?
  10. Excel用户如何学习数据分析语言DAX?
  11. SpringBoot整合Sharding-JDBC实现水平分表
  12. (最新版 易卷/自动出题平台)自动阅卷系统 | 自动阅卷机 | 网络阅卷系统
  13. 在深度学习时代如何用 HowNet 搞事情 | 讲座笔记
  14. Python自动化测试框架有哪些?(总结几种)
  15. 计算机专业考研复试流程,给未来的程序猿:2019计算机专业考研复试基本流程...
  16. 【入门笔记】量化投资是什么?
  17. ubuntu安装zlib
  18. 大数据开发和java开发到底有什么不同?
  19. 马尔可夫决策过程(Markov Decision Process)学习笔记
  20. 一篇故事告诉你什么是微服务架构

热门文章

  1. eclipse和数据库实现学生成绩查询系统web界面
  2. java采购管理系统设计_Java毕业设计——采购管理系统的设计参考
  3. Python 函数嵌套
  4. 使用Docker还是Rocket?也许可以一起来
  5. 定时器误触发功能详解
  6. 关于tlq的一些命令
  7. C++单例模式 : 懒汉模式 与 饿汉模式
  8. 计算机基础知识系列·进制转换的简易方法
  9. spring boot 打包后乱码问题
  10. AEC、AGC、ANS是什么意思