跳转至

站点计划

本页最后更新于 ,内容可能过时

近期项目

项目 当前进展 内容描述
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 把操作系统课的项目拆小,做成适合本课程的版本