CS104 软件系统与工具导论
CS104 Introduction to Essential Software Systems and Tools
课程教你计算机科学中的所有高级主题,从操作系统到机器学习,但有一个关键的主题很少被涵盖,而是留给学生自己去摸索:对工具的熟练掌握。本课程将教你如何掌握成功成为计算机科学家所需的关键工具,如命令行、版本控制系统、调试器和代码检查工具等。 此外,我们还将涵盖标准计算机科学课程中未涉及但对成为一名熟练的计算机科学家至关重要的其他关键主题,包括:安全和密码学、容器和虚拟机,以及云计算。
本课程每周一、三、五下午 3:00 到 4:20 在 200-034 教室进行面对面授课。课程提供 3 个学分,可以选择按字母等级或 CR/NC 评分。有关课程结构的更多信息,请访问课程信息页面。
周一和周三的课程将包括有指导的讲座、课堂练习和现场演示,而周五的课程将包括一个实验部分,其中有更开放式的练习。如果你能带电脑来上课,请带上,这样你可以跟着做。
这门课程将会有大约 50%的概念背景和 50%的动手实践,使用我们将教授的工具——这意味着你需要能够在你的电脑上下载和安装软件(无论是你个人的电脑,还是你可以使用的电脑)。点击这里以获取更多关于设置你的电脑和我们将使用的软件类型的信息。(如果你觉得这会是个挑战,请告诉我们,例如如果你使用的是 Chromebook 或非常旧的电脑,或者无法访问个人电脑——我们也许能够帮忙 😄)
讲师:Sara Achour 助教:Gavin Li
日历
| 第一周 | 主题 |
|---|---|
| 1月6日 | Lecture 0: In-Class System Setup |
| 1月8日 | Lecture 1: Course Overview and Shell and Shell Tools |
| 1月10日 | Lab 1: In-Class Lab on Shell Tools |
| 第二周 | |
| 1月13日 | Lecture 2: Data wrangling |
| 1月15日 | Lecture 3: Shell Scripting |
| 1月17日 | Lab 2: Data wrangling |
| 第三周 | |
| 1月20日 | 假期 |
| 1月22日 | Lecture 4: Text Editors |
| 1月24日 | Lab 3: Text Editors and Virtual Machine Setup |
| 第四周 | |
| 1月27日 | Lecture 5: Command Line Environment |
| 1月29日 | Lecture 6: Command Line Environment II |
| 1月31日 | Lab 4 |
| 第五周 | |
| 2月3日 | Lecture 7: Networking |
| 2月5日 | Lecture 8: Version Control |
| 2月7日 | Lab 5 |
| 第六周 | |
| 2月10日 | Lecture 8 (addendum): Version Management |
| 2月12日 | Lecture 9: Build Systems & Dev Ops |
| 2月14日 | Lab 6 |
| 第七周 | |
| 2月17日 | 假期 |
| 2月19日 | Lecture 10: Debugging and Profiling |
| 2月21日 | Lab 7 |
| 第八周 | |
| 2月24日 | Lecture 11: Security |
| 2月26日 | Lecture 12: Cryptography |
| 2月28日 | Lab 8 |
| 第九周 | |
| 3月3日 | Lecture 13: VMs and Containers |
| 3月5日 | Lecture 14: Cloud & Serverless |
| 3月7日 | Lab 9 |
| 第十周 | |
| 3月10日 | Lecture 15: Recent Tools |
| 3月12日 | Lecture 16: Media Processing |
| 3月14日 | Lab 10 |