First Homework

This homework assignment is due at the start of lab on Monday, September 28.

The second homework assignment will be available on the web next Friday and will be due the following Monday at the start of lab; we'll follow that pattern all quarter. The URL for the assignments is http://www.ics.uci.edu/~kay/courses/h21/hw; we won't distribute printed copies of the subsequent assignments (unless, after a couple of weeks, there's a great clamor for them).

Our homework assignments will include the reading in the textbook and some exercises for you to try out as you read. People learn best when they apply what they read as they go. There's always a big gap between thinking you understand something you read and actually being able to apply it. We expect these exercises to go quickly, but if you find yourself spending more than a couple of minutes on an exercise without making any progress, you should ask us (or a classmate) about it rather than continuing to spin your wheels unproductively. Note that this also means you should get started early, so that you'll have the time to get any questions answered.

It's not a big deal if you come to lab on Monday without having been able to answer a couple of the homework exercises, but if that happens, we'll expect that you will already have asked a few classmates or sent us a question at icsh21@uci.edu.

You should also expect to find, especially after a week or two, that when you have the right answer you'll know that it's right. (Of course, having a computer to check it will help, but you will probably observe this even before you check it on the machine. This makes a contrast from the usual experience with other popular programming languages, where "Click 'Run' and cross your fingers" is the way people often work.)

(1) Do everything on the course syllabus under the heading, "What to do this week to get started in ICS H21." This includes registering yourself with Checkmate at http://checkmate.ics.uci.edu, filling out the questionnaire at http://eee.uci.edu/survey/h21.f09.q, and turning in your photo.

(2) Read through Lab Assignment 0 before you come to lab on Friday just so you get an idea of what you'll be doing with your partner.

(3) We encourage you to talk with each other and help each other understand how to do the assignments. There are some limits, though; in particular, remember that knowing how to do it (so you can do it on the midterm, for example) is much more important than just putting down the answer. If you haven't already, read the guidelines for collaboration and independent work at http://www.ics.uci.edu/~kay/courses/h21/hw/collab.html. You may also wish to read some general advice (at http://www.ics.uci.edu/~kay/college.html) about how to approach college; the practices that served you well in secondary school don't all work here.

(4) If you haven't already, read the guidelines for pair programming at http://www.ics.uci.edu/~kay/courses/h21/hw/pair.html. This describes how you will be doing all your work in the lab.

(5) Read Chapters 1 and 2 of the How to Design Programs textbook (HtDP). The on-line version is a bit newer than the printed version, though many people prefer to read longer documents on paper. As you read Chapter 2 of the HtDP text, do exercises 2.2.2 and 2.3.2.

(6) Look at sections A, B, and C of the Scheme Finger Exercises. You don't have to write the answers down or turn them in, but make absolutely sure that you know how to do them.

(7) Read through Lab Assignment 1 before lab on Monday so you have an idea of what's coming. You should take a minute to consult the DrScheme Help Desk from the Help menu, find the list of teachpacks, and look at the documentation for image.ss. This lists all the functions that teachpack makes available for you. We won't be using all of them, but you should get an idea of what operations are available. This kind of documentation describes an API, an application programming interface (also called an SDK, for software development kit); it's a list of functions that someone has added, a toolkit we can use for some task.

What to turn in: Most of these items you just need to do on your own. At the start of lab on Monday, show the TA your solutions to the exercises in part (5) above.

Based in part on ICS H21 and H22 assignments by David G. Kay from Fall 2001 and earlier; modified by David G. Kay, Fall 2002, Fall 2003, Fall 2004, Fall 2006 (with Alex Thornton), and Fall 2007.

David G. Kay, kay@uci.edu
Wednesday, September 23, 2009 11:23 PM