学期结束,斗胆在此点评一下我们敬爱的Vanbastelaer老师
对于之后要上CSC250或者他类似课程的同学,希望我的回答能给你们一些帮助
总结一下:中等偏上难度,巨累(参考隔壁Dalzell STA363,作业量+复习量乘个1.5-2倍),不喜欢Office Hour,但是会喜欢你问一些值得思考的问题。有些时候你做的太差他会很生气,有点吓人(有次Office Hour把美国哥训哭了,我是真被吓到。他的风格会让人感觉他只想和聪明人说话,然后我会感觉他觉得我太笨了)
如果你不是想走计算机这条路(比如你是商学院+CS),不要选他,不要选他,不要选他,否则必然后悔,你会过的非常折磨,甚至就算认真学最后也会拿D或者C(这是Curve以后的成绩,他的Curve是开根号然后乘10)
系统大概会讲这些东西:
基本的C:pointer,structure,基本语法,string etc; Note: Pointer一定搞明白,重点有(size of pointer, pointer access,经典题目是int ptr = a[0], ((char *) ptr) + 1指向哪个address(每次的跳跃depends on type of the pointer)会有一次quiz关于这个,第一个quiz分数最多,而且最好拿分,一定好好做),structure的话要理解C里面如何写LinkedList;重点!!!!!你们会学一个叫做Big Endian和Small Endian的Machine,搞明白这个怎么运行的,第一次考试有很多题是关于这个的(note:两个都是关于Byte顺序,Bit顺序不变)
Linux基本知识点(不考)--> 第一个lab(Unix Lab,你会觉得这节课还可以,直到你看到第二个Lab)
heap memory management (会有很多知识点,但是考试基本没有考)--> 第二个lab(Malloc Lab,著名CMU Lab,让你自己用C写一个Malloc, Free, Calloc Function,自己写肯定写不出来,但是GitHub上有不少很不错的码,可以学习一下思路,但是千万不要抄)
Data Representation: bits, bytes, integer representation, IEEE floating point Representation --> 第三个Lab(也是CMU的Lab,GitHub搜一下bits.c能跳出一片,容易写,但是注意⚠️,不要随便Declare Variable,会寄,最好问TA怎么搞)
Assembly --> Lab 5: Bomb Lab,这个查GitHub用处不是特别大,因为每个部分都是随机生成的,答案都不同,大概就是一个程序,然后你要猜正确的C input,然后防止炸弹explode(tips:在炸弹前面加一个break point,比如$ b explode_bomb,然后就永远不会爆炸)建议早点开始,多问TA和去他Office Hour,Lab会做了第二次考试你就基本可以通关,有个难点叫做:caller saved & callee saved register,这个搞明白是什么,他会出一道题,给你一套全新的Register系统,然后让你猜每个register的作用
Processor:这个有个好玩的Lab,做电路图的,不难,好好写没问题;考试的话会考Boolean Algebra和画基础电路图,但是非常基础,比如像是Half Adder,Multiplexer这种不会让你画,记得Cheat Sheet把那几种门都给记一下就好;Processor就是讲CPU怎么运行的,然后还有memory cell怎么做的:D flip flop, S-R Latch,很有意思
Memory:这个部分好好学,非常有意思,讲stack, RAM, Cache,特别是Cache,会有两个相关的Lab,很好玩,好好学Hit/Miss/replacement policy原理,final考了(不知道下次他还会不会考这些)
第一次考试涵盖1,2,3,4;第二次考试基本就是一部分4和5(主要是assembly);final是所有
考试中位数三次考试分别是:41/100(后来Drop的人多了变成49了),63.5/100,76/133;Final就考两个小时注意有可能打不完,其他两次考试时间非常充足。第一次考试可能你会措手不及(比如我,最后一道大题考了井字棋,用的是bits manipulation,结果我|= 没认出来是啥(这个参考+=,类似),然后第一次我就考了49,直接寄了。。。。。我的4.0啊啊啊啊啊啊啊啊啊啊啊)
他的quiz非常tricky,考试也是,千万不要想背PPT或者书就行,不会考任何一道出现过的题,甚至题型,要想解出来一定是要理解这个东西到底怎么运作的,可以多和他聊天,就算他觉得你笨也要去聊(他是真的会口头说你笨的btw)!!!书会比PPT好,建议多看书,多做Lab
不知道他以后会不会再开250,如果开的话,我希望所有读过这篇文章的朋友都可以顺利拿A,学到知识,并诚恳的建议,珍爱生命,有Fulp选Fulp, Fulp永远真神,千万别学我摆烂每天玩原神玩到大四天天挨折磨
这门课真上下来了是属于对能力的一次绝对提升,我如果时间够的话其实是非常希望好好上这门课的,可惜这个学期太忙了,根本没时间去做他的extra credit。。。。我最后的成绩是A-,离A就差了1个百分点,这也是我大学三年半里唯一的一次A-,对此,我也完全可以诚恳的对他说一句:你是一个可敬的对手,谢谢你让我真正的进步。