这是我在中山大学软件工程本科的最后一个学期,时光荏苒,转眼就从新生军训到了毕业季。回想起来,在中大软件工程专业的学习经历在我人生的轨道上留下了独特印记,我在这里认识了很多良师益友,做了很多有意义的事情。本科阶段,我将我大部分的代码上传到了GitHub上,在此总结一下我本科阶段的仓库,作为对我在中大本科学习的告别!
Freshman
LovelyBuggies.github.io
我的个人博客。记录平时作业、学习、生活。
Cplusplus_CppProgramming_Homework
这是我大一下学习程序设计-II的代码记录。我程序设计-II的老师是万海老师,这门课要求用C++实现一些基础的算法和实验,旨在让我们掌握C++的基本语法和面向对象编程中需要的注意的问题。这里包含我那一届(2016届)所有的作业。Matrix OJ是所有中大软工新生的梦魇。
Cplusplus_GraphTheory_Experiments
这是我大一下学习离散数学的代码记录。我离散数学的老师是乔海燕老师(帮主),当时课程要求是说可以通过实现课程中学到的理论知识(算法)来获得bonus。我实现了课程学到的几个图论算法——Prim、Kruskal、Dijkstra、深度优先、广度优先、临接表,还有一个测试客户端。遗憾的是,最后这些代码虽然获得了乔老师的满意,但是没有加多少分。不过这些代码的实现对后来我数据结构的学习起到了很重要的作用。
Cplusplus_PrimaryPracticalTraining_MyAgenda
这是我大一下软件工程初级实训的项目代码,实现语言要求为C++。这个项目有三个阶段:阶段一让我们熟悉了Linux编程环境,以及一些软件工程常用的工具如Vim;第二阶段分析项目需求,实现Agenda的数据层(含有存储类、用户类、日期类、会议类等底层类)、逻辑类(处理用户各种操作);第三阶段,我们为这个项目加了一个终端用户接口,用户可以在Terminal上使用这个Agenda软件。初级实训是我本科生涯第一次比较overwhelmed的开发经历,也算是对软件项目工程的入门实践。
Sophomore
Paper_Notes
从大二开始的记录我论文阅读的笔记。提升科研效率,保持科研激情!
Verilog_DigitalCircuitDesign_Homework
这是我大二上学习数字电路与逻辑设计实验课的代码记录,这门课我的老师是保延翔老师,这是我的实验课作业,记录了我用Vivado和Proteus做的一些数字电路设计实验。因为我这一届没有学习模拟电路设计,所以这是我们为CPU设计打下的唯一基础,告诉我们如何用0和1控制电路做出有神奇效果的发光板。我依然记得每一个作业检查实验课的前一晚,同学们彻夜烧板子发出的叹息。
Java_SelfLearning_Intro2Java
这是我大二上学习Java与面向对象的设计的代码记录,这门课我的老师是陈武辉老师。因为陈老师当年新来到我们学院,这门课当时也不算很完善,所以作业并不多。出于好学精神(无聊),我用这个仓库不单单记录了这门课的平时作业,还有我用Introduction to Programming in Java自学Java的记录(主要是因为我当时想用Princeton的Algorithms来学习一下数据结构,而这两个自学教程的风格几乎是一样的)。
当时学习抛出异常问题时,我课后找陈老师问了一下,陈老师推荐我参加Inplus Lab的面试,最后进入他的组里从事Blockchain与IoT的研究。回忆起来,这门课真的是我本科学习从迷茫(不知道该学什么、怎么学)到确定方向(知道自己要做什么研究)的转折点,陈老师真是我人生的贵人!
openCV_ComputerVision_ObjectDetection
这是我大二上学期寒假在中国矿业大学-北京的科研项目,将高斯混合模型和卡尔曼滤波器应用到道路视频监控的目标前景检测中。当时我用Xcode搭建环境搭建了很久,这个项目对于当时的我来说是十分困难的。为我后来计算机视觉的研究工作打下了基础。
Markdown_FundamentalEconomics_FinalExamReview
这个仓库是我唯一一个跟经管相关的仓库,是大二下学习李安勇老师毛泽东思想和中国特色社会主义概论的期末考试复习(抱佛脚)笔记。毛概是一门6学分的课程,鉴于之前什么中国近代史纲要、思想道德基础与修养、马克思主义基本原理等通识课我惨绝人寰的成绩和对美好GPA的向往与憧憬,我破天荒地在专业课扎堆的大二下学期专门抽了很多时间复习了毛概。
虽然说是毛概,但可能是因为李安永老师觉得毛概对我们专业的学习没有那么重要,又或者按他说的”人人都需要学习经济学”,我们的期末考试会考经济学原理(80%)+年级统考毛概(20%)。最后这门课成绩还凑合,总算没有拖大后退。但是评分标准也是很迷,不过我们学校已经习惯了。
Java_JuniorPracticalTraining_GridWorld
这是我大二下软件工程中级实训的项目代码,实现语言要求为Java。这个项目分为三个阶段:第一个阶段我们熟悉了Vim Editor、Ant、JUnit、Sonar等工具,并用Java实现了一个简单的计算器;第二个阶段,我们实现了一些对象,包括Bugs、Jumper、Critters,并创建了一个网格世界存放这些对象;最后阶段,我们实现了走迷宫的飞虫程序,走迷宫采用的是N-Puzzle算法。
Matlab_NumericalComputing_Methods
这是我大二下学习数值计算方法的代码记录,这门课我的老师是凌青老师。凌老师是很我很喜欢的授课风格(因为不用上课),强调通过动手与实践掌握理论知识,对考勤没有强制性的要求。一学期一共两次作业,但是涉及到很多数值计算的方法——基本上课程着重讲的内容都要做实验。通过这两次作业,我不仅仅对数值计算有了比较好的理解,还熟悉了Matlab的编程。这门课我考了99分,自认为这个仓库还是比较有参考价值的。
MySQL_Database_Experiments
这是我大二下学习数据库系统的平时作业代码记录,这门课我的老师是桑应朋老师。这个仓库含有mySQL的基础使用练习,包括创建数据库、数据库基础操作、数据库中的index操作、嵌入式数据库编程等。
C_OperatingSystem_Experiments
这是我大二下学习操作系统原理的代码记录。我的操作系统原理老师是张永东老师,这是我的平时作业,记录了一些关于操作系统中多进程编程常常涉及到的问题,比如进程间通信、同步问题、死锁问题等......这些实验为我之后项目中 的多进程编程打下了良好的基础。
Java_Hadoop_PageRanker
这是我大二下学习云计算概论的代码记录。我的云计算概论老师是吴维刚老师,这是我的期末项目,我用MapReduce的思想,在Hapood框架内实现了经典的PageRank算法。这个项目还挖了一个坑——将结果存储到SQL数据库中。这个库中有完备详细的配置Hadoop分布式计算的方法,有分布式项目的同学们可以参考一下。
Verilog_ComputerOrganization_Experiments
这是数字电路与逻辑设计实验课的进阶版,是我大二下学习计算机组成原理与接口技术实验的代码记录。这门课我的老师是何朝东(小火龙)老师,没有期末考试,平时作业一共就三次,次次是硬茬。第一次实验让我们设计一个简单实验熟悉一下实验环境;第二次是设计一个单周期CPU;最后一次是实现一个多周期CPU。虽然这个课很涨技能,但是这之后我再也没有尝试任何与烧板子类似的选修课学习。
Matlab_MachineLearning_AndrewNg
这是我大二快结束的时候看吴恩达的机器学习课程时想要尝试实现的代码。很可惜,只做了两三个实验,目前(2020/02/04)算是弃坑了…如果未来有机会可能会填坑。GitHub上有很多这个课程的学习资料和代码,如果有需要的同学,可以从GitHub上查找。
Python_MADDPG_SC2LE
pysc2_maddpg 这个项目是我在2018年暑假在中科院自动化所的实习代码,主要是利用Open AI的MADDPG多智体联合算法,训练了暴雪开源的星际争霸2——sc2le环境中最基本5v5对抗中的收割者。这是一次非常有意义的游戏AI设计体验,也是我对强化学习的初次认识。
Junior Year
Fitness_Manual
大三开始健身之后记录健身方法、动作的健身手册。尝试用GitBook进行记录。因为隐私性的原因,这个仓库尚未开源。
Solidity_ScoreChain_Dapp
这是我大三上学习区块链原理和技术课程的期末项目代码记录,这门课我的老师是郑子彬老师(Inplus联盟)。这个项目中我参考 Dapp University 的Dapp搭建教程,用Solidity实现了一个去中心化的评分系统——Score Chain,实现公开透明化打分。最终我获得99分,而且这个项目十分简单,容易上手,推荐想要搭建Dapp环境的新手看一下。
MultimediaTechnology_Experiments
这是我大三上学习多媒体技术的代码记录,这门课我的老师是杨猛老师。感觉这个课的作业涉及知识面很广、有点杂,包括计算机视觉、密码学等很多领域的知识。不过当时这个课挺注重期末考试的,虽然平时作业做得特别认真,但可惜期末开卷有个20分的大题没找到位置,导致这门课成绩直接崩盘了。
C_InfoSecurity_Experiments
这是我大三上学习信息安全技术的代码记录。这门课我的老师是蔡国扬老师。这门课的作业涵盖了一些信息安全的基本知识,包括一些常见算法,包括MD5、X509、ESP、DES。我也在这个库中实现了出来,并展示了我的实验效果。我这门课也取得了比较好的成绩(96),这些实验还是很具有参考价值的。
ComputerNetwork_Experiments
这是我大三上学习计算机网络的实验。这门课我的老师是谢逸老师。这个仓库做了一个虚拟路由实验:在主机之间,根据选定的虚拟网络拓扑图建立虚拟连接;并且在建立的虚拟网络中选用不同的路由算法生成网络中的路由信息,实现主机之间的数据传输。很可惜,因为最后考勤分太低导致结局平平淡淡,但是我对做的这个实验还是十分满意的。
Uppaal_GearControlSystem
这是我大三上学习实时软件系统导论的实验。这门课我的老师是Eun Young Kang老师。这是我第一次上全英授课的课程。期末项目中,我们组用Uppaal复现了一个档位控制系统,并检验了该实时软件模型的正确性。虽然最后老师给分普遍不高,但是这门课留下了很多宝贵的、独一无二的学习经历,包括团队合作、英文陈述、时序设计等......
Python_2019MCM_OpioidCrisis
这是我大三寒假参加美国大学生数学建模大赛的存档。比赛中,我们选择了Problem C,根据NFLIS和DEA提供的 drugs reported quantity 和 demographic features 数据,做了一个爆发预测——何时、何地爆发、什么种类 opioid drugs 爆发、易感人群特征。我们组采用了皮尔逊相关性分析、增量分析、余弦相似度分析、K-Means聚类、元胞自动机等技术进行了建模。很遗憾最终只得到了S奖,但是这个经历却使我受益匪浅。
WorkflowSystem_Assignments
这是我大三下学习工作流技术导论的平时作业。这门课我的老师是余阳老师。这个仓库主要是记录了一些工作流问题的解决方案,没有很多代码。
PAOGD_Homework
这是我大三下动画原理与网络游戏设计的平时作业。这门课我的老师是郑贵锋老师。我们专业曾经开设过类似的游戏设计课程,比如Unity-3D游戏编程,但是很遗憾之前我都没有抢到。这次幸运地选上了这种有趣的课程,我当然会珍惜这个机会,好好完成作业。
这门课有五次作业:第一次作业中,我在Blender中实现了一个盒子中的小球被盒子底部弹起,落到地面形变反弹,并最终平稳落下的过程;第二次作业中,我实现了一个简单的行走循环动画;第三次作业,我们开始使用openGL,实现模型自身的旋转、平移、缩放;在此基础上,我们在第四次作业中完成了单机贪吃蛇游戏的openGL版设计;并在最后一次作业中,为贪吃蛇游戏添加多人游戏功能。这门课大概是我本科选课中最有意思的课程之一了,不单单是因为课程是游戏制作的编程,还有每次做出成果的自豪感。
OpenGL_TankWar
这是我大三下动画原理与网络游戏设计的期末项目。这门课我的老师是郑贵锋老师。因为这个项目太大,所以另开了一个仓库。这个游戏看似简单,实际上很复杂,因为要考虑网络多人游戏的很多原则,比如同步、延时与抖动等等……我这门课获得了比较好的成绩(96),虽然图床坏了有些图片不能加载,但是还是可以推荐大家看一下的。
Unity3d-Homework
这是我 fork 的 CarolSum 的仓库,是我们年级 Unity-3D游戏开发课程的平时作业,授课老师是潘茂林老师。出于对Unity-3D的兴趣,我在大三下学习动画原理与网络游戏设计的时候顺便学习了一下Unity-3D,我的同学 CarolSum 上过这门课,而且作业有较高完成度,所以我就 fork 了过来。学习Unity-3D的同学可以看一下这个仓库。
Jupyter_DeepLearning_Homework
这是我大三下人工神经网络原理和实验的作业。这两门课是合在一起上的,老师是王瑞轩老师。具体这个课的课容量有多大我就不详细说了,大家打开这个库的链接看看就知道了。除了每周实现几个神经网络之外,每个月写上个论文报告,期中复现一个论文(我复现了Cycle-GAN),然后组队打个Kaggle玩一玩(我们组队打了很简单的仙人掌识别比赛)。整个课程面面俱到,只要有关于深度学习的东西基本上全都覆盖了,就是格外累而且很多东西学得不精。所以我推荐写不完作业的同学可以适当参考一下这个仓库续一续命,这个仓库的质量应该也是蛮高的(这两门课我分别是我们班的第一99和第三92)。
Jupyter_DataMining_Homework
这是我大三下数据挖掘导论的期末项目。这门课我的老师是梁上松老师。因为到了期末周实在应付不来各种大项目了,所以稍微改了一下人工神经网络的期末项目。幸运的是,最后这个项目也得到了梁老师的青睐,给了我99分!
Make-Spare-Money
这是我们组大三下软件工程综合实验(系统分析与设计)的项目,授课老师是王青(潘茂林)老师。挣闲钱系统包括是学生管理系统、任务管理系统、交易管理系统、账户管理系统等,特别合适采用面向服务的架构实现。系统的难点在于运营,即任务(业务)的发现与投放。这门课是面向团队的软件工程大型项目,是面向就业的实验课。
Paper_EITCE
Paper_EITCE 是我的论文Optimal Analysis of Target Dynamic Tracking Strategy Based on Computer Vision的存档。因为隐私性的原因,论文仓库尚未开源。
TOEFL_Notes
经过一年多的学习,我终于在2019/06/15以105(R28 L28 S23 W26)分手了托福。这个仓库存了一些我认为有价值的托福学习资料。
Senior Year
Paper_TVT
Paper_TVT 是我和YYH、XR共同完成论文Effective incentive mechanism to stimulate vehicle based crowdsensing with submodular rewards的存档。因为隐私性的原因,论文仓库尚未开源。
Paper_WASA
Paper_WASA 是我和LK、YYH共同完成论文Blockchain-based Digital Goods Trading Mechanism in Internet of Vehicles: A Stackelberg Game Approach的存档。同时这也是我软件工程高级实训的项目。因为隐私性的原因,论文仓库尚未开源。
NBA-Salary-Prediction
NBA-Salary-Prediction这个项目是我在2019年暑假在作为微软兼职助理时的项目,在 Azure Notebook 上根据 Basketball Reference 的往年数据,用 sklearn 对NBA球员对薪水进行预测。
GRE_Notes
经过半年的刷题,我最终在2019/11/23以323(V155+Q148+AW3.5)勉强告别鸡阿姨。这个仓库存了一些我认为有价值的GRE学习资料。
Paper_TSC
Paper_TSC 是我和CT、HZC共同完成论文Socialchain: Decoupling Social Data and Applications to Return Your Data Ownership的存档。因为隐私性的原因,论文仓库尚未开源。
2020Fall-Master-Apply
这个仓库是我在 2020 Fall US CS MS 的申请文件夹,帮助我高效有序地完成了20多个项目的申请,包括个人信息、文书、其他申请材料等。该仓库中所有敏感信息已被覆盖掉,如果转载请标明原始出处,抄袭必究。
Uploader-Material
申请结束后,心血来潮,希望能用更立体化的方式记录自己的生活和经验。因此开始尝试做Up主(跳跳虎-Nino)。