Computer Science · Columbia University
eh not bad, some assignments were kinda time consuming, but they were all quite rewarding. 6-7 assignments in total, one every two weeks. There was also a written final exam.
I liked Hadi, he was a very kind professor. I also liked how everyone else in the class was quite passionate about the subject. Coding assignments were fun, some were harder than others, taking from 5 to 30 hours depending on which one... I also liked how the final exam was only 20%. Overall, highly recommend this class for being one of my favorite cs classes I've taken so far, I really learned a lot about graphics
Grading is 80% HW and 20% Final. There were 7 assignments on the syllabus, but we only completed 6 as the Professor kept extending the deadlines. They passed our HWs through their own test cases, but we are also supplied with what the final output should look like. So, if your output resembles the correct output, you most likely will get an A on the HW assignments. The only A that I didn't get was HW6 bc I started really late on it. EdStem is your BEST friend, a lot of the students helped each other out on there, the TAs didn't respond as much on EdStem towards the end of the semester though. If you're a procrastinator, you could definitely pull a weekend of all nighters doing this HW. I spend 3 straight days working on building a sphere (I slept though). No midterm, one Final. The professor says it is an easy final, but the average was a 65% so I would study. I received all As and one C on the HWs, and received a 75% on the final exam. My final grade was an A-
I am pretty content with the way this course was taught. Professor Hadi and his TAs are very understanding when it comes to assignments. Extensions are given out when asked, and a lot of the times Professor Hadi would extend homework deadlines to make sure that we had enough time to actually learn the material. As the other review mentioned, you learn about ray tracing and pipeline rendering with OpenGL. Lectures are standard PowerPoints that can be a bit boring as the lecture was from 7-8PM. I stopped attending lectures midway through the semester. The first 5 codio assignments are building a ray tracer, starting with a basic one and then adding enhancements like shadows and reflections. The last homework was on pipeline rendering, and to be honest I was carried by a friend for this assignment as my other courses started to ramp up their work. By the end of the semester, I feel like I know the basic steps of how ray tracing works. My pipeline rendering knowledge is a little shaky though. I would encourage anyone who is thinking about taking this course to not take it with heavier courses like FUNDIES and CST like I did...if you do, take it with friends who have lighter courses and can help you with the work. I did not attend a single OH for this course as HWs 1-4 can be solved easily with the textbook's and PowerPoint's pseudocode. Start early on HW5 and HW6!!!
8-30 hours per homework assignment, the last hws took such a long time
This class honestly made me really sad. I was really excited to take graphics as I have an interest in the subject but the class is just so poorly organized. Professor Fadaifard is super nice and approachable, but his lectures are painfully boring and slow where he just reads off of his incomprehensible slides, which have code errors in them sometimes. The first slideshow said there was a strict deadline policy with points deducted for every late day, but every homework deadline was extended multiple days on the day of the original deadline. We have had no information about what our final exam is going to look like. I feel like I haven't learned very much in this class which has made me pretty sad because I was looking forward to it. The only cool part about the course was the homework assignments and the TA's who were all nice, but disappeared on ed when the deadlines approached.
The workload is pretty heavy. You will be given a couple of weeks to do each assignment, but you need to start them early, and many students required time extensions on a lot of the assignments. The grade is based almost exclusively on these coding assignments (80%) and getting them working correctly.
Hadi is a decent lecturer and knows his stuff, having worked for a major film studio. He makes sure he covers everything in great detail for the recorded lectures, even though only a handful of students were showing up to the class (it was taught late in the evening). You will learn how to build an image renderer from scratch using ray tracing in the first 5 homeworks, starting with simple shapes (triangles and spheres), moving on to shadows and reflections, and finally textures and meshes. The fifth homework assignment is the longest and most difficult, as it involves implementing multiple different concepts: Texture mapping, triangle meshes, antialiasing, BVH nodes to speed up rendering time. A lot of the skeleton code has been completed, and usually the professor has given you some pseudocode in the lecture slides to be able to implement the rest, but there are quite a few things that are unstated and you will need to do some research on your own to be able to complete the assignments. I found that the discussions on EdStem were very helpful in being able to complete the assignments, as students usually ran into the same problems and would share solutions to them, but you can’t really rely on this as the forum was not very active except around the time when assignments were due and you will need to get a head start on most of them to complete them in time. The final homewor…
5 Ray Tracer assignments 1 Bonus Ray Tracer assignement 1 OpenGL assignment 1 Final
I took this class in Fall 2022. This is a pretty tough course in terms of coding, but I came out loving the subject. There are two main things the prof teaches: Ray Tracing and OpenGL. The first set of homeworks makes you gradually build a ray tracer using C++, and the last one focuses on using OpenGL. I slacked off the first half of the class, and had to seriously pull up my socks in the middle of the semester to pass. The thing with the homeworks is that they build on the previous ones, so if you don't understand the previous ones, you're going to be in a lot of trouble for the future ones. So please try to be very dilligent from the very beginning otherwise you're going to have a seriously difficult time (and spend a lot of nights crying wondering if you're going to pass, like me). Going to TA office hours is not optional for this course. You will HAVE to go to them to be able to do the homeworks, because even if you understand overall concepts (which the professor does explain very well), there are a LOT of nitty gritty implementation details that are simply impossible to do unless someone shows you how. You don't even realize there are things you need to do unless they are pointed out. Unfortunately, I only realized this midway through the semester (which is when you're doing the most difficult homework, btw), and went to basically every OH then (IMMENSELY helpful, I cann…