计算机基础科学教育是我国近些年一直努力推进的教育之一,北京大学的所有学生都应修习《计算概论》课程。然而,大学计算机基础教育的内容往往过于理论化,缺乏实用性,这使得同学们在学习过程中容易感到枯燥乏味,在学习之后也很难将所学知识灵活应用到实际生产与生活中。
在本手册正式编写之前,已经有很多学长做出了相关的努力。几个广为人知的项目:北京大学为新生提供了《计算概论衔接课》,旨在帮助同学们快速入门计算机基础知识(这门课的一部分由我所讲授);北京大学学生Linux俱乐部(LCPU)启动了Getting Started项目,旨在帮助同学们快速入门Linux和计算机科学(该项目亦由我全权负责);一位学长发起了CS自学指南项目,受到了广泛的关注和认可,该项目迄今已有一百五十余位贡献者;PKUHub等其他官方或非官方的组织也在积极推动计算机基础教育的普及。
然而,Getting Started和自学指南对于大一新生而言,存在的最大不足之处就是:不够基础。我国初高中乃至小学阶段,计算机的教育水平参差不齐,同学们的基础也不尽相同,这导致部分基础较差的同学在学习《计算概论》时会遇到困难,遑论上述进阶课程。而对于有能力就读北大的学生而言,大约是已经度过了“幻想上课有用”的阶段了;真正有用的知识还是要靠自己去学习实践,给同学们一本手册要比给同学们数小时的视频有用得多。因此,笔者最终决定:使用这份手册,帮助同学们把缺失的计算机知识补回来。
比起“CPU是怎么构成的”“软件是怎么工作的”这种理论知识,本手册更注重于“我们应该购买什么CPU”“我们应该怎么搭建一个软件开发平台”这类的实用知识。简而言之,我们手册中会讲一些正课几乎不会讲、但是用处极大的知识。
本手册的目标是将同学们的计算机水平快速提升至能够接受大学计算机基础教育的水平。我们认为使用本手册的同学都已经具备了最基本的计算机操作能力,也就是说我们不会涉及诸如“怎样使用鼠标”“怎样关机”这种内容。
希望本手册能够对同学们有所帮助。
如希望获取本手册,可以直接clone仓库并使用XeLaTeX编译源码。可以使用本地的编译器编译,也可以使用OverLeaf进行编译;从main分支编译的版本可以认为是稳定且错误较少的,从dev分支编译的版本一般是最新的,但是可能存在未完成的占位符,也有可能出现一些错误。
如果懒得编译,可以在Release一节获取最新的更新内容。
本项目采用MPL-2.0协议。
我们欢迎同好们对本教程进行任意的扩充和修改,所有对本教程做出贡献的人均会在书末页致谢中出现。
本项目的Issue仅用于Bug反馈、问题追踪、对本仓库建议和意见。不要在Issue发布任何无关的内容。本项目的Discussion用于随意讨论和吹水,本人不将开设任何有关于该仓库和手册的群聊,大家可以随便讲些什么内容,包括提问、讨论、吐槽等。
如希望知道本项目作者计划干什么、在做什么以及最近做完了一些什么,可以去Project一节查看。
如希望贡献,请Fork dev分支并开PR;PR时需合并进入dev分支。本项目的main分支同时充当release分支,因此不会对其做出任何提交,只能进行合并;作者只会在dev分支进行频繁的小更新。更大的更新应当开feature分支,并向dev分支合并。新的文件尽可能与已有的文件命名格式和项目架构相一致。不建议删除已有的内容,也不应涉及任何敏感话题等。
如果要开新的para或者chapter请先开Issue讨论。
如果有翻译成其他语言的意向,也可以发Issue或Discussion讨论,但是本仓库不会接受任何仅翻译的PR。未来可能会有一个或者一些其他仓库来存储翻译文本。