Roboforbes

COMS W4115

Programming Languages and Translators · Computer Science

Modern programming languages and compiler design. Imperative, object-oriented, declarative, functional, and scripting languages. Language syntax, control structures, data types, procedures…

Who teaches COMS W4115

What students said

Baishakhi Ray · 2025 · 2025

~6 hrs a week on average. Terrible grading style, only about 3 things were graded before the final exam so you had no idea how you were doing. Not even sure how they graded the projects, because it seemed like everyone got 100% even though that shouldn't have happened, so that resulted in her curving the grades down: A = 97+ (~93rd percentile) A- = 93+ (~78 percentile) B+ =90+ (~70th percentile) B = 86+ (~40 percentile) B- = 80+ (~14 percentile) C+ = 72+ (~3.6 percentile) C = rest So basically, if you did average on the exams, you got between B- and B.

Stephen Edwards · 2021 · 2021

Positive things: - There is no doubt that Professor Edwards is very knowledgeable about his field and really cares about helping students who are reaching out to him and want to learn from him. - He holds 167468294 office hours a week, so take advantage of them. - He responds to emails in light speed. Areas of improvement: - If you're going to constantly run over the end of class time, you might as well ask the CS Department to make your class 2 hours long, so people have better expectations. Although that would require Edwards to deal with bureaucracy, which I'm pretty sure he won't bother with. It's much easier to fuck with student schedules for him, but it irritates the fuck out of every student. - Set a deadline for grading for your TAs, man. It's not that hard. - Please get TAs that actually know OCaml... Negative things inherent to the course: - Pick a good team or you'll get fucked. The project is monstrous and you can't do it alone. You need good teammates to decide on the project features together and implement them together. - I understand that Edwards tries to teach a lot, which is why we have individual assignments, midterm (normally, it was canceled this sem), final, a monster project, a ~250 page final paper on the project... but man, this is a lot of work. If you're not ready to put in the hours, don't take this class. - Docker and OCaml can be very frustrating,…

Vishal Misra · 2008 · 2008

2-3 Programming Assignments (Time Consuming), 4-5 Written HW (easy enough), midterm, final

Baishakhi Ray · 2025 · 2025

Avoid this professor at all costs, take with another professor if possible. Very unprepared professor, constantly had mistakes when teaching the class. The content was interesting, however it was just not taught very well. Very poorly written exams, with very poorly written rubrics. Sometimes there was no space given to write your solutions to the questions. No midterm/final practice exams. There was a midterm/final review but they were nothing like what was on the exam. We didn't recieve homework solutions (main homework) before the midterm, so it was really hard to study for. There's extra credit, but it doesn't make up for the curving of the grades down. The extra credit wasn't graded for the pop quizzes/ assignment until several weeks after the final exam.

Stephen Edwards · 2021 · 2021

Ok first I took this during a COVID semester. With that being said, I personally don't think Edwards taught. He kinda just read off his old slides and circled some things. I also think we spent way too long on the wrong material and then suddenly material in the middle-back half of the semester was essential to the final project. It was hard to start parts of the final project early since we didn't know a lot of the material needed to actually build our language.

Vishal Misra · 2008 · 2008

Overall a good class. Good programming assignments, some of the written hw questions can be vague. Class lectures were alright but were unfortunately scheduled to start at 9:10AM, so I missed most of them. Exams were not problematic if you knew your stuff, which you would if you could do the homework. On a side note, I was able to use this class to get quite a nice bit of experience doing multithreaded programming. That was pretty nice.

Baishakhi Ray · 2025 · 2025

3 assignments which felt like too little. Very little prep is given for exams. On average I spent about 5 hours a week on this class (outside of class)

Stephen Edwards · 2021 · 2021

Stephen Edwards is objectively an outstanding professor who made the online year a little better for me. I took both of his classes, and I thought he adopted to the online format very well (he makes great use of Zoom's chat feature for questions). He is incredibly organized, cares a lot about his classes and his students, and has some outstanding TAs (Ben Flin and Hans Montero were amazing). Not to mention, he is one of the only Professors in the CS department who actually tries to get to know undergraduates in his classes! I really appreciated this and feel like I actually know him now. Oh, and did I mention that Prof. Edwards is absolutely hilarious? I think the quotes above will suffice, but his slides have great memes, his Facebook might be the most entertaining of any Professor's, and he is incredibly witty. If you enjoyed Donald Ferguson's snarky humor, Professor Edwards is for you; if you have a thin skin, you might want to stay away, since he will absolutely sass you back. I, personally, think it is wonderful, and I think most people do as well. As for the actual classes, Parallel Functional Programming is an introduction to programming in Haskell. The first half is sequential Haskell and the second half is parallel Haskell. Haskell is nothing like other programming languages you have been exposed to (unless you have taken PLT and are used to OCaml), and it probably do…

Baishakhi Ray · 2025 · 2025

I liked the content of this class, and Professor Baishakhi is nice and approachable and her lectures are somewhat entertaining. However, she does not care about her students and does not know the content well at all. She made countless mistakes throughout the lectures that students would correct. She would take an agonizing amount of time going through content that was covered in required prerequisites. Her homework was fun and challenging but graded without feedback. And the final grade was curved down. She is a nice person but not a good professor. If you can, take this class with a different professor.

Stephen Edwards · 2021 · 2021

Great class. Some issues with the curriculum: we spent way too long on things like DFAs, NFAs, and regexes, which are covered pretty fully in CST, which is a prerequisite for this class, so that was a bit of a waste of time. We also spent a bit too long on covering code generation, which became repetitive, so we did have to rush a bit at the end. But codegen is really important for the project, so it shouldn't be ignored, but spending ~5 classes on MicroC codegen was a bit much. Edwards is a great lecturer. He's very funny and presents the material in a way that makes it very conducive to picking it up rapidly (or wickedly fast, as he would say). His lectures were actually a joy to go to. The best part of this class imo is the project, though. One of the most rewarding pieces of work I've done at Columbia. It really is a great synthesis of all the course material, and juts is a lot of fun to work on. Start work early, and work consistently. It will be a great time.

More Computer Science courses

Plan your semester on Roboforbes — free