Skip to content

Commit

Permalink
docs: programming 24 fall intro
Browse files Browse the repository at this point in the history
  • Loading branch information
bowling233 committed Oct 13, 2024
1 parent 6f61eea commit c1926cb
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 3 deletions.
58 changes: 58 additions & 0 deletions docs/programming/24fall/index.md
Original file line number Diff line number Diff line change
@@ -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)<br />工具和技能的培养已经融入课程体系 |
| 中国科学技术大学 | [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:
- 代码风格。
- 简单而工整的实验报告。
4 changes: 4 additions & 0 deletions docs/programming/24fall/lec1.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# 1. 通往 Pro 的第一步:Linux 命令行与 AI 工具

!!! danger

本文档尚未完成。

## 先让同学们 VSCode 连上服务器

- 让他们 gcc -o hello hello.c, ./hello
Expand Down
4 changes: 4 additions & 0 deletions docs/programming/24fall/lec2.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# 2. 开源世界生存基础:许可证与 Git

!!! danger

本文档尚未完成。

## 许可证

什么是开源软件 / 自由软件
Expand Down
4 changes: 4 additions & 0 deletions docs/programming/24fall/lec3.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
# 3. 你不需要担心格式:Markdown 与 LaTeX

!!! danger

本文档尚未完成。

4 changes: 4 additions & 0 deletions docs/programming/24fall/lec4.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
# 4. 期末复习(上)

!!! danger

本文档尚未完成。
4 changes: 4 additions & 0 deletions docs/programming/24fall/lec5.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
# 5. 期末复习(下)

!!! danger

本文档尚未完成。
6 changes: 3 additions & 3 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down

0 comments on commit c1926cb

Please sign in to comment.