//==========================我是大分割线=======================//
2) CPSC121: Models of Computation
[使用语言]: 无(你没看错)
[学分]: 4分(lecture + lab + tutorial )
[学习材料]:课本必买, 有几本可以选择, 本人购买的是Discrete Mathmatics with Applications 4ed, by Susanna S.Epp; 该书有电子版,书很大很很重,但值得一提的cpsc221(也是cpsc major必修课)
任然使用这本课
[学习的主要内容(个人主观概括)]: logic + hardware
[co-reqs]: cpsc110; 这里是说这门课只能在110以后上或者和110同时上,不能先上121再上110!楼主这届虽 然在选课的时候你可以选择121在110之前,但是lecture的时候你会被教授叫上讲台说你的选课出问 题了然后被强制drop这门课。 顺带一提如果先上110再上121的话,110fail121也会被drop
1> 对这门课大概的评价:
当你看到使用语言是无,课本的名字带着math的时候,你应该就发现了什么...
没错,在这门课并不是一门programming课,而是数学+硬件课!在这门课主要有两个独立的part, lecture和lab之间关联并不大,lecture是数学课,学习离散数学,包括logic, proof, set之类的;
lab则主要是硬件方面的内容:画电路图,用magic box连电路,了解一些硬件的基本工作原理等等等等;总的来说上完lab楼主的想法就是电脑真的是一个复杂的硬件组合,软件(CS)大法好,退硬件(EE)保平安。//其实cs有硬件内容,EE也有软件内容,只是比重不同,在我心中EE还是很牛叉的
值得再次一提的是学cpsc不能有抵触心理(其实我觉得其他科目也一样),也不要对自己果度否定,在110不要有racket是useless所以不要学的想法;上121lab不要有我是硬件苦手的这种自我否定,要相信绝大多数人lab都顺利的过了,所以lab的内容绝对是正常人能做出来的,只是快慢有区别而已,you can make it!
lecture和lab各自关联性比较大的结果就是两个都要好好上噢(废话),final也会cover到lab中硬件的内容。
Tutorial主要是TA带着大家做题。
cpsc121的进阶课程是cpsc221 Basic Algorithms and Data Structures, 号称200level以下cpsc必修课中的mvp, 而其实你在110, 121都会接触到一些算法的内容,121开课的时候也会提到4 Big Questions, 大家在上121的时候可以特别关注一下:
/1. How can we convince ourselves that an algorithm does what it's supposed to do?
/2. How do we determine whether or not one algorithm is better than another one?
/3. How does the computer (e.g. Dr. Racket) decide if the characters of your program represent a name, a number, or something else? How does it figure out if you have mismatched " " or ( )?
/4. As of 2012, processors have two to three billion transistors. How can we build a computer that is able to execute a user-defined program?
(from
http://www.ugrad.cs.ubc.ca/~cs121/2014W1/)