教学对象

本课程教学对象为作者本人

教学语言

本门课程采用的教学语言是chez schemeJavascript, 在学习中相互对比,学生将从0开始,学会计算机科学中最核心的思想,从无到有创建各种重要的概念。

教学内容

前言:

我们首先需要明白一些基本的概念,比如符号,表达式,变量,问问题这些基础的概念, 我认为这是这些基本的概念将会构成计算机世界的参天大数。

第一课 函数

我们将会在一开始就会说函数,关于函数只有很少几个知识点,但是它们却是核心的知识,只知道很少的知识点的时候,对它们才能够反复的练习。

第二课 递归

递归可以说是计算机科学(或数学)最重要的概念, 我们将从最简单的递归函数开始,引导理解递归的本质,掌握对递归进行系统化的思考。

第三课 链表

链表:从0开始,学生将不依赖任何语言的特性实现,最基本的数据结构,第一个数据结构就是链表,学生会在练习中实现许多操作链表的函数,这些函数经过精心的挑选,很多是函数式编程语言中基本的函数,但是通过独立的将它们写出来,学生掌握的是递归的系统化思路,这使得他们能自如的对这类数据结构进行思考,解决新的问题。

与一般的数据结构课程不同,这个课程实现的大部分都是 「函数式数据结构」 ,它们具有一些特别的有用的性质,因为它们的逻辑结构清晰,比起普通的数据结构书籍会更加容易理解。

不会宗教式的强调纯函数的优点,而是客观的让学生领悟这其中的优点,并发现它们的弱点。

学会这些结构,在将来也会容易的推广到非函数式的结构,把两种看似不同的风格有机的结合在一起。

第四课: 树结构

从链表逐渐推广出更加复杂的数据结构—树,在后来的内容中,会常常使用到这种结构,树结构可能是计算机科学中最常使用,最复杂的数据结构了,

第五课: 计算器

在熟悉了树的基本操作之后, 实现一个比较高级的计算器,它可以计算任意嵌套的算术表达式,算术表达式是一种语法树,

第六课: 查找结构

理解如何实现key-value查找结构, 并且亲自实现了两种重要的查找数据结构

第七课:解释器

利用之前打好的基础,亲手实现计算机科学中最重要,也是通常认为最难理解的概念–解释器

第八课:类型系统

实现一个相当高级的类型系统和类型检查器

关于面向对象的本质, 理解编程的智慧

实现面向对象的基本概念, 甚至是完全掌握

原文地址:http://www.cnblogs.com/zhengel/p/16896616.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性