自己收藏的自学编程CS计算机科学和国外四大计算机名校路线课程计算机科班专业基础架构程序抽象数据结构算法

复杂凌乱阅读版⭐以下:

——##——很多内容都更新到上面清爽版链接了。这篇有些内容没更新。

自学路线:

简略版

1、程序抽象:伯克利CS61A   
----(偏重:软件)(语言:Python Scheme SQL)(教材《SICP》Python版)
----
2、计算机架构:Nand2tetris从与非门到俄罗斯方块  
----(偏重:硬件+软件)(语言:硬件描述语言HDL 机器语言Hack 汇编 高级语言 Python Java可选)
----(教材《计算机系统要素》
----
3、数据结构和算法:伯克利CS61B    
----(偏重:软件)(语言:Java)
----(教材:这门课没有必需教材)(本课程5-14周的选修教材是Wayne和Sedgewick的《算法》第四版。)
----
4、计算机架构进阶:
----伯克利CS61C 《计算机组成与设计RISC-V版》COD   
--------(偏重:硬件+软件)(语言:C)(C语言教材 :The C Programming Language)
----CMU 15-213  《深入理解计算机系统》CSAPP    
--------(偏重:硬件+软件)(语言:C)(C语言教材 :The C Programming Language)
----
5、计算机网络:《计算机网络:自顶向下方法》
----相关课程看详细版 和 文末CS课程索引
6、操作系统:《操作系统导论Operating Systems: Threee Easy Pieces》
----相关课程看详细版 和 文末CS课程索引

详细版

上面内容 · 补充细节描述

本文作者起初制作的图,仅作参考

《计算机系统要素》nand2tetris教学路线图

Berkeley课程路线图(大图点击链接)⭐⭐

英语

如何看英文文档

https://video.zhihu.com/video/1331402154641645568?player=%7B%22shouldShowPageFullScreenButton%22%3Atrue%7D编程英语自学英语阅读英语文档工具方法资源我要面包的视频 · 1780 播放https://video.zhihu.com/video/1354731304785838080?player=%7B%22shouldShowPageFullScreenButton%22%3Atrue%7D①英语生词理解摘录②用词仿写句子英语写作我要面包的视频 · 552 播放

彩云小译-中英对照-中文字转换颜色和加粗

F12开发者工具—Sources面板—Snippets

document.querySelectorAll(".cyxy-trs-target").forEach(item => {
    //颜色
    item.style.color = "rgb(236 57 0)";
    //加粗
    item.style.fontWeight = 'bold';
})

CS书籍对应课程

SICP

  • 2020伯克利CS 61A———对应SICP———-Brian Harvey’s Berkeley CS 61A
  • 学习CS61A的前提:
  • 数学1A 被列为 CS 61A 的共同要求。(也就是说,可以同时执行)数学10A 或数学16A 也可以。在不知道或不学习微积分的情况下学习 CS 61A 是可能的; 所有旧的微积分的例子已经在这些年里被移除了。然而,学习微积分是复习算术和代数的一个很好的方法,这两门课程经常出现在 cs61a 课程中。
  • CS 61A 没有正式的编程先决条件,但它不是所有学生的正确的第一门课程。许多 CS 61A 的学生有丰富的编程经验,包括之前的课程。一些学生在没有任何编程经验的情况下参加了这门课程,但是他们通常必须更加努力地学习来掌握这些材料,也许仅仅是因为他们在编程方面缺乏实践经验。
  • 2011伯克利61A视频讲座(英文) 英语超强的可以看一看
  • MIT视频讲座 好像有点老

CSAPP

计算机网络:自顶向下方法


美国哪些大学CS课程公开?

伯克利 Berkeley

计算机科学技能需求量很大,你不需要为了计算机科学的职业生涯而主修计算机科学。如果你计划从事计算机科学的职业,你应该至少参加计算机科学61A/AS 和61B/BL。另外,学习 cs61c 可以确保你理解完整的堆栈。Cs10 和/或 cs8 在为 CS61A/AS 做准备时很有用,如果您以前没有或很少有编程背景的话。数学技能也很重要; 一个关键的要求是离散数学和概率,cs70。其他的数学课程对于计算机科学的特定领域是有帮助的; 例如,计算机图形学使用了大量的线性代数和多元微积分对于机器学习是有用的。完成 CS61ABC 和 CS70课程,再加上生物学或化学背景,将为你在生物信息学和计算生物学研究方面的高级部门工作打下良好的基础。你甚至可以去研究生院在 CS 完成后,在这里的 CS 或 EECS 副课程!Math 1A 1B(微积分)


斯坦福计算机科学计划

CS106A 是我们第一季度的程序设计课程。它教授广泛使用的 Python 和优秀的软件工程原理。如果你有兴趣学习如何编程计算机,这是一个开始的地方。CS106A 没有任何先决条件-它对每个人开放!这门课程的设计明确地吸引了人文学者、社会科学家以及核心技术人员。事实上,大多数 CS 106A 的毕业生最终都选择了工程学院以外的专业。本课程不要求有编程背景,但需要相当的投入和努力学习。 CS106B 假设你有 CS106A 级别的编程经验,虽然你不一定非要选修 CS106A 课程才能选修 CS106B。如果您对基本的控制结构(条件、循环)、变量、数组/列表、映射和程序分解有经验,那么您应该准备接受 CS106B 106b 使用 C++程式语言语言教学,但是 c + + 更多的是作为思想的载体,而不是作为研究对象。如果你对深入研究 c + + 感兴趣,可以考虑研究一下 CS106L。

  • CS106A 是编程和计算机科学的第一门课程,为那些没有任何经验的人开设。CS106B 是第二门课程,为那些懂得基本编程的人讲授更高级的编程和计算机科学。
  • CS106A 为以前没有编过程序的人介绍了代码和计算机编程。
    • 我们将涵盖 Python 中基本编程的所有重要主题: 类型、数字、字符串、函数、线性集合、字典、逻辑、分解、良好的编程风格、整个程序结构、文本、文件处理、调试和性能。我们还将介绍一些将来可能需要的更高级的主题,包括 lambdas、 comprehension、 modules 和 Jupyter 笔记本。
  • CS106B 编程抽象是我们编程序列入门课程的第二门课程。
    • 前提条件 CS106A 为 Python 的编程方法和问题解决奠定了坚实的基础。有了这些,CS106B 会让你熟悉 C++程式语言,并介绍先进的编程技术,如递归,算法分析,抽象化,探索经典的数据结构和算法,并给你实践应用这些工具来解决复杂的问题。
    • C + + 基础
    • 抽象数据结构
    • 递归
    • 课程和面向对象程序设计
    • 内存管理和实现级抽象
    • 链接数据结构
    • 高级算法
  • CS107是斯坦福编程序列入门课程的第三门课程
    • CS106课程为您提供了编程方法论和抽象方面的坚实基础,CS107以此为基础建立并扩展了您的编程经验和技术的广度和深度。本课程将从 c 语言到微处理器来解开机器的神秘面纱。随着对计算机系统如何执行程序和操作数据的完全理解,你将成为一个更高效的程序员,尤其是在处理调试、性能、内存和健壮性等问题时。课程包括: c 语言,数据表示,机器级代码,计算机算法,代码编译的元素,内存和运行时性能的优化,内存的组织和管理。
    • CS107的先决条件是 CS106B/x (或同等学历)。你应该具备使用递归、动态数据结构(指针、链表、树、图)、抽象化、经典数据结构(列表、堆栈、队列、集合、映射)和标准算法(搜索、排序、散列)的实用 c/c + + 技能。您应该了解良好的工程和设计的内在价值,并且期望生成分解良好、可读的代码。如果你需要帮助来决定你的正确位置与我们谈话。
  • CS107和 CS110都是 b & o 教科书《CSAPP》的子集
  • Computer Systems: A Programmer’s Perspective 计算机系统: 程序员的视角 by Bryant and O’Hallaron, either the 2nd or 3rd edition

CMU卡内基梅隆大学 计算机科学


MIT OpenCourseWare (OCW)

这个想法很简单: 把我们所有的课程材料都发布到网上,让每个人都能广泛地获得。”麻省理工学院工程学院教授 Dick k.p. Yue 麻省理工学院 MIT开放课程是一个基于网络的出版物,几乎涵盖了麻省理工学院的所有课程内容。开放式课程对全世界开放,并且是麻省理工学院的永久活动。 通过开放式课程,教育工作者改进课程和课程,使学校更加有效; 学生找到额外的资源来帮助他们成功; 独立学习者丰富他们的生活,并使用内容来应对我们世界上最困难的挑战,包括可持续发展、气候变化和根除癌症。


康奈尔大学


普林斯顿

华盛顿大学

布朗大学

韦尔斯利

杜克大学

原文:https://zhuanlan.zhihu.com/p/320063653

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注