Homework Assignments

Date Due date Topic Materials
Thu 01/26/2012 Thu 02/02/2012 Control flow, Lists, Dictionaries
Fri 02/03/2012 Thu 02/09/2012 Strings, Files, IO, Functions, Generators [homework2.pdf][markets.tsv]
Fri 02/10/2012 Thu 02/16/2012 Object Oriented Programming, Special Methods [homework3.pdf][test_restaurants.py]
Fri 02/17/2012 Thu 02/23/2012 Exceptions, Serialization, File System [homework4.pdf] [part1_test.tgz]
Sat 02/25/2012 Thu 03/01/2012 Make-up problems (Decorators, Regular Expressions) [homework5.pdf]

Project

Participants will work on a final project in self-formed teams of 2 or 3 (unless in exceptional 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 (10% 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 .

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 the directory for problem set X on the Courseworks page for this class.

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 2.7 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.