Skip to content

Commit 1c2e45e

Browse files
authored
Merge pull request #18 from ICS-25Fall-FDU/Zecyel-patch-1
Revise lab1.md for clarity and formatting
2 parents f5b1ff0 + 0f50ede commit 1c2e45e

File tree

2 files changed

+51
-48
lines changed

2 files changed

+51
-48
lines changed

docs/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ next: false
1111
## 📰 News
1212

1313
* **Sep. 12, 2025** [ICS 实验入门手册](/lab/manual)发布
14+
* **Sep. 23, 2025** [Lab0: GitLab](/lab/lab0)发布
15+
* **Sep. 30, 2025** [Lab1: DataLab](/lab/lab1)发布
1416

1517
## 🔍 Just for Fun
1618

docs/lab/lab1.md

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,28 @@
44

55
CSAPP 第一章配套实验。
66

7-
本实验的目的是加深同学们对整数和浮点数二进制表示的认识。同学们需要解出若干程序谜题,编写代码并通过正确性测试,最后提交代码和报告。希望同学们多加思考,在解题过程中能学到的远不止二进制本身,还能加深对位运算的理解,以及学到一些算法知识。
7+
本实验是 CSAPP 第一章配套实验,目的是加深同学们对整数和浮点数二进制表示的认识。同学们需要解出若干程序谜题,编写代码并通过正确性测试,最后提交代码和报告。希望同学们多加思考,在解题过程中能学到的远不止二进制本身,还能加深对位运算的理解,以及学到一些算法知识。
88

9-
本实验分为常规部和荣誉部分。荣誉部分的难度较高,是本课程比较有挑战性的部分。
10-
11-
荣誉部分虽然占分,但是占分并不高,大家可以自己决定要不要做荣誉部分。生活就像海洋,只有意志坚强的人才能到达彼岸!
9+
本实验的满分为 110 分。每迟交一天(迟交 1ms 到 24h 均视作一天)会在你的得分上扣除 5 分,扣完为止,报告另外算分。例如:如果你迟交一天,但是完成了 107 分的作业,则你的实验得分为 100 分,多余的 2 分可以加到报告的分数上。
1210

1311
## 部署实验环境
1412

15-
### (1)下载
13+
### 领取作业并克隆仓库到本地
14+
15+
点击 [链接](https://classroom.github.com/a/I6F-iQot) 接受作业。
16+
17+
> [!warning]
18+
>
19+
> 上一次作业还没选择名字的同学点进链接会提示你选择,请尽快完成这一步!
1620
17-
`github classroom` 拉取`lab1-datalab-xxx` 文件夹,其中的内容就是本次实验用到的的文件了,拉取指令如下:
21+
`GitHub Classroom` 拉取 `lab1-datalab-xxx` 仓库,其中的内容就是本次实验用到的文件了,拉取指令如下:
1822

1923
```shell
2024
git clone git@github.com:ICS-25Fall-FDU/lab1-datalab-xxx.git # 将 xxx 替换为你的 GitHub 用户名
2125
cd lab1-datalab-xxx
2226
```
2327

24-
### (2)准备工作
28+
### 安装必要软件
2529

2630
#### 确保已安装了 gcc
2731

@@ -54,7 +58,7 @@ sudo apt-get update
5458
sudo apt-get install make
5559
```
5660

57-
本实验需要用到以下 C 标准库
61+
本实验需要用到以下 C 运行库和编译包
5862

5963
```shell
6064
sudo apt-get install libc6 libc6-dev libc6-dev-i386
@@ -111,75 +115,70 @@ chmod +x dlc
111115

112116
## 实验提示与说明
113117

114-
### (1)如何入手
118+
### 如何入手
115119

116120
推荐阅读顺序:本文档 > `README` > `bits.c` 的注释部分。
117121

118-
`README` 文档中对实验文件做了较为详细的介绍。
119-
120-
`bits.c` 是同学们唯一需要编辑的文件,其中包含了谜题规则介绍, 18 个谜题以及谜题内容、难度、分数等。
121-
122-
上面的两个文件请务必仔细阅读。
122+
`README` 文档中对实验文件做了较为详细的介绍。`bits.c` 是同学们唯一需要编辑的文件,其中包含了谜题规则介绍,18 个谜题以及谜题内容、难度、分数等。上面的两个文件请务必仔细阅读。
123123

124124
注意到,每一个谜题包含了如下信息:
125125

126-
* 能使用的运算符。
127-
* 能使用的运算符总数量。
128-
* 能使用的常数的值域范围。
129-
* 变量类型。
130-
* 能否使用控制语句(如 `if` )等。
126+
- 能使用的运算符。
127+
- 能使用的运算符总数量。
128+
- 能使用的常数的值域范围。
129+
- 变量类型。
130+
- 能否使用控制语句(如 `if` )等。
131131

132-
### (2)测试
132+
### 测试
133133

134-
* 除了 `bits.c` ,你不应该编辑任何其余文件。
134+
- 除了 `bits.c` ,你不应该编辑任何其余文件。
135135

136-
* 完成谜题后,需要检验自己的代码是否正确:
136+
- 完成谜题后,需要检验自己的代码是否正确:
137137

138-
* 首先,执行下述指令,检查每个函数使用的运算符类型、数目是否符合要求:
138+
- 首先,执行下述指令,检查每个函数使用的运算符类型、数目是否符合要求:
139139

140-
* ```shell
140+
```shell
141141
./dlc -e bits.c
142142
```
143143

144-
* 如没有任何报错,按顺序执行下述指令,测试每个函数的正确性:
144+
- 如没有任何报错,按顺序执行下述指令,测试每个函数的正确性:
145145

146-
* ```shell
146+
```shell
147147
make clean
148148
make all
149149
./btest
150150
```
151151

152-
* `btest` 执行时会给出每个谜题(函数)是否通过测试(未通过时会给出测试数据),并且会计算你的最终得分。
152+
- `btest` 执行时会给出每个谜题(函数)是否通过测试(未通过时会给出测试数据),并且会计算你的最终得分。
153153

154-
* 你可以利用上 `./ishow``./fshow` 来帮助你调试(用法见 `README`)。
154+
- 你可以利用上 `./ishow``./fshow` 来帮助你调试(用法见 `README`)。
155155

156156
## 提交实验
157157

158-
### (1)内容要求
158+
### 内容要求
159159

160160
你需要提交至少两份文件,包含你的 `bits.c` 和一份实验报告。
161161

162162
实验报告应该包含以下内容:
163163

164-
* 实验标题,你的姓名,学号。
164+
- 实验标题,你的姓名,学号。
165+
- 你在终端中执行 `./dlc -e bits.c` 后的截图。
166+
- 你在终端中执行 `./btest` 后的截图。
167+
- 描述你实现每个函数的思路。`bits.c` 中不要求给自己的代码写注释(写了也无妨)
168+
- 如果有,请务必在报告中列出引用的内容以及参考的资料。
169+
- 对本实验的感受(可选)。
170+
- 对助教们的建议(可选)。
165171

166-
* 你在终端中执行 `./dlc -e bits.c` 后的截图。
167-
* 你在终端中执行 `./btest` 后的截图。
168-
* 描述你实现每个函数的思路。`bits.c` 中不要求给自己的代码写注释(写了也无妨)
169-
* 如果有,请务必在报告中列出引用的内容以及参考的资料。
170-
* 对本实验的感受(可选)。
171-
* 对助教们的建议(可选)。
172-
173-
### (2)格式要求
172+
### 格式要求
174173

175174
可提交 `.md` 文件或者 `.pdf` 文件。请勿提交 `.doc``.docx` 文件。
176175
(如果提交 `.md` 文件,请确保助教能同时看到你报告中的截图!)
177176

178177
> [!tip]
179178
>
180-
> 在你的 Markdown 报告中插入图片时,使用 **相对路径** 而不是绝对路径。如果你不确定这一步是否正确,请进入你的远程仓库预览你的报告。
179+
> 在你的 Markdown 报告中插入图片时,请将图片文件放在仓库的 `images/``assets/` 文件夹下,并使用 **相对路径**(如 `images/screenshot.png`)插入图片。常见支持的图片格式有 PNG、JPG 和 GIF。插入图片的 Markdown 语法示例:`![截图说明](images/screenshot.png)`。上传报告时,请确保图片文件已一并上传到 GitHub。如果你不确定这一步是否正确,请进入你的远程仓库预览你的报告。
181180

182-
### (3)上传
181+
### 上传
183182

184183
打开终端,**`lab1-datalab-xxx` 路径下** 执行以下指令:
185184

@@ -194,20 +193,22 @@ git commit -m "xxx(可以是你的提交注释)"
194193
git push
195194
```
196195

197-
### (4)评分规则
196+
### 评分规则
198197

199-
* 实验报告要求简洁清晰,不必追求字数,描述清楚思路即可
200-
* 对每道谜题请先做思考,不要立即使用搜索引擎。
201-
* 不允许抄袭其它人的代码,一旦发现,零分处理。
198+
- 实验报告要求简洁清晰,不必追求字数,描述清楚思路即可
199+
- 对每道谜题请先做思考,不要立即使用搜索引擎,如果使用了 AI,请在提交的报告中注明
200+
- 严禁抄袭其它人的代码,一旦发现,零分处理。
202201

203202
## 参考资料
204203

205-
* [CMU 原版 Lab](http://csapp.cs.cmu.edu/3e/labs.html)
206-
* 本文档编写时参考了24年的实验文档
204+
- [CMU 原版 Lab](http://csapp.cs.cmu.edu/3e/labs.html)
205+
- 本文档编写时参考了 24 年的实验文档
207206

208207
> [!info] 本 Lab 负责助教
209208
>
210-
> * [蔡亦扬](mailto:caiyy23@m.fudan.edu.cn)
211-
> * [项正豪](mailto:zhxiang23@m.fudan.edu.cn)
209+
> - [蔡亦扬](mailto:caiyy23@m.fudan.edu.cn)
210+
> - [项正豪](mailto:zhxiang23@m.fudan.edu.cn)
212211
>
213212
> **特别鸣谢**:24 年秋学期 ICS 助教李增昊
213+
>
214+
> 同时感谢 @徐厚泽 助教往本实验中加入了 `bitReverse` 题目,感谢 @朱程炀 助教往本实验中加入了 `float_inv` 题目。

0 commit comments

Comments
 (0)