站点计划
本页最后更新于 ,内容可能过时
近期项目
| 项目 |
当前进展 |
内容描述 |
| reading |
✅ 已完成 |
每篇文档末尾登记学号,汇总成全班的阅读进度表 |
| useful |
✅ 已完成 |
PixPin 截图取字、PicGo 图床、Ente Auth 两步验证 |
| turing-complete |
✅ 已完成 |
图灵完备游戏:从逻辑门搭到 CPU 的闯关游戏,附攻略视频与试玩下载 |
| win11 |
✅ 已完成 |
Windows 11 基础操作与浏览器基础,各配一个 B 站合集 |
| claude-tool |
✅ 已完成 |
Claude 桌面版经 Magpie 接 DeepSeek,含终端版 Claude Code 与 VSCode 扩展,需要科学上网 |
| dsh |
✅ 已完成 |
官方 DeepSeek Harness 桌面端与官方 dsh 命令行的配置,全程不需要科学上网 |
| dev-cpp |
✅ 已完成 |
Dev-C++ 的安装、中文界面与编译运行,不想装 WSL 时的过渡选择 |
| wsl |
✅ 已完成 |
WSL 与 Ubuntu 的安装、GCC/GDB 配置、VSCode 连 WSL,含备份与迁移到 D 盘 |
| vscode |
✅ 已完成 |
新建配置文件(Profile)、Code Runner 编译运行命令的逐段拆解 |
| vscode-debug |
✅ 已完成 |
VSCode 的调试与任务配置:tasks.json 与 launch.json,单文件与多文件调试、换成 GCC 与 GDB |
| linux-cli |
✅ 已完成 |
转载《只学够用的 Linux》最小入门教程,配作者录的一期视频 |
| git-github |
✅ 已完成 |
GitHub 访问、注册、核心概念与 SSH 连接,四期视频 |
| markdown |
✅ 已完成 |
在 VSCode 里把笔记文件夹发布成 GitHub 仓库,笔记的版本记录与云端同步 |
| python-env |
⬜ 施工中 |
Python 环境配置:Miniconda |
| python-syntax |
⬜ 施工中 |
Python 语法入门 |
| python-jupyter |
⬜ 施工中 |
Jupyter Notebook 的使用 |
未来项目
都是一些可以动手做的小题目。
以下都还是设想,随时可能调整。有想做的题目,或者觉得哪个不合适,可以随时提出。
一、把 C 语言本身掌握
| 项目 |
内容设想 |
| 指针与堆分配 |
自己实现一个堆分配器:用空闲链表管理一大块内存,写出简化版的 malloc / free。指针的加减、类型转换、指针的指针在这一题里全都要用到 —— 想真正熟悉指针,这是有效的办法 |
| 位运算与整数表示 |
用打印二进制的办法看懂补码、溢出和移位;再动手拆解、拼装 IEEE 754 浮点数,理解 0.1 + 0.2 为什么不等于 0.3 |
| 字符串与文本处理 |
自己实现 strlen / strcpy / strstr,再写一个简易 grep,顺带理解标准库为什么这么设计 |
| 内存与调试 |
用 GDB 定位段错误:看调用栈、下条件断点、单步观察变量;再用 AddressSanitizer 检测内存越界、野指针和泄漏。配合《GCC 与 GDB》那篇 |
二、理解程序如何在机器上运行
| 项目 |
内容设想 |
| 最基础的 Linux 命令行工具 |
用系统调用实现 cat / ls / wc / cp,理解文件描述符与 open / read / write |
| 进程与管道 |
用 fork / exec / wait 做一个能跑命令的小 shell,再加上管道和重定向 |
| 汇编入门 |
用 Compiler Explorer 边写 C 边看汇编:左边写代码,右边实时出汇编,两边的行还对应高亮。重点看:参数怎么传、局部变量放在哪、if 和 for 各自变成了什么、函数调用时栈如何变化。和下一题配合看,取指—译码—执行就具体了 |
| 最简单的 CPU 仿真 |
RISC-V 的一个子集:取指、译码、执行三步循环,能执行几条指令即可 |
| Cache |
实现一个软件模拟的 cache:先做直接映射,再加组相联和各种替换策略,用不同的访问模式观察命中率差异。最后回到真实代码上验证 —— 同一个二维数组,按行遍历和按列遍历的耗时能差出好几倍 |
| 页表 |
内容待定。可以从「虚拟地址怎么映射到物理地址」入手,做一个软件模拟的页表加缺页处理 |
三、数据结构与算法
| 项目 |
内容设想 |
| vector |
动态数组:扩容策略怎么定、均摊复杂度是怎么来的 |
| 链表与哈希表 |
从手写链表做到哈希表(拉链法和开放寻址各写一遍),实测不同数据量下的性能差异 |
| 树 |
内容待定。从二叉搜索树到「为什么需要平衡」 |
| 递归 |
从汉诺塔、全排列做到回溯,理解递归调用和栈的关系 |
| 排序 |
自己实现几种排序,用计时器实测差距,把「复杂度」与实际耗时对应起来 |
四、实现几个可运行的程序
| 项目 |
内容设想 |
| 表达式求值器 |
从中缀转后缀做到递归下降,实现一个支持变量和括号的计算器 |
| 最精简的 CPython |
只支持非常简单的语法:先词法分析、再语法分析,最后遍历语法树解释执行 |
| 最基础的 MLP |
用 C 实现一个多层感知机拟合 sin 函数,不依赖任何框架 |
| 终端小游戏 |
贪吃蛇、2048 之类,练习 ANSI 转义序列和输入处理 |
五、练习与评测
| 项目 |
内容设想 |
| 简单的应用 OJ 题 |
配合课程进度出一批练习题,每题配样例、边界数据和提示 |
| 从 OS 课拆的小 pj |
把操作系统课的项目拆小,做成适合本课程的版本 |