「cmu15-445」初见

本文最后更新于:2023年4月15日 晚上

cmu15-445是一门非常著名的数据库课程, 之前一直很想看看, 但是一直没太多时间, 今天花点时间来做一下第一次的作业project-0, 并记录一下流程, 课程要求不能展示源代码, 故这里就给出一个环境配置的流程2333, 也当是一次记录吧

课程相关资源:

「课程主页」: https://15445.courses.cs.cmu.edu/fall2020/

「b站视频」:https://search.bilibili.com/all?keyword=15-445&from_source=webtop_search&spm_id_from=333.851

「youtube」: https://www.youtube.com/watch?v=oeYBdghaIjc&list=PLSE8ODhjZXjbohkNBWQs_otTrBTrjyohi

「知乎讨论组与简介」:https://zhuanlan.zhihu.com/p/366484273

「课程代码仓库」: https://github.com/cmu-db/bustub

「gradescope(交作业)」: https://www.gradescope.com/courses/163907/

1 | 关于project0

官网上是这么说的——

All the programming projects this semester will be written on the BusTub database management system. This system is written in C++. To ensure that you have the necessary C++ background, we are requiring everyone to complete a simple programming assignment to assess your knowledge of basic C++ features. You will not be given a grade for this project, but you are required to complete the project with a perfect score before being allowed to proceed in the course. Any student that is unable to complete this assignment before the deadline will be asked to drop the course.

意思是就是测试一下你是否具备了完成该课程必要的c++基础, 借此机会也熟悉一下整个作业的完成和提交流程

首先为了按照作业上的介绍来完成, 需要:

  1. gradescope上注册一个账号并加入该课程, 用于提交作业
  2. 由于需要使用课程提供的脚本sudo ./build_support/packages.sh, 需要linux环境, 或者windows使用WSL, 具体见课程要求https://github.com/cmu-db/bustub/blob/master/README.md, 我这里使用的是开着虚拟机用win下vscode连接, 主要是因为linux下敲代码懒得装环境+搞配置了~, 我是如何配置的具体见vscode连接ssh或本地虚拟机

2 | 作业完成与提交流程

1 | 首先clone下git仓库

git clone https://github.com/cmu-db/bustub.git

2 | 用提供的shell脚本安装必要的环境

sudo ./build_support/packages.sh

3 | 按照project0中描述找到p0_starter.h文件

You will only need to modify a single file: p0_starter.h You can find the file in the BusTub repository at src/include/primer/p0_starter.h.

4 | 按照project0的提示和程序中的注释修改p0_starter.h文件

5 | 配置环境

1
2
3
4
$ mkdir build
$ cd build
$ cmake ..
$ make

6 | 编译文件并做测试

1
2
3
$ cd build
$ make starter_test
$ ./test/starter_test

7 | 必要的格式检查

1
2
3
4
$ cd build
$ make format
$ make check-lint
$ make check-clang-tidy

8 | 完成三个测试与检查后按照格式压缩成project0-submission.zip文件并提交到gradescope

9 | 查看结果..

第一次提交:

第二次提交:

nice!!!

3 | 总结下project0的知识点

  1. linux的基本操作指令
  2. c++的基本面向对象编程(虚函数, 继承, 构造函数, 析构函数)
  3. unique_ptrstd::move()
  4. template <T>模板

「cmu15-445」初见
https://blog.roccoshi.top/posts/36572/
作者
RoccoShi
发布于
2021年7月20日
许可协议