Workbooks and Projects

Page content

Workbooks are the main assignments for class and the required reading. Understanding them is really important.

There will be a workbook each almost every week (10 regular workbooks, 2 larger project workbooks).

Workbooks are small web sites with web pages and code that you will read and write. They serve as both programming assignments (your programs will be inside of the workbooks) and reading assignments (you are responsible for the content of the workbooks as well as the listed required readings in the workbooks).

Each week, you will get a workbook from Github (see Git and GitHub in CS559). You’ll read the text of the workbook, experiment with the code in the workbook, and make additions as directed. When you’re done, you’ll commit your work and push it back to GitHub, so the course staff can grade it.

The idea of the workbooks is that they explicitly bring together the tutorial aspects of class (reading and demos) with the programming aspects (things you write). The reading assignments will be given in the workbooks. This means the text of the workbook web pages, but also the source code of the workbooks, and other documents that the workbooks point you towards. Reading the code in the workbooks and experimenting with demos will often be an explicit part of the assignments.

All of the programming you do in class will be in the workbooks. You will fill in parts of the workbook with code as directed. Workbooks will give you framework code for bigger assignments, and help with the mechanics since we’ll make sure the files are in the right place. And since it will all be tracked with GIT, making it easy to turn it in (in theory), and protecting you against messing things up (providing you use GIT correctly).

Part of the idea of the workbook is that reading the code for examples should be an active part of class. For many things we really want you to look at how we do things.

Workbook Contents

You should start at the root of the workbook (the index.html file in main directory). This page will lead you through the pages of the workbook. They are usually numbered, and are designed to be read in order.

The pages have “sub-pages” embedded in “boxes”. These pages are designed to fit on the content pages which discuss them, but they can also be examined independently for easier debugging. Boxes are explained in Workbook 1.

You must look at the workbook using a local web server. Simply opening the workbook pages as files does not work. See Tools for 559 for more details. We recommend using Visual Studio Code’s Live Server.

The only files you should change are the ones in the “for_students” directory. (unless we give you explicit instructions otherwise)

Remember that you must commit your changes to the files (including additions of new files) to the repository! We recommend committing often, so you have a log of your work. (see the Git and GitHub in CS559 page).

If you add a new file, be sure to add it to the repo (using the GIT “add” command). Generally, you won’t need to do this - you will edit files that are already created by the staff and placed into the workbook.

Turning in Workbooks

You turn in the workbook by pushing to your repository on GitHub and completing the workbook assignment on Canvas. See Git and GitHub in CS559 for an explanation. We will only see the work that you (1) commit to your local repository and (2) push to the repository that GitHub classroom created for you. And we will only know to look at your work if you complete the Canvas assignment submission.

In addition to handing in the workbook, each workbook will have an associated Canvas assignment. We will not grade your workbook unless you complete the assignment - it will ask for information we need for grading and serves as a signal that your workbook is ready for grading.

Generally, we suggest you turn in the workbook (commit and push your final version) and then submit the assignment, but you can resubmit the Canvas assignment multiple times too.

What can you look at?

You are allowed to look at everything (all files) in the workbook! In fact, you are encouraged to look at things to figure them out. You might not want to try to look at the library files (especially when we get to THREE), but you are allowed to.

The content of the workbook pages are required reading for the class.

Some of the HTML and JavaScript source files you will be required to look at (we will tell you, generally, everything in for_students). Think of them as required readings, just like textbook chapters and the content of the workbook pages. We will discuss things in code comments, and expect you to learn from our example code.

What can you change / add?

We will tell you what files that you should add/change.

You should not change any of the library files (including ones that the course staff) writes - unless we specifically instruct you to do so.

In general, you should avoid changes parts of files that you don’t need to change. You may accidentally break things (if you break our part, it will be harder to figure out that your parts work) or make things difficult for the graders.

If you accidentally make changes, you can always use GIT to get back to the original (the joy of using source control).

Sharing with Course Staff

The course staff has access to your repository on GitHub. If you want to share your work with the course staff (for example, if you want to show your program), you can push it to your repo and they can clone it.

If you are coming to consulting hours for help, be sure to push your work so the staff can clone it.

And, of course, we can only grade what you commit and push to the repository before we harvest our copy. We only know to harvest our copy when you turn in the survey. So don’t forget to turn in the survey.

Execution Environment

The workbooks only run if you use a local web server. You cannot just open the HTML files.

For grading, course staff will use the npm “http-server” (which we describe on Tools for 559) or the VSCode live server. We recommend that you use Visual Studio Code for Development.

For grading, course staff will use an up-to-date version of the Chrome web browser. You may use something else for development, but check that your program is compatible with Chrome. We have found that programs tested in Firefox generally work in Chrome. Students have had problems with using Safari.

Grading

Workbooks and projects will be graded by the graders. Each workbook and project will have somewhere between 90-120 points. Grades are based on points, to get an 5/5 you need to score 90 or more points (see the grading scale on the Grading) page. 86 points (which is >= 80, but <90) is an 4.5/5 - it doesn’t matter if the workbook has 120 or 90 points possible.

Your “workbook grade” (which is 70% of the total grade for the class) is the sum of the number of points you scored on the 10 workbooks plus the two projects.

For workbooks:

  • 90 and above: 5/5
  • 80-89: 4.5/5
  • 70-79: 4/5
  • 60-69: 3.5/5
  • 50-59: 3/5
  • 0-49: 0/5

For projects:

  • 90 and above: 10/10
  • 80-89: 9/10
  • 70-79: 8/10
  • 60-69: 7/10
  • 50-59: 6/10
  • 0-49: 0/10

Optional Research Projects

You are allowed to submit one optional project similar in difficulty and complexity to the two assigned projects. Your project must be related to computer graphics and must be approved by one of the TAs (see Course Staff page for their research interests). Your project will be graded by the TA who approved it, out of 10, and you can use the 10 points to replace the grades of one of the following:

  • Two regular workbooks, or
  • One exam, or
  • One assigned project (not recommended).

The grading rubric will be decided by the TA who approved your project. At the time you submit your project, we will ask you which component(s) you want the project to replace, possibly before we grade your project. Some TAs might require a write-up, a presentation, or a demo of the project before you submit.

You should come up with a proposal of a specific project or at least a specific topic you are interested in before contacting one of the TAs. Examples of such projects including:

  • A video game.
  • A data visualization tool.
  • A physical simulation demo.

Theoretical research (mathematical or algorithmic) is allowed but not recommended for this course (you can take courses such as CS839 if you are interested in these).

Basic and Advanced Points

The workbooks vary in size and difficulty. Even with a given workbook, there are things that we expect everyone should be able to do (these are the basic points), and more advanced things that are harder (these are advanced points).

In terms of grading, if you only do the basic parts (even perfectly), your grade is limited. However, doing advanced things doesn’t mean you don’t also need to demonstrate the basics.

Doing advanced points is not a replacement for doing the basics. Advanced points are much harder than basic points. Advanced things often require you to do something hard to get a few points. Get the basic points first.

There is a limit to how many advanced points you can earn on each workbook. This is to prevent students from trying to make up for missing basic things by doing lots of advanced stuff.

Students may not be able to earn 20% of the points for workbooks turned in late. If you are late with a workbook, we recommend that you do a good job on the basic parts, turn it in, and move on to the current workbook.

It is very important to do the basic parts of all workbooks. The workbooks build on each other. If you can’t do the basic parts of workbook N, you will have a tough time with workbook N+1.)

Deadlines and Late Policy

Regular workbooks are due on Wednesday, Madison time. If it is 12:01 Thursday, then it’s not Wednesday. Remember, that you need to push your repository to GitHub for us to get it, and that the workbook survey must be completed to signal us that the workbook is ready for grading.

The projects will have a different and specific late policy.

Workbooks will be collected from GitHub sometime after the Wednesday deadline. Probably early Thursday morning. So be sure to turn things in on (or before) Wednesday in order to have them graded. Both the GitHub commit/push and the Canvas handin assignment must be turned in on time.

The time of submission will be considered as the latest of the handin survey time, the last commit, and the last push.

You may turn in workbooks up to one week late - no questions asked. Late workbooks cannot earn 20% of the points. You have to submit the Rgrade Request Form so that we know which workbooks to regrade.

Remember that filling out the Canvas assignment that for the Workbook is part of turning it in. We will only grade assignments for which the Canvas assignment has been completed. If the assignment is completed before the deadline, we will assume that the assignment is complete before the deadline and will clone it at the deadline. There is no opportunity to change your mind and turn the workbook in late.

For late assignments, we will use the Canvas assignment as a signal that there is a workbook to grade. Submit the Canvas assignment after you have submitted the workbook (via pushing it to the repository).

If you submit the workbook on time (which includes the Canvas assignment), you can update it up until the deadline. However, you cannot update it after the deadline. If you turn in the assignment on time, we will collect your assignment on time.

If you are submitting the workbook late, you must submit the Canvas assignment after you have pushed your work. You cannot update it after you submit the Canvas assignment.

We discourage students turning in workbooks “very late” (more than 1 week after the deadline), but we will accept them in exceptional circumstances. Turn in a “very late” assignment by uploading it to GitHub, completing the Canvas handin assignment, and completing the Rgrade Request Form where we will ask you why the assignment is very late. The penalty for a very late assignment is at the discretion of the course staff. It is important that the “very late” form is completed (so we know that we need to grade the assignment, and have information so we can decide on the penalty). Very late handins are not eligible for advanced points or regrades.

Note: the penalty for a very late assignment is at the discretion of the course staff and may be assessed later in the semester when we can make a more holistic assessment. A student who is very late once may receive less of a penalty than a student that is chronically very late.

If you have a medical or personal issue, we can make alternative arrangements. Contact the instructor through email. In general, we will ask that you follow the very-late procedure.

Note: no assignments may be turned in after Exam 2.

Regrades

  1. All regrade requests must be made via Regrade Request Form.
  2. Regrade requests must be made with one week of the grade being posted.
  3. Regrading will consider the entire assignment.

Please request a regrade using the Regrade Request Form. This will allow us to keep track of requests and process them in order. Regrade requests via Piazza or email will not be accepted.

You must request a regrade within 1 week of a grade being posted, and before the final exam (for grades released the last week of class).

Do not try to make a regrade request by Piazza, or by email, or by coming to office/consulting hours, or by scheduling an appointment for a 1-on-1 call. Please your request by the form. If we need more information, we will contact you.

There undoubtedly errors in grading, and students only point out the ones likely to be in their favor. Statistically, it is implausible that all of the grading errors are against the students. It is unlikely that we made exactly one error. Therefore, if you point out a grading error, we may look at the entire assignment to make sure there aren’t other grading errors, in fact we might need to look at other assignments to check for errors as well.

Regrading might cause us to perform more careful examination of your assignment than the original grading. For example, if we used “stochastic grading” and gave you the benefit of doubt during the first grading, we might be more careful in the regrading.

Unexpected Events

Unexpected events (technical failures, medical problems, …) are inevitable. When they happen, we will cope. The flexibility in the course policies handle most things. Communicate with the course staff as soon as possible.

Resources to help you with problems are listed on the Getting Help page. That page lists various University resources for your health, wellness, and technology needs, as well as how to get help from course staff.

Medical and Personal Issues: If you have a medical or personal issue, contact the Professor as soon as possible so we can make arrangements. Because of the privacy concerns, this is a case where email is allowable. Generally, the course policies (see usual remedies) are sufficient for almost everything.

Technical Failures are never convenient. I have them too (for example, a neighborhood-wide internet service outage while I was trying to proctor the CS559 final exam in Spring 2020).

We expect that many people will have something unexpected happen at some point during the semester that interferes with class.

Unexpected events vary. They aren’t always bad. You might get a once-in-a-lifetime interview opportunity. You might get sick. You might need to take your cat to the vet, or find your dog who escaped. You might have a power or internet outage. Your roomate might pour a cup of coffee in your computer right before an exam.

If you miss something because of a technical failure or personal/medical issue, you should:

  1. Let us know as quickly as possible. You might not be able to send us email or a Piazza message if your internet is out (since, generally, you need the internet to communicate with us), but make as best an effort that you can. You might be able to send email using your cell phone, or text message a friend who can send email to us.

  2. Try to do the best you can to recover. You may not be able to listen or discuss in a synchronous lecture, but you can read the material and watch the video afterwards. If you can’t turn something in on time because there is a service problem, turn it in as soon as you can. (and let us know)

  3. If you have a chronic problem, try to address it. If things fail once or twice in a semester, that’s expected. If you are often unable to participate in class, you may need to see if there is something you can improve about your technology.

  4. If there is something major, let us know. For example, if there is a bad storm that disconnects you for an extended period of time, or you have a medical or personal issue that disrupts your work for an extended period of time.

Each problem situation is unique - and we will work with you to find a way to address it.

Usual Remedies

The class has flexible policies:

  1. If you miss an in-class quiz, you can make it up through the weekly survey. We also drop 4 lowest grades (you can miss 4 weeks with no penalty).

  2. Workbooks have a lenient late policy. Turn workbooks in when you can, even if it is “very late”. Note: you cannot earn 20% of the points if you turn in a workbook late. You are better off trying to get caught up in class (earn the basic points for the late workbooks, and focus your energies on the current workbooks.

  3. If you miss an exam, there is little we can do. Try hard not to miss exams. If something happens, discuss the situation with the instructor ASAP.

  4. You can use a research project to replace 2 workbooks or 1 project or 1 exam grade.

(This page is copied from Professor Gleicher’s CS559 Spring 2023 and updated for Spring 2024)