PA0 - 世界诞生的前夜: 开发环境配置
PA讲述的是一个"上帝创造计算机"的故事.
上帝打算创造一个计算机世界. 但巧妇难为无米之炊, 为了更方便地创造这个世界, 就算是上帝也是花了一番功夫来准备的. 让我们来看看上帝都准备了些什么工具.
</div></div>
预计平均耗时: 15小时
截止时间: 见elearning
提交说明:
- 为了尽可能避免拖延症影响实验进度, 我们采用分阶段方式进行提交, 强迫大家每周都将实验进度往前推进. 在阶段性提交截止前, 你只需要提交你的工程, 并且实现的正确性不影响你的分数, 即我们允许你暂时提交有bug的实现. 在最后阶段中, 你需要提交你的工程和完整的实验报告, 同时我们也会检查实现的正确性.
- 如无特殊原因, 迟交的作业将损失30%的成绩(即使迟了1秒), 请大家合理分配时间.
- 但是, 如果你完全没有开始进行某阶段的实验内容, 请你不要进行相应的提交, 因为这会影响我们的工作. 一旦发现这种情况, 我们将会额外扣除你 `发现次数*10%` 的PA总成绩.
学术诚信: 如果你确实无法独立完成实验, 你可以选择不提交, 作为学术诚信的奖励, 你将会获得10%的分数.
下表说明了你可能采取的各种策略的收益:
并非完全没有完成相应内容 | 完全没有完成相应内容 | 抄袭 | |
---|---|---|---|
按时提交 | 100%(获得完成部分的全部分数) | -发现次数*10% |
0%, 并通知辅导员 |
未按时提交 | 70%(迟交惩罚) | -发现次数*10% |
0%, 并通知辅导员 |
不提交 | 10%(学术诚信奖励) | 10%(学术诚信奖励) | 10%(学术诚信奖励) |
总的来说, 最好的策略是: 做了就交, 没做就不要交.
提交地址: eLearning
提交格式: 把实验报告放到工程目录下之后, 使用 make submit
命令直接将整个工程打包即可. 请注意:
- 我们会清除中间结果, 使用原来的编译选项重新编译(包括
-Wall
和-Werror
), 若编译不通过, 本次实验你将得0分(编译错误是最容易排除的错误, 我们有理由认为你没有认真对待实验). - 我们会使用脚本进行批量解压缩.
make submit
命令会用你的学号来命名压缩包, 不要修改压缩包的命名. 另外为了防止出现编码问题, 压缩包中的所有文件名都不要包含中文. - 我们只接受pdf格式, 命名只含学号的实验报告, 不符合格式的实验报告将视为没有提交报告. 例如
141220000.pdf
是符合格式要求的实验报告, 但141220000.docx
和141220000张三实验报告.pdf
不符合要求, 它们将不能被脚本识别出来. - 如果你需要多次提交, 请先手动删除旧的提交记录(提交网站允许下载, 删除自己的提交记录)
git版本控制: 我们鼓励你使用git管理你的项目, 如果你提交的实验中包含均匀合理的, 你手动提交的git记录(不是开发跟踪系统自动提交的), 你将会获得本次实验代码分数20%的奖励(总得分不超过本次实验的上限). 这里有一个十分简单的git教程, 更多的git命令请查阅相关资料. 另外, 请你不定期查看自己的git log, 检查是否与自己的开发过程相符. git log是独立完成实验的最有力证据, 完成了实验内容却缺少合理的git log, 不仅会损失大量分数, 还会给抄袭判定提供最有力的证据.
实验报告内容: 你必须在实验报告中描述以下内容:
- 实验进度. 简单描述即可, 例如"我完成了所有内容", "我只完成了xxx". 缺少实验进度的描述, 或者描述与实际情况不符, 将被视为没有完成本次实验.
- 必答题.
你可以自由选择报告的其它内容. 你不必详细地描述实验过程, 但我们鼓励你在报告中描述如下内容:
- 你遇到的问题和对这些问题的思考
- 对讲义中蓝框思考题的看法
- 或者你的其它想法, 例如实验心得, 对提供帮助的同学的感谢等(如果你希望匿名吐槽, 请移步提交地址中的课程吐槽讨论区, 使用账号stu_ics登陆后进行吐槽)
认真描述实验心得和想法的报告将会获得分数的奖励; 蓝框题为选做, 完成了也不会得到分数的奖励, 但它们是经过精心准备的, 可以加深你对某些知识的理解和认识. 因此当你发现编写实验报告的时间所剩无几时, 你应该选择描述实验心得和想法. 如果你实在没有想法, 你可以提交一份不包含任何想法的报告, 我们不会强求. 但请不要
- 大量粘贴讲义内容
- 大量粘贴代码和贴图, 却没有相应的详细解释(让我们明显看出来是凑字数的)
来让你的报告看起来十分丰富, 编写和阅读这样的报告毫无任何意义, 你也不会因此获得更多的分数, 同时还可能带来扣分的可能.
</div></div>
随着科学技术的发展, 在国际学术交流中使用英语已经成为常态: 顶尖的论文无一不使用英文来书写, 在国际上公认的计算机领域经典书籍也是使用英文编著. 顶尖的论文没有中文翻译版; 如果需要获取信息, 也应该主动去阅读英文材料, 而不是等翻译版出版. "我是中国人, 我只看中文"这类观点已经不符合时代发展的潮流, 要站在时代的最前沿, 阅读英文材料的能力是不可或缺的.
阅读英文材料, 无非就是"不会的单词查字典, 不懂的句子反复读". 如今网上有各种词霸可解燃眉之急, 但英文阅读能力的提高贵在坚持. "刚开始觉得阅读英文效率低", 是所有中国人都无法避免的经历, 如果你发现身边的大神可以很轻松地阅读英文材料, 那是因为他们早就克服了这些困难. 引用陈道蓄老师的话: 坚持一年, 你就会发现有不同; 坚持两年, 你就会发现大有不同.
撇开这些高大上的话题不说, 阅读英文材料和你有什么关系呢? 有! 因为在PA中陪伴你的, 就是没有中文版的i386手册, 当然还有 man
: 如果你不愿意阅读英文材料, 你是注定无法独立完成PA的.
作为过渡, 我们为大家准备了全英文的PA0. PA0的目的是配置实验环境, 同时熟悉GNU/Linux下的工作方式, 其中涉及的都是一些操作性的步骤, 你不必为了完成PA0而思考深奥的问题. 你需要独立完成PA0, 请你认真阅读讲义中的每一个字符, 并按照讲义中的内容进行操作: 当讲义提到要在互联网上搜索某个内容时, 你就去互联网上搜索这个内容. 如果遇到了错误, 请认真反复阅读讲义内容, 机器永远是对的. 如果你是第一次使用GNU/Linux, 你还需要查阅大量资料或教程来学习一些新工具的使用方法, 这需要花费大量的时间 (例如你可能需要花费一个下午的时间, 仅仅是为了使用 vim
在文件中键入两行内容). 这就像阅读英文材料一样, 一开始你会觉得效率很低, 但随着时间的推移, 你对这些工具的使用会越来越熟练. 相反, 如果你通过"投机取巧"的方式来完成PA0, 你将会马上在PA1中遇到麻烦. 正如etone所说, 你在专业上的技不如人, 迟早有一天会找上来. 至于你信不信, 我反正信了.
另外, PA0的讲义只负责给出操作过程, 并不负责解释这些操作相关的细节和原理. 如果你希望了解它们, 请在互联网上搜索相关内容.
</div></div>