课程概述
版权声明
本项目为 2025—2026 学年度夏季学期清华大学计算机系开设的“程序设计训练(Rust)”课程的文档。 所有内容(包括文档、代码等)未经作者授权,禁止用作任何其他用途,包括且不限于在其他课程或者其他学校中使用。
如需使用授权,可通过 hanwentao at tsinghua dot edu dot cn 联系作者。作者保留一切追究侵权责任的权利。
基本信息¶
- 课程名:程序设计训练
- 课程号:30240522-3
- 学期:2025—2026 学年度夏季学期
- 主讲教师:韩文弢
- 助教团队:郑友捷、游宇凡、于新雨、陈嘉杰、陈晟祺
- 课程介绍:Rust 是一种通用、编译型编程语言,其设计准则为“安全、并发、实用”,支持函数式、并发式、过程式以及面向对象的程序设计风格。Rust 的主要设计目标是使设计大型的互联网客户端和服务器的任务变得更容易,因此更加强调安全性、内存分配、以及并发处理等方面的特性,能高效、便捷、安全地开发系统软件。在使用人工智能进行程序开发时,使用 Rust 可以从语言层面提供安全和性能的保障。本课程将详细讲解 Rust 语言,着重讲解 Rust 设计中具有特色的所有权、生命周期、模式匹配、函数式编程、泛型与特型等方面,使学生理解设计原因,掌握正确的使用方法,并通过实验进行实践。
课程大纲¶
教学日历¶
| 周次 | 周二 | 周三 | 周四 |
|---|---|---|---|
| 8 | 08-18 教学:课程介绍与基本语法 |
08-19 教学:所有权与结构化数据 |
08-20 教学:标准库 |
| 9 | 08-25 习题课:模拟测验与答疑 |
08-26 教学:泛型、特型与生命周期 |
08-27 教学:项目管理与常用库 |
| 10 | 09-01 测验 |
09-02 教学:并发编程 |
09-03 教学:输入输出与异步编程 |
| 11 | 09-08 习题课:任务研讨 |
09-09 教学:高级特性与编程语言综述 |
09-10 课堂展示 |
考核方式¶
| 环节 | 比例 | 内容与形式 |
|---|---|---|
| 练习 | 10% | 内容以语法知识和设计思想为主,形式为选择题。 |
| 测验 | 20% | 内容同练习,采用闭卷考试。 |
| 作业 | 20% | 内容以语法知识实践和综合运用为主,参考作业文档。 |
| 项目 | 50% | 采用半开放选题,包括需求分析、设计实现、展示报告等环节。 |
迟交处理¶
所有迟交作业的得分 \(S'\) 按照如下公式计算:
\[ S' = S \times \min(0.8, 0.95^D) \]
其中 \(S\) 是作业原始得分,\(D\) 是向上取整的迟交天数(即 deadline 后即记为迟交一天)。
例如,作业的 deadline 是 8 月 13 日,则 8 月 20 日补交的作业总分将折合为原始得分的 \(69.8\%\)。
参考资料¶
- 网络资源
- Rust 官方文档中文教程:全面的学习 Rust 语言的官方文档和其他教程的中文知识库
- RUNOOB.COM 的 Rust 教程:简明的入门教程,可作为第一份学习资料
- The Rust Programming Language:Rust 官方学习文档,适合进一步入门,有中文翻译版
- The Rust Reference:Rust 官方参考手册,刨根究底时的参考资料
- The Rustlings Course:动手学习 Rust 语法的课程,动手加深印象
- CIS 198: Rust Programming:宾夕法尼亚大学的 Rust 课程,本课程的参考资料
- 参考书(电子版均可在清华大学教参服务平台上阅览)