Review Comment

[CSEE W3827] Fundamentals of Computer Systems

May 21, 2020

Sethumadhavan, Simha
[CSEE W3827] Fundamentals of Computer Systems

Simha didn’t really know what he was doing, but he certainly tried. He was not a particularly good teacher, and I was lucky that I’d seen much of the first half of the course in Intro to EE; many of my CS friends were totally lost from the get go. We were all pretty confused during the second half as well, which covered computer architecture and assembly language. To his credit, Simha sent out regular surveys for feedback, and did seem to care. However, this does not excuse the fact that the problem sets were totally unlike what we had learned in class (as in going to class wouldn’t even prepare you to answer them, you’d need to read the textbook). Luckily, they were ungraded, and most people I know wouldn’t do them.

The logistics of this class were the worst I’ve ever seen, and worse than anything I could possibly conceive of myself. Attendance factored into your grade, but since it was a 300 person class, Simha made us hold up signs with our name and UNI on them and then photographed the entire room (309), having the TAs search through the photo to mark us present. There were weekly “study groups” (recitations) that were longer than class itself and factored into your attendance grade. These were really awkward, since everyone would sit there and not pay any attention to the poor TA. For the midterm, which was after the semester had been moved to remote instruction, Simha had us film ourselves, record our screen, and submit both for full credit. Yikes! I know he’s a security expert, but that is the dumbest thing I’ve ever heard, plus students were allowed to use the bathroom.

Simha is a smart dude. He clearly knows the material well... he must have had a good professor when he took the class as an undergrad.

Workload:

Nonexistent

May 06, 2020

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

The curve in this class was harsh. The standard deviation was consistently 30+ points, so I was disappointed in my final grade despite loving the class and feeling like I understood the material pretty well.

Besides the grading, I really liked this class. I seem to be in the minority of people who consider the material interesting. It's basically an overview of low-level software and hardware--we learn about circuits, computer architecture, memory, assembly language, a lot of of physical stuff that most CS majors are happy to ignore. You might not like it just because you don't like the content, which is valid. If you try to think of everything as a puzzle, it might become more interesting to you.

There were weekly homework assignments that counted for 10% of your final grade. They were actually quite helpful for understanding class concepts. Since they were very low stakes (graded out of three points) I didn't have to worry too much about getting everything correct. I could just try to put in good effort and ask my TA to explain the rest. I loved the p-credit office hour setup. I felt like I was able to connect with my TA more and learned a lot from him--I was lucky to get a really good TA. I learned a lot in this class because the homework setup encouraged learning instead of punishing mistakes and TAs were very accessible.

The exams were kinda meh. I felt like the instructors were not very generous with partial credit or were constrained to strange restrictions, and that's why the STD was so big. Professor Rubenstein provides many resources for studying though (including one past exam that includes pictures of him dancing, what a riot).

Professor Rubenstein himself is clearly incredibly smart. I could tell because he would often make up examples on the spot or work through an example he already had without relying on his notes. His improv skills, however, were not quite as high. He sometimes got a little confused or lost in the details, which would in turn confuse the class. He could improve a lot if he would just make sure his live problem solving matched up with any lecture notes he wrote before class! His slides are detailed and beautiful. He's also clearly a bro. He was fun to have as a professor, and I wished he taught another class just so I could take it with him.

Much love from pb&jae. Keep lifting!

Workload:

Weekly problem sets
1 midterm
1 final

January 24, 2020

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

I took it in the Fall 2019 Semester. I was shopping and after reading all the comments, I had my mouse on the drop while taking her first class, but something changed. She turned out to be a really good lecture, and I ended up taking the course. I thought she did an excellent job in teaching the material. This being said, I owe a good chunk of my A- to my TA, Stanly. He was an amazing TA and gave a week-long (each day 12 hrs) of TA OH during finals week. As for Martha, she was still a very great lecture and I feel conveyed her point. She noticed in Piazza that people still struggled in certain topics, but she went over them again during the review session, which really helped. I recommend you keep track of the review session material because, at least in my semester, she tested on them. All of this being said, even though I loved her as a lecturer, the class was a sh*t show after the midterm. It got entirely overly complex and I couldn't understand what was going on. I had a near-perfect score in the midterm, so that is telling you something. I asked around, and people were lost as well. Before the midterm, she would spend a lecture or majority of a lecture on simpler stuff, but after the midterm would spent the exact same amount of time on very complex diagrams such as processors. I found the processors stuff very difficult. My recommendation is to read the book regarding those sections (MIPS, Processors) before class. The book did a great job in explaining them, wayyyyy better than she did. Because of this, I went from scoring near perfect on the midterm to terrified of getting a C or worse in the final, but the TA, Stanly, did a week-long OH during finals week where he offered OH from 8 am to 8 pm. He was a legend and I owe my A- to him. I went from barely understanding anything post-midterm to being confident with one day of his help.

My recommendation is to make sure you understand the practice exams by heart. I found most of the P-set problems hard so didn't bother to do them, some did, they said it helped. Up to you if you want to do them. I recommend you also go to the weekly recitation session because it is both an easy 30% grade for the class and also because it is a great way to ask questions on anything you are lost in.

Workload:

Not much. She gives weekly P-Set she recommends you to do but isn't required.

She makes the final and the midterm worth 100% of your grade, but if you go to your one schedule weekly OH, you can get up to 30% of your grade. It is that easy. You don't have to do anything related in the class there, but need to do work in some form. So if you go to your one scheduled OH every week, you would get 30% of your grade as an A. The final and midterm would then be worth 70%.

For the midterm and final, I don't remember the exact numbers, but the final is always worth more, percent wise, but she shifts the grade distribution a bit to benefit you if you performed better on the final or the midterm. But again, the final would always be worth more, so not a huge shift.

January 22, 2020

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

She was a boring lecturer, but was obviously passionate about the material. She really worked to improve this course last semester because everyone said it was absolutely brutal in the past. She was generous with extra credit, curving everyone's grades based on how many study sessions they went to, which I appreciated. She also makes the midterm/ final grade weighting be 40% and 60% of your final grade, or 30% and 70% of your final grade based on which gives you the higher final grade which is great.

I didn't really go/ pay attention after the midterm, but reading the book and doing the problem sets was always enough review to do well on the exams.

Workload:

Light. Weekly optional problem sets, midterm, and a final.

January 22, 2020

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Our semester was the first to change back to her previous teaching style, which was just attendance during study groups and exams (no homework). After hearing how crazy her previous teaching style was, I would say it was not that bad this time around. Her slides are also designed to be quite useless when you self study; so either come to class and pay attention or self study the textbook (quite helpful actually). Go to all the study groups, it actually affected my grade. I thought her exams were quite fair. Overall, thought it was fine -- she was nice.

Workload:

Light (virtually nothing) until exam dates

January 14, 2020

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

The lectures are absolutely boring and the lecture slides don't help explain concepts as they are very limited with no text. You are basically screwed if you miss a class or lose your focus in class (which will happen because the lectures are so dry). The exams are however easy and so is the curve so you don't need to worry about the grade so much.

Workload:

Light workload: weekly ungraded problem sets, 1 midterm, 1 final

January 03, 2020

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Writing this as an update since the course has apparently changed a lot since the last reviews. Basically, now there are 8 problem sets but they aren't turned in or graded, and your grade is based entirely on your midterm, final, and attendance to optional recitation sections. Because of the optional problem sets, I mostly blew off this class. I did virtually no work besides a day or two before the exams, and just crammed then. I missed class a decent amount (especially after the midterm) whenever I had a lot of other work. When I did go, I was not very focused and didn't take notes.

In general, though, the class was fine. It was relatively easy and I got a fine grade despite blowing it off. The material is interesting at times, but often it felt like we weren't going into enough depth to really learn much. Lectures were decent but often I felt like Prof Kim would touch on many topics briefly (for example, different kinds of circuit components beyond the basic ones) without going in-depth, so it felt like she was lecturing on things that we didn't really have to know. Since we wouldn't go that deep into topics, I often found the problems she gave in problem sets were either very easy or were too difficult to really understand based only on what she taught in class.

The first half of the course covered basic circuit stuff, with combinational and sequential circuits building up to Mealy and Moore machines. The second half covered MIPS and then 3 sample MIPS microarchitectures that show how a processor actually works.

There were 8 recitation sections, and they felt pretty much useless. The sections are meant to go over questions from each week's problem set, but mine met the day after the problem sets were released so literally no one had done them. I would guess that even on other days, most people didn't do the problem sets. You could probably get more out of the recitation sections if you kept up with the problem sets and asked questions, but I basically went and zoned out for an hour. The TA wasn't great either, he had a decent command of the material but sometimes couldn't answer questions, and he had taken the course with a different professor who emphasized different parts of the material.

Recitation attendance is optional, but helps your grade. If you attend all 8 recitations, your grade is 30% recitation attendance (which is effectively 100) and 70% from your exam grades. If instead you attend 4/8, you get 15% of your grade from recitation, and 85% would be based on your exams. This is pretty nice, but the actual grades are just based on a curve of the raw grades, and most people attend most of the recitations (mean attended was like 6.5), so the actual affect on the grades is probably kind of modest. I think the curve was pretty nice, probably like median B+. I did pretty well on the midterm exam and basically average on the final and got a decent grade, so can't complain since I put very little effort into the course.

Overall, it sounds like the course is much easier than it used to be. You can get by with minimal effort, though you won't really get that much out of the course.

Workload:

No graded homework, but 8 problem sets that would probably take a couple of hours to really do
Weekly optional attendance that helps your grade (1 hr/week)
1 midterm, 1 final, a lot of cramming if you don't do the problem sets

November 18, 2019

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

absolutely the worst person ever.

Workload:

weekly hw

June 04, 2019

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

This class is a real mixed-bag. On the one hand, the course does a wonderful job of bridging the gap between understanding simple circuitry to how programs run on a processor "under-the-hood". On the other hand, the course structure and execution can be a bit daunting (and frustrating) for many students.

Covering the material *completely* is nearly impossible. Moreover, teaching it in a way that reinforces *understanding* rather than *memorizing* is really quite a challenge. To accomplish this, Prof. Rubenstein has taken the tactic of presenting quite abstract (and hypothetical) problems for homework and test questions. I have a feeling that this is the crux of why a lot of students struggle in this class.

Getting good at answering his "type" of questions is definitely a skill in-and-of itself. They typically require a combination of brute reading comprehension (to understand what the problem is asking), parallel thinking (to see the "trick" of the solution), and deep understanding of the concepts in order to identify the critical step in the solution. Once you understand the trick, the solution typically follows from the general concepts (rather than a concrete list of steps).n Again -- I have a feeling that this is why many students feel lost -- because this type of parallel thinking is hard to teach. It comes naturally to some students, and is quite difficult for others.

This method is great for confirming understanding, but really, *really* punishes students who need extra time to wrap their head around the problem before tackling it. The tests are laid out such that if you don't "get" the problem quickly, it can really set you back. This can be quite troubling to students, as the grading scheme is basically entirely built around performing quickly and accurately under pressure on the tests. (In contract, the rest of the grade is based on TA-office hour attendance, and homework completion -- both of which, most students max out on).

I really like Prof. Rubenstein as a person -- he's fun, and personable, and has a great (albeit somewhat whimsical) sense of humor. As a professor, he's a bit on the scatterbrained side. It's obvious he understands the material, but the way he walks through it in class fluctuates between spending way too much time on repetitive concepts, or not quite getting to the critical point on more in-depth concepts. Either way, communicating the subject matter in an effective way is quite a tall order, so I tend to cut him some slack. I really dislike the grading scheme, but I'm not sure I could come up with something more fair/appropriate.

On a more specific note, Prof Rubenstein has a habit of coming up with completely outlandish analogies to explain concepts. Unfortunately, I more often found myself using my understanding of computers to decipher the analogy rather than using the analogy to further my understanding of computing. To provide an analogy to illustrate this teaching style, it would be as if I was ordering dinner, and I didn't know whether I wanted the steak or the chicken or the pork, so the chef went ahead and cooked all three, then just started putting them in front of me until I either saw something I liked or just nodded and asked "why are you giving me food? this is a computing class!" -- but instead of a chef making food, it's Prof. Rubenstein making analogies, and at this point the whole metaphor breaks down, because I really didn't think it through entirely before i started typing... and if you're even more confused by this, then you now understand what some of the analogies feel like. (As an aside, his washing machine analogy was spot-on. high-five, dude)

Anyways, I digress. If I made any mistakes in this review, I'll fix it in the slides on piazza.

Workload:

Weekly problem sets (3-6 hours a piece)
2 somewhat intense exams.

January 20, 2019

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

class based on midterm and final. if you're a bad test taker, well you won't do well. he added homework assignments this semester though so that may have helped some people.

mandatory TA office hour every week to boost your grade (I mean not mandatory but you'll need it unless all this info comes easily to you) - a waste of time because TAs can't explain anything, but attend so that you can talk to the other students and boost your grade. Towards the end, professor didn't schedule properly or whatever so he ended up squeezing in homeworks 6,7,8 into reading week

Workload:

10% homework
45% midterm exam
45% final exam

November 13, 2018

Paine, Timothy
[CSEE W3827] Fundamentals of Computer Systems

Prof Paine is really not a good professor. He is very smart, but does not know how to communicate it to students. His homeworks and exams are very very hard, and I honestly followed 0% of his lectures to feel prepared.The curve is strong though. The class overall is very tedious, very different than other programming class. It is based much more on memorization of computer parts and commands than it is on theories and understanding.

Workload:

Homeworks are all available online but he changes slight details to make sure you dont just copy

April 26, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

The devil incarnate

Workload:

Terrible

March 27, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

This is the worst CS class I've taken at Columbia by far.

Expect extremely large projects that have nothing to do with what is covered in lecture, and a fucked up grading system that doesn't reflect how well you understand the material or how hard you work.

Oh and by the way, unless you pass 100% of test cases, you get a ZERO on the project. You only start to earn points through optimization of your circuit.

I got the highest possible score on the first 5 projects, and got a poor score (I think around a 30% or something) on the last project, and ended up with a B in the class. I'm honestly not sure how it's possible to get a good grade in the class.

Moral of the story: RUN AT ALL COSTS. Rubenstein may have poor reviews but there is no possible way his class could be worse than this. Martha Kim ruined my semester and I have no respect for her - classes like this are why Columbia has a mental health problem.

Workload:

6 Projects, the last one is due toward the end of reading week so expect to do awful on all your finals and fall into a state of deep depression. The last 3 projects took around 45 hours each, so this is easily the heaviest class i've ever taken at Columbia.

February 19, 2018

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Rubenstein is such a math Ph.D. If you came from a logic background, take this with him. There was no bogus memorization, his slides were super clear; I only spent like 5 days out of the semester working on this class: 1 before the midterm and 4 before the final, and got an A-; super chill. No bogus proofs or long-winded details, just very practical descriptions of computer architecture. One of my favorite CS classes, hands down

Computers are designed so beautifully.

But yeah, don't take the class if you're used to getting As by copying everything the teacher/textbook says. You gotta know how to think

Workload:

45% midterm and 55% final when I took it; sounds imposing but isn't as long as you know what you're doing. His TA system was SUPER helpful: <3 is a babe

January 22, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

The review above is a COMPLETE lie. Martha is a nice person on the SURFACE, but she is a TERRIBLE professor and has utterly no sympathy for students (she regularly shuts people down on Piazza for asking questions or gives the most cryptic answers to reasonable questions). It's either a 100 or a 0 on any single given project (see workload for Fall 2017 insanity and please note that getting a 100 on any given project is no easy matter) and nothing she says in class is useful for the projects (ex: I stopped going to lecture and was at more of an advantage to other kids who went because I had more time to work on the projects). I want to keep this short so you can judge the workload yourself. CS Majors, it truly sucks that you'll have to take this class but everyone else, don't be a hero and take this class or any other class she teaches.

Workload:

Insane: 6 projects
Project 1-4: avg. 5-10 hours each (reasonable)
Project 5: avg. 50-100 hours (unbearable, 60 students out of 180 didn't finish and gave up after putting in 50+ hours)
Project 6: avg. 40 hours (during reading/finals week, so basically don't study for other classes and your GPA will tank anyway)

January 17, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Kim is a humble professor who is good at putting her thoughts into clear explanations. She is sometimes good at detecting how much people understand the content she is teaching.

However, material presented in lectures sometimes were a lot and would be better suited to be in reference books. That type of material was glossed over and lectures on that made me intimidated, although also a little enlightened by what was available. Like Stephen Edwards' PLT slides (and perhaps because these slides were borrowed from Edwards), the slides were mostly show-and-not-tell. In other words, little reasoning was included in the slides. Mostly, I had to either be very alert and think as fast as I could during class to understand what was going on the slides, or accept the fact that there weren't exams anyway so we didn't have to understand things but think about how I might need to know those concepts to do the projects.

It would have been more productive for us to learn approaches to building circuits, rather than only show us extremely advanced examples. The examples gone through during class were intimidating and misleading in their complexity and tediousness.

In conclusion, although Kim started out as a terrific lecturer, this class ended up crushing dreams and was a terrible decision. I don't recommend it.

Workload:

P1: extremely light, makes one cocky.
P2: shockingly hard to understand, when one realize that this class is going to be much harder than AP.
P3: so similar to P2 that it was shockingly easy.
P4: not a circuit, reasonable.
P5: more time consuming than PLT semester-long group project.
P6: during reading week, stressful.

Overall, because of P5, it was more work than CC, Mowsh Bio, AP, and any other class I've taken.

January 16, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

The last few reviews have hit the nail on the head. Don't be fooled by only 6 problem sets and no exams. I looked at earlier reviews, thinking the course wouldn't be too heavy. I was completely blind-sided by the workload. The standout positive aspect of the course were the TAs which were all absolutely fantastic and much more helpful than everything else, slides, lectures, and textbook. I spent about 2x the average time at TA hours in this course, as it was practically mandatory to complete some of the assignments. I NEEDED to attend OH to get anything above 0. I wasn't the only one with this approach as there were regularly 30 people there, clogging up that small TA room, and resulting in a 2 hour wait to talk to a TA for 5 minutes.

Like others have said, projects 1-4 were okay. After project 4 I thought surely this is the toughest it can get, omg how wrong that was. Project 5 and 6 went off the rails with difficulty. Maybe not for a hardware engineering major, but for CS students seeing this stuff for the first time, yikes. It's also important to note the TA's reactions to the different projects, most were excellent from projects 1-4 and it seemed almost elementary to them. This broke down a little on 5 and 6, I could tell some of them were less confident in the material. Not to mention one project was given to the TAs same time as students!!

The problem sets completely dominated my semester. I could do nothing else while one wasn't completed. To add insult to injury, putting 30+ hours into an assignment can still result in a 0 regardless of how close you are to a working solution. The prompts are purposely vague and requirements could be boiled down into one sentence, which meant going to office hours just to understand what was required. The assignments are generally all frustrating, often operating on a single crux. If you got it, the rest was easy and you'd get a top score, if you didn't get it, chances are you got a 0.

TA grading was black and white, except for some edge cases. If you miss something small and obvious that has no bearing on your understanding of the material, nor the focus of the particular assignment, you're getting a zero.

All of this wouldn't matter if the material was super useful for your career, but for the majority of CS majors who will be doing software development, this course doesn't return much in practical skills. The MIPS programming is an exception to this and is by far the most valuable thing you will learn.

Workload:

6 problem sets. 1 to 3 are the right amount of challenging. 4 can be tough but is doable. 5 and 6 are nightmare mode.

January 15, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Believe me: This is how Columbia students get depression!

Workload:

6 Projects: finish 4 projects with 100 and 2 projects with 0 score. I got a C after putting 1 month of work for this class.

January 07, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

I dare say that taking this course with Prof. Kim was one of the WORST decisions I've ever made here at Columbia. I won't overgeneralize and state that such was the case for everyone, but I do know that a lot of my peers who were also enrolled in the course had a hard time.
If you're considering taking this class, please note that she changed the organization of the course entirely starting last fall (Fall 2016), getting rid of exams and giving grades only based on the projects that were given out throughout the semester (6 for Fall 2017, 4 for Fall 2016).

Just to share a few things about my experience:
- I wouldn't say she's a bad lecturer, but she's not a great lecturer either (as some of the older posts suggest).

- Lectures were less and less helpful as the course progresses, which is bad since the projects get much harder, especially for the last two.

- How you perform on the projects do not reflect your level of understanding about the material. You can still end up with bad scores and ultimately a bad grade even if you have a solid understanding about the theoretical concepts, due to lack of experience in circuit implementations.

- Too much focus on performance and optimization for the latter projects. Functionality does not guarantee full credit; you can still end up with a 0 even if your design works. Sure, I understand performance is important in circuit design and that there should be a means to distinguish those who have put in the work and have performed better than others, but considering that this is an "intro" computer architecture class and that most people are using logisim (the circuit simulation program we used in the course) for the first time, I think the grading scheme was too harsh. Doing well in optimization tasks requires a lot of experience, and it wasn't like she provided enough guidance or knowledge for people to cover that up. It was very, very frustrating.

- Nobody even knows how she calculated the grades in the end. To a question on Piazza asking about the curve and the final grade distribution, she answered: "I set and do not publish cutoffs as those are my judgement calls and not something that is up for debate/discussion."

Workload:

6 Projects:
- Combinational Design (15%)
- Sequential Design (15%)
- Huffman Decoder (15%)
- MIPS Programming (20%)
- Pipeline Design (20%)
- Cache Design (15%)

* Can be extremely heavy (degree of difficulty will depend on previous experience and exposure to the material).

January 04, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

It seems like every reviewer on here expected Kim to soften the rough edges as she taught more, but that hasn’t happened. The assignments still vary greatly in difficulty and time requirements, the lectures still cover easy concepts with little to no focus on the much more challenging aspects of application, Kim still corrects herself in class (to the point where sometimes you don’t know what is right or wrong). Email reply time takes a long time and the administration of the class is poor. The TA review sessions sometimes strayed with TAs solving problems incorrectly. On top of that, the curve is very harsh now; it seems like average was a B- based on my conversations with others who took the class. Style points (+10 to prettiest solutions) skew the curve on efficiency based assignments (since the highest possible grade was in the 60s-70s for both of them but the +10 style points made it as if it was in the 80s). Like before the curve is basically determined by those last two efficiency-based assignments (out of 6) which means consistently good performers got meh or even bad grades for doing average on two assignments out of six.

Overall, it seems like Kim isn’t taking feedback from students year to year. If anything the faults have worsened over time. This course is required for lots of majors but otherwise would not recommend.

Workload:

Randomly easy then incredibly hard depending on the project assignment. Varied from taking 2 hours (MIPS which was #4, and first/third project) to over 20. Usually we were given more time for the easy projects, of course. 6 projects total (first three and last one were 60% of the grade, while the fourth and fifth were 40%), no midterm, no final.

January 03, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Agreed with past two reviews, this semester it seems like this class really took a turn for the worse. Projects were alternately a joke or really hard with no rhyme or reason and while the material was interesting the projects were barely at all even related to lectures. Final grades barely reflected performance on the projects. Last few projects which were performance based were initially graded on an arbitrary scale (since prof Kim did not know how they would perform) and then not adjusted accordingly before final grades were tabulated. If this class is gonna be based only on projects then the projects should be designed and tested before giving them to us! Our grade depends on them! But until then she should defintely go back to giving a mix of tests and projects like most classes

Workload:

Well for some reason the first month and a half was spent on one easy project. Then an incredibly hard one was due two weeks later during midterm season! And then two easy ones, and finally two killer ones during finals. Possibly the worst timing and project ramp up I’ve seen in a CS class.

January 03, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

This course has changed from previous years, apparently. I have never seen students put in so much work for a class and get such little return on their investment in terms of grades. This class does not account for effort in any shape or form. The tests she designs to test your circuit are at best surface level and the TAs don't even glance at your circuit to see how hard you tried. Obviously I'm not a circuit engineer but I can see merit in awarding students points for at least building the underlying functionality associated with the prompt even if it doesn't pass the most ridiculous handshake tests.

There were 6 projects in Fall 2017, with the first 4 being doable and the last 2 extremely difficult. Mental health goes out the window because the last project was due in the middle of reading week, and takes up to 40 hours for the average student with testing, OH, and talking to other students. Because there were 6 projects, they didn't have a lot of spacing between them, especially towards the end of the semester. There isn't a lot of space given if you slip up--there's like 3 late days for the entire semester and only 2 can be used per project.

Also there's very little point going to class, the material is in no way related to your understanding of the prompts. If you want to learn about the field and what a processor looks like etc, then go. She was a pleasant lecturer, and answered questions in class. Before the due date of every assignment, she would do a 5 minute quick review of the prompt which was helpful sometimes.

Hope this course changes/becomes a little more of a modern discussion and application based class. Best of luck to others!

Workload:

First few projects, couple of hours. Projects 4, 5, 6, might take the average student around 20-30 hours each.

January 03, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

If you're looking for the manifestation of the worst qualities in a college course ever, look no further. Fundamentals with Martha is by far the worst CS class, and by extension the worst class I've ever taken in my life. The class is 100% project based, and let me tell you, they're brutal. This semester there were 6 projects, projects 1-4 being fairly easy (averages were high 80s-low 90s), and projects 5-6 impossible. The projects are designed in a way so that you either get a 0 or a 100. (actually, more like 0 or 80-90, and then you climb your way up to 100 by making optimizations). This means that if the project takes 20 hours to complete, even if you spend 18 hours on it, you'll get a 0. So your final grade is pretty much based on projects 5-6.

Let's talk about projects 5 and 6. They are ridiculously hard, to the extent that some of my friends actually cried doing them. Not only that, the project is "out of" 100, but even Martha can only score a 67 on project 5 and 73 on project 6. Why would a professor have you do a project that she can't even score a perfect score on? And these scores are calculated directly into your grade, meaning you're considered "doing well" if you get a D (67). If you used up your late days (you get 3), every day after that is a 15 point deduction, regardless of the project. This means that handing this project in late by a day leaves you with a 52 - basically an F. Like what the hell.

The TAs for this class were virtually useless. Office hours were always crowded, with 2 hour long lines just for 5-10 minutes with the TA because everyone had issues of their own. Most of the time even the TAs would have no idea what was going on yet people still went to them because no one else in the class had any idea what was going on. Martha always seemed annoyed in her office hours as well, very reluctant to help out students stressed out by her own concoctions.

The cherry on top is that you don't learn a single thing from taking this course/attending lecture. Most people who take an introductory systems class at any college knows what an ALU is. I can safely bet that 90% of our class didn't even know what it stands for. The class being purely homework based, people started not showing up mid semester. She also makes careless mistakes during class which was a huge turnoff. You know it's a poorly designed course if you can theoretically do project 6 on the first day of class and going to lecture for an entire semester likely had no impact on your performance overall. All you have to do is learn how Logisim (software for designing circuits, which by the way, is not even in development anymore) works and just do every project.

Lastly, this class made me hate computer science. My logistical complaints with the course aside, if a professor who teaches a CS core class makes you hate a subject you like, the professor shouldn't teach that class. This class singlehandedly ruined my semester.

Pro tip: avoid Martha Kim at all costs. Based on the final grades, pretty sure she curved to a B-.

Workload:

6 projects
P1-4 hard, but relatively easy to P5-6. But still hard.
P5-6 ridiculous

January 03, 2018

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

tldr: this class was nothing like the previous reviews. the lectures are useless for the projects. the projects are insanely hard for no good reason. martha kim was not caring like some previous reviews mentioned but seemed to gain pleasure from giving people 0s on projects. the curve is bad. she might change, since this semester seemed like an outlier, but i personally had the worst educational experience in my academic career so far and i would not recommend this class to anyone.

here is a list of things that i felt was wrong with this class:
1. first four of the six projects all have super high average (around 90). if you mess up on any small thing, even something she did not mention in the prompt, there is a high chance that you will get a very low score, including 0. for instance, in one project she first gave some people 0 out of 100 for not having the correct reset behavior but otherwise perfect circuits. she did not mention anything about the reset behavior in the prompt, and so later gave these people 80. there are many other examples where people turned in the circuit thinking they have a functional design, but because of her failure to fully describe the specifications, ended up being surprised by poor scores.

2. there are so many specifications you need to meet. if you fail to meet any one of them, you get a 0 regardless how else you have demonstrated what you learned in this class. while some might argue this is how things are done in the “real world”, but i think for a class where each project weighs about 1/6 of the entire course grade, giving out 0 out of 100 so easily is seriously wrong.

3. the later 2 projects are supposed to separate people, so it’s about how well you can optimize. here’s a quick fact: about 1/3 of the class got 0 out of a 100 on project 5. the averages and medians are really low for both of these two projects. i spent five days straight working exclusively on this project, and ended up being right above the average. i never worked so hard on any school project ever. i know at least four other friends who worked even harder and received poor grades. it’s really not about how hard you work.

4. project 6 was due on the THURSDAY OF READINGS WEEK, just a week after project 5 was due. because these two projects were so hard and took so much of my time, i was not as prepared for the finals as i should have been. i’m not sure if that was even allowed, but it was a real pain in the ass when you are trying to study for other finals but had to be stuck with two hardest fundies projects of the semester.

5. sure there are people in this class who are very passionate about the material and spend a lot of time on the projects. but based on the experiences of most people i know in this class, they are taking this class only because its in the CS core. most people will never touch these stuff again and absolutely do not have interest in the low-level stuff. this class definitely failed in both properly introducing people to the field and giving people a general idea of how things work under the hood, given how difficult the projects are. what people learned in class is virtually useless, which defeats the purpose of projects.

6. the TAs are literally incompetent. i went to many office hours and one time for project 5 the TA told me the completely wrong idea, which is later corrected by another TA (Tom, who seemed to be the only legit one). i feel like most of the time their lack of knowledge and/or poor ability to teach only confused the students even more.

7. Martha Kim is nothing like what the previous reviews said. she did not postpone a project due during midterm week, which is fair i guess. but scheduling projects 5 and 6 so close to each other and one in readings week was a huge fuck up. students really suouldn’t be penalized for her own poor ability to schedule things properly. in addition, like i said the numerous specifications make you think that she loves giving out 0s to people and see them suffer, as demonstrated by ~60 zeros for project 5.

8. curve??? i got basically perfect on the first four projects and 50ish on the later two, which are all above average, and i got a B?? based on my experience with the CS classes, i was expecting an A or A-...

this class was a total nightmare, and i just hope that i will never touch anything lower than C and see Matha Kim again.

Workload:

heaviest class i have ever taken.
heavier than CC, AP
some projects will make you feel hopeless and question your life decisins

December 30, 2017

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Don't be FOOLED by the reviews! The course is different from the reviews. Now the course consists only the projects. The lecture weren't that helpful for the projects. And the way she grade the project is by the number of test cases. If you made everything right, you will get 100. But if you messed up with one tiny thing, you will get a super low grade. So the grading cannot show the understanding and effort fairly. Most of the projects were frustrating.

Workload:

6 projects. Some of them are insane.

October 22, 2017

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Awful. She's nice enough but doesn't know anything about academic policy, running a class, or how a curriculum should be designed. While her lecturing is clear, she's an absolute bore, and you will do well by just reading the slides.

Workload:

She's been changing it schizophrenically

April 13, 2017

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Awesome professor! Course grade is purely based on midterm and final. Homework is assigned but not graded He posts lecture slides for reading, but will actually lecture on the board though. Goes through the material in a very clear manner and explains everything. He actually works really hard outside of the class to make sure he covers all of the points necessary. Compared to Martha Kim, he will cover and emphasize more of the theoretical concepts of computer systems which gives you a much better understanding than just doing four/five projects in Kim's course. If you don't care about learning the material and would rather just read it on your own, take it with Martha Kim. If you would like a great lecturer, take it with Rubenstein!

Workload:

Weekly homework set that's not graded. Technically NONE

January 27, 2017

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Martha Kim was a great lecturer. She basically followed the textbook's cues, but she did put effort into explaining the material, taking questions, and teaching well. She is genuine and helpful during office hours and tends toward leniency. She never came off as jaded, mean-spirited, or apathetic, like a lot of professors here do. When students pointed out to her that a large CS Theory assignment and a large AP lab were both due on the same day as one of her assignments, she agreed to push her deadline back a few days and give us the weekend to work on it, which was pretty cool.

That being said, she really screwed up the grading for our semester. The first two projects were too easy, with median grades around 95, and the last project was too hard, with a median grade around 40. The curve depended mostly on the third project -- in other words, our performance in the class was more or less determined by one assignment. To some extent, she admitted that she made mistakes and was trying out the project-based assessment scheme for the first time, and she curved the class generously to compensate. I don't think she'll let that kind of thing happen again.

The TAs for the class were pretty bad. More often than not, it seemed like they didn't know what was going on. This could be attributed to the brand new set of projects Martha developed for the class, with which neither the TAs nor the students had any experience.

Overall, good teacher and very interesting material, but bad support from the teaching staff and very messy grading.

Workload:

Four projects: the first two weighted 20% each, the second two weighted 30% each. No other coursework.

December 27, 2016

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Her class was my absolute favorite in the CS core.

Her lectures were crystal clear and the workload felt like the perfect amount. It was challenging enough that it would genuinely help me apply my knowledge of the material, but it was not overwhelming like in many of the other CS classes.
This is definitely one of those CS classes you can use to balance out your heavier classes.

The first half of the class is said to be easier for the Engineering people, and the second half of the class is said to be easier for the CS people. However, I found the first half to be easier (and more interesting/fun), and I am a CS person. So, this may or may not apply to you.

Professor Kim makes all of her slides available online, so you can take a peek at the material beforehand to get an idea of what the class will be like.

tldr: The class is one of the lightest in the CS dept. She is a clear and approachable lecturer. Take a class with her if you can!

Workload:

Psets and tests, one HW with MIPS

August 06, 2016

Edwards, Stephen Silver_nugget
[COMS W4115] Programming Languages and Translators and [CSEE W3827] Fundamentals of Computer Systems

Proffesor Edwards' is a world-class lecturer!
He has complete and absolute mastery over his material (feel free to ask him about any possible tangent, he'll answer you).
He is refreshingly down to earth and very humble, all around a gem of a human being.
It is obvious that he loves lecturing, and puts himself fully into it.
Lectures are somehow very easy to pay attention to as he's always able to keep it exciting.
-A huge fan!

Workload:

No opinion, sorry!

August 13, 2015

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

NEVER EVER EVER TAKE A CLASS WITH RUBENSTEIN. If you do anything right in your 4 years at Columbia it will be to not take a class with him. This was the worst and most frustrating class I have ever taken at Columbia. At first he seems all buddy buddy with the class, but don't let this fool you. He is an awful lecturer and an extremely lazy teacher. It takes forever for the TAs to return hws. His assignments and tests are impossible to comprehend, filled with typos and convoluted sentences. The TA's rarely understood the hws themselves. Most of them took the class with Martha Kim and did not understand why Rubenstein would teach the material the way he did. They had to spend half the time you met with them just figuring out what he was asking. The averages in this class were extremely low. Yes, averages are often low in comp sci courses, but in this class it wasn't simply because of the difficulty. It was because no one understood the material because he can't teach!!!! After the midterm grades came back he came in front of the class and said that we shouldn't complain about the average being so low because we're columbia students and tests are supposed to be hard at Columbia. He constantly tells you not to worry about grades because they don't matter, which is just annoying. I learned more from a 10 minute youtube video than from 75 minutes in his class. I would go into more detail about the class, but he's not worth my time. I wasn't smart enough to listen to the reviews. Save yourself. Don't take this class or any other class with Professor Rubenstein.

Workload:

I'm not even going to bother telling you because you shouldn't take the class and therefore don't need to know the workload. Take it with Martha Kim!!!

May 10, 2015

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Oh man. What a terrible, terrible, terrible class. What a truly frustrating experience. I'm aware that Rubenstein is not teaching fundamentals next semester, but I don't care, because the world needs to know how fucking terrible he was for fundamentals, so that hopefully nobody will have to go through it if he ever teaches it again.

THE LECTURES:

Prof. Rubenstein reads from his slides. Word-for-word. The lectures are aggressively boring, to the point where Rubenstein himself would get bored––at which point he would tell a bizarre and completely unrelated story ("So this one time I had a 6AM flight, and I was staying at the airport, so I told my friend I could wake up at 5:45 and make the flight, and then I actually did it, just to see if I could, but I forgot that security still takes like two hours even if you're sleeping in the airport, so I ended up missing that flight. Anyway")––and then get back to some of the most amazingly uninspiring lecturing I have ever witnessed. I can't believe I consistently went to this class. It's a waste of time.

THE HOMEWORKS:

Always tedious, and the questions are often extremely unclear. Unfortunately, the homeworks are only tangentially related to the slides/the classes, so 80 percent of the work you'll be doing on these homeworks is figuring out what he actually wants you to do. There were 8 graded homeworks this semester––there were supposed to be 9, but somehow, even though we do literally nothing in class, Rubenstein fell behind, so that there was a 9th ungraded one (but it was still fair game for the final!)

THE TESTS:

As annoying as the homeworks are, the tests are a worse version of the homeworks. Completely unrelated to the tasks you do for the HW and the slides, these tests are difficult, confusing, and don't really reflect your understanding of the material. Every question introduces a new concept, so that you will be scrambling to read through his (often error-riddled) questions until you figure out the game for that particular question.

THE MAN HIMSELF:

The thing is that I actually kind of like Rubenstein––he can be funny and he's kind of a goofball. But he is just a truly bad teacher.

Please, for your own sake, don't take fundamentals with him.

Workload:

Average for a second-year CS class. Whatever work you end up doing will be tedious and deeply frustrating.

May 03, 2015

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Prof Rubenstein is clearly very smart - it shows because he makes really good slides that explain things well. But every lecture, he gets onto the stage and fumbles for 75 minutes. It is frustrating for students who do not come in with a lot of knowledge about computer organization, because he appears unprepared.

There were quite a few times where I skipped the lecture because it was more helpful to spend the time studying the slides on my own. Ended up doing just fine on the homework and exams.

It's not as bad of a class as everyone says - just that if you come in w/ less knowledge, you have to put in the work to make up for that gap (and Rubenstein isn't helpful for that). Talking to the TAs makes a big difference because many are knowledgeable and good at explaining stuff. But again, you need to do that on your own time if there's something you don't know, so depending on whether you think you will do that, maybe reconsider taking it with Rubenstein.

Workload:

~1 written homework weekly. Depending on how much prior knowledge you have, it can take anywhere from an hour to several to complete.

January 22, 2015

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Professor Kim was a great, engaging lecturer. She was clearly working hard to make sure everyone in the class understood the material, and showed a level of commitment to teaching that's unusual at Columbia. She offered very clear and thorough explanations of topics. She took many questions during lecture, and answered them quite well. She was incredibly patient, including spending lots of time in office hours answering questions.

I didn't work with the TAs much, but they seemed to all be pretty decent, and were generally very responsive on piazza.

I felt like this class was the easiest in the CS core, along with CS Theory. However it was useful and I found it kind of fun. I would have actually appreciated slightly more workload, and slightly harder exams, since a tiny mistake could have cost you a lot given the structure.

Overall I highly recommend Kim.

Workload:

6 homeworks. Most of them were quite easy, one took under 30 minutes.

2 "midterms" this semester - I think due to her pregnancy she didn't have a final, but had a " second midterm" on the last day of classes. Both were easy, which very averages of like 90%+.

December 19, 2014

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Professor Kim does a really good job with this class. If you have a decent CS background it shouldn't be too challenging -- you don't even have to go to class if you read the textbook, because she follows it very closely -- but it's pretty neat finding out what happens below the level of the level of C code. Professor Kim is a good lecturer and really good at explaining tricky concepts to the greener students.

If the class hadn't been at 10 AM (waaaay too early for this senior) I would've gone more often and likely gotten a lot out of it. When I did go, Professor Kim would mention neat factoids not covered on exams but still good to know, like (my favorite): Intel kept adding more stages to its pipeline in the '90s so it could ramp up its clock speed, and had to change its advertising strategy to deemphasize clock speed when it turned out fewer stages was optimal and clock speeds decelerated as a result.

Workload:

6 reasonably easy homework assignments, lowest 1 dropped. One of them is coding in assembly.

Midterm and final, equally weighted, both fairly easy. If you paid any attention in class you should do fine on these.

May 22, 2014

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Ah, Rubenstein. He spent the first lecture telling us how last year's culpa reviews were all wrong, and at first I thought it was going to be okay but then...

Okay, okay. So he's not the worst. It could always be worse. I survived the class and learned some cool stuff. And yeah, he's a nice guy and a great person. But when every sample final exam that he gives us has at least one mistake in it, and when he doesn't even know the answers to his own homework problems... It makes me pretty worried.

I actually don't think that he was that bad of a lecturer and I didn't really mind that the slides had some typos (though I'd maybe recommend not scribbling all over the whole slide in red... I heard someone got him a stylus but I don't think that helped much). He was decently helpful during office hours too, and he does seem to really care about us learning.

The main problems were the homeworks and exams. As a previous reveiwer mentioned, homeworks were posted late and graded late and sometimes tedious, but that wasn't even the worst part. Towards the end, some of his homeworks would ask questions to which he didn't even realise the answer, until a student pointed something out to him in office hours. He then tried to say that it was still an answer too but, c'mon, when the question asks "How can you minimize stalling?", "you actually can't" shouldn't be the answer.

Our own midterm had a few very significant typos in it (he gave an example of how his state machine worked and his example contradicted the instructions) and our final had a few errors too. Luckily, he grades on a pretty good curve. I didn't think I was doing amazing but I ended up with an A.

Basically, if you're stuck taking this class with Rubenstein, it's okay, just keep up with the material, go to office hours if you need to, and find some friends in the class to cry with when you can't handle it. And hope that he's a bit more organized next year. If you have a choice though, I'd recommend trying Kim.

Workload:

Roughly 1 problem set every week or every other week. The homeworks weren't spaced out that well, and sometimes the homework would not be posted until a few lectures after the one that it was based on. The previous reviewer's estimate of 2-6 hrs per problem set is pretty accurate-- it's hard to say. The early homeworks were easy but tedious, while the later homeworks were difficult but only had maybe 5 problems each. 1 midterm and 1 final-- these are somewhat unpredictable.

May 17, 2014

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Rubenstein's a pretty chill guy, but not the best professor. He often gets confused by his own typo-riddled slides. You would expect a professor who has taught this class several times in the past to know his material by now and have error-free slides. While some of these mistakes were corrected, there are still plenty of typos in his lecture slides, so be aware of that when studying from them. Also, logistics are poorly organized with HWs being posted late and taking forever to be graded.

Starting with basic logic gates, the course slowly builds up towards creating a CPU. You learn about the underlying hardware behind a simple computer and how the programs you write actually work. The material in the first half of the class can be a bit boring, but you see how everything comes together when discussing the MIPS architecture, which is pretty cool. I was bored because of the slow start (I took Intro to EE and CS Theory before Fundamentals, so the first month was just a rehash of things I already knew). Hence, I never participated or really cared about was going on. Rubenstein would also give students points for discovering errors in his slides, and I felt like it detracted from the class because it "gamifies" education. Sometimes I would notice mistakes in the slides and not bring them to his attention because I didn't want to partake in his silly point system. Also, the homeworks were super tedious and didn't teach you much. They aren't representative of the harder yet more thought-provoking questions he asks on his exams.

The midterm was hard. It was longer than the practice tests, and it was nearly impossible to finish within the allotted time. It also had a couple of typos. His exams are open book, but it doesn't really help much because the questions he asks on exams generally require you to extend circuitry covered in class and solve problems creatively. He has good intentions for his exams. They are designed to make students think by asking non-trivial and interesting problems, but they're poorly executed because of the often long and winding questions or just because Prof. Rubenstein didn't think the solution through enough leading to a different answer than what he expected. Partly because of my attitude towards class and because of the difficulty of the test, I did pretty badly on the midterm.

In the second half of the class, I made an active effort to pay attention. I found the course much more enjoyable (may have been because the material became more interesting) and Prof. Rubenstein a much better teacher. He's pretty helpful in Office Hours, so please go to them if you get stuck. The final was better than the midterm because I actually cared about the material and also because of the extra time we had. In the end, what you get out of this class depends on how much effort you put into it. Rubenstein's not the most inspiring teacher, so unless you take the effort to ask him good questions, classes can be pretty boring. You have to push him to take an interest in teaching you.

I think, overall, it might be better to take Fundamentals with Martha Kim for now. Rubenstein's not bad, but there's a lot he can do to improve Fundamentals. (He also reads CULPA reviews, so I hope he makes the class better in the future).

Workload:

8 HWs - take between 2-6 hours each (can be very tedious)
1 midterm (hard)
1 final (very doable)

January 03, 2014

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

I agree with the review below that Martha totally puts in 110% effort to give good feedback and make sure the class runs as smoothly as possible. A further example is that when she found out that her final letter grade script had a bug in it, she sent personal emails to anyone who contacted her about it (within 24 hours on top of that) and promptly fixed the issue.

With regards to her teaching, I would say that she is not quite on par with Adam Cannon or Jae yet. However, in looking at her previous reviews and comparing it with my experience with her this semester, it appears that she has improved a good amount. My guess is that if she keeps refining her teaching skill, she can eventually teach at that level.

One thing that others have not mentioned is that you will be programming in MIPS Assembly Language for one of the psets. My suggestion would be to take AP (3157) before or at the same time as this course (I did the latter) since AP really gets you thinking in terms of lower level computing, which makes the assignment much easier. On the whole, AP and Fundamentals really seem to complement one another, so try to get AP in first or at the same time.

Workload:

6 problem sets (5 theory, 1 programming) with lowest score dropped
1 midterm
1 final (non-cumulative, only second half material)

December 11, 2013

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Martha is the kind of professor who doesn't mind reteaching an entire day's worth of material if students seemed like they weren't totally clear. She is also the kind of professor who takes in student feedback about ambiguity of problem sets, sends out the clarifications well before the sets are due, and changes how the question is worded so it will be clear for future classes. (Her slide sets are like finely aged wine.)

She gives eminently reasonable problem sets and tests (1 midterm, 1 final, noncumulative) and once got off an airplane to fix a glitch in her website that students needed to access for a problem set.

She also had a great sense of style, is genuinely and adorably amused by things like slow processors, and will explain things for you in multiple different ways until you get it. She's on par with Adam Cannon and Jae in CS-prof god(/dess) status. If you get her for fundamentals, be elated.

Workload:

6 problem sets, 1 midterm, 1 final. All slides and psets are accessible online.

November 15, 2013

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Prof. Kim really cares about the students and their learning. I appreciated her approach to midterms and homeworks - there is always ample material to help aid your studying, and she and the TAs are very responsive via email. She leaves a day to review before the midterm, and we could send in questions to help direct the midterm review session.

Grading seems very fair, and solutions are explained in class when we receive our homeworks back.

The material is nothing incredibly exciting, but Prof. Kim does a good job breaking it down into understandable chunks so that it's not too overwhelming at once.

The midterm was an accurate assessment of what we were learning in class, and the average was something around a 76 I believe, with many people scoring in the 80 and 90 ranges.

Additionally, there is no required textbook, and she only expects you to know what she covers in the slides, which was a relief when studying for the midterm.

Overall, solid class. I have no complaints.

Workload:

Not too bad. 6 homeworks, lowest grade is dropped. One midterm, One final. Homework assignments are somewhat time consuming but it is very manageable if you've been paying attention in class.

October 09, 2013

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Martha Kim is fantastic for several reasons:

1) She is a VERY clear lecturer; she teaches directly from slides that on their own are very descriptive, and goes through them at a pace that is easy to follow. She is extremely eloquent and obviously very knowledgeable about the subject material, so it's really easy to follow and engage with what she's saying; she's not one of those awful lecturers who you have to really actively try to pay attention to for the whole class. She intentionally goes over slides with diagrams a little longer than other slides so that students who like to take notes have time to copy them down. There was one day when she had to rush through how Karnaugh maps worked, and in the next class she apologized for the lack of clarity and spent probably the first third of that class re-explaining them and really making sure everyone understood what was going on. If you go to class (and are at all awake/paying any amount of attention to her) you will understand the material. Point of the story: her lecture style is succinct and easy to follow and if you pay attention in class she will teach you the material.

2) It seems like she really genuinely wants everyone to succeed. She holds more office hours than any other compsci professor I've had and every time I've gone she is really approachable and has seemed genuinely concerned about making sure I am not confused about anything (not to mention she's just super nice). She assigns a very reasonable amount of work because she doesn't want the class to be a source of unnecessary anxiety for students. That being said, the assignments are challenging enough that they definitely do make you learn the material to do them (which I think is a good thing). This is not an easy A class. You will have to do work. But she actually wants you to do well at it, which is definitely not true for every professor at Columbia.

The only bad thing I have to say about the class is that the problem set grading has been a little haphazard - on the first assignment, the grading was really harsh, which a lot of students made a big fuss about; then on the next assignment, the grading seemed really easy. But this discrepancy in grading tolerance seems to stem from the TAs more than Martha Kim.

Overall, she is very intelligent and also very nice and I think she's been a fantastic instructor for Fundamentals!

Workload:

Pretty much what you'd expect; Nightly readings which you don't actually have to do but can be helpful for doing the assignments, which are roughly bi-weekly problem sets that take about 3-7 hours (depending on how fast/focused you work on them), a midterm, and a final.

May 23, 2013

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Ugh. I completely agree with the previous few reviews--Rubenstein is a really nice guy who comes to class unprepared to do anything but read off his slides. On the bright side, he gives great, challenging homeworks, and tests that you can't really study for except by doing these homeworks (a lot of people cheated on homeworks, which he acknowledged, but that became clear from the tests). I learned...something? from this class, but only from the homeworks, not from him.

If you can, take it with Edwards/Kim. Or hope that he posts his slides online but teaches by hand on the board instead (the days he did that because of technical problems we learned, for once).

Pro-tip: go to his office hours. He'll walk you through any problem you have, including those on the homework. He'll also boost your grade at the end of the semester if he knows your name.

Workload:

9 great homeworks. Hard midterm, hard final. Drops lowest 20%.

May 22, 2013

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

These recent reviews are not entirely accurate.

I took the course this semester, and received an A-. I was likely boosted from a B+. That happened because I attended office hours each week for assistance on understanding and completing the homework. Contrary to others' claims, I learned more in the class by having the opportunity to effectively discuss the questions and solutions to the HW with great TA's and with the professor. If you showed up with relative knowledge of the material, the professor or TA's would literally give you the answer if you couldn't reach it yourself. They sought to totally set you up for success. If you didn't take advantage of that assistance, that is your fault and I don't feel bad for you.

The criticism I have for this class amounts to concerns about interest by the professor. I don't believe Professor Rubenstein is teaching material he prefers to teach or learn. This results in a class that is less enjoyable, and is unfortunate at Columbia. His course would be 10X better if he enjoyed what he taught, and showed that. That being said, he showed he cares for his students' performance and puts in his stated time to assisting students.

I wish I had purchased the book. I think the summaries he provided were at times challenging to understand. I also wish the course had a bit more of a clear connection and purpose between the first half of the semester and second, but we always have concerns.

The perspective is this - We can read, understand, draw, and design circuits that do cool shit. And if you can't, you screwed up in class and I don't feel bad for you. And you also probably cheated off someone else's homework so fuck you.

Workload:

Day to day and a half of work per week when HW's are due. 1-3 days of studying pre Mid-term or Final.

May 20, 2013

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

This course is required of all CS, CE, and EE majors, however EE and CE majors will probably find themselves more prepared for this course. This is because engineering students are already exposed to digital circuits in 1201, and are generally more comfortable with design at this level of abstraction.

Rubenstein's slides were very detailed, and I never once needed to look at the textbooks. While his assignments and slides did sometimes contain errors, he fixed them right away. He also posted several practice exams, which were very useful in preparing for the midterm and final.

I do wish that he worked through his examples on the blackboard instead of showing them on slides. Also, it would have been nice if he could have found more ways to engage students during class.

Overall, I'd say that Rubenstein is a good professor, since ultimately I learned a lot from his course.

Workload:

Typical EE workload. Weekly problem sets that take 3-6 hours, one midterm, and a final (Both are open book, open note). The exams are a bit of a time crunch, so it's definitely worth it to do a lot of practice exams to prepare yourself.

May 18, 2013

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Let me preface this by saying I received a C in the class but it's also the only C i've gotten at Columbia in 4 years (never even gotten lower than a B). In any case take, everything with a grain of salt.

Now there are a factors here that contributed to this that are beyond Rubenstein's control and are my fault, such as the fact that I don't really have a background in computer science, I never went to his office hours (I did attend the TA's occasionally), and I'm a second semester senior.

That being said, Rubenstein's style is that of the prototypical SEAS professor. There's a certain level of irony to this, because in his lectures he comes across as personable guy, he speaks English quite well, and he has a great sense of humor, none of which are very typical for engineering professors I suppose. However, none of that means shit if you spend all your lectures expressionlessly reading off slides, do not provide a good text book and assign cryptic error-riddled homeworks expecting people to be able to solve them purely based on what you wrote on those self-same slides. These slides, as the previous reviewer pointed out are also often riddled with errors. Moreover, they are quite repetitive and there are only a few that are truly important in every lecture, whereas the rest seemed like useless filler. Then there are topics that show up that aren't covered very well in the slides on both homeworks and tests.

Generally speaking, I'm pretty sick of this en vogue teaching style where professors don't have to do anything except for recite from slides. It's not conducive to learning, and yet somehow the super-genius professors of SEAS still haven't figured out why people don't attend their classes. Or more likely they have, they just don't give a shit, since giving a shit about their students is not high on their priority list. This obviously wasn't the first class where this has happened, and I sincerely doubt it will be the last. The true tragedy here is that Rubenstein seemed well enough aware, occasionally stopping in the middle of his lectures to ask the class if they understood what he just said, and when less than half the class raised their hand, he would proceed to explain the exact same concept all over again in the exact same way. This created the illusion of concern, while truly accomplishing nothing at all.

Again, it may be harsh or nigh impossible for me to claim he didn't care when I never went to his office hours; however, generally speaking, his lecturing style came off as lazy and unconcerned, which puts him squarely in the "average" range for SEAS professors. As far as attending office hours goes, he said that if we could show him we knew what we were talking about in office hours it could only help our grade. Unfortunately his lectures were often so devoid of content, I actually didn't learn very much, so I truly didn't know what I was talking about and probably deserved the C.

So I guess you should take him if you want a lecturer with an interesting personality and sense of humor and have a pretty good background in this stuff.

Workload:

Problem sets that started out fairly easy but became pretty hard near the end. Reasonable-ish midterm and tough final that were open-book and open-note.

May 15, 2013

Edwards, Stephen Silver_nugget
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

I took this course with Edwards and Martha Kim in Fall 2012.

This is a review of Edwards.

His slides are simple and informative. His lecture style is very straightforward: he is one of the most rational and simplistic presenters of complex material I have ever encountered. If I had to take PLT, I would do so with Edwards. He introduces LogiSim, which Rubenstein does not. I told several of Rubenstein's students about LogiSim and it made their lives much easier.

But really I'm writing this review because of Edwards' personality and humor.

Edwards is a geek's geek. Perhaps he doesn't look like one, but he dresses like one and behaves like one. I find this enjoyable in a professor, but for some it may be an acquired taste, like Scotch whiskey.

Some co-engineers of mine have pointed out that he can be rude, surly, and dismissive. I think these attributes seem to present themselves because he is rational above all else, and has a limited amount of time. (~2 orders of magnitude below Temple Grandin. Let's say the average engineer is about 4 below, Vallancourt is 6 below, and the average art history major is 10 below.)

I don't think he has ever been rude to me, but in the sense of being hyper-analytical without regard to feelings, Edwards has a tendency to do this. And I personally find it liberating, assuming I am capable of keeping my ego out of the equation.

I wouldn't say he equates human interactions to a set of logic gates, but in dealing with assignments and career advice, don't expect a lot of small talk or beating-about-the-bush. Professor Edwards is one of the most direct human beings I have ever encountered.

If you need to prove to yourself that he has a soft/creative/dynamic side, keep in mind the following:

* He modeled for McDonald's in Taiwan
* He bought a vintage PacMan arcade machine and drove it to his office from AC
* He makes bad jokes that pertain to driving even though no one drives in New York
* He wears a fanny pack when he bicycles to and from Mudd

I may not be the most adept engineer in SEAS, but I thoroughly appreciate Edwards' awkward and dryly amusing brand of brilliant.

Workload:

Manageable and intuitive. Exams test the basics.

May 14, 2013

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

There was not much I liked about the course taught by Rubenstein. The best days in class were when Edwards/Kim came in to sub for Prof Rubenstein when he was out.

The worst offenses:
* He is not prepared enough for the lectures in order to make the material engaging or easy to understand. They consist of him reading off of his overly complicated slides and often not coming up for air.
* He does not require a textbook but suggests two textbooks. His slides are basically reproductions of the books. I had the textbooks and did not think that the slides were enough to understand the material by. I think it's unfortunate that he uses two books when the course could be summed up in one book. He should drop the awful Mano and Kime book.
* His homeworks are a mixture of totally tedious repetitive nonsense (adding binary numbers excessively) which teach little, to extremely esoteric circuit creations which also do little to explore your understanding of the material. Perhaps the course is meant to test your ability in solving puzzles through building circuits - if that is the goal then I guess I've misunderstood the intention of this course.
* His homework policy is to allow for cheating. He allows people to collaborate on the assignments which in my opinion discourages anyone from doing their own work. For those that do their own work and do not compare answers before submission are just out of luck I guess. If you submit without comparing your answers and knowing you have 100% going in, I guess your'e a dope. If the whole class is allowed to collaborate why even give credit for the assignment?
* His exams are insanely unfair in my opinion. After having done reasonably well on the homework assignments I felt unprepared for the midterm/final. There are some reasonable questions but then there are those that will boggle the mind how they accurately test my understanding and knowledge of the material. But again maybe I've failed to understand the goal of this course. His exams consisted of reading a mountain of text to explain the premise of creating some new fangled circuitry. Then having questions part b through d rely on your successful understanding and completion of part a. It doesn't help that in this mountain of text it is mostly incoherent explanation of what he is trying to express. My impression is that they were overly complicated and/or error filled.
* I have had some minor experience with this course's topic before and usually find it fascinating but I found myself unwilling to participate towards the end.
* The course covers too much ground and not enough of it carefully. There seems to be a theme that a lot of what we are learning is not necessary to know. That's insane to me. Everything we learn should be at least interesting and inform our future. Cut out the small extraneous that have no relevance.

The good:
* He is a nice guy and office hours are very useful.
* When he would work out a problem manually on the board this was a very useful exercise. Often I think he would realize the absurdity of certain questions when it would take him 20-30 minutes to complete.
* He reads feedback and there was an adjustment to the pace of the class which at first was going a mile a minute for no reason.

Workload:

9 homeworks
1 midterm, 1 final
20% reduction in the lowest scoring item

May 12, 2013

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

I have no idea how the previous CULPA reviews gave Professor Rubenstein such good evaluations. Lecture notes were riddled with errors, as were homeworks and homework solutions. Lectures themselves were very hard to pay attention to due to the multitude of conflicting information conveyed to us (Prof. Rubenstein had to correct himself and the slides during pretty much every lecture). He wrote on the board for maybe two classes, and those were probably the classes that I actually learned the most.

Homeworks are very repetitive and students often dreaded doing them because the questions were updated with corrected versions; we still only had one week to do them, so more often then not, I chose to start later in the week waiting for all the corrections to come out.

Also he is very terrible at answering emails (I put 3827 in the subject line of all of my emails!). Sometimes questions to homeworks would be answered after the homeworks were due.

He has very strict extension policies. A couple of my friends just got 0s on their homeworks because they were sick/absent/had religious reasons for missing the deadline.

All in all, I don't feel like Prof. Rubenstein's teaching was effective, at least for me. But during the times I went to office hours, he was helpful.

It seems to me that in general, he gives no shits about his students.

He also said he reads CULPA reviews so I guess this is my honest opinion.

Workload:

1 problem set a week; each take a lot longer than you expect (40%)
1 midterm (35%)
1 final (45%)

Totals to 120% but he reduces your lowest category by 20%.

January 06, 2012

Edwards, Stephen Silver_nugget
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Prof. Edwards' sense of humor is really quirky. As the reviewers below noted, it could be quirky to the point of being a little bit embarrassing.

However, I fundamentally disagree that his humor took away from his teaching. He is by no means a perfect lecturer. He isn't charismatic like Gulati, thorough like Vallencourt, nor approachable like Blaer. However, he still kept the lectures interesting and got the material through to the students. It definitely could be that PLT (which the reviewers below took) and fundamentals are fundamentally different in difficulty. However, if you see yourself having to take Fundamentals with Prof. Edwards, I would say go for it, but be ready for a barrage of quirky humor from your first day.

Workload:

6 Problem sets, Midterm, Final

May 18, 2011

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

This class is basically two classes combined into one. The first half covers digital design and the second covers computer architecture involving learning elementary programming in MIPS assembly.

The Good:
Martha Kim is friendly, approachable and helpful. She willingly answers questions in class and for the most part she answers them well - especially when it comes to the computer architecture, she knows her stuff well. She teaches from slides, and what's in the slides is pretty much what you're going to be expected to know for the class. The slides are easy to read and understand and have intuitive diagrams. A lot of the pictures are taken from the textbook. I found the course material interesting and valuable.

What was wanting:
The lectures were mostly very boring. She spent a lot of time explaining trivial things that we could have understood better and more quickly by glancing over the slides on our own time. Most of the lecture was spent in teaching relatively straightforward concepts but almost no time was spent teaching us to apply them. In other words we did almost no real problems-solving or "thinking" in class. Any examples covered, were for the most part trivial ones. As a result, there was a gap between the lectures and homeworks and an even bigger one between the lectures and the exams. The lectures certainly prepared us very poorly for the midterm on which the mean was a 52 and which was so long that almost no one actually finished.

6 homeworks in the semester, one assigned every two weeks, about 4 questions per homework. Given that we had two weeks between hwks, it was really very little work. I spent an average of 4-5 hours on each assignment, only about 2 of the questions out of 4 actually required thinking, although these ones could be tricky. The problem was that we didn't have enough of these questions and didn't have enough homeworks so when the midterm rolled around, we got killed.

The final was non-cumulative and included everything from after the midterm. It was about the same length as the midterm but we had double the time so it was manageable. The mean was 63 - I got a 92. I recommend reading the slides and textbook very carefully. You need to have a complete understanding of the single-cycle and pipelined processors - especially the pipelined one and also get some practice coding in assembly.

Workload:

See above. 6 hwks, lowest score dropped (40%). Midterm (30%). Final (30%). Class curved to a B+ she said (and thankfully so).

May 14, 2011

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Like the person before me said, Martha is an incredibly nice professor. The course was well laid out with clear lecture slides that were all posted online before the class. That being said, if you miss a class (or a few) it's not too big a deal, but make sure that you go back and listen closely to the next lectures that expand on those topics because it can be easy to fall behind. Personally, on a few of the homeworks, it took me a little bit to understand what the questions were asking, but a quick conference with a friend uncovered that they were a lot simpler than what I was expecting. And if for some reason a concept doesn't stick, she drops your lowest grade. I would definitely recommend Prof. Kim optimistically to anyone who has to take fundamentals. This isn't a class to worry about and should interest people of all areas of study in CompSci, EE, and CompE with at least one topic.

Workload:

6 homeworks worth 40% and a midterm and final worth 30%

December 16, 2010

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

This is the first review I've ever written on culpa, but I have to say prof Rubenstein is the best professor I've ever had. I was initially hesitant to take this course because I was scared of the course material(circuits! circuits! and more circuits!), but professor Rubenstein presents does an amazing job of explaining things and his lectures are actually enjoyable. I, too, was somewhat worried after reading the old reviews, but now that I've taken a course with him, I know for a fact that those are not an accurate description of him. (Maybe his evil twin brother as someone suggested...) If you need to/want to take Fundamentals, by all means, take it with him.

He makes great lecture slides(that are actually better than the textbooks) and post them on the courseworks ahead of time. Some students just read over the lecture notes and do not attend the lectures, but I suggest not to do it because 1. the lecture notes are quite condense and hard to understand without the aid of lectures (at least for me) and 2. it's one of the few classes where lectures are golden. His lectures are very interactive and he makes it obvious that he's enthusiastic about teaching (which can only help the students). Although the pacing can be somewhat fast at times, if a student asks a question, he'll slow down and explain to make sure the student understands the material.

There's about one homework per each week (9 HW total). Homeworks are reasonable, but can be tough. It depends on how much background knowledge you have (If you're good at circuits, you'll breeze through the first half of the course). Start at least 3 days before it's due and go to the office hr if you're having a hard time. His tests are open book/open note, but since he asks design questions, you have to have a solid understanding of the material. There's no surprise questions and he won't try to trick you, but will test you how much you understand the core of the material. Take HW problems seriously, as they will help you tremendously.

Office hrs literally saved me. This is the only course I attended office hrs on the regular basis. You come in with a question, and you will walk out with a full understanding of the material. If you have a schedule conflict with regular office hr, don't hesitate to email him and make an appointment. He truly cares about his students, and he'll make time for you. In fact, I never went to his regular office hr as I had another class during the time, but I never had a problem getting help whenever I needed. I got the questions that would take me 10 hrs to understand answered in 20 minutes.

He's approachable, funny, enthusiastic, and truly cares about the students.
Take this course with him if you can, and you won't regret it. Interesting course material taught by a great instructor, what more to ask?

Workload:

9 problem sets (1 HW per 1~2 weeks)
1 midterm
1 final

Could be challenging, but worth every effort!

May 10, 2010

Kim, Martha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Martha is one of the nicest professors I have met here. She takes the time to try to help out students, wants to know their names, and tries really hard to be available. That being said, she is a new professor to Columbia, and it shows. Homework lengths varied greatly, and she often seemed surprised that things took as long as they did. She corrects herself in class so many times that it is hard to know what the conclusion is when she is finished. The midterm exam, for example, arrived nearly 20 minutes late since there was an issue with the printer. Why not print it out the day before? The average on the midterm was a 50%, and she seemed happy with that (I think it was higher than last year's). Hopefully with some more experience some of these rough edges will go away, as she has a lot of potential. A friend who took this class both with her and Rubinstein said that it is definitely better to take it with her.

Workload:

6 HWs (40%), of varying time requirements and difficulty with the lowest score dropped. One midterm (30%) and a final (30%) which is non-cumulative. Exams are open book, but that doesn't mean that they are easy.

March 07, 2010

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Professor Rubenstein was great. I think it's unfortunate that he received such bad reviews in the past, but it's clear that he's taken the feedback and changed his style of teaching - he frequently stopped and checked in with the class to see if everything was comprehensible (and it almost always was). He also did a fantastic job of scheduling the course, and he made sure there were days that existed only for review before tests.

He also is extremely helpful during office hours, although you probably won't need to go. The course is a strange combination of both fascinating and quite simple, conceptually. Most people will be learning a completely new facet of computing, but Prof Rubenstein made it both easy to understand and interesting. He takes a very bottom-up approach; you'll start with binary math, then boolean logic and gates, then designing logic circuitry, then ALUs, registers and eventually basic processors. It's a really cool course.

Also, Dan is just the man.

Workload:

Totally doable homeworks once every two weeks. Took around 2 hours each, but there is a strict no-extension policy. Very doable midterm (a few got 100's) and final.

January 03, 2010

Sethumadhavan, Simha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Simha is the worse professor I've had at Columbia. He gaves way too much work; the work from his class was more than the work from all my other courses combined. He doesn't seem to understand what a reasonable amount of work is.

His lectures are extremely boring and hard to follow. The assignments and tests are poorly written and are ambiguous making the already difficult work even harder.

As a person he's kind of a nice guy. However as a professor he seems to think that students have no other commitments beyond his class.

Overall, avoid this professor at all costs.

Workload:

extremely heavy

December 24, 2009

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Overall, I think Daniel Rubenstein was an excellent professor. Specifically, the majority of his lectures were extraordinarily clear. He had well prepared slides for every class, often with plenty of well-chosen images from the textbooks, and spent most of the class time describing what was happening in the pictures. One of his greatest strengths was being able to clearly and succinctly describe and give insight into the functioning of a circuit or architecture. He was also unusually receptive to questions during class. By and large, the students asked thoughtful and helpful questions, and as a result, he was able to clarify almost all subtleties and potential pitfalls in the material. The lectures seemed all the more engaging and participatory as a result as well.

All this praise aside, I can how see professor Rubenstein may not be a good fit for every student. Specifically, to get the most out of this course, it is best to take a very active approach. I agree with a previous reviewer that "it's best to ask a lot of questions and make sure to make it your responsibility to clarify all the material that is taught." As I mentioned above, one of the reasons that the professor was able to make the material so clear was that students asked questions whenever something was less than one hundred percent clear.

As for the course as a whole, it felt like a gradually unfolding adventure/mystery story. We took a thoroughly bottom-up approach, and starting from the absolute basics of binary logic, gradually added new layers of abstraction until we had essentially designed a computer out of nothing. I was always on the edge of my seat waiting to see how all the ideas we looked at unfolded and built on each other to eventually construct such an amazing machine. Some of the ideas we covered, such as latches and flip-flops, are so utterly brilliant that I think it is somewhat of a shame that we never considered the engineers and inventors who were responsible for them. More generally, I think the ideas we covered in the class could have put into a richer historical context.

Workload:

My one complaint about the course was the appropriateness of the homework. The workload was relatively light, but the problems themselves could have been more interesting overall. A lot of the homework time was spent either doing tedious computations (multiplying numbers in floating point comes to mind), or delving into an annoying level of detail, such as describing what effect a small design change would have on dozens of instructions which were not all listed in the same place. He seemed to save the best questions for the two exams, both of which were fun as well as fair.

December 23, 2009

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

It would appear that Prof. Rubenstein's evil twin taught this class last semester. Don't worry -- the real Dan is back. His slides are gorgeous, his lectures are unfailingly clear, and he's eager to help out outside of class.

Apparently he's used to teaching by drawing everything on the blackboard, but he had rotator cuff surgery early in the semester and had to do everything via PowerPoint to avoid damaging the muscles. Surprisingly, I think this turned out to be a good thing. Once you get into some of the scarier-looking circuitry, I imagine that it's easy to make make mistakes drawing, and I'm certain that it takes forever. This way, we got straight to (relatively) error-free drawings and spent time talking about the big picture instead of worrying about which wires cross.

This is also one of those rare classes where the material is interesting without being difficult. Five or six people in the class got perfect scores on the midterm, and I suspect a similar number aced the final. I don't think it's that Rubenstein makes the tests too easy -- this is just really straightforward stuff.

The few complaints I have are relatively minor. I think he was still a little sensitive about the last time he taught this course (with reviews like those, who wouldn't be?) and made a point of stopping to make sure everybody was following. This was nice, but the endless refrain of "are you with me? Raise your hand if you understand" got a little irritating by the end of the semester. He also seemed to get a little bit confused by some of his own notes about pipelined architectures, but everything worked out in the end.

In short, don't be scared off by any review written before 2009. This is a good class with a good instructor, and I would wholeheartedly recommend Prof. Rubenstein for Fundamentals.

A side note:
The class nominally requires two textbooks. You can get by without buying either, but your life will be a little easier if you get Patterson and Hennesy. Don't bother with Mano and Kime -- it's almost completely useless.

Workload:

Weekly problem sets, ranging from easy and quick to easy and mind-numbingly tedious. You'll get really good at binary arithmetic.

December 20, 2008

Rubenstein, Daniel
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

The professor is not very good. He is not really clear during class, but is very willing to help you understand the material. It's best to ask a lot of questions and make sure to make it your responsibility to clarify all the material that is taught, because you can't expect that of this instructor. He really wants to make you understand, but because he is not very clear at it, it might be harder if you don't show you don't understand and don't ask questions. So, use office hours, study from the books often, and make sure you get everything clarified.

Also, he is very poor on expressing himself. On the final exam, one problem had a mistake in it because it was worded too awkwardly and ended up contradicting itself. This ended up being a big problem because we couldn't do much of the problem until the question was clarified. I ended up kinda guessing what he meant to ask. Also, the really bad part was that this was 1 out of 5 problems, and the next 2 problems built up on the one that had the error. Generally, very unclear demands.

Unfortunately, if you want to major in CS or EE, you probably have to take this class, so you don't get much choice. But make sure you go in prepared to face a lack of clarity. So make it your responsibility to clarify everything. You will get help, but need to ask for it, because chances are information won't come to you in a organized format at first.

Workload:

Homeworks every week. Midterm and final.

April 20, 2008

Sethumadhavan, Simha
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Professor Sethumadhavan genuinely has a passion for the subject and makes an effort to teach. However, his teaching method is not too effective; he comes in with powerpoint slides, but unless we've read the book thoroughly prior to the lecture, it's very difficult to keep up. Sometimes, he'll realize that he made a bad lecture, and he'll come to the next lecture being a lot more prepared.

I have to give him an A for effort. He makes some joke in class, which weren't funny, but at least it shows that he tries to lighten up the mood. He also makes an effort to remember your name. This is his first time teaching in Columbia, so hopefully, by the time he teaches this class again, he'll be better prepared and teach a lot better.

The textbook for the first half of the class (Brown and Vranesic, Fundamentals of Digital Logic with VHDL Design, McGraw Hill Publishers, Second Edition) was very poorly written (it refers to examples that require the reader to flip back ~10 pages), but the one for the second half (Patterson and Hennessy Computer Organization and Design: The Hardware/Software Interface, Elsevier, Third Edition) was much more well written.

Workload:

9 homework assignments, difficulty varies greatly, way too much (~10 hours, if not more) for some weeks, and very short for others; one very hard midterm (he claims that it should be okay for us because it took his TAs 1 hr 5 mins to do the midterm); and one final

May 08, 2006

Burnside, Matthew
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

Dude's a grad student, but he's not bad. Very, very straightforward, powerpoint slides and very little flexibility, but a pretty nice guy who teaches the material well. Never saw him once out of class, even if I wanted to -- of course, I didn't, so it was OK.

You're only taking this class because it's required, but he's an okay guy and not a bad teacher.

Workload:

A little tough -- homeworks aren't too long, but are sometimes hard, exams are pretty average. Two textbooks, one of which is almost entirely useless.

January 02, 2005

Unger, Stephen
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

I disagree with most of the previous reviews -- Professor Unger is a wonderful professor, take his course (well, its required, but at least be happy about it).

That being said, the course is difficult, and Prof. Unger inflates his grades somewhat less than we Columbia students are used to. The problem sets can sometimes be difficult, but they are all doable if you have paid attention in class. CLASS ATTENDANCE IS NECESSARY -- Prof. Unger wrote the digital logic textbook, and it is completely incomprehensible. But he goes over the same material in class, with the same examples (hey, he wrote them), and when lecturing, is lucid. He has a habit of mishearing questions, and then answering them, but if you persevere, he has the patience to clear things up for you. He can also be a bit absentminded when assigning problemsets, so if a problem looks wrong, email him about it, because it might well be. But he's prompt at responding, and very reasonable.

Workload:

Weekly problem sets that are sometimes quite difficult (and even when not, always time consuming), but these account for only 15% of the grade.

One midterm, one final. Both tests are much easier than the homeworks, testing only the basic basic stuff. Don't screw up the final though, it is 60% (this term he made it 70%) of your grade.

December 25, 2004

Unger, Stephen
[CSEE W3827] Fundamentals of Computer Systems

Please keep in mind that this review is more than 5 years old.

This is a new class opened by the CSEE department and Prof. Unger is teaching it for the first time. It basically combines Digital Logic and Comp Org into one class. So the content is much more condensed and not as detailed as either of those 2 classes it intends to replace.

Prof. Unger uses his own textbook for the first half of the class (digital logic), and someone else's textbook for the second half (comp org). I must say, the first half is significantly easier than the second half, however, the midterm (which covers the first half) has a lot of detailed questions that require thorough understanding of the material. While the final (focusing on the second half) has mostly conceptual questions that only require a superficial understanding of the material, simply because the second half's material is much more difficult and he cannot go into much details.

As for Prof. Unger, his lectures are much more understandable and lucid when covering digital logic topics. When it comes to comp org, his lectures become rambling and explanations become difficult to understand. The homework sets after the midterm also become much more difficult. So be prepared to do a lot of your own reading on the second half of the semester.

As for tests, they are not as difficult as the homework questions, but questions still require significant thinking. But if you do all the homework questions by yourself and understand the solutions for the ones you cannot do, you should be fine on the tests.

Workload:

1 weekly problem set ( 7 questions on average, a lot more difficult questions on comp org topics, do not expect to be able to do all of them)
1 midterm, 1 final. Final is like 65-70% of your grade and focuses on the second half of the semester. Not an easy A by any means, must put in hardwork.

Directory Data

Dept/Subj Directory Course Professor Year Semester Time Section
COMS / CSEE COMS CSEE W3827: Fundamentals of Computer Systs Stephen Edwards, Martha Kim 2012 Fall TR / 10:10-11:25 AM 1
COMS / CSEE COMS CSEE W3827: Fundamentals of Computer Systs Stephen Edwards, Martha Kim 2012 Spring MW / 1:10- 2:25 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentls of Comp Systs: Fundamentals of Computer Systs Daniel Rubenstein 2010 Fall TR / 11:00-12:15 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentls of Comp Systs: Fundamentals of Computer Systs Daniel Rubenstein 2009 Fall TR / 11:00-12:15 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentls of Comp Systs: Fundamentals of Computer Systs Daniel Rubenstein 2008 Fall MW / 2:40- 3:55 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentals of Computer Systs Daniel Rubenstein 2007 Fall MW / 2:40- 3:55 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentals of Computer Systs Peter Belhumeur 2007 Spring TR / 2:40- 3:55 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentals of Computer Systs Prabhakar Kudva 2006 Fall MW / 4:10- 5:25 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentals of Computer Systs Stephen Unger 2005 Spring TR / 2:40- 3:55 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentals of Computer Systs Peter Belhumeur 2005 Fall TR / 2:40- 3:55 PM 1
COMS / CSEE COMS CSEE W3827: Fundamentals of Computer Systs Stephen Unger 2004 Fall TR / 2:40- 3:55 PM 1