It could have been a fun course but.....
Even though UBC Graphics is one of the best in the world, the ugrad graphics course really sucks. Basically 314 didn't teach me anything and the assignments weren't exciting either. Denish Pai's teaching was horrible.
I wouldn't recommend you taking it unless you want to do research in graphics.
Difficulty: 2.0 / 5.0
Quality: 2.0 / 5.0
I created this blog to comment on UBC Computer Science and Math courses. I hope you'll find the information useful.
2014年3月12日星期三
UBC CPSC 402 Numerical Linear Algebra
Numerical Linear Algebra is very very useful. Make sure you take it before taking machine learning, optimization etc. In my opinion, you should take CS 402 in 2nd year, or even 1st year!!!
Also, don't take CPSC 303. Numerical integration and DEs are not quite useful for CS majors. I can't really comment on CPSC 302 as my first year summer research supervisor created that course as well as textbook. It's broader than 402 but less focused. For example, CS 402 covers SVD and Eigenvalue decompositions in more detail.
Difficulty: 3.0 / 5.0
Quality: 4.0 / 5.0
Also, don't take CPSC 303. Numerical integration and DEs are not quite useful for CS majors. I can't really comment on CPSC 302 as my first year summer research supervisor created that course as well as textbook. It's broader than 402 but less focused. For example, CS 402 covers SVD and Eigenvalue decompositions in more detail.
Difficulty: 3.0 / 5.0
Quality: 4.0 / 5.0
UBC CPSC 121 Models of Computation
Don't attend lectures. They are completely nonsense. The labs were kind of fun though. You can even extend the lab requirement to implement your own CPU~~~ I feel like CS 121 (the digital logic part) was more difficult and interesting than 210, 221, 213 and of course 304.
Difficulty: 2.0 / 5.0
Quality: 2.5 / 5.0
Difficulty: 2.0 / 5.0
Quality: 2.5 / 5.0
UBC CPSC 210 Software Construction
A shitty course. However, I had a good project experience because I found the right person to work with. Make sure you work with someone you actually like.
Difficulty: 1.5 / 5.0
Quality: 1.0 / 5.0
Difficulty: 1.5 / 5.0
Quality: 1.0 / 5.0
UBC Math 302 Introduction to Probability
Oh Math 302 is not difficult but very very important. You should aim to understand every topic and solve every problem. You will need probability, not necessarily measure based though, in computer science.
Another course you should consider taking after Math 302 is Prof. Nick Harvey's CS 536 Randomized Algorithms, a very awesome and useful course. Math 418 and 419 are measure based probability.
Difficulty: 2.0 / 5.0
Quality: 3.0 / 5.0
Another course you should consider taking after Math 302 is Prof. Nick Harvey's CS 536 Randomized Algorithms, a very awesome and useful course. Math 418 and 419 are measure based probability.
Difficulty: 2.0 / 5.0
Quality: 3.0 / 5.0
2014年3月11日星期二
UBC Math 215 Elementary Differential Equations I
As the title suggests, it is very elementary. Math 215 doesn't cover much material. Pretty much no theory involved.
Difficulty: 1.0 / 5.0
Quality: 1.0 / 5.0
Difficulty: 1.0 / 5.0
Quality: 1.0 / 5.0
UBC Math 223 Linear Algebra
Math 223 is the so-called honors version linear algebra.
It wasn't very difficult but Prof. Lior Silberman was awesome. His 223 was way better than other 223 sections. We did cover some interesting topics such as linear operators, projectors, multi-linear algebra.
You will learn more algebra, such as Canonical forms, tensor products, in Math 323 Rings and Modules
Difficulty: 3.0 / 5.0
Quality: 4.0 / 5.0
It wasn't very difficult but Prof. Lior Silberman was awesome. His 223 was way better than other 223 sections. We did cover some interesting topics such as linear operators, projectors, multi-linear algebra.
You will learn more algebra, such as Canonical forms, tensor products, in Math 323 Rings and Modules
Difficulty: 3.0 / 5.0
Quality: 4.0 / 5.0
UBC Math 226 227 Advanced Calculus
Hmmm the course title is Advanced Calculus but we didn't really do Advanced Calculus.
Math 226 started very very easy, but still covered some interesting and useful topics in the later part. We did some point-set topology, which you will learn in analysis anyways. We also covered differentiability for multivariable functions, which IMO is very useful. Other topics include Implicit Function Theorems etc... Not a bad course in my opinion since you do encounter multivariable calculus proofs, such as Jacobian etc, in computer science. Brian Marcus is good.
Difficulty: 2.5 / 5.0
Quality: 3.5 / 5.0
I hated Math 227. It covered some basic differential geometry, vector calculus. We ran out of time and didn't cover calculus on manifolds. If you don't like geometry...ummmmm
Difficulty: 2.5 / 5.0
Quality: 2.0 / 5.0
Math 226 started very very easy, but still covered some interesting and useful topics in the later part. We did some point-set topology, which you will learn in analysis anyways. We also covered differentiability for multivariable functions, which IMO is very useful. Other topics include Implicit Function Theorems etc... Not a bad course in my opinion since you do encounter multivariable calculus proofs, such as Jacobian etc, in computer science. Brian Marcus is good.
Difficulty: 2.5 / 5.0
Quality: 3.5 / 5.0
I hated Math 227. It covered some basic differential geometry, vector calculus. We ran out of time and didn't cover calculus on manifolds. If you don't like geometry...ummmmm
Difficulty: 2.5 / 5.0
Quality: 2.0 / 5.0
UBC CPSC 221 Basic Algorithms and Data Structures
As the course title suggests, CS 221 is indeed a very basic data structure course, although they added the parallel algorithms part to make it fun. Actually I kind of liked the parallel algorithms part but other parts were indeed boring and trivial.
After taking CS 221, I decided to skip CS 320 and take CS 420 instead, yay...
Difficulty: 1.0 / 5.0
Quality: 1.5 / 5.0
After taking CS 221, I decided to skip CS 320 and take CS 420 instead, yay...
Difficulty: 1.0 / 5.0
Quality: 1.5 / 5.0
UBC Math 322 Group Theory
Algebra is not a trivial topic. It requires you to spend some time thinking about the algebraic structures and theorems. The more you study, the better you will understand.
Personally I didn't like Math 322 becuz it started very easy and spent a few weeks on trivial topics and then soon became very difficult for people who have never studied algebra before.
If you are a CS or Math major, you'll have to take 322 anyways.
Difficulty: 4.0 / 5.0
Quality: 3.0 / 5.0
Personally I didn't like Math 322 becuz it started very easy and spent a few weeks on trivial topics and then soon became very difficult for people who have never studied algebra before.
If you are a CS or Math major, you'll have to take 322 anyways.
Difficulty: 4.0 / 5.0
Quality: 3.0 / 5.0
UBC CPSC 213 Introduction to Computer Systems
It's nowhere compared to the CMU ICS course. Basically CS 213 spends most of the time on a stupid assembly language created by UBC. Even the synchronization part isn't very clear and practical.
Difficulty: 1.0 / 5.0
Quality: 0.5 / 5.0
Difficulty: 1.0 / 5.0
Quality: 0.5 / 5.0
UBC CPSC 304 Databases
What a shitty course!
Don't waste your time and money taking this course unless you really need some stupid course to boost your GPA, which from my perspective is also meaningless though.
Basically it's a course that can be learned in one day, as Prof Nick Harvey suggested. The worst part is that they force you to attend the shitty lectures by assigning i-clicker question marks.
Difficulty: 0.0 / 5.0
Quality: 0.0 / 5.0
Don't waste your time and money taking this course unless you really need some stupid course to boost your GPA, which from my perspective is also meaningless though.
Basically it's a course that can be learned in one day, as Prof Nick Harvey suggested. The worst part is that they force you to attend the shitty lectures by assigning i-clicker question marks.
Difficulty: 0.0 / 5.0
Quality: 0.0 / 5.0
UBC Math 320 Real Variables I
UBC Math 320 has been rumored to be an insanely hard course.
This is not true.
Math 320 is a standard mathematical analysis course. Many universities, such as Tsinghua U, Peking U, Fudan U, Stanford, Berkeley, Cambridge, actually list analysis as a first year course.
That being said, it's not trivial. Hmmmm, if you intend to go to Math grad school, then you should take 320 in first year. Otherwise take it in second year.
Difficulty: 3.5 / 5.0
Quality: 3.5 / 5.0
This is not true.
Math 320 is a standard mathematical analysis course. Many universities, such as Tsinghua U, Peking U, Fudan U, Stanford, Berkeley, Cambridge, actually list analysis as a first year course.
That being said, it's not trivial. Hmmmm, if you intend to go to Math grad school, then you should take 320 in first year. Otherwise take it in second year.
Difficulty: 3.5 / 5.0
Quality: 3.5 / 5.0
UBC CPSC 313 Computer Hardware and Operating Systems
CS 313 is basically a computer organization course with additional topics such as file systems.
Assignments weren't as challenging and rewarding as I expected but OK.
I would say take it with Donald Acton if you want to master the material. His exams and assignments were much harder than those of other instructors. For example, we modified matrix multiplication codes to exploit cache and parallelism in order optimize performance, while other sections didn't. His exams would be difficult but he also scales. I thought I failed the final but still ended up getting 95%.
I would say take it in sophomore or even in freshman year so that you have a good understanding of caching and virtual memory etc.
Difficulty: 3.0 / 5.0
Quality: 3.5 / 5.0
UBC CPSC 421 Intro to Theory of Computing
CS 421, Theory of Computing is a course that EVERY computer science student should take.
Professor Nick Harvey is really one of the best researcher and instructor at UBC CS. His classes are very clear and his assignments are challenging and rewarding. You'll definitely learn a lot of useful material in his classes. The grading was also very generous. I took CS 421 in my sophomore year and got 100%.
Basically CS 421 consists of 3 parts.
In part I, you will learn several computing models such as DFA, NFA, CFG, Turing Machine. Then you'll learn computability, like what kind of problems are undecidable.
In part II, you'll learn complexity theory. Topics include Cook-Levin Theorem, NP-hardness proofs, coNP, randomized complexities such as ZPP,BPP,RP, coRP.
In part III, you'll learn some advanced topics in complexity theory. In 2012, CS 421 covered interactive proof systems, and in 2013 it covered communication complexity theory.
I would say take CS 421 as early as possible !!!
Difficulty: 3.5 / 5.0
Quality: 5.0 / 5.0
Professor Nick Harvey is really one of the best researcher and instructor at UBC CS. His classes are very clear and his assignments are challenging and rewarding. You'll definitely learn a lot of useful material in his classes. The grading was also very generous. I took CS 421 in my sophomore year and got 100%.
Basically CS 421 consists of 3 parts.
In part I, you will learn several computing models such as DFA, NFA, CFG, Turing Machine. Then you'll learn computability, like what kind of problems are undecidable.
In part II, you'll learn complexity theory. Topics include Cook-Levin Theorem, NP-hardness proofs, coNP, randomized complexities such as ZPP,BPP,RP, coRP.
In part III, you'll learn some advanced topics in complexity theory. In 2012, CS 421 covered interactive proof systems, and in 2013 it covered communication complexity theory.
I would say take CS 421 as early as possible !!!
Difficulty: 3.5 / 5.0
Quality: 5.0 / 5.0
订阅:
评论 (Atom)