大学里的计算机课程通常专注于讲授从操作系统到机器学习这些学院派的课程或主题,而对于如何精通工具这一主题则往往会留给学生自行探索。在这个系列课程中,我们讲授命令行、强大的文本编辑器的使用、使用版本控制系统提供的多种特性等等。学生在他们受教育阶段就会和这些工具朝夕相处(在他们的职业生涯中更是这样)。因此,花时间打磨使用这些工具的能力并能够最终熟练地、流畅地使用它们是非常有必要的。

精通这些工具不仅可以帮助您更快的使用工具完成任务,并且可以帮助您解决在之前看来似乎无比复杂的问题。

目录: 1/13: 课程概览与 shell 1/14: Shell 工具和脚本 1/15: 编辑器 (Vim) 1/16: 数据整理 1/21: 命令行环境 1/22: 版本控制(Git) 1/23: 调试及性能分析 1/27: 元编程 1/28: 安全和密码学 1/29: 大杂烩 1/30: 提问&回答

视频: https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J

地址: https://missing.csail.mit.edu/

开设此课程的动机

在传统的计算机科学课程中,从操作系统、编程语言到机器学习,这些高大上课程和主题已经非常多了。然而有一个至关重要的主题却很少被专门讲授,而是留给学生们自己去探索。这部分内容就是:精通工具。

这些年,我们在麻省理工学院参与了许多课程的助教活动,过程当中愈发意识到很多学生对于工具的了解知之甚少。计算机设计的初衷就是任务自动化,然而学生们却常常陷在大量的重复任务中,或者无法完全发挥出诸如 版本控制、文本编辑器等工具的强大作用。效率低下和浪费时间还是其次,更糟糕的是,这还可能导致数据丢失或 无法完成某些特定任务。

这些主题不是大学课程的一部分:学生一直都不知道如何使用这些工具,或者说,至少是不知道如何高效 地使用,因此浪费了时间和精力在本来可以更简单的任务上。标准的计算机科学课程缺少了这门能让计算 变得更简捷的关键课程。

The missing semester of your CS education

为了解决这个问题,我们开启了一个课程,涵盖各项对成为高效率计算机科学家或程序员至关重要的 主题。这个课程实用且具有很强的实践性,提供了各种能够立即广泛应用解决问题的趁手工具指导。该课在 2020 年 1 月”独立活动期“开设,为期一个月,是学生开办的短期课程。虽然该课程针对 麻省理工学院,但我们公开提供了全部课程的录制视频与相关资料。

如果该课程适合你,那么以下还有一些具体的课程示例:

命令行与 shell 工具

如何使用别名、脚本和构建系统来自动化执行通用重复的任务。不再总是从文档中拷贝粘贴 命令。不要再“逐个执行这 15 个命令”,不要再“你忘了执行这个命令”、“你忘了传那个 参数”,类似的对话不要再有了。

例如,快速搜索历史记录可以节省大量时间。在下面这个示例中,我们展示了如何通过convert命令 在历史记录中跳转的一些技巧。

版本控制

如何正确地使用版本控制,利用它避免尴尬的情况发生,与他人协作,并且能够快速定位 如何正确地使用版本控制,利用它避免尴尬的情况发生。与他人协作,并且能够快速定位 有问题的提交 不再大量注释代码。不再为解决 bug 而找遍所有代码。不再“我去,刚才是删了有用的代码?!”。我们将教你如何通过拉取请求来为他人的项目贡献代码。

下面这个示例中,我们使用git bisect来定位哪个提交破坏了单元测试,并且通过git rever来进行修复。

文本编辑

不论是本地还是远程,如何通过命令行高效地编辑文件,并且充分利用编辑器特性。不再来回复制 文件。不再重复编辑文件。

Vim 的宏是它最好的特性之一,在下面这个示例中,我们使用嵌套的 Vim 宏快速地将 html 表格转换成了 csv 格式。

远程服务器

使用 SSH 密钥在远程机器下工作如何保持清醒,并且终端能够复用。不再为了仅执行个别命令 总是打开许多命令终端。不再每次连接都总输入密码。不再因为网络断开或必须重启笔记本时 就丢失全部上下文。

以下示例,我们使用tmux来保持会话在远程服务器活跃,并使用mosh来支持网络漫游和断开连接。

查找文件

如何快速查找你需要的文件。不再挨个点击项目中的文件,直到找到你所需的代码。

以下示例,我们通过fd快速查找文件,通过rg找代码片段。我们也用到了fasd快速cd并vim最近/常用的文件/文件夹。

数据处理

如何通过命令行直接轻松快速地修改、查看、解析、绘制和计算数据和文件。不再从日志文件拷贝 粘贴。不再手动统计数据。不再用电子表格画图。

虚拟机

如何使用虚拟机尝试新操作系统,隔离无关的项目,并且保持宿主机整洁。不再因为做安全实验而 意外损坏你的计算机。不再有大量随机安装的不同版本软件包。

安全

如何在不泄露隐私的情况下畅游互联网。不再抓破脑袋想符合自己疯狂规则的密码。不再连接不安全 的开放 WiFi 网络。不再传输未加密的信息。

结论 这 12 节课将包括但不限于以上内容,同时每堂课都提供了能帮助你熟悉这些工具的练手小测验。如果不能 等到一月,你也可以看下黑客工具,这是我们去年的 试讲。它是本课程的前身,包含许多相同的主题。

无论面对面还是远程在线,欢迎你的参与。

成为VIP会员查看完整内容
0
40

相关内容

如果您是用Python编程的新手,并且正在寻找可靠的介绍,那么这本书就是为您准备的。由计算机科学教师开发,在“为绝对初学者”系列丛书通过简单的游戏创造教授编程的原则。您将获得实际的Python编程应用程序所需的技能,并将了解如何在真实场景中使用这些技能。在整个章节中,你会发现一些代码示例来说明所提出的概念。在每一章的结尾,你会发现一个完整的游戏,展示了这一章的关键思想,一章的总结,以及一系列的挑战来测试你的新知识。当你读完这本书的时候,你将非常精通Python,并且能够将你所学到的基本编程原理应用到你要处理的下一种编程语言。

成为VIP会员查看完整内容
0
72

Python Workout提供了50个练习,重点是Python 3的关键特性。在这本书中,Python专家教练鲁文·勒纳(Reuven Lerner)通过一系列小项目指导你,练习你处理日常任务所需的技能。你会喜欢每个技巧的清晰解释,你可以观看Reuven解决每个练习的视频。

https://www.manning.com/books/python-workout

在过去的几年中,Python已经进入了许多领域,包括系统管理、数据科学、devops、文本处理和Web开发。因此,现在有许多课程和书籍旨在教授Python。

本书分为10章,每一章涵盖Python的不同领域。总的来说,随着本书的发展,问题会变得越来越复杂——但这并不意味着我要等到“函数”一章才开始使用函数,或者等到“函数编程”一章才开始理解函数。你可以使用任何你认为必要的工具。

每一章都以一个参考表开始,包括链接,指向可能帮助你更好地理解你已经忘记或从未学过的主题的资源。我希望这些将帮助您加强对Python的理解,而不仅仅是本书本身。

除了练习和解决方案,还有视频,在其中我演示如何解决每个问题,并添加到我在书中的讨论。解决方案和你在书中读到的一样,但对很多人来说,视频让整个过程更加生动;你会在我的现场培训课程中得到更多的感觉。此外,查看编码和解决过程的时间变化通常很有帮助,而不是在页面上一次性查看所有内容。使用视频片段的最佳方法是同时打开该书和视频(在Manning的liveVideo平台中)。对于每个练习,从书开始,完成每个练习,如果你喜欢,阅读解决方案和讨论。然后点击相应的视频片段,看我演示解决方案,并为讨论提供进一步的见解。

成为VIP会员查看完整内容
0
53

【导读】MIT-Gilbert Strang教授讲解的线性代数奉为经典,在疫情期间85岁高龄的Strang教授对着摄像机出了新的课程:A 2020 Vision of Linear Algebra,老教授出神入化将许多人认为简单却是最基础的东西讲的出神入化。值得学习。

地址: https://ocw.mit.edu/resources/res-18-010-a-2020-vision-of-linear-algebra-spring-2020/index.htm

William Gilbert Strang,美国数学家,在有限元理论、变分法、小波分析和线性代数等方面皆有研究贡献。他对数学教育做出了许多贡献,包括出版七本数学教科书和专著。斯特朗现任麻省理工学院数学系 MathWorks 讲座教授。主要讲授课程为线性代数入门(Introduction to Linear Algebra,18.06)和计算科学与工程(Computational Science and Engineering,18.085),这些课程都可在麻省理工学院开放式课程中免费学习。

线性代数

这六个简短的视频,录制于2020年,包含了Strang 教授关于教学和学习线性代数的主题推荐顺序的想法和建议。第一个主题叫做线性代数的新方法。关键是要从矩阵A的列向量开始然后用乘法Ax组合这些列向量。

这就引出了矩阵的列空间和独立列的概念,以及A= CR的因式分解,它能告诉我们很多关于A的信息。有了好的数字,每个学生都能看到相关列。

剩下的视频简要概述了整个课程:线性代数的全貌;正交向量;特征值和特征向量;奇异值和奇异向量。奇异值变得如此重要,它们直接来自于A'A的特征值。

你可以在Strang教授2019年的课程18.065 Matrix Methods in Data Analysis, Signal Processing, and Machine Learning的第一个视频演讲中看到这个新想法的发展。

视频地址:

YouTube: https://www.youtube.com/playlist?list=PLUl4u3cNGP61iQEFiWLE21EJCxwmWvvek "A 2020 Vision of Linear Algebra" by Gilbert Strang

Bilibili(爱可可老师):https://www.bilibili.com/video/BV1Ki4y147Kh

导论- 了解线性代数的新方式

Part 1- 矩阵的列空间与向量空间中的基

Part 2- 线性代数的 Big Picture

Part 3- 正交向量

Part 4- 特征值与特征向量

Part 5- 奇异值与奇异向量

课件:

成为VIP会员查看完整内容
0
63

【导读】本课程探讨现代人工智能基础上的概念和算法,深入探讨游戏引擎、手写识别和机器翻译等技术的思想。通过实践项目,学生在将图形搜索算法、分类、优化、强化学习以及其他人工智能和机器学习的主题融入到他们自己的Python程序中,从而获得图形搜索算法、分类、优化和强化学习背后的理论知识。课程结束时,学生将获得机器学习库的经验,以及人工智能原理的知识,使他们能够设计自己的智能系统。

目录

  1. 搜索(Search)
  2. 知识(Knowledge)
  3. 不确定性(Uncertainty)
  4. 优化(Optimization)
  5. 学习(Learning)
  6. 神经网络(Neural Networks)
  7. 语言(Language)

讲师简介

David J. Malan是Gordon McKay工程与应用科学学院的计算机科学实践教授,也是哈佛大学教育研究生院的教员。他于1999年、2004年和2007年分别获得哈佛大学计算机科学学士学位、硕士学位和博士学位。他教授计算机科学50课程,也被称为CS50,这是哈佛大学最大的课程,耶鲁大学最大的课程之一,也是edX最大的MOOC课程,注册人数超过150万。他还在哈佛商学院、哈佛法学院、哈佛延伸学院和哈佛暑期学院任教。他所有的课程都是免费开放课程。

个人链接:https://cs.harvard.edu/malan/

我是布赖恩,哈佛大学继续教育学院的资深导师。我于2019年从哈佛大学毕业,获得了计算机科学和语言学学位。我目前在哈佛大学计算机科学导论课程CS50的团队中工作,在那里我专注于教学、课程开发、拓展和软件工具。我也是通过edX、哈佛扩展学院和哈佛暑期学院提供的Python人工智能入门和Python和JavaScript Web编程的讲师。 我曾与许多其他计算机科学课程合作过,包括CS51,哈佛计算机抽象与设计课程,CS124,哈佛算法导论,以及CS100,哈佛数字人文领域的软件工程课程。除了计算机科学教育,我还在Palantir做过软件工程实习生,在哈佛深红报做过新闻主管和数字战略家,我还在 3P Speech和全国演讲与辩论协会工作过。我对计算、语言和教育感兴趣。

个人链接:https://brianyu.me/

部分PPT:

成为VIP会员查看完整内容
0
70

Python是世界上最流行的编程语言之一,人们从不同的背景成为Python程序员。有些人受过正规的计算机科学教育。其他人则将Python学习作为一种爱好。还有一些人在专业环境中使用Python,但他们的主要工作不是做软件开发人员。这本中级书中的问题将帮助经验丰富的程序员在学习语言的某些高级功能的同时,从他们的CS教育中重新了解自己的想法。自学成才的程序员将通过学习所选语言(例如Python)中的经典问题来加速CS教育。本书涵盖了各种各样的问题解决技术,以至于每个人都有真正的收获。

这本书不是对Python的介绍。相反,这本书假设您已经是一名中级或高级的Python程序员。尽管这本书需要Python3.7,但我们并不认为它能够精通最新版本的Python的每一个方面。事实上,这本书的内容是建立在这样一个假设上的:它将作为学习材料,帮助读者达到这样的掌握。另一方面,这本书不适合完全不熟悉Python的读者。

目录

介绍

  1. 小问题

    • 斐波那契序列

    • 简单的压缩

    • 牢不可破的加密

    • 计算圆周率

    • 汉诺塔

    • 实际应用

    • 练习

  2. 搜索问题

    • DNA搜索

    • 迷宫求解

    • 传教士和野人问题

    • 实际应用

    • 练习

  3. 约束满足问题

    • 构建约束-满足问题框架

    • 澳大利亚的地图着色问题

    • 八皇后问题

    • 单词搜索

    • SEND+MORE=MONEY

    • 电路板布局

    • 实际应用

    • 练习

  4. 图论问题

    • 地图作为图

    • 构建图框架

    • 最短路径查找

    • 最小化网络建设成本

    • 求加权图中的最短路径

    • 实际应用

    • 练习

  5. 遗传算法

    • 生物背景

    • 一种通用遗传算法

    • 一个天真的测试

    • SEND+MORE=MONEY revisited

    • 优化列表压缩

    • 遗传算法的挑战

    • 实际应用

    • 练习

  6. k-means聚类

    • 预备工作

    • k-means聚类算法

    • 按年龄和经度对州长进行聚类

    • 按长度聚集迈克尔·杰克逊的专辑

    • K-means聚类的问题和扩展

    • 实际应用

    • 练习

  7. 相当简单的神经网络

    • 生物学基础?

    • 人工神经网络

    • 预备工作

    • 构建网络

    • 分类问题

    • 加速神经网络

    • 神经网络问题和扩展

    • 实际应用

    • 练习

  8. 对抗搜索

    • 基本棋盘游戏组件
      
    • 井字游戏

    • 四子棋

    • 除了α-β剪枝之外的极大极小改进

    • 实际应用

    • 练习

  9. 其他问题

    • 背包问题

    • 旅行推销员问题

    • 电话号码助记符

    • 练习

附录A 词汇表

附录B 更多资源

附录C 类型提示简介

成为VIP会员查看完整内容
0
29

斯坦福大学Stephen Boyd教授与加州大学Lieven Vandenberghe教授合著的应用线性代数导论:向量、矩阵和最小二乘法《Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares》在2018年由剑桥大学出版社发行,开源书包含19章,473页pdf,这本书的目的是提供一个介绍向量,矩阵,最小二乘方法,应用线性代数的基本主题。目标是让学生通俗易懂,入门学习。让学习者了解在包括数据拟合、机器学习和人工智能,断层、导航、图像处理、金融、和自动控制系统的应用。是一本不可多得好教材。​

Stephen P. Boyd是斯坦福大学电子工程Samsung 教授,信息系统实验室电子工程教授,斯坦福大学电子工程系系主任。他在管理科学与工程系和计算机科学系任职,是计算与数学工程研究所的成员。他目前的研究重点是凸优化在控制、信号处理、机器学习和金融方面的应用。 https://web.stanford.edu/~boyd/

Lieven Vandenberghe,美国加州大学洛杉矶分校电子与计算机工程系和数学系教授

这本书的目的是提供一个介绍向量,矩阵,最小二乘方法,应用线性代数的基本主题。我们的目标是让很少或根本没有接触过线性代数的学生快速学习,以及对如何使用它们在许多应用程序中, 包括数据拟合、机器学习和人工智能, 断层、导航、图像处理、金融、和自动控制系统。

读者所需要的背景知识是熟悉基本的数学符号。我们只在少数地方使用微积分,但它并不是一个关键的角色,也不是一个严格的先决条件。虽然这本书涵盖了许多传统上作为概率和统计的一部分来教授的话题,比如如何将数学模型与数据相匹配,但它并不需要概率和统计方面的知识或背景。

这本书涉及的数学比应用线性代数的典型文本还少。我们只使用线性代数中的一个理论概念,线性无关,和一个计算工具,QR分解;我们处理大多数应用程序的方法只依赖于一种方法,即最小二乘(或某种扩展)。从这个意义上说,我们的目标是知识经济:仅用一些基本的数学思想、概念和方法,我们就涵盖了许多应用。然而,我们所提供的数学是完整的,因为我们仔细地证明了每一个数学命题。然而,与大多数介绍性的线性代数文本不同,我们描述了许多应用程序,包括一些通常被认为是高级主题的应用程序,如文档分类、控制、状态估计和组合优化。

这本书分为三部分。第一部分向读者介绍向量,以及各种向量运算和函数,如加法、内积、距离和角度。我们还将描述如何在应用程序中使用向量来表示文档中的字数、时间序列、病人的属性、产品的销售、音轨、图像或投资组合。第二部分对矩阵也做了同样的处理,最终以矩阵的逆和求解线性方程的方法结束。第三部分,关于最小二乘,是回报,至少在应用方面。我们展示了近似求解一组超定方程的简单而自然的思想,以及对这一基本思想的一些扩展,可以用来解决许多实际问题。

成为VIP会员查看完整内容
0
133
小贴士
相关VIP内容
专知会员服务
32+阅读 · 2020年12月28日
专知会员服务
28+阅读 · 2020年11月17日
专知会员服务
72+阅读 · 2020年8月14日
【哈佛《CS50 Python人工智能入门》课程 (2020)】
专知会员服务
70+阅读 · 2020年4月12日
专知会员服务
29+阅读 · 2019年12月31日
MIT新书《强化学习与最优控制》
专知会员服务
94+阅读 · 2019年10月9日
相关资讯
21个必须知道的机器学习开源工具!
AI100
7+阅读 · 2019年9月13日
那些值得推荐和收藏的线性代数学习资源
博客 | MIT—线性代数(上)
AI研习社
5+阅读 · 2018年12月18日
【资源】这本开放书籍帮你扫清通往ML的数学绊脚石
机器学习算法与Python学习
36+阅读 · 2018年10月28日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
大学数学不好,或许是数学教材的锅?
算法与数学之美
4+阅读 · 2017年8月1日
相关论文
Yong Wang
0+阅读 · 1月13日
Robin Hirsch,Szabolcs Mikulás,Tim Stokes
0+阅读 · 1月13日
Yue Zhao,Zhi Qiao,Cao Xiao,Lucas Glass,Jimeng Sun
0+阅读 · 1月11日
Pierre Gillibert,Julius Jonušas,Michael Pinsker
0+阅读 · 1月11日
Achmad Choiruddin,Jean-François Coeurjolly,Frédérique Letué
0+阅读 · 1月11日
Adaptive Accessible AR/VR Systems
Pradipta Biswas,Pilar Orero,Manohar Swaminathan,Kavita Krishnaswamy,Peter Robinson
0+阅读 · 1月8日
The Theory behind Controllable Expressive Speech Synthesis: a Cross-disciplinary Approach
Noé Tits,Kevin El Haddad,Thierry Dutoit
3+阅读 · 2019年10月14日
Jian Li,Zhaopeng Tu,Baosong Yang,Michael R. Lyu,Tong Zhang
6+阅读 · 2018年10月24日
Yishu Miao,Edward Grefenstette,Phil Blunsom
8+阅读 · 2018年5月21日
Top