Homework Assignments

Date Due date TopicMaterialsSolution
9/10 9/16 11:59pm Variables, Control Flow, Sequenceshomework1.pysolution_week1.tgz
9/18 9/23 11:59pm Lists, Dictionaries, Strings, Files, Functionsmarkets.tsvsolution_week2.tgz
9/25 9/30 11:59pm Functional Programming. Generators.solution_week3.tgz
10/2 10/7 11:59pm Object Oriented Programingtest_restaurant.pysolution_week4.tgz
10/9 10/14 11:59pm File Systems. Object Serialization. Exceptions.
10/17 10/26 11:59pm Make-up problems

click on a topic to open the problem set PDF.

Project

In lieu of a final exam, participants will work on a final project in self-formed teams of 3 or 4 (exception for special cases). If you cannot find team-members, e-mail the instructor.

Dates:

Project Proposal

Each team must submit a project proposal of about 2 pages, containing

The proposal will be graded (5% of final grade).

Choosing a Project

The project should be something that's interesting/relevant to you. It should be larger than the weekly homework problems and serve a specific (more or less useful) purpose. However, the main mistake in choosing a project is to select something that's too big or too challenging.

Examples for possible projects are:

Try to be creative. If you cannot come up with anything or you are unsure if your idea is manageable contact the instructor before submitting the proposal .

Submitting the Project

The project code and documentation (a brief README that explains the project, the basic structure of the code, and how to run it) is due on the project deadline. After submitting the project, every group will schedule a short (10 min) demo with the instructor. The final grade for the project will be determined based on the quality of the code and documentation and on the ability to explain it. Every student should be able to explain all aspects of the project.

Homework Submission Instructions

Place the files for all problems in a directory named [your_uni]_week[X] , where X is the number of the problem set. For instance if your uni is xy1234 and you are submitting the problem set for the first week, the directory should be called xy1234_week1. Either zip or tar and gzip the directory (using tar -c xy1234_week1 | gzip > xy1234_week1.tgz ) and upload it to your directory in the drop box for this class on Courseworks.

General Homework Guidelines

  1. Late policy: Absolutely no late submissions will be allowed (unless in unusual circumstances with prior instructor approval).
  2. Your code should run on Python 3 interpreters (cPython).
  3. Document your code! Undocumented code will result in lower scores, as will code that does not follow style guidelines.
  4. Make sure your program implements any specific functionality asked for (input/output format etc.).
  5. Efficiency of your implementation matters unless specified otherwise.
  6. You should be able to solve all problems without using any modules other than those mentioned.

Academic Honesty Policy

All problems must be solved individually. While there is a lot of useful material online that you can use as a reference, you are not allowed to copy literal code and solutions. You may discuss problems with other students, but you have to do the write-up and implementation yourself. Violations of this policy will result in a grade of zero and further steps may be taken in accordance with the CS department's academic honesty policy.