All assignments must be turned in on the due date given; if your assignment is received after midnight (i.e., the next day), it is considered late. You are responsible for ensuring that all files are turned in on time, if a program is turned in late there is a penalty detailed online here.
Projects in this course, will be
- written in standard Java 8, using the OpenGL library, JOGL
- hosted in a GIT repository within the course's GitHub organization
Thus, you will not "submit" projects as in other CompSci classes. Instead, you will be graded on what is in the master
branch of the repository at end of the day the project is due. You are responsible for ensuring that all files are correctly pushed to the repository. We recommend you push your code to your repository on a regular basis (at least daily) to avoid excuses such as "my computer crashed".
Homeworks
Homeworks are individual, written, math exercises, on which you must work by yourself.
- Software Setup, due Tuesday, January 13
- Ray Tracing, due Thursday, January 15
- Hierarchy , due Monday, February 2
- Graphics Pipeline, due Sunday, March 1
- Final Project, due Thursday, April 9
Programming Projects
Programming projects may be done by individually or with a partner. For each group project, only one final program should be handed in.
- Ray Tracer, due Thursday, January 22
- Hierarchy , due Monday, February 8
- Flight Simulator and addendum, due Sunday, March 31
- Final Project
- Progress Demo, due Tuesday, April 21
- Final Demo, due Friday, May 1
Starter Code
Most assignments will include code to get you started. This may consist of completed classes that you will utilize but not modify or classes in which some methods have been completed and others are left for you to fill in. In either case, comments will clearly indicate which sections of the code you are expected to complete (they will be marked by the comment TODO
so you can search for or go to the section directly by using the Tasks
view within Eclipse).
All starter code will be given in your project code repository within the course's GitHub organization.
Files to Submit
You should submit only code, text, HTML, or PDF, and possibly image files (gif, jpeg, or png) or sound files (.au or .wav). All files turned in must include your name if possible.
You are free to use any medium with which you feel comfortable to complete your work. For the written homeworks, people have written programs, used applications such as Mathematica or Matlab, or formatters such Microsoft Word or LaTEX or even written it out long hand. You are responsible for converting it into one of those standard formats (most current programs can save or print files to a variety of alternate formats). The only requirement is that it show all yours steps to getting to the answer, not simply the final result.
All submissions must represent your own work and must include credit for any print or electronic resources used.
README
Each project must include a file describing what resource files (images, models, scripts, or parameters) needed to run your program and how to compile and run your program; points may be taken off if it is hard to determine how to test your submission.
Each programming project should include a README file that includes:
- your name and Net ID
- the date you started the assignment, the date you completed the assignment, and an estimate of the number of hours you worked on it
- list of the students with whom you discussed the assignment. Since assignments are to be your own work, you should keep track of anyone with whom you have had a significant conversation about a program. You are welcome to talk with the course staff about the assignment, and to other students about broad ideas and concepts.
- any books, papers, or online resources that you used in developing your solution
- list of data files needed to run your program (images, models, scripts, or input) and where to find them
- directions for compiling and running your program
- any bugs or concerns with your program
- any extra credit features included in your program
You may also include your impressions of the assignment to help the course staff improve it in the future.
You will lose points on your assignment if it does not include a proper README file.