教学对象
本课程教学对象为作者本人
教学语言
本门课程采用的教学语言是chez scheme
和Javascript
, 在学习中相互对比,学生将从0开始,学会计算机科学中最核心的思想,从无到有创建各种重要的概念。
教学内容
前言:
我们首先需要明白一些基本的概念,比如符号,表达式,变量,问问题这些基础的概念, 我认为这是这些基本的概念将会构成计算机世界的参天大数。
第一课 函数
我们将会在一开始就会说函数,关于函数只有很少几个知识点,但是它们却是核心的知识,只知道很少的知识点的时候,对它们才能够反复的练习。
第二课 递归
递归可以说是计算机科学(或数学)最重要的概念, 我们将从最简单的递归函数开始,引导理解递归的本质,掌握对递归进行系统化的思考。
第三课 链表
链表:从0开始,学生将不依赖任何语言的特性实现,最基本的数据结构,第一个数据结构就是链表,学生会在练习中实现许多操作链表的函数,这些函数经过精心的挑选,很多是函数式编程语言中基本的函数,但是通过独立的将它们写出来,学生掌握的是递归的系统化思路,这使得他们能自如的对这类数据结构进行思考,解决新的问题。
与一般的数据结构课程不同,这个课程实现的大部分都是 「函数式数据结构」 ,它们具有一些特别的有用的性质,因为它们的逻辑结构清晰,比起普通的数据结构书籍会更加容易理解。
不会宗教式的强调纯函数的优点,而是客观的让学生领悟这其中的优点,并发现它们的弱点。
学会这些结构,在将来也会容易的推广到非函数式的结构,把两种看似不同的风格有机的结合在一起。
第四课: 树结构
从链表逐渐推广出更加复杂的数据结构---树,在后来的内容中,会常常使用到这种结构,树结构可能是计算机科学中最常使用,最复杂的数据结构了,
第五课: 计算器
在熟悉了树的基本操作之后, 实现一个比较高级的计算器,它可以计算任意嵌套的算术表达式,算术表达式是一种语法树,
第六课: 查找结构
理解如何实现key-value查找结构, 并且亲自实现了两种重要的查找数据结构
第七课:解释器
利用之前打好的基础,亲手实现计算机科学中最重要,也是通常认为最难理解的概念--解释器
第八课:类型系统
实现一个相当高级的类型系统和类型检查器
关于面向对象的本质, 理解编程的智慧
实现面向对象的基本概念, 甚至是完全掌握
标签:函数,递归,实现,计算机科学,基础,链表,数据结构 From: https://www.cnblogs.com/zhengel/p/16896616.html