文章目录[隐藏]
好奇的看完莫名的来自上科大的计算机入门课CS100,后就想退学了?
上海科技大学的计算机专业只适合一部分人。这种新型学校,风险大,收益也大。
我一直认为一个学校的好坏在于你是否可以真正利用起学校的资源来实现学校名声和自我提升的双赢。
作为一个刚入校就励志想打超算比赛的人,觉得平时的“拔苗助长”还不够大跃进,于是作死多做了很多,但是收益损益很大。但是我想清楚了我想要的东西,只关注我最擅长的部分,大学学的大部分东西随着时间推移一点用都没,所以在要求动作之外,需要不沉溺于浪费时间中。一下所有计算机项目都是单人项目,所以花了很多很多时间。
我在发现了上科大抄伯克利、南大、滑铁卢过分了以后,也加入了课程建设。
让我给大家解密一个计算机学生大学都按自己的意愿选了哪些课?此处课去掉了体育课和中国特色主义课。
一直在玩的大一
因为没想到上科大的大一这么花时间和脑力,醒着每分钟都在学习也时间不够用。
军训
就一直在行列式训练,不过加了视频组拍视频,又加了一个打拳队列。自己带了当时买的6300。晚上还给东方绿洲拍了星星延时摄影。
普通物理A
用微积分解决之前学过的物理问题,作业多例题和编程题,比如一个混沌的迭代方程让我们写python画图看结果。多学了闵可夫斯基4元数、薛定谔方程这种高中没学过的。习题课是交大的老师上的,似乎比本课上的更生动。做了个Bonus是斯特林电机发电效率探索。薛老师后来是我的无人机社指导老师,后来疫情没去成CADC。
数学分析I/II
交大陈克应上的,讲课确实很厉害,称为严密的微积分,但考试完全没刷题。I是一元微积分,包含各种证明。先上函数极限定义,跳跃点等,然后就到了冗长的实数集的6个等价定义,然后积分、ODE(给电路用),II讲了多元微积分,格林定理、高斯定理,主要演算了很多图的演算来理解三维积分的各种等价,高中物竞的电磁学学过。
计算机编程
讲了(c,c++,rust/python)四个语言,非常快的一门课,体感过山车,刚上来还在讲冯诺依曼/哈佛、指针、递归,写个简单transpose。突然快进到constexpr、虚继承,作业变成了多线程卷积c++类,又突然快进到ownership,heap analysis,写bash interpreter,就BNF parse语法那些,最后python收尾讲了点pandas和各种黑魔法。
电路基础+实验
大致就fundamental of electric circuit这本书。先三个元件AV特性曲线,KCL/KVL,特密根定理证明,讲了数电入门,再到引入开关以后的AV变化图,带初值的一元一阶/二阶常微分方程求解。实验比较简单,multism搭电路。
设计思维:应用创新
很有意思的一门课,教我们怎么和队友处理关系,在5人团队里有人展示,有人做技术,有人做用户肖像以及整个接触产品的用户预期。我们用树莓派搞了个伪全息投影视频,其实就是OpenCV调包,4个假衍射板合成了四个方向的立体,说实话很想玩live2d,demo是在院长的实验室用摄像头拍的,相当于玩了一次Hackathon。
综合英语 III/IV
老师抓睡觉,上课因为写代码作业会被扣分。然后就被扣到差点没及格,本身很没意思。
离散数学
这个真的很有用,之后的面试题碰到过智商题是这本discrete math and its application的原题,博弈树的必胜策略,真值表、逻辑、高级数数包括生成函数、密码学有限域啥的、各种距离、GCD、大数表示、二分图匈牙利最有匹配、领接表的前向星优化、图同构、狄杰斯特拉。
中华文明通论
从三周到民国,随机签到。老师还出了本书。论文我写的中国的明末党争。
信息学导论
每个导师给个PPT讲他们的研究,好像可以翘3次。当时对宋老师的感兴趣,也去他的实验室打工了。
写作原理与实践
写了《浮生六记》的续写,其他小作业都是抄高中同学的。
经济学导论
曼昆《经济学原理》两本,老师是UMich的博士,直接用他们的讲义,微观讲了十大原理,然后生产可能性边界,然后趋势是生产者消费者钱的交换。宏观讲了货币、储蓄、总需求、GDP。古典主义vs凯恩斯主义那一套。不过个人感觉模型都太简单了。
课外活动
跟着龙哥打了CTF,就冲了一把线下,就抓别人pwn的输入打别人。龙哥搞定了一个sql注入和密码学题。pwn是真的不会,后来打的几次都打铁。后来跟着他和Leaferx去了趟bitrun hackathon,搞了个区块链虚拟社区的想法,即Defi。之后去了趟CPChain参观。
社会实践
坐绿皮车去平塘FAST转了一圈,绕着射电望远镜试了试,采访了800块钱年收入为贫困人口的人家,觉得共产党还是很厉害的,虽然各种采访的农民还是会骂。乡村富农还是有钱,都是卖产物到深圳这种地方去,这大概就是修基建的最大作用,但是感觉这么好的设施,通电通水太浪费钱了,大概能理解为什么国家对阿里、京东这种利用基建的公司为什么随便出手,同时为什么对教育这种行业想干就干。论文是收集数据外部性对当地的影响,发了很多视频,最后临走还玩了玩黄果树。
金融科技创新
另一个设计思维,不过是小学期和西班牙语系国家的人一起上。桑坦德银行赞助,去了贝壳买房、蚂蚁金服、还有bitcoin的一些公司交流。最后把之前那个区块链虚拟社区落地了,用了一个赞助商的json的API,放他们公司服务器了。
踌躇满志的大二
知道自己打不过龙哥,写代码永远打不过,所以要更快的学写代码了。
数据结构与算法
上的是ppt是滑铁卢的,作业是洛谷原题。讲课的都是OIer。
编译原理
写了个functional编程语言COOL到mips的编译器,中间会有类型检查,还挺复杂的,然后输出的时候mips call convention和寄存器分配都可以自己玩。
操作系统I
并发:mutex,semephore,负载均衡,replacement算法,双懒汉,scheduling,线程进程的关系,x86的启动,x86 Virtual Memory管理,文件系统读写锁写了个Ext2。Project是PintOS,书是OSPP。
普通生物I
就记得表观遗传学打破高中生物的认知。
概率论与数理统计I
上的Harvard CS50那本书,非常好的一本书,中心极限定理会讲傅立叶变换证明,各种分布会用其他意义来表示,惊奇的会在习题中看到q function、基本的贝叶斯概率图,Project是Bandit多臂老虎机模拟来看exploration&exploitation的关系。
线性代数
这门课对深度学习很重要,后面的感知机、降维、支持向量机都是这门课的延伸。我记得老师拓展了很多,谱定理算斐波那契矩阵最快。各种PnP$^{-1}$的对角化。映像比较深的是老师课上像吉老师一样上了一遍span的图形上的意义。
体系结构I
相当于伯克利的CS61C,从C basics,讲透指针到C++ vector实现到riscv asm decoder和logism画单发射五级流水线CPU,project有FFT体系结构调优。后面有些大数据和微体系结构安全。Project是在logan nano riscv板上写了个蓝牙手柄的元气骑士。
信号与系统
接着电路上傅里叶变换、拉普拉斯变换、Z变换,忘的一干二净了。
并行计算
对打超算非常有用的课,从超算架构讲起,就TuFu/Mesh啥的,MESI协议,还有HPL/HPCG怎么调优,最新的富岳的架构讲解和一些经典并行化的算法讲解。OMP/MPI和CUDA,每一部分各一个project,并行BFS,并行FFT和CUDA cuckoo hashing。最后一部分是PRAM。
强化学习
从概率论老虎机开始讲,吉布斯采样一套,贝尔曼方程证明,DGN、TD3、A2C、A3C算法,都在tianshou上试了一下,sutton老爷子的书。大作业有几个记忆深刻:用吉布斯采样算一个24个点的图的最大割。五子棋MCTS打alpha beta剪枝,这我在超算上算了一天。还有个德扑的mcts算法复现,但是效果不是很好。
《周易》与文化
老师上课还会竹签算命,期中抄了周易的几段。期末写《文化在交女友过程中的重要性》。
产业实践
去了化学的一些公司,高研院的企业,索尔维、巴斯夫、氢能源汽车、外企汽车,大多没有很多感触。
继续努力的大三
大三实习完了,觉得自己可以挑战更多更难的课,可是不小心选多了。
计算机网络
非常有意思的从音频物理层build from scratch的网络stack,第一个project用话筒传,主要调PSK参数、加CRC就能过,Bonus加OFDM和里德-所罗门码。第二个project用音频线,写mac层,包括macping和CDMA,第三个是UDP连网,要写socket啥的,bonus是单对单的TCP,其实不用完整实现TCP的FSM,只要三个状态就可以。第四个是FTP,就是传字符串。
普通化学I+实验
化学我搞竞赛的,所以就没怎么听课,都在写代码。但是无机讲的还是比竞赛浅很多,周期律的那些东西、电极电势、能斯特方程就定性的告诉你,但是修正版的PV=NRT就没讲。有机讲了邢大本的SN1机理,cover到了休克尔规、丁二烯红移效应、甲基的性质。
凸优化
这课比较好过,我就复习了一天左右,拉格朗日法、上镜图、几个pattern matching,这时候发现自己线性代数好垃圾,什么鞍点escape搞对角化性质。Project是Convex.jl调包,paper reading是跑通一个FL的tenserflow-fl,然后写写证明。
AI 101
作业抄伯克利写吃豆人。我没空,都没做bonus,也没花多少时间。
计算图形学
完整用OMP写了一个RayTracing算法。
计算理论
这课就是Sipser那本书,前半部分Regex的等价模型NFA、epsilon NFA、DFA还有些GBA中间形式,6元组间相互证明,什么子集构造证明,再构造一个中间状态证明。后半部分是复杂度理论,图灵机的可判定性,对角化证明,circuit复杂度,HAMILTON算法/SAT的等价,coNP、zkSNARK那种交互式证明,Visibly Pushdown Automta,和最后的LTL model checking。
高级体系结构
这回抄的是伯克利CS252,多加了虚拟机kvm、Transactional memory、乐观锁、MDS。作业做Sniper的5个lab,有neural branch predictor、clflush 捕获、non-inclusive L3 cache,MEOSI实现。Cache replacement策略写了OPT/白兰地算法。paper reading Row Hammer/CPU&GPU cache 共享实现。
数据库
自己用java写一个JDBC前端的数据库,有executor、SMJ、page lock、transaction redo/undo,是伯克利的project。课就在讲CS186,作业vitamin都不改。之后讲了点OLAP、存算分离和数据挖掘。
没全躺平的大四
大四还是上了一些硕博课。
程序分析
完全是南大的课。Project交了之前没写完暑研没做完的OD Flaky Test。
分布式系统
就NCSU的分布式系统课,paper reading都是比较老且经典的。然后从logical lock到FLP到replica到bit torrant到system bug tracing到AI for System。Project用了MadFS+librpma+Corundum+BentoFS写了个两个node测试的文件系统。
计算图形学2
作业1写了个Box2d三角形,2是碰撞检测,3是运动仿真。
投资与金融市场
前面是CAPM理论,然后各种衍生品定价、套利,最后讲了Black Scholes 。
TA之旅
写了个chochopy 编译器到LLVM到代码生成的project给小朋友做,个人觉得还挺好玩的。
好了,祝贺你获得一个本科学位,感觉这学位太难拿了。总之,祝大家都加油,至少能拿到学士学位哦!