Roboforbes

Donald Ferguson

Computer Science · Columbia University

Courses Donald Ferguson teaches

What students said

COMS W4111 · Spring 2026 · 4/5

He's very nice. I learned very little. The course is a bit disorganized (we were still getting info on how many assignments and exams there would be until the last week or so of classes) but he does allow you to attend over Zoom which was like a dream to me. First two exams were asynchronous online. I had a lot of issues with the online proctoring software and the final ended up being in person, so I'm guessing exams will be in person going forward. You can bring as much printed material as you desire to the exam, which was brilliant because I knew nothing and still scored highly. He openly encourages using AI to complete assignments and do various coding tasks (which is great if you're lazy but doesn't do much for retention). I underwent a massive depressive episode this semester which resulted in my raw score being a failing grade, but he graciously gave me an undeserved C, and for that I am obliged to rate him four stars.

COM S6998 · Spring 2026 · 1/5

This is the worst class I have taken, not only at Columbia but in my entire academic career as a master’s student. The professor failed to show up for approximately one third of the scheduled lectures. As a result, there were only seven lectures in the entire semester. Of those, about half consisted of student presentations, and the remaining lectures involved the professor monotonously reading from poorly prepared slides, with little engagement or explanation. The course assignments were extremely disorganized. There was no clear structure, unclear expectations, and deadlines were often not communicated in advance. Students were left anxious and unable to plan their workload, as new and sometimes arbitrary requirements could be introduced at any moment, often coinciding with multiple deadlines from other courses. The expectations for the final project were not communicated until one week before the deadline, during the peak of the final exam period. This lack of planning and transparency made it very difficult to produce meaningful work. When students asked questions, the professor was often rude or dismissive. Teaching assistants also frequently canceled office hours without notice, further reinforcing the impression that neither the instructional staff nor the course leadership cared about student learning. The course material itself was weak, and for most tasks no examples…

COMS E6156 · Spring 2024 · 1/5

Simply put, this class is a mess, but I suppose that's expected when you're stuck with Prof. Ferguson. I took Databases with him earlier and had an idea of what to expect, but even then I was disappointed. The lectures are a miserable mix of death by PowerPoint and watching Ferguson try to debug his demos live. Several classes were canceled this semester due to Ferguson traveling for his other job, and there weren't any makeup opportunities besides his spontaneous office hour sessions. As such, I don't think this course was worth the tuition. Aside from the subpar teaching quality, the teaching staff is abysmal. It was common to have 20-30 questions on Ed go unanswered for days. This was an unnecessary cause of stress right before sprint deadlines, especially since the office hour schedule was never consistent either. If you're used to Ferguson's antics from another one of his classes like Databases and/or you want an easy A/A+ for a 6000-level course, then by all means take Cloud Computing with him. But be warned that you won't learn a thing by the end of the semester.

ENGI E1006 · Summer 2018 · 3/5

I honestly have the world of respect for Professor Ferguson. There were times in the semester that I was complaining a lot about this class. As someone who had never taken programming or computer science before, I walked in and I was immediately extremely confused. I went to the lectures, but I felt like they might as well be in French. However, Professor Ferguson realized that there was something wrong with this class. He asked for a lot of our feedback and drastically restructured how he taught later in the semester. Now, don't get me wrong, it wasn't perfect. But the fact of the matter is that he went through a world of effort to make the class better for his students. There was also some confusion pertaining to assignments, but I think that will be refined over time. Also, his office hours were incredibly helpful. He would make extra office hours in the weekend to help students. Again, with zero programming experience, this was key for my success in this class. The extra credit opportunities were also really helpful. Sure, he has his sassy moments, but I think he has a lot of respect for his students and a high commitment to the class.

COMS W4111 · Fall 2025 · 1/5

I knew this class was going to be different than my other CS class due to the 2hrs Friday classes but I nothing prepare for how horribly organized this class is. If you are someone who needs structure please, please avoid this class at all cost, nothing is set, deadline and lectures changes at random. The professor get rude and start being very passive aggressive at people for asking questions because he had contradicting instructions. Homework were extremely easy, to the point they do not prepare for you exam materials because you just control f on the slides for the right answer. Horrendous experience :(

COM S6998 · Fall 2023 · 1/5

The experience I've had with this professor and this class is the most horrible one I had during my 4 year undergrad and 2 year master program at Columbia. He doesn't care about students at all. To sum it, please avoid him! I don't suggest you taking any of his classes! The structure of the class is a mess. Professor often does it online and rarely comes to the classroom. He sometimes missed lectures and just uploaded a short videos summarizing the contents of the lecture. His OH doesn't have a set time. You never know what his OH is this week. Thus, you have to closely monitor each chatroom(ED, slack, email, etc) and be prepared that he opens his OH anytime. You don't have link to his OH and needs to wait for him to post it. The most horrible thing is he fails student out of his personal reason and no discussion. I have never met any Professor like this that fails student so easily. During the group project period, we had unhappy conversation with our team mate. The Prof was not happy. He sent out an email in the morning like 5am threatening to fail our team. I replied to his email and explained the situation. In the end, he only replied me "you fail." without any further reply. This is a serious academic misconduct and caused so much emotional damage. People who does this kind of thing should not be appointed as Professor because he fails morally. He doesn't care about stude…

COMS E6156 · Spring 2024

Next to nothing until the monthly sprint deadlines creep up. Ferguson will have a list of tasks for each team to complete for each sprint. However, he insists that the entire grade is based on the final submission, not the intermediary sprints. It's in your best interest to finish as many of these tasks as the semester progresses unless you're willing to grind out the whole thing at the end.

ENGI E1006 · Spring 2018 · 4/5

Professor Ferguson is the kindest professor I have ever had at Columbia. He is on a mission to singlehandedly take stress culture out of the computer science department. Take his classes. Go to his office hours. Be his friend. He will be there for you, and his first concern is always your well-being.

COMS W4111 · Summer 2025 · 5/5

I thoroughly enjoyed the class. Dr. Ferguson is interesting and hilarious throughout, making snide comments at students with dumb questions in between some light academic faire about how databases work and how there's a "database algebra", an algebra someone invented that is somehow easier than regular middle school algebra. I highly recommend the course for anyone trying to juice their GPA with a totally achievable A+

COM S6998 · Spring 2017 · 4/5

One of the few classes in Columbia where you will learn some real software development. Don is an excellent professor. The course structure is loosely defined and there are no guidelines that he follows. In spite of this, he dives deep into anything that students gain curiosity on. He teaches the course to make students learn and not just slog for grades. Therefore this course is a sure shot 'A' unless you really mess it up.

Other Computer Science professors

Plan your semester on Roboforbes — free