From c1926cb1cdbe7ea698b070264f11dae255d56156 Mon Sep 17 00:00:00 2001 From: bowling233 Date: Sun, 13 Oct 2024 09:27:11 +0800 Subject: [PATCH] docs: programming 24 fall intro --- docs/programming/24fall/index.md | 58 ++++++++++++++++++++++++++++++++ docs/programming/24fall/lec1.md | 4 +++ docs/programming/24fall/lec2.md | 4 +++ docs/programming/24fall/lec3.md | 4 +++ docs/programming/24fall/lec4.md | 4 +++ docs/programming/24fall/lec5.md | 4 +++ mkdocs.yml | 6 ++-- 7 files changed, 81 insertions(+), 3 deletions(-) diff --git a/docs/programming/24fall/index.md b/docs/programming/24fall/index.md index e69de29..f0ef1aa 100644 --- a/docs/programming/24fall/index.md +++ b/docs/programming/24fall/index.md @@ -0,0 +1,58 @@ +# 24 秋冬 程序设计辅学 + +!!! danger + + 本文档尚未完成。 + +欢迎来到 24 秋冬程设辅学课程页面!本学期计划开课 5 次,内容如下: + +- 前三次课:面向准备选择**计算机专业**的同学,帮助你们补全计算机专业必备的实用技能。**校内没有课程会讲授这些内容**,但如果你不具备这些技能,之后的专业课程、科研会变得较为困难,到那时都假定你已经掌握了这些技能。这几节课以**实验**为主。 + 1. 通往 Pro 的第一步:Linux 命令行与 AI 工具 + 2. 开源世界生存基础:许可证与 Git + 3. 不再担心格式:Linter、Markdown 和 LaTeX +- 后两次课:面向修读《程序设计与算法基础》课程的**所有同学**,帮助你们备考期末考试。这几节课可能以**知识归纳梳理和习题讲解**为主。 + 1. 期末复习(上) + 2. 期末复习(下) + +关于课程难度,我们会严格控制在大一新生刚接触计算机时的水平。去年我们设定的难度有点高,效果不是很好(有兴趣的同学可以在左侧导航栏浏览去年的内容)。今年我们的目标是**普及**,让尽可能多的同学受益。 + +## 课程动机与目标 + +Hi,CSer!欢迎你来到计算机专业的世界。但这条路刚开始的一段可能并不好走: + +> 大一入学时我是一个对计算机一无所知的小白,装了几十个 G 的 Visual Studio 天天和 OJ 你死我活。凭着高中的数学底子我数学课学得还不错,但在专业课上对竞赛大佬只有仰望。提到编程我只会打开那笨重的 IDE,新建一个我也不知道具体是干啥的命令行项目,然后就是 cin, cout, for 循环,然后 CE, RE, WA 循环。当时的我就处在一种拼命想学好但不知道怎么学,课上认真听讲但题还不会做,课后做作业完全是用时间和它硬耗的痛苦状态。我至今电脑里还存着自己大一上学期计算概论大作业的源代码 —— 一个 1200 行的 C++ 文件,没有头文件、没有类、没有封装、没有 unit test、没有 Makefile、没有 Git,唯一的优点是它确实能跑,缺点是“能跑”的补集。我一度怀疑我是不是不适合学计算机,因为童年对于极客的所有想象,已经被我第一个学期的体验彻底粉碎了。 + +上面这段话来自 [:simple-github: CS 自学指南](https://csdiy.wiki/#cs61a) 的作者,我想也是很多同学的真实写照。这段话真实地揭示了国内计算机本科教育的一个普遍问题:**缺乏工具和技能的培养**。这一情况正在好转,越来越多国内外学校开始重视这方面的教育,开设了相关课程: + +| 学校 | 课程 | +| --- | --- | +| MIT(麻省理工学院) | [Missing Semester](https://missing.csail.mit.edu/) | +| 清华大学 | [全部课程采用文档 + 开源代码框架](https://box.nju.edu.cn/d/5a0b85af3297421ca994/files/?p=%2F1-%E6%88%91%E4%BB%AC%E5%9C%A8%E6%B8%85%E5%8D%8E%E7%9A%84%E5%BC%80%E6%BA%90%E6%95%85%E4%BA%8B.pdf)
工具和技能的培养已经融入课程体系 | +| 中国科学技术大学 | [Linux 101](https://101.lug.ustc.edu.cn/) | +| 南京大学 | [ICS-PA2024](https://www.bilibili.com/video/BV11BpFe4EmM/) | + +但很可惜,浙江大学计算机学院的课改还没有走到这一步,你可以看到部分《程序设计与算法基础》的老师还在使用 20 年前的 PPT。所以我们希朝着这个方向努力,对齐其他学校的课程,帮助同学们**尽早掌握**这些技能,让你们在专业课上少走弯路。 + +感兴趣的同学可以进一步阅读:[谈谈如何让自己看上去、闻上去都像一个 CS 人 - CC98](https://www.cc98.org/topic/5370849)。 + +## 课程内容安排 + +去年我们开设了两套课程,但显然对大一新生来说内容过多且难了。本学期的目标是普及,让大一新生有一个适应的过程,所以课程内容会极为简单。**我们计划在 25spring 开设深入的课程,到时候会有更多深入的内容。** + +1. 第一讲 Linux 命令行与 AI 工具: + - 命令行:让从未接触过命令行的同学有一个大概的印象,知道这个东西怎么交互。 + - AI 工具:完成 hello world 的编译,能够理解下面这种简单的报错,遇到从未见过的报错也愿意仔细阅读、结合 AI 工具理解和寻找解决方案,不至于一脸懵: + + ```text + hello.c:4:22: error: expected ';' after expression + 4 | printf("helloworld") + | ^ + | ; + ``` + +2. 第二讲 许可证与 Git: + - 许可证:强调知识产权和学术诚信,否则可能遭遇纠纷。 + - 使用 Git 简单管理个人的代码(不涉及协作)。 +3. 第三讲 Linter、Markdown 和 LaTeX: + - 代码风格。 + - 简单而工整的实验报告。 diff --git a/docs/programming/24fall/lec1.md b/docs/programming/24fall/lec1.md index f097b4d..3c26e3e 100644 --- a/docs/programming/24fall/lec1.md +++ b/docs/programming/24fall/lec1.md @@ -1,5 +1,9 @@ # 1. 通往 Pro 的第一步:Linux 命令行与 AI 工具 +!!! danger + + 本文档尚未完成。 + ## 先让同学们 VSCode 连上服务器 - 让他们 gcc -o hello hello.c, ./hello diff --git a/docs/programming/24fall/lec2.md b/docs/programming/24fall/lec2.md index bb3dd47..45fbf66 100644 --- a/docs/programming/24fall/lec2.md +++ b/docs/programming/24fall/lec2.md @@ -1,5 +1,9 @@ # 2. 开源世界生存基础:许可证与 Git +!!! danger + + 本文档尚未完成。 + ## 许可证 什么是开源软件 / 自由软件 diff --git a/docs/programming/24fall/lec3.md b/docs/programming/24fall/lec3.md index d796de8..26b13eb 100644 --- a/docs/programming/24fall/lec3.md +++ b/docs/programming/24fall/lec3.md @@ -1,2 +1,6 @@ # 3. 你不需要担心格式:Markdown 与 LaTeX +!!! danger + + 本文档尚未完成。 + diff --git a/docs/programming/24fall/lec4.md b/docs/programming/24fall/lec4.md index 5efffe7..9515fa3 100644 --- a/docs/programming/24fall/lec4.md +++ b/docs/programming/24fall/lec4.md @@ -1 +1,5 @@ # 4. 期末复习(上) + +!!! danger + + 本文档尚未完成。 diff --git a/docs/programming/24fall/lec5.md b/docs/programming/24fall/lec5.md index 16f1229..9af7907 100644 --- a/docs/programming/24fall/lec5.md +++ b/docs/programming/24fall/lec5.md @@ -1 +1,5 @@ # 5. 期末复习(下) + +!!! danger + + 本文档尚未完成。 diff --git a/mkdocs.yml b/mkdocs.yml index 5570d72..5df5e64 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -128,7 +128,7 @@ nav: - algebra/lalu/index.md - 程序设计: - programming/index.md - - (24-25)程设辅学: + - (24 秋冬)程设辅学: - programming/24fall/index.md - programming/24fall/lec1.md - programming/24fall/lec2.md @@ -146,8 +146,8 @@ nav: - programming/common/notes/funcptr.md - programming/common/faq.md - 归档: - - (23-24)实用技能拾遗: https://slides.tonycrane.cc/PracticalSkillsTutorial/2023-fall-ckc/#/ - - (23-24)系统知识拾遗: + - (23 秋冬)实用技能拾遗: https://slides.tonycrane.cc/PracticalSkillsTutorial/2023-fall-ckc/#/ + - (23 秋冬)系统知识拾遗: - programming/archive/23fall/index.md - 1. 程序编译过程与调试技术: - programming/archive/23fall/lec1/pre.md