Made by 晚安浩宇
本学期有三门学科基础课(DI22001 , DI22004 和DI22010),一门公共基础课(概率论):
DI22001 - Algorithm and Artificial Intelligence 算法与人工智能
DI22004 - Computer System 2B: Architecture and Operating System 计算机系统2B(架构与操作系统)
DI22010 - Object-Oriented Analysis and Design 面向对象分析与设计
以及一门中方老师中文授课的概率论
以下内容均为23届情况,往后届应该会有变动,内容仅供参考
以下内容均为23届情况,往后届应该会有变动,内容仅供参考
以下内容均为23届情况,往后届应该会有变动,内容仅供参考
以下内容均为23届情况,往后届应该会有变动,内容仅供参考
以下内容均为23届情况,往后届应该会有变动,内容仅供参考
Year 24-25的教师情况:
DI22001 - 刘姝(CSU)
DI22004 - 王磊(CSU)
DI22010 - Tiehang Duan(UoD)
概率论 - 王凯(CSU)
• 本学期相对于上学期任务较为繁忙,加上上学期极其简单的数理逻辑让我们脑子有点退化了,所以这个学期需要面对的是多加一门专业课的压力与没有高数线代基础硬着头皮学的概率论。同时因为学校的谜之安排,我们这一届在17周面临5天5门的考试(是的你没听错,16周最后一周忙AI的结课项目17周考试),也就是你们会在2B第二个项目发之后忙起来一直到17周结束。
• 这个赛季,你们将会继续和Capricious王在Assignment要求上斗智斗勇,尝试推算莫名从天上掉下来的时间复杂度,在概率密度和期望方差里游泳,尝试改良队友严重Decoupled并且不知道哪里分析出来的类。
1. 面向对象分析设计
这门课可能是我学的最好的,也是可能整个大学你们上过的最简单的专业课(不考虑上个学期的教学事故数理逻辑)本来还担心这门课压缩成12周时间不够,但是后面发现我想多了。完全可以进一步压缩成8周,学时也可以砍半。关于这门课的速通攻略我会放在另一个帖子来讲。
课程时间表:
Week 1:瀑布式开发与迭代式开发 + 需求文档
Week 2: 用例分析
Week 3:STRIDE威胁模型
Week 4:面向对象分析 (候选类分析+类图)
Week 5-7:Assignment 1 + SOLID设计原则 + 包图/组件图/部署图/活动图
Week 8:序列图
Week 9:六种设计模式(观察者,工厂,策略,桥接,访问者,装饰器)
Week 10-12:Assignment 2 + 状态机图/时机图/对象图
学习内容:
• 三种UML建模图(用例图 + 类图 + 序列图)
• 包含用例分析完整规范的需求文档
• STRIDE威胁模型
• SOLID设计原则和6种设计模式
Assignments:
在 Year 24-25 中,本课程共有两个Assignment和一次考试,其中Assignment 1占30%,Assignment 2占40%,最后的考试占30%。
Assignment 1 – Analysis Model
团队项目,4人,需要Pre(不占分)
项目时间:第二周发布,第九周周三截止
提交内容:Report + Peer Review
Assignment 内容:
对一个游戏模型Cluedo的邓迪改编版Compudo模型从用例与需求/软解威胁模型/类的组织和架构等角度进行软件架构分析并撰写一篇完整的分析文档。完成这个作业后,你们会对系统的功能需求以及初步的类组织有一个整体性理解,为接下来的作业二奠定分析基石。
应Tiehang的要求,我们每个组都需要Pre介绍作业完成情况和画的UML图,但是Pre不占分。学期中还举办了一个Cluedo游戏大赛,赢家能在作业最终分数上加1-2分。
需要的知识:
• 用例图和用例规范/需求规范
• STRIDE威胁模型分析
• 候选类分析的三种方法
• 类与类图
注意:
• 这个作业极其重要,如果这个作业搞定了考试基本就没问题了。因为这个作业覆盖了几乎所有的考试重点Topic,因此最好每个Topic都参与。尤其是面向对象分析的两块(候选类分析和类图),在Assignment 2的个人作业需要用到,同时这一块是内容也整门课的核心和重点。
• 除了完成作业的基础部分,还可以在每一个部分都做一些Extension以获得额外的分数, 比如在候选类分析部分考虑多种类分析方法(名词分析+拉曼分析+类Stereotype)或者在STRIDE威胁模型这一块考虑更多的软件威胁。
• 作业的评分重点是要让老师觉得你的设计做了很多东西,非常Complex,花了很多时间。也就是Coverage and Functionality Complexity第一, beauty and design quality第二。也就是这个作业的用例图和类图要尽可能画的多,画的复杂,涵盖的系统功能多。
Assignment 2 - Design Model
个人作业 可选Pre
项目时间:第十周发布,第16周周三截止
提交内容:Report
Assignment 内容:
基于第一个作业的模型分析,进一步进行模型设计。在给定的5个交互场景下画序列图,通过将分析的Idea具体实施设计发现分析中不合理的地方,然后用学习的6种设计模式中的至少一种进行类图重绘,确保设计质量的提高和类图修改,同时重绘后的类图需要和前半部分的序列图设计保持一致。重绘后需要简述设计Idea以及提升之处
需要的知识:
• 序列图绘制(作业的重点)
• 设计模式应用的Idea
注意:
• 第一部分画序列图是这个作业的重点,务必认真学习。每一张你画的序列图都要保证囊括每一个交互场景要用到的类,有复杂的输入输出。对于Extension则是需要在每一个交互场景考虑除了基本的功能外更多的扩展功能,画额外的序列图去展现你的类是如何进行信息交互实现扩展功能的。
• 第二部分要求类图应用设计模式进行重绘,需要一点灵感,也需要对设计模式有深入的理解。我们这个学期介绍的六种设计模式其实都不太好理解(算是这个课程最难的一块吧,但是也没有难度)学习的时候尽量多在代码中理解这个模式到底在干什么,做了什么事,这样重新组织类的架构对软件架构性能有什么好处。同时,这个作业也不需要每一个设计模式都运用。 拿几个简单又好用的用就行(比如观察者模式,工厂模式和策略模式,我就选了这三种)对于Extension部分,我们这一届是至少选择三种设计模式应用到类图中(基础要求是只选一种即可)
• 作业的评分重点是要让老师觉得你的设计做了很多东西,非常Complex,花了很多时间。也就是Coverage and Functionality Complexity第一, beauty and design quality第二。也就是这个作业的序列图要尽可能画的多,画的复杂,涵盖的类多,展现的类和类之间进行交互以最终达成某个功能的过程详尽。
• Tiehang会邀请20个左右的同学做Pre上去讲自己的作业完成情况,也是一个比较随意不评分的Pre,只要做了都有2分加分。
Final Exam:
时间为2小时,纸笔,闭卷,时间在17周结束之前。
形式:我们这一届是给定一段你要设计的系统说明文字,在说明文件中分析系统的功能,确定用例,画一张用例图(13分)。然后根据名词分析法做候选类分析(40分),画一张类图(17分),最后解释一下你会如何应用SOLID设计原则改进你设计的系统(30分)
• 我们这一届虽然比上一届多加了六张图:组件图/部署图/活动图状态机图/时机图/对象图,但是最后都明确说不考。同时,包图和设计模式也说不考。考虑到序列图本身的绘制需要基于类图,因此考的概率也不大。用例规范书写和需求规范书写也说不考。最后我们要复习的就只有用例图,STRIDE,Candidate Class分析和类图,设计原则五个Topic,基本上作业认真做了考试之前都不用复习。
• 这门课万万不能当成马原或者2B那样的课去对待死记PPT上的知识。PPT上的知识都是建议和指导,帮助你画出设计质量更好的图,有点类似于语文的答题模板。如果你真的想掌握,一定是自己动手去画图,去思考,发挥你的设计想象力。
• 这门课给分超级高,每个Topic难度也低,东西也少,平时基本不用咋管,可以速通。Karen给上一届的学长发过模拟卷,出的题目质量还是很好的,只是期末考试太抽象了很多我学了的都不考。有需要可以找我要电子版。
• 期末考试前我计算了一下我前面的作业分数,发现我期末考B1-A3最后合在一起都是A3,只有考A2才能四舍五入成A2,加上概率论没复习完,后面干脆没管这个了。结果第二天上考场发现考的难度比模拟卷还差了几个等级。。。。受制于内容本身的特点,这门课考试没有那么多花样。最后不出所料的也是拿了一个考试A4 Overall A3
2.算法与人工智能:
这门课本身不算难,PPT啥的都挺好理解的,就是太旧了,感觉是代代相传了几十年下来的。但是考试另当别论。这门课的考试不能和别的考试相提并论。。。
课程时间表:
1-7周:算法部分
8-16周:人工智能部分
学习内容:
• 时间复杂度与空间复杂度的计算
• 五种排序算法以及一些课内会遇到的算法,汉诺塔和GCD
• 启发式搜索算法和非启发式搜索算法
• 机器学习和深度学习等知识
Assignments:
在 Year 24-25 中,本课程会有3次穿插的Class Tests:其中两次是算法部分(一个占分一个不占分)一次是AI部分,以及两个需要提交的占分Lab,每个占比2.5%共计10%。一个庞大的AI Project占比40%,以及最后的考试占比50%
Class Tests And Labs:
Shu Liu说过小测的目的是为了帮我们适应英文机考的节奏,为最后的考试作准备。虽然每次Class Test占比都挺少的,但是不能不重视
• 第一次的小测是不包含Merge Sort和Quick Sort两个分治算法的小测,主要考察的是时间复杂度和空间复杂度的理解,以及一些比较简单的排序算法和之前接触过的算法(选择排序+冒泡排序+插入排序+GCD)考试的题目比较机械,需要你认真看题,确保题目的要求和你想的一致。什么是考的很机械?你们到时候就知道了。
• 第二次的小测是包含Merge Sort和Quick Sort两个分治算法以及汉诺塔的小测,主要考察的是这三个算法的原理理解以及时间空间复杂度。特别注意:我们学的Quick Sort和现在网上主流版本的Quick Sort代码不一样,务必注意。考试的题目比较难,还包括一道陌生算法题,是上一届的期末考试题K-means
• 第三次的小测是AI部分的启发式和非启发式算法。这一部分相比较算法部分非常非常简单。只需要理解和记忆就可以了。但是题目极其极其极其极其极其机械:
比如:学完CSP后以为考察的:CSP实际应用,约束传播,K一致性。
小测考察的:CSP定义中X是什么:
A. a set of variables B. a list of variables C. a tuple of variables D. a pair of variables.
谁懂?我打开选项的时候人都麻了。
机器学习和深度学习的俩PPT东西也很多,建议一页一页找GPT问然后做笔记。
好消息是这一块出题并没有那么灵活(要是灵活一点我们估计挂一大片,比如随便考个A*的应用或者写代码)最后我也是取得了A2。AI部分的笔记如果有需要可以dd我。
• 至于两个Lab,基本都是A1,记得别忘交了就行。
AI Project:
2-6人项目 需要Pre
项目时间:第八周发布,第16周周四截止
提交内容:项目代码 + Report + Pre + Peer Review
Assignment 内容:
选定一个现实世界的问题,并用我们学的至少三种启发式/非启发式搜索算法做一个庞大的项目解决。在学期中期会要求上交一个项目提案Proposal,占项目的10分。然后开始筹备动工。八周后完工上交成品。其中项目代码占20分,项目的Report,Presentation各占30分,用到额外的图论算法,机器学习算法,深度学习算法或者实现吸引人的GUI占10分。
需要用到的知识:
• GUI实现
• 至少三种搜索算法
• 某些机器学习和深度学习的算法和思想
• 发现需求的能力
注意:
• 永远不要把一个项目拖到最后再做,否则你在14-16周的时候会忙的睡不了觉
• 这个项目是一个自由度很高的项目,但是一定要保证有足够的投入。项目的size可能比你想象中的大。
• 整个AI Project给分都很高,但是一定要看清楚每一个部分的分数组成和要求,对照checklist一项一项对:比如代码部分有一个style的要求我忘记审查了,最后直接导致我们组就因为代码注释和结构的Intelligiability问题扣了3分,远超Report和Presentation
Final Exam:
2小时,闭卷,机考,时间在17周结束之前
形式:算法部分有三道大题,前两道是介绍算法原理让写伪代码还有分析时间复杂度啥的,后一道是陌生算法题Mystery Sort,需要自己顺着思路把代码原理搞清楚然后填空,最后分析时间复杂度和空间复杂度。算法部分占50分
AI部分很简单很固定,基本形式和Class Test 3 差不太多,就是机器学习和深度学习的地方换了几个方面出题。都是选择题,大约20分钟就能秒杀完。AI部分占另外的50分
• 总体来说这门课的考试还是比较难的,也很容易拉开差距。机考和英语还是有一定的挑战性。算法的压轴--陌生算法题分析非常难,实在不行可以放弃,没必要争。
• 这门课的最后考试算法部分并不会和Class Test一样出的很机械,相反非常灵活。在PPT上的分很少,更多的都是陌生情景下的算法分析。因此这也是这门课区别于OOAD和2B的地方:算法部分靠的是理解和应用,而不是单纯的记忆和理解。
学习建议:
• AI Project建议提前动工。虽然有8周超长时间,但是经验之谈是中间几乎大家都会先去做OOAD或者2B的作业。我们组在2B作业提交结束后才开始正式动工,最后一周就很赶。但是只要做了东西出来,组里有英语好点的人拿高分就是手到擒来。
• 这门课在我寒假做预习的时候感觉东西很少很空,一下就预习完了。但是只有真的上了才知道这门课远远没有想象的那么简单。有时候不得不承认我并不是一个有算法天赋的选手。
• 机考和某些英语表达问题注定了这门课的Class Test和Final Exam不会很简单。每一次机考都记得把握时间,不会的题可以先跳过去或者放弃。
• AI Project认真做能拿到很高的分数,这样即使最后的考试寄了也能overall上A。Final Exam区分度还是高的,本人拼尽全力最后也只拿了一个勉强Decent的分数
• 期末考试前我开过一个关于深度学习和机器学习的讲座,专门讲最后两个讲的很含糊晦涩的机器学习和深度学习PPT,并且理了笔记,有需要可以找我要。
• Class Test的原题应Shu Liu教授的要求我没有保存,也不能保存。祝你们好运!
3.计算机系统2B
这学期你们会继续和Capricious王在作业要求上斗智斗勇,在作业发出后临时学一门编程语言抱佛脚,参加一个愚蠢的Onsite exam要求补全自己写的代码,关键是自己写的也不一定补的出来。
课程时间表:
1-9周:计算机硬件部分
10 - 16周:操作系统OS部分
学习内容:
• 2A没有讲完的计组硬件知识:缓存,流水线,超标量架构,内存分配策略,IO缓冲区,总线扩展等
• 计算机操作系统:进程线程,优先级,并发,死锁,硬盘等
• 有需要可以找WaterCoFire学长要2B复习资料
Assignment:
在 Year 24-25 中,本课程共有两个Assignment和一个期末考试,其中Assignment1占20%,Assignment 2占30%,最后的考试占50%
Assignment 1 – Super Scalar Architecture
团队项目,2人,无需Pre
项目时间:第7周发布,第九周截止
提交内容:项目代码 + Report + AI Statement
Assignment 内容:
在CPU-simulator上熟悉流水线的操作和四种流水线Bubble,并实现一个等效的流水线模拟器。要求能读取指令文件,复现流水线的时间线和可能产生的四种Bubble,和Simulator保持一致。同时,需要理解并掌握一个关于超标量,超流水线的文献Chapter 16,有30多页。代码截止后的一周内有Onsite考试,内容是这个文献的内容(占考试分数的60%)以及对于先前你们交上去的代码填空和解释作用,防止有人不写代码或者用AI写(占考试分数的40%)。整个作业代码占50%分数,Onsite exam占50%
需要的知识:
• 文献阅读和理解能力
• 写代码和调试代码能力
• 记忆代码的能力
• 对流水线的工作原理深刻理解
注意:
本人在这个作业中拿到了满分的好成绩,以下是一些想说的话:
• 这个作业因为上一年做调研的效果不好结果今年大改了,跟上一届的几乎不沾边了。而且Capricious王每一年都会对各种作业进行魔改乱改,下一届的你们绝对又会有新变化。
• 代码部分你们需要弄清楚四个Bubble都是怎么产生的。搞清楚后你们写代码实现应该还是简单的。这个作业的代码语言可以任选。
• 16章的调研很难看,内容很多。囊括了超标量,超流水线,五种流水线依赖,三种发射策略,各种流水线升级组件,以及完全看不懂三巨头:英特尔酷睿Core,科尔特斯Cortex A8和科尔特斯Cortex M3,尽量每天都要看!不然绝对看不完。
• 这个作业的两人分工可以是一个人写代码一个人看16章然后讲解。我自己是看16章,每天看4-5个小时看的头晕眼花,最后还是没把看不懂三巨头啃下来。尤其是那个酷睿,问了GPT快100多个问题写了3,4页的笔记。这个调研完全是名词的堆砌,如果你想一天突击,请不要指望能看的完。我本人是在考前开了一个讲座讲解这个Chapter 16,讲了快3个小时,据我的观众反应说信息密度极大,需要消化很久。
• 不过好消息是最后的Onsite考试很简单,只要把前面的两个部分看个大概就可以拿满分了。虽然最后也没几个人满分。
• 代码填空部分是Lei Wang为了反对我们用AI写代码临时搞出来的玩意。需要做调研的理解队友写的代码,因为他会给你们几百行的代码挖空让你们填逻辑条件或者你们写的变量,然后解释作用。填空5分,解释5分,填不出来没10分。共4个40分。
• 代码填空的应对策略是把队友写的代码喂给GPT让他挖空考你。我就用这样的办法一夜速成。但是如果你是写代码的也不要对自己掉以轻心。我考试拿了满分,但是我写代码的队友就大意了,错了俩空没了11。
Assignment 2 - ATM Simulator
4人作业 无需Pre
项目时间:第十二周发布,第15周周三截止
提交内容:代码 + Report
看到这里你应该会疑惑,为什么我要称呼Lei Wang教授为Capricious王。如果对上一个作业的魔改还不足以说明的话,这个作业就会告诉你什么是Capricious
Assignment 内容:
用C#编写一个ATM取款机,要求能演示两种状态:数据竞争状态和非数据竞争状态。数据竞争状态是在不同用户对同一账号同时操作后,得到错误余额。非冲突状态,在不同用户对同一账号同时操作后,余额得到有序的计算并正常结算。需要用信号量实现线程通信,同时需要用WinForm实现一个GUI。相比上一届我们还需要实现一个控制所有账户的Central Computer界面以及一个交易日志。
需要的知识:
• C#编程基础
• Multi-Threading Programming 基础
• GUI编程基础
注意:
• 我几乎每周都会定时问我们作业二的要求是什么以及要用到的语言。因为我明白能决定Lei Wang教授想法的一定是最后一刻的观点。他be like:早上起床,把昨天的一切都推翻。结果不出意外还是出意外了。发作业的那周他突然变脸说不允许我们用C++和Java了要用C#,所有人马上去学。然后GUI之前说是可以选做变成了必做,还必须要用WinForm,QT学了也不让用。最后问我们想一组几个人(学期开始原本都组好了2人一组)我们说两人不变。说好了。结果星期三上课的那天我没起来,一看消息他把组又改成四人,错失组队选择权。
• 虚假的Race Condition:线程争抢执行代码导致结果错误。真正的Race Condition:25分赋分评分:10分的GUI部分,做的最好的组得满分,依次往下排。还有15分的Functionality Extension,项目额外功能做的最好的组赋15分,依次往下排。只能说这是天才的想法,加上我们本身对C#不熟,这个作业最后甚至变成AI大战。
• 这个作业还有一个难点就是在于对于多线程的处理逻辑,写好后端代码。同时面对完全不熟悉的C#语言,也需要善用GPT查bug
• 作业本身非常耗时,更别说你们还得处理AI Project。我们组在2B的这个作业启动后直接全部去赶这个了,最后16周就非常的忙(赶AI Project + AI的Class Test + 我选的一门公选)因此建议提早完成。不然16周会非常非常忙。然后17周直接5天考5门。
Final Exam:
时间为2小时,纸笔,闭卷,时间在17周结束之前。
形式:三个Task,第一个Task是关于内存Page计算和cache,还有IO buffer的硬件知识。Task 2 和3是操作系统部分的软件知识,覆盖Process, Priority, Concurrency, Deadlock等一系列知识。
• 2B没有Bash之后轻松了很多,但是备考压力更大了。因为2B的知识比较抽象,不如2A的那么好记。再加上17周5天考五门,几乎没有时间给你复习。因此如果平时没有学的话考前如同女娲补天。
• 前半部分的计算机硬件知识和后半部分OS的知识55开,但是最终考试计算机硬件知识占大约33分,OS知识占大约67分, 不是均衡的。而且计算机硬件部分必会有一道计算题关于缓存计算/page计算的,所以硬件部分能考的东西极其有限。像流水线或者超标量架构这些压根没涉及到。最后就考了个cache三种映射方案,page计算,以及IO buffer图。
• 硬件部分的备考建议是临近考试前每天都看一些Topics,少量多次对抗快速遗忘。同时中间穿插的两个Tutorial Sheets也一定要考前全部搞懂,尤其是其中的计算题。计算题并不一定是缓存计算,也有可能是page计算(我就被坑了,考试的page计算题完全不会),也会涉及到进制转换以及存储空间KB B GB等的转换
• OS部分复习的重点是Process和Scheduling, Priority, Concurrency和Deadlock五块。后面的Hard Disk等topics是第二梯队知识,我们这一届考试完全没有涉及到(Lei Wang 给我道歉)
• OS部分的备考建议也是少量多次的复习对抗快速遗忘。同时Semaphore部分的Tutorial以及Gantt图是我觉得容易遗漏但是我们这一届考试又考到了的东西。往年的试题还考到了死锁的四个条件,甚至GUI原理等。
• 王磊老师其实是一个非常认真负责的老师,讲课也很好,但是真的耐不住一直Capricious二三其德。所以建议你们寒假的时候还是学一下C#,至少给自己留一条后路。GUI的实现方法也最好提前去学一下。
4.概率论与数理统计
这门课应该是最容易挂的.............
学习内容:
这门课是中方老师教,因此会比较难。并且加上我们没有高数和线代的基础,所以刚开始的时候会比较吃力。方法就是寒假的时候提早预习,同时把微积分部分一些必要的知识重新捡起来(比如二元函数,二重积分,分部积分法等等)老师开学会假定我们学过高数和线代。
Assignment:
在Year24-25中,这门课出勤和回答课堂问题占20%,每章的章节习题按时提交占10%,以及期中考试成绩占10%,构成40%的平时分。期末考试成绩占60%。
期末考试的题型可以参考后湖卖的历年期末卷子。
一些建议:
• 这门课应该是最拉绩点的一门了,3.5个学分的数学课还是中方数学课,对我们这些没有高数线代基础和微积分基础不稳的学生真是致命的。
• 回答课堂问题需要你准时上交做题过程,不需要回答正确或者完整,只需要准时认真参与。如果不幸错过了一次,那么扣的分可能比期中考试部分扣的分还多。。。。
• 章节习题也不需要全部做对,只需要按时认真完成上交即可
• 这门课最难的部分在第三章联合密度,边缘密度,独立判定和卷积公式部分,也是期中考试最难的一块。但是搞懂熟练后这块就不需要咋管了。
• 后半部分总体样本,期望方差,三大分布,参数估计,假设检验部分难度没有前面难,但是要记忆的东西爆炸增长,而且总体期望和样本期望,总体方差和样本方差老容易搞混。
• 这门课绝对绝对不能突击(如果想取得高分),像参数估计和假设检验那块我考前突击结果发现根本突击不完,最后全卷不会的就那道假设检验(真该死啊)
• 如果求情成功的话,老师大概率会降低难度,和我们这一届的期末考试难度一样不是很高。但是想拿到93分以上的成绩依然非常难。。。需要持续不断地做题。
• 把PPT上的习题,章节习题,书本习题,外加上后湖卖的期末考试原题,宋浩的400题全部搞懂90多分应该还是能冲击上的(只要简单题不犯病)
• 东西很多!我从15周就开始着手复习概率论了,最终也是没有复习完。
写在最后:
Acknowledgement:
身处学期末的节点,我衷心感谢这一个学期我的组员,我的朋友们,尤其是我的教授们对我的鼎力支持,没有你们就没有今天的我。
At this moment, standing there, I want to express my deepest gratitude for the dedication and tireless effort of my professors throughout this semester. Your passion for teaching and unwavering commitment to your students have truly set all of you apart as the most inspiring professors I have ever had the privilege to learn from.
You are my torches in my darkest days, illuminating the path forward. Your support and encouragement have been my pillar of strength through challenging times. Your influence extends far beyond the classroom, and I am truly grateful for the positive impact you've had on my academic journey.
I sincerely hope you have a restful break and return next semester with renewed energy and vigor. Thank you for being not just a professor, but a mentor and inspiration.
With sincere appreciation
如果我的总结中有任何问题,欢迎各位在下面留言,不胜感激,祝学弟学妹们都能在这个艰难的学期取得优异的成绩
格式借鉴于WatercoFire学长的:计算机专业 第二学年第一学期 课程学习指南,侵权删