Labs

Labs have been added to this course to help bridge from the lectures to assignments.

There are 12 labs, one due each week:

  1. Lab 1 2022.01.21 (past)
  2. Lab 2 2022.01.28 (past)
  3. Lab 3 2022.02.04 (past)
  4. Lab 4 2022.02.11 (past)
  5. Lab 5 2022.02.25 (past)
  6. Lab 6 2022.03.04 (past)
  7. Lab 7 2022.03.11 (past)
  8. Lab 8 2022.03.18 (past)
  9. Lab 9 2022.03.25 (past)
  10. Lab 10 2022.04.01 (past)
  11. Lab 11 2022.04.08 (past)
  12. Lab 12 2022.04.15 (past)

If you have an issue with the lab marks, read this link.

Assignments

Assignments are an extremely important part of computer science courses. The general experience is that students who do (their own) assignments are far more likely to be successful in the course.

There are 3 assignments, one due every second week:

  1. Assignment 1 2022.03.20 (past)
  2. Assignment 2 2022.04.01 (past)
  3. Assignment 3 2022.04.14 (past)

Here are some model solutions:

Submission Process

You will submit assignments with a source-code-management (SCM) system called Fossil.

Do not submit tar, zip or compressed files - just the source text.

Code Documentation

I want a file called Ownership.txt in the top directory of each assignment, containing the following. No other file should have any identifying information, so that peer evaluation can be as fair as possible.

Name:   Aye Student
Course: CPS506, Winter 2022, Assignment #1
Due:    2022.02.14 08:30
Credit: (one of the following statements)

Where Credit should say one of:

  1. This is entirely my own work.
  2. This is entirely my own work, except for the portions supplied by the professor and the book.
  3. In addition to the portions supplied by the professor and the book, I received slight assistance from Cee Student.
  4. In addition to the portions supplied by the professor and the book, I received considerable assistance from Cee Student.
Any of the credit statements may be followed by one or more of the following statements:
  1. I provided slight assistance to Dee Student, Eee Student
  2. I provided considerable assistance to Dee Student, Eee Student
  3. The algorithm of method/function is due to An Author, from Citation

In the last of those, method/function should identify one or several methods or functions from your code, and Citation should be either a textbook name (with page range) or a journal name, volume, number and page range.

Slight assistance would typically be pointing out library functions/classes that could be useful, or discussion of approach - no diagrams or looking at code. Considerable assistance would typically be the provider looked at providee's code - making suggestions or helping debug, or diagramming a solution. Neither should have the result of the two assignments looking more than 25% similar.

Obviously I want you all to do as much work as possible yourself, but most importantly, I want you to be honest. The "I provided" and "I received" statements should be pretty-much reciprocal.

Beyond that, I would like a class comment for every class and a comment at the top of every non-obvious method, describing its purpose. Also use meaningful variable and method names. Methods should be short (likely less than 20 lines).

Rubric

The marking rubric is available here.