1. getting started
due Tue Sep 4
- Read chapter 1 in the text.
- Install python version 3 on your computer, from python.org (If you don't have one, talk to the folks in the computer lab and/or Jim and we'll see what we can work out.)
- Run the "chaos" python program from the first chapter. (We'll discuss the nuts and bolts of how to do this in class.)
- Try some of the exercises at the end of chapter 1.
- Tell me about your tech and computer background - including what kind of computer you're used to using, what you'd like to get out of this class, and how well first assignment went for you.
2. functions, input, print, loops
due Tue Sep 11
- Read chapters 2 & 3.
- Look up the definition of the built-in range() function in the python docs (see the resources page or google it). Try it at the python prompt and explain what it does.
- Do chapter 2 exercises 1, 7, 10 (page 54 & 55).
- Do chapter 3 exercises 12, 14, 16.
- Let me know how all this is going.
3. graphics & objects
due Tue Sep 18
- Read chapter 4
- Do chap 4 exercise 3 (draw a face).
- Do chap 4 exercise 9 (rectangle information).
- Describe briefly in your own words and give a code example of the following concepts:
- Write a graphics program of your choice - make a random artwork, animate something, use mouse clicks to draw - whatever. (This doesn't need to be too fancy - we will have more coding tools like "if" statements later to do more.)
4. strings, lists, files
due Tue Sep 25
- Read chapter 5 in the text.
- Do these programming exercises from this chapter :
- 4 (acronyms) or 5 (name sum)
- 7 and/or 8 (on the Caesar cipher),
- 12 (formatted numbers), and
- 14 (read and summarize a file)
- As always, be smart about the time and effort spent on this stuff. If it's too much, focus your attention on a few. If it's fast, turn up the juice on some aspect that seems interesting.
- If you get stuck, please do find or email me or Merlin and/or talk to other folks in the class. Often times a small hint can get you over a hump.
due Thu Oct 4
- Read chapter 6.
- Describe briefly the following notions, and give a code example.
- return value
- local variable
- global variable
- Do programming exercise 2 (the ants).
- Do programming exercises 11 through 14 (ending with the sum of squares of numbers from a file).
- Re-write any program a from previous assignment using functions for some parts of the code. For a really good time, put in docstrings and doctest tests too. :)
due Thu Oct 11
- Read chapter 7.
- Do programming exercise 6 (speeding ticket).
- Do programming exercise 12 (date validation).
- Do programming exercise 18 (exceptions).
- Propose a midterm coding project idea so that I can give you some feedback. (That assignment is listed below, though it isn't due for several weeks.)
due Tue Oct 23
- Read chapter 8.
- Do at least one of the following two programming exercises. Both will need loops or loops-within-loops, if statements, and (probably) helper functions.
- Write a python program to verify that either De Morgan's laws (i.e. the algebraic identities for "not (a and b)" and "not (a or b)" are correct by using a brute force search over all assignments of True and False to a and b. I showed some code in class that does most of this ... add some "if" statements and remove the printing so that it just confirms that the laws are correct.
8. midterm project
due Tue Oct 30
- Write a midterm coding project of your choice, using what we've done so far and demonstrating your mastery of it. Your submission should include
- the source code itself, including appropriate docs and comments.
- output : what it looks like when it runs
- a brief write-up explaining what you did, what it's supposed to do, what was easy and what wasn't, and discussing the technologies involved.
- include a bibliography of any resources (websites, books, ...) you used
- Your grade will be based on the following evaluation categories :
- concept : the technical merit of the idea itself, including its difficulty and planning
- mastery : how well the project shows your understanding of the course material
- style : the clarity of your code and other materials, and whether it follows accepted conventions
- completeness : does it feel finished, and what bugs are there
- support : appropriate docs, tests, sample output, screenshots, etc
- Questions? Ask.