CSC324 Programming Languages

Fall 2019

Course Notes

Exercises and Assignments

This term, there will be 9 weekly exercises and 2 larger assignments. As with any CS assignment, start early, so you leave ample time to understand what you're supposed to do. Here are some other guidelines for exercises and assignments:

  • You may not import any libraries or modules unless explicitly told to do so.
  • (Update Sep 23rd) In particular, you may not use the function "eval" for any exercise or assignment except Exercise 7.
  • You may not use any iterative or mutating functionality unless explicitly allowed. Remember that a big goal of this course is to learn about different models and styles of programming!
  • You may write helper functions freely; in fact, you are encouraged to do so to keep your code easy to understand.
  • We generally provide a set of tests for each exercise or assignment, but these tests are meant to help with understanding expected function behaviour. Please be warned that they are not nearly comprehensive enough to give confidence about correctness.
  • Code that cannot be imported (e.g., due to a syntax error, compilation error, or runtime error during import) will receive a grade of zero! Please make sure to run all of your code before your final submission, and test it on the Teaching Lab environment (which is the environment we use for testing).
  • (Update Sep 25th) Note that the (provide ...) code in your exercise file is very important. Please follow the instructions, and don't modify those lines of code! If you do so, your code will not be able to run and you will receive a grade of zero.
  • Exercises must be completed individually, but assignments can be done individually or with one partner.

(Update Oct 2) In case it is not clear to you, breaking any of the homework rules will result in a grade of 0.

How to submit

We're using MarkUs for exercise and assignment submissions. The last version of each file that you submit before the deadline is what will be marked. If you haven’t used MarkUs before, give yourself plenty of time to figure it out, and ask for help if you need it! "I didn’t know how to use MarkUs" is not a valid excuse for submitting late work.

MarkUs also allows you to form groups. When working in a group on an assignment, you must form a group and submit only one copy of your submission. To form a group, one student should invite the other student to join. Then, the student who is invited must accept the invitation. To work by yourself on an assignment, you must click "Work Alone" before you can submit files.

Please see the course information sheet for the late policies. In particular, no late exercises are accepted, and grace tokens are used to manage late submissions for assignments.

Academic Offenses

The University of Toronto expects you to be a full member of the academic community and to observe the rules and conventions of academic discourse. In particular, all of the work you submit must be your own (or your group's) and your work must not be submitted by someone else. Plagiarism is a form of academic fraud, and the department uses software that compares submissions for evidence of similarity. The full text of the policy that governs Academic Integrity at U of T (the "Code of Behaviour on Academic Matters") can be found at:

Please don't cheat. It is unpleasant for everyone involved, including us. Here are a couple of general guidelines to help you avoid plagiarism:

  • Never look at another student's exercise/assignment solution. Never show another student your solution. This applies to all drafts of a solution and to incomplete and even incorrect solutions.
  • Keep discussions with other students focused on concepts and examples. Never discuss work before the due date with anyone but your instructors, TAs, and (for assignments) your assignment partner.