COM SCI 174A
Introduction to Computer Graphics
Description: Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 32. Basic principles behind modern two- and three-dimensional computer graphics systems, including complete set of steps that modern graphics pipelines use to create realistic images in real time. How to position and manipulate objects in scene using geometric and camera transformations. How to create final image using perspective and orthographic transformations. Basics of modeling primitives such as polygonal models and implicit and parametric surfaces. Basic ideas behind color spaces, illumination models, shading, and texture mapping. Letter grading.
Units: 4.0
Units: 4.0
Most Helpful Review
The problem with this class is it is better suited for math majors than computer scientists. There is definetely more math involved than programming, and that's the stuff that's not on the course description. I mean we are computer scientists, not mathematicians. The amount of math we have to learn is staggering. Other than that, the first two projects were fun, the third a killer. It's only because the prof and ta don't help you enough, no matter how many times you badger them. It's tough stuff, but they don't set up enough groundwork. This class is more theory than praticality, and I would loved for the prof to show more practical stuff in lectures, which were entirely theory His exams are really hard...and the curve won't help cause there are always a few 30+ experienced programmers who are undergrads around... and btw, the lectures are really boring
The problem with this class is it is better suited for math majors than computer scientists. There is definetely more math involved than programming, and that's the stuff that's not on the course description. I mean we are computer scientists, not mathematicians. The amount of math we have to learn is staggering. Other than that, the first two projects were fun, the third a killer. It's only because the prof and ta don't help you enough, no matter how many times you badger them. It's tough stuff, but they don't set up enough groundwork. This class is more theory than praticality, and I would loved for the prof to show more practical stuff in lectures, which were entirely theory His exams are really hard...and the curve won't help cause there are always a few 30+ experienced programmers who are undergrads around... and btw, the lectures are really boring
AD
Most Helpful Review
Winter 2017 - Let me just start by saying that I loved this class and that Scott is a true homie. However, that does not mean this class is easy, even if it is an easy A. Let me also preface this with the fact that I had 0 graphics experience before this class. *** TL;DR: Easy to get an A, but not necessarily an easy class. Not a lot of projects, but projects can take a while depending on how good you are at graphics. Exams are easy. Final project is group project, so either take class with friends or hope the group you get in does their work. You don't need the textbook. Uses Piazza. *** Grading is broken down into 4 assignments, the final term project, and optional midterm and final exams. The class is graded on a point system, aka you need 950 for an A-, 1000 points to get an A, 1100 for an A+. The four assignments are worth a total of 350 points including 50 points of extra credit (so 300 points without EC). The final project was out of 600 points, and the midterm was 150 points. The final was 140 points. I believe in past quarters you only needed 900 or 950 to get an A, so it's a bit harder to get an A nowadays. *** The four assignments are broken down as follows: 0. A joke. Literally just make it run and you get a startling total of 0 points. Lol. 1. One of the harder assignments in the sense that you have no idea what you're doing (unless you have previous experience). Looking back, it was a pretty simple project, but at the time I was like wtf how do I render a cube idk man. Once you get "boilerplate" aka "hello world" up, it's smoother sailing from there. This was 100 pts w/ 30 pts EC. 2. Cool planet assignment. TA gave us template code that was useful and made the project much easier. 150 pts, no EC. 3. Simple texturing assignment. Easy. 50 pts, 20 pts EC. The reason it's easy to get an A is that if you do the assignments and do the exams, you will get the points. It's very clear whether or not you're going to get the points… either you implemented the requirement listed, or you didn't. If you don't do the assignments, then you're not going to get the points and you won't get the grade you want. Easy as that. Scott writes out the point values of each feature you have to implement, so it's really all on you to get the points you need. *** The midterm and final exams are "optional" in the sense that if you need the points, then take them and get those points. If you don't, don't. If you don't want an A, then you don't need to take the exams. Etc. etc. etc. The midterm was either a paper exam with short answers or a hackathon for up to 4 hours with the theme "data visualization". You could choose either option. The final was 40 MC, 3 points each with 20 pts EC. Both exams were open note. *** Scott's lectures are more theoretical, but his slides tell you everything you need to know for exams. Starting assignments with just his slides can be more challenging, but TAs in discussion show you some example code and help you get started. Most of the material can be found in the textbook, which is NOT required to get because there is no mandatory reading and it isn't really helpful for the assignments. Discussion is generally a bit of theory and then the TAs show how to implement some feature. Not critical, but helpful for the final project to get special topics implemented. *** The final project was 600 points, but there were EC points for most impressive and class favorite. Only the projects with the top 3 votes in each category got points, but I think it would have been better if for every vote, the team got like 10 EC points. The group project could be 3-5 people, and more people meant more features you were required to implement. Group members grade each other, too, but otherwise get the same score on the projects. It could basically be any project you want, but you have to submit a proposal to Scott to get confirmed as an acceptable project. *** I think the class was worth taking, and the final project is definitely something worthy of a resume (unless you don’t put any effort into it). Definitely cool to learn WebGL and once you know how, pretty easy to create something to stick into any website.
Winter 2017 - Let me just start by saying that I loved this class and that Scott is a true homie. However, that does not mean this class is easy, even if it is an easy A. Let me also preface this with the fact that I had 0 graphics experience before this class. *** TL;DR: Easy to get an A, but not necessarily an easy class. Not a lot of projects, but projects can take a while depending on how good you are at graphics. Exams are easy. Final project is group project, so either take class with friends or hope the group you get in does their work. You don't need the textbook. Uses Piazza. *** Grading is broken down into 4 assignments, the final term project, and optional midterm and final exams. The class is graded on a point system, aka you need 950 for an A-, 1000 points to get an A, 1100 for an A+. The four assignments are worth a total of 350 points including 50 points of extra credit (so 300 points without EC). The final project was out of 600 points, and the midterm was 150 points. The final was 140 points. I believe in past quarters you only needed 900 or 950 to get an A, so it's a bit harder to get an A nowadays. *** The four assignments are broken down as follows: 0. A joke. Literally just make it run and you get a startling total of 0 points. Lol. 1. One of the harder assignments in the sense that you have no idea what you're doing (unless you have previous experience). Looking back, it was a pretty simple project, but at the time I was like wtf how do I render a cube idk man. Once you get "boilerplate" aka "hello world" up, it's smoother sailing from there. This was 100 pts w/ 30 pts EC. 2. Cool planet assignment. TA gave us template code that was useful and made the project much easier. 150 pts, no EC. 3. Simple texturing assignment. Easy. 50 pts, 20 pts EC. The reason it's easy to get an A is that if you do the assignments and do the exams, you will get the points. It's very clear whether or not you're going to get the points… either you implemented the requirement listed, or you didn't. If you don't do the assignments, then you're not going to get the points and you won't get the grade you want. Easy as that. Scott writes out the point values of each feature you have to implement, so it's really all on you to get the points you need. *** The midterm and final exams are "optional" in the sense that if you need the points, then take them and get those points. If you don't, don't. If you don't want an A, then you don't need to take the exams. Etc. etc. etc. The midterm was either a paper exam with short answers or a hackathon for up to 4 hours with the theme "data visualization". You could choose either option. The final was 40 MC, 3 points each with 20 pts EC. Both exams were open note. *** Scott's lectures are more theoretical, but his slides tell you everything you need to know for exams. Starting assignments with just his slides can be more challenging, but TAs in discussion show you some example code and help you get started. Most of the material can be found in the textbook, which is NOT required to get because there is no mandatory reading and it isn't really helpful for the assignments. Discussion is generally a bit of theory and then the TAs show how to implement some feature. Not critical, but helpful for the final project to get special topics implemented. *** The final project was 600 points, but there were EC points for most impressive and class favorite. Only the projects with the top 3 votes in each category got points, but I think it would have been better if for every vote, the team got like 10 EC points. The group project could be 3-5 people, and more people meant more features you were required to implement. Group members grade each other, too, but otherwise get the same score on the projects. It could basically be any project you want, but you have to submit a proposal to Scott to get confirmed as an acceptable project. *** I think the class was worth taking, and the final project is definitely something worthy of a resume (unless you don’t put any effort into it). Definitely cool to learn WebGL and once you know how, pretty easy to create something to stick into any website.
Most Helpful Review
Fall 2020 - I thought this course provided a good introduction to computer graphics, though it was quite heavy on the conceptual side and less "practical" (don't expect to be working with modern graphical frameworks -- for the projects in the course, we had to use a simplified version of WebGL called tiny graphics for learning purposes). The projects were also cool but I ultimately didn't feel like I got a realistic sense of modern graphical programming. For course content, the first half involves reviewing basic linear algebra matrix transformations and an introduction to each step of the graphics rendering pipeline (how a 3D scene gets rendered to a 2D image). The early projects are really simple and can be done in a few hours, especially if you attend the discussion sections where the TAs basically give a mini walkthrough of each assignment. The second half covers a wide array of topics like object lighting, texture mapping, and ray tracing, which made me really appreciate the complexity of the work involved in this field. The professor is quite good at explaining the concepts in an easy to understand manner, and I was able to follow along his mathematical derivations without trouble even though I do not consider myself a math person by any means. It's clear he has had years of experience teaching this material because concepts are made intuitive through his explanations. Sometimes though he would go a bit fast (especially when we would start to fall behind) so the lecture recordings were great for those times. What's strange about this class is that the exams involve a lot of math computations (they're simple, but still there's a lot to remember) but there's little to no practice material made available. So you should definitely try to get a copy of the older exams to practice as the professor likes to reuse questions. Also, a large part of your grade and the work in the class is your group project, which is graded based on features and creativity, so make sure to choose teams wisely and spend time on it. Overall, not a bad class to take if you have any interest/curiosity in computer graphics. I can't speak for other professors in this course, but I definitely would recommend you taking it with Professor Law.
Fall 2020 - I thought this course provided a good introduction to computer graphics, though it was quite heavy on the conceptual side and less "practical" (don't expect to be working with modern graphical frameworks -- for the projects in the course, we had to use a simplified version of WebGL called tiny graphics for learning purposes). The projects were also cool but I ultimately didn't feel like I got a realistic sense of modern graphical programming. For course content, the first half involves reviewing basic linear algebra matrix transformations and an introduction to each step of the graphics rendering pipeline (how a 3D scene gets rendered to a 2D image). The early projects are really simple and can be done in a few hours, especially if you attend the discussion sections where the TAs basically give a mini walkthrough of each assignment. The second half covers a wide array of topics like object lighting, texture mapping, and ray tracing, which made me really appreciate the complexity of the work involved in this field. The professor is quite good at explaining the concepts in an easy to understand manner, and I was able to follow along his mathematical derivations without trouble even though I do not consider myself a math person by any means. It's clear he has had years of experience teaching this material because concepts are made intuitive through his explanations. Sometimes though he would go a bit fast (especially when we would start to fall behind) so the lecture recordings were great for those times. What's strange about this class is that the exams involve a lot of math computations (they're simple, but still there's a lot to remember) but there's little to no practice material made available. So you should definitely try to get a copy of the older exams to practice as the professor likes to reuse questions. Also, a large part of your grade and the work in the class is your group project, which is graded based on features and creativity, so make sure to choose teams wisely and spend time on it. Overall, not a bad class to take if you have any interest/curiosity in computer graphics. I can't speak for other professors in this course, but I definitely would recommend you taking it with Professor Law.
Most Helpful Review
So far, he's been pretty good. He's not the most interesting teacher, but he's also the only teacher I've noticed at UCLA that uses the correct notation (ie, Wikipedia's notation) for matrix operations, etc. Will add more later if he turns out to be terrible or something, but I like him so far.
So far, he's been pretty good. He's not the most interesting teacher, but he's also the only teacher I've noticed at UCLA that uses the correct notation (ie, Wikipedia's notation) for matrix operations, etc. Will add more later if he turns out to be terrible or something, but I like him so far.
AD
Most Helpful Review
Winter 2020 - The professor usually plays some animated shorts at the beginning of lecture which are pretty interesting. His lectures however are straight from the powerpoint and pretty dry. Our midterm was only 10 multiple choice questions so it was pretty stressful... for the most part the questions were easy and there was an extra credit question that is usually about WebGl. The final project was honestly pretty fun as you can create anything you want to display graphical elements and I had some OP teammates who made our project a lot better. The tiny graphics API that we use, however, is not user friendly and there is not much documentation on it so I'm honestly not sure if the things we learned when using it will be of much help. Shoutout to Yunqi Guo for being an awesome TA, he discussion sections really helped me understand the material more and he's really nice but a bit soft spoken.
Winter 2020 - The professor usually plays some animated shorts at the beginning of lecture which are pretty interesting. His lectures however are straight from the powerpoint and pretty dry. Our midterm was only 10 multiple choice questions so it was pretty stressful... for the most part the questions were easy and there was an extra credit question that is usually about WebGl. The final project was honestly pretty fun as you can create anything you want to display graphical elements and I had some OP teammates who made our project a lot better. The tiny graphics API that we use, however, is not user friendly and there is not much documentation on it so I'm honestly not sure if the things we learned when using it will be of much help. Shoutout to Yunqi Guo for being an awesome TA, he discussion sections really helped me understand the material more and he's really nice but a bit soft spoken.