Skip to main content
Course web for the Spring 2019 Computer Graphics Class

Author: Mike Gleicher

Graphics Beyond CS559

Many people ask things like: “I liked this class, what else can I do?”

Here are some ideas:

Other classes on related topics: Prof. Sifakis will be teaching a Physically-based animation class as a special topics class in the Fall (CS838) – undergrads may be allowed to enroll. I will be teaching Data Visualization (CS765) which is more about what pictures to make, than how to make them (again, some undergrads can take the class). The Computational Photography class (CS534) covers parts of “graphics” that we no longer cover in CS559. There will be a user experience design class (taught by Prof. Mutlu) in the Fall. Prof. Kevin Ponto teaches a Virtual Reality class, however, it is in Design Studies and doesn’t have lots of spaces for CS students. Sadly, we lack the staffing to offer CS679 (Games) or CS777 (Animation) in the near future. Ironically, if you plan to study graphics in graduate school (or get a job in the games, animation or effects industry) you may be best off taking classes on related topics (math, physics, computer architecture, HCI, algorithms, AI) now to have a better background for later.

You can help make the class better: I appreciate feedback on what you liked (and disliked) about the class, and your ideas as to what should and should not change. You hopefully did some of this on the course eval.

You can help with future offerings of the class: We will be hiring peer mentors next year. Contact me if you are interested. CS559 will be taught in both the Fall and Spring.

You can get involved in projects: The faculty working on visual computing related topics (me, Prof. Sifakis, Prof. Gupta, …) do work with undergrads on projects. Unfortunately, we often have more people interested than we can mentor.

You can do your own project: CS559 hopefully gave you a good foundation to build on. You can use this knowledge as the basis to learn about new tools. Doing a project “on your own” is a great kind of experience: it shows that you have a passion for the material. It says something that you care enough and have enough initiative to follow through on a project, rather than just do the things that a Professor tells you to do. One of the first things I always ask people is “what are the coolest projects you’ve done outside of class.” Fortunately, many of the best tools are available for free – either because they are open source (e.g. Blender animation system), made free to students (e.g. Autodesk software like Maya), and game Engines/Development environments (e.g. Unity and Unreal). Go make something cool!

You can do graphics beyond UW: You can study graphics in graduate school – either in regular CS programs, or specialized “professional programs” that aim to prepare people for graphics industry jobs. My advice on grad school page is a little old (last updated in 2016), and broken (the table of contents isn’t working), but still might be helpful. Getting a first job in graphics is notoriously challenging (companies usually want experience).

Your assignments after class

Short version: Please take some effort not to release assignments publicly. We will be removing the GitHub repos, so please keep a copy if you want.

Many of you made cool stuff over the course of the semester and want to show it to the world. These assignments can be useful as part of a portfolio. They are one of the few things that you do in a class that is fun to show to other people. You should (rightfully) be proud of what you’ve done.

And, because they are JavaScript, it is easy to share them with people via your personal web site, or GitHub pages.

However, because it is JavaScript, anyone and everyone can see the source code. Which means a student next year will have access to it. And we will give similar assignments next year. This is a conundrum.

I will not restrict you from posting your work on the open web – even though it contains a substantial amount of my work (both code and assignment design). However, I do ask your assistance in trying to make it harder for future students to use your work for their assignments.

Please do not post the workbook pages (with lots of text and small problems) to the web. There are pages that don’t have much extra stuff on them (like the GraphicsTown page for WB11/12, or the demo pages for WB7), these are OK. Or, you can take out the graphics parts (the canvas elements) and put them on new pages.

Please do not advertise them as workbook solutions, but give proper attribution to the class and framework code. So, please say something like “This project was created for the Computer Graphics class at the University of Wisconsin in Spring of 2019 and uses the class software framework” rather than “This is a solution to Workbook 7 for CS559”.

Future students will find your code if it is on the open web, I would appreciate it a little harder for them to use it directly.

Having old assignments available is actually good for the class – it is good advertising, and can inspire people. But please help me discourage people from just copying your hard work as their own.

About GitHub: We plan to delete the student repositories from GitHub. If you want to have a copy of your repositories, please make sure you have a local copy. This will happen at some point over the summer.

Final Grade Computations

In Canvas, there will be an assignment with your final course grade computation.

This is unofficial (your official grade is what the registrar reports).

Grades were computed exactly as described in the course information:

  • 65% assignments (dropping 2, adding bonus addition)
  • 35% exams (12% midterm, 18% final, 5% which ever is best)

We decided that everyone deserved a bonus point addition. We took the number of bonus points and divided by 40 and used this as the portion of the half-grade you got. So, if you got 20 bonus points over the course of the semester (with some limits as to not too many from particular categories), you had 1/4 grade added – enough to make an AB round up to an A. But, even if you had only a few bonus points, you got some addition.

In case you’re curious, the mean and median grade is an AB.

Final Grading Corrections

We have posted grades for WB11 and 12, as well as the bonus points.

Later this evening, we will post the (unofficial) grade computations.

If you see a problem, please make a private posting on Piazza before midnight tonight (Thursday, May 9).

Please include your WiscID, GithubID and full name (your name doesn’t always show up in Piazza)

We will make adjustments and post final grades tomorrow.

Final Exam Info

One person got 44/44 correct. Many people got 43/44 correct. The median was 32/44.

I didn’t want to make hard cutoffs for the grades (since 1 question could make a big difference), so your grade is continuous from F (0) – A (4). 3 is B (not 75%). The curve is such that the median is at the AB/B border (which would round to an AB ). It’s a piecewise linear function if you’re curious. The actual function is below.

The statistical analysis from testing and evaluation suggests that there are no problems.


  • 40 and above = A
  • 37 is 3.75 (which rounds to A)
  • 32 (median) is 3.35 (which rounds to AB)
  • 27 is 2.3 (which rounds to BC)

Answer keys:

If you want the actual curve, it’s:

zeroPoint = 16
topPoint = 40
midGrade = 3.35
midPoint = 32
def curve(score):
    if score>=midPoint:
        return (4-midGrade) * min(1,(score-midPoint)/(topPoint-midPoint)) + midGrade
        return max(0,(score-zeroPoint)/(midPoint-zeroPoint)) * midGrade

Project Deadline and Exams

As mentioned in class: if you have an exam on Sunday, we will give you an additional 12 hour extension to the Assignment 11/12 deadline. You may turn in your assignment any time before noon on Monday, May 6th without penalty. In your file please tell us which class had an exam on Sunday.

If you have an exam on Sunday, and an exam Monday morning, please send a private message on Piazza before class on Thursday, May 2nd.

Grading Errors

The grades for the first 10 assignments are posted to Canvas.

If you believe there is an error with grading on these, please post a private message on Piazza explaining why you think there is an error. Almost always, the TAs can resolve errors. If they cannot, they may ask you to come to their office hours to discuss.

If you think there is a grading error, please make a private Piazza posting before class time on Thursday, May 2nd. We need to resolve all assignment 1-10 grading issues by Friday, May 3rd.

Remember: assignment grades are on an A-F scale (so 3 is a B). Canvas gives you percentages – but these are meaningless. A 3 is a B, not 75%.

Also, remember that the lowest two assignment grades will be dropped, and that Assignments 11 and 12 will count as any other assignments.