An incomplete list of BIT School of Computer Science's coursework references
下面就是我自大一以来,在 GitHub 上面公开的几乎所有的大作业、项目或小组项目中由我负责的部分的源代码地址。部分未公开的代码项目,要么是课程尚未结束,要么是时间太过久远需要我进一步对代码进行整理才能公开。
按照时间倒序,下面就是各个代码仓库的地址。如果有感兴趣的同学,也欢迎来共同完善这个 Coursework 清单,作为今后需要学习这些课程的同学的一个参考。在这里给大家拜年了。🤖
计算机组成原理课程设计和汇编语言与接口课程设计这两门课的任务是:利用 Verilog 设计实现单周期 CPU 和流水线 CPU,并让 CPU 执行一段指令,比如通过 VGA 接口向显示器输出一段图像。
本项目是小组项目,整个小学期的全部工作内容位于:GitHub / ZanPU。
单周期 CPU:spencerwooo/single-cycle-processor
流水线 CPU:zan-pu/pipelined-zanpu
完整的过程陈述和说明文档:Build Your PC | 辛苦三星期,造台计算机!
计算机网络课程设计包含有:
- 编程任务:7 个
- 网络设备配置:3 个(实验报告,非代码项目。)
- H3C 模拟器:3 个(实验报告,非代码项目。)
- 调研报告:1 个(实验报告,非代码项目。)
其中,7 个小编程任务每个任务需要由 C/C++、Java 和 Python 三种类型语言进行实现,我们小组是 6 位同学分配共 21 个项目进行各自编写的。下面是 7 个小编程任务的源代码仓库。
7 个小实验:zan-net/lab-exercise
汇编语言与接口课程的作业项目共有下面两个:
- 个人项目:①大数乘法 ②实现一个简易计算器
- 团队项目:设计实现一个小游戏(比如贪吃蛇等)
这两个项目都有所借鉴,并非我自己完全从头开始的。
由于汇编直接撰写 GUI 太麻烦,我们小组选择使用 WPF 实现客户端,用汇编来实现核心业务逻辑。下面是客户端部分的源码。
小组项目「推箱子」: spencerwooo/SokobanGame
实验编号 | 参考链接 |
---|---|
实验一、编译 Linux 内核 | 请直接参考搜索引擎 |
实验二、进程控制 | spencerwooo/exp2-process-control |
实验三、生产者消费者问题 | spencerwooo/exp3-producer-consumer |
实验四、内存监视 | spencerwooo/exp4-memory-monitor |
实验五、复制文件 | spencerwooo/exp5-file-operation |
实验六、综合实验 | spencerwooo/bank-simulation-client |
其中最后的综合实验是开放式选题,小组合作项目。我负责的客户端部分给出了公开,后端 API 以及其他部分不公开。具体详细的课程要求请参考老师给出的参考文档。
这部分实验未涉及到代码内容,文字报告不做公开。
- 未涉及到代码。
从这里开始,设计实现的代码需要和 BIT-MiniCC 结合,嵌入框架中。具体使用详情见老师给出的参考文档,这里不做过多说明。
由于时间原因,语法分析实验中我选用的 C 语言部分文法并不完全、测试用例并不全面。因此语法分析实验的代码存在一些瑕疵。请仔细阅读源码后再做参考。
- 实验一、二和实验三的 Java 部分:spencerwooo/CN-Data-Link-Layer
由于做这个实验的时候(2019 年 5 月),Java 抓包所依赖的
pcap4j
存在一些 bug(详见 Pcap4j issue #220),因此我不得不延后一段时间开发 JavaFX 的图形界面版本,先使用命令行版本做展示。但是由于时间后期充裕起来(老师比较墨迹),我有时间将 SNAPSHOT 版本的
pcap4j
库进行下载使用,使 GUI 的实现成为了可能。因此目前下面列表中的第一项是相对成熟的版本。命令行版本仅做参考。
- 实验一的 Java 部分:spencerwooo/CN-Packet-Sniffer
- 实验一的 Java 命令行版本:spencerwooo/CN-Sniffer-CLI
四则运算:
- 命令行基础库:spencerwooo/fluffy-math
- 前端部署仓库:spencerwooo/fluffy-math-spa
- 参考文档部署仓库:spencerwooo/fluffy-math-docs
数字图像处理课程作业分为四个大部分:
- 三个小作业:图像仿射变换、维纳滤波、角点检测
- 综述论文
- 代码阅读报告
- 以及最后一项大作业
这里我只公开大作业的 Matlab 实现,其他论文相关、文字报告等等均不公开。
数字图像处理大作业 - 图像卡通化:spencerwooo/cartoonize-images
小学期项目除了代码开发本身,更加注重软件工程开发过程中包括项目计划、人员配置、需求分析、概要设计等等环节的文字内容。下面代码仅供参考。
局域网下的点对点聊天:spencerwooo/zan-chat
金大师的课程,推荐大家!
一个 Android 天气 App:spencerwooo/WeatherMeow
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
本著作係採用 創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款 授權.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
🌈 BIT Catalog ©Spencer Woo. Released under the CC BY-SA 4.0 International License.
Authored and maintained by Spencer Woo.