Assignments and Resources


You MUST work individually in assignments 0,1,2 and 3.

For assignment 4, we strongly recommend you work in a group of 2 (both partners will receive the same score and your submission should list both partners; both need to submit for the official CSE 167 submission, but only one (same) link to feedback results on UCSD Online needs to be included). We will not require groups of two (however, the requirements will stay largely the same [thus providing strong encouragement to work in a group], but single-person groups need not implement an acceleration structure, and can receive 1-2 points of extra credit if they do so.) Note that many students have indicated that assignment 4 is the most difficult (and rewarding) of their UCSD CSE career, so we really highly recommend you work in a group of two.

In order to use our visual automatic feedback and grading systems, you will need to sign up for the course on UCSD Online. (We are using a site maintained only for the local CSE 167; this is referred to as a SPOC or small private online course). Please register for and start the course (the URL will be posted on piazza to limit registration to course participants). You can sign in using your UCSD credentials or create a new account on UCSD Online. The instructions for the written part of assignment 0 include providing us your UCSD Online username and e-mail in the README file you submit. Most assignments, with FAQs and detailed instructions, are on the UCSD Online site (the PDFs below only have a few additional details relevant to CSE 167, and the complete information for hw3 - curves, which is not on UCSD Online). Homeworks 1 and 2 are specified entirely on the UCSD Online site, with no additional instructions provided here, except for a brief discussion of the homework 2 milestone. The skeleton/framework code for assignments 0-3 is linked below. You may also be interested in the demo mytest OpenGL code used in class, available for Windows and Mac/Linux.

If you scroll past the assignments, this page also has some other useful information on raytracing resources and other miscellaneous hints. Far more material is found on the UCSD Online site, including detailed FAQs on each of the assignments, step by step guides by previous students, links to relevant tutorials, and example problems. I strongly encourage you to consult that site as well.

Specification Framework Code Due
Assignment 0 Windows   Mac/Linux   Due Jan 12
Assignment 1
(UCSD Online)
Windows   Mac/Linux   Due Jan 19
Assignment 2 Windows   Mac/Linux   Due Feb 9 (milestone due Mon Jan 31)
Assignment 3 Windows   Mac/Linux   Due Feb 23
Assignment 4 see UCSD Online; Simple Test Scenes Due Mar 15 Tue (milestone due Mar 4)

Assignment Submission

There are two parts to assignment submission: The UCSD Online process (for those assignments hosted on UCSD Online), and the official CSE 167 submission. The UCSD Online site hosts the homework instructions for most assignments, as well as automatic visual feedback systems for submitting code (where relevant in homeworks 1 and 2) and images (for the curves assignment in homework 3, we will host a separate submission site, for which details will be posted). UCSD Online also hosts a bunch of other useful optional material. For assignment 3, curves extra credit (only if you are doing extra credit), please submit on Canvas by the regular homework 3 deadline, as per the assignment specification. However, please still use Canvas to separately submit the regular assignment in any case.

For submitting the assignment, first submit your code and images to the relevant UCSD Online graders. You may do so as many times as you want, using the feedback from the system to improve your submission. Please be aware that an honor code applies here. You may submit only code and images that you yourself have written for the assignment. You may definitely not attempt to submit any malicious code or deliberately try to attack the graders in any way, or make any other effort to circumvent the normal functioning of the graders. We will be logging all submissions and will take action on any violations of this honor code policy. Once you submit code and images, please note down the link to the (full-resolution) grader feedback report (you need only keep the latest such feedback report). You will need this URL for the official CSE 167 submission below. Please allow ample time for this process given the time for the grader to return feedback, any grader crashes at the last minute etc. Please also note that the scores in UCSD Online are only dummy variables; we will assign scores and grades separately for CSE 167 based on our published scoring for each assignment, fairness, late penalties, inspecting your code and possibly running additional tests. If you do feel the UCSD Online score is particularly inappropriate/unfair, please note as much in your in-class submission so we make sure to take a careful look.

To complete the submission, please submit the following via Canvas. Specific instructions are also posted on the Canvas site. (Only) if Canvas submission fails for some reason, please e-mail this information to the TAs. The relevant information is as follows:
(1) your name (and your partner's name if appropriate for homework 4 only), (2) Your UCSD Online username and e-mail used, (3) The URL to the code-grader (if code is being graded for this assignment) images at full resolution on UCSD Online (or standalone if the assignment isn't hosted on UCSD Online), (4) The URL to the image-grader URL for full-res images on UCSD Online (for assignments where these are available), (5) For homeworks 1-3, your source code files that you have modified (and tested on the code-grader), (6) A zip of your entire source code directory (please include a README with platform and any specific compilation instructions; you may include executables etc. in this directory), and (7) Any special comments, issues or points in grading or generally about the assignment you want to convey. Please make sure to include all of the above information; we may penalize you points if some parts are omitted. The specific pieces of information and components to upload are specified for each assignment on Canvas. Please allow ample time for this; your timestamp on the submission (or e-mail if Canvas submission does not work) may determine the late penalty if relevant. If you anticipate your entire source code directory is too large to be submitted, please work with the TAs beforehand to develop a solution, such as using a private google drive link. On no account should you post your source code publicly, including public github repos.

Course Handouts

Note that I do not seem to be able to edit the course handouts on UCSD Online, so some of those may be out of date or have broken links. The links above all seem to be working.

Free OpenGL and Math Tutorials

The following is a set of online free tutorials and books compiled by former online student Sundar2000.

Ray Tracing Resources