Skip to content

项目

数据可视化概念模型

    一个利用数据概念模型的数据可视化工具。实现了从relational level数据库到ER level的模型的逆向工程,并将得到的数据库模型与标准数据可视化模型进行对照,找到与之对应的模型并进行数据可视化。数据可视化模型是基于我的导师Peter McBrien教授的论文:Towards Data Visualisation Based on Conceptual Modelling。该工具在各种可视化任务中展现了其有效性。它能够根据属性数量/分类和它们之间的关系,至多提供19种类型的可视化图示。

    中国移动网络安全实习生

      为期两个月的网络安全实习生。在最初的几周里,我接受了系统的培训,学习了渗透测试技能和CISSP知识。我的日常工作是使用公司系统的sys-log信息进行网络攻击溯源,并产出了多篇有价值的溯源报告。我还独立开发了一个使用Python编写的工具,从目标IP列表中收集信息并过滤出恶意IP。

      卷积神经网络(CNN)图像分类

        在这个计算机视觉课业项目中,我探索了卷积神经网络(CNN)在图像分类任务中的应用,特别是在精准捕鱼的领域中的鱼类分类。我使用 PyTorch 开发了一个图像分类模型,可以根据输入图像对鱼类进行分类。这个课业项目包括两个任务:1. 训练一个模型来分类各种鱼类。2. 对训练好的模型的最后一层进行微调,以适应一些新的鱼类。训练好的模型和微调后的模型在800张测试图像上都达到了99%的准确度。

        图片注释器

          一个最初用于蝴蝶图像的在线图像注释工具,为了给学校的一位机器学习教授使用所设计。可以通过在图像上绘制图形并将其关联到相关关键词,从而实现图像进行标注。这个图像标注功能使用了JavaScript的p5库。

          ‘史记’-历史学习工具网站

            使用 Python Flask 后端,与JavaScript的 p5 库的前段集成的一个Web应用。通过实现动态时间轴功能,以及实现历史事件在时间线上的可视化以及支持大小调整,增强了历史学习和笔记的用户体验。

            WACC语言编译器

              大二编译器小组项目,使用Java编写。实现了一个支持输出 ARM11 指令集汇编代码的WACC语言编译器。它包括前端的词法分析器 (Language Lexer)、语法解析器 (Language Parser) 和语义分析器 (Semantic Analyser),以及后端的代码生成器 (Code Generator)。利用 ANTLR 工具生成的语言解析器 (Language Parser),实现语法树 (Syntax Tree) 的生成,其中包括对 WACC 语法和语义的解析,并生成相关错误报告。该编译器支持解析基本逻辑语句,包括 if-else 语句,for/while 语句,switch 语句以及 break/continue 语句。支持 pair 类型和 macros。

              Pintos 操作系统

                大二操作系统小组项目,使用C语言实现。开发了一套基于x86的简单操作系统,包括实现线程调度,虚拟内存管理和运行用户态程序。线程调度包括轮询式调度 (Round-Robin Scheduler),和基于CPU使用时间的优先级线程调度 (Priority Scheduler),其中使用了资源锁 (lock),信标 (semaphore) 和监视器 (monitor)。虚拟内存管理包括内存页分配 (page allocation),Copy-on-Write,共享内存页 (shared-pages),Memory-mapped files 和 内存页替换 (page swapping)。通过实现部分标准Unix系统调用,比如文件 open() 和 close(),允许运行用户态程序。

                ARM11 的模拟器和汇编器

                  实现可以在 x86-64 上运行的四种基本 ARM 指令类型的模拟器和编译器,包括:Data Processing, Multiply, Single Data Transfer 和 Branch。该模拟器可以将 ARM11 指令编译为二进制格式,并顺利执行且输出最终寄存器状态。模拟器的实现包括一个解码器,用于解码二进制。汇编器的实现包括一个哈希表和标记器,用于将汇编代码转换为二进制代码。