ICS 31 • DAVID G. KAY • UC IRVINE • WINTER 2013
Assignments
Read this introduction at the beginning of the course, but read it again in a couple of weeks.
Each week there will be a lab assignment due on Friday; typically the following week's assignment will also be available on Friday. Each assignment will have two parts:
The lab assignments will require you to do pair programming: You and a classmate will work together at one computer, following specific guidelines. This makes the scheduled lab hours on Monday/Wednesday/Friday particularly valuable as a time when everyone in the class is certain to be available (along with the TA and lab tutors).
We encourage you to talk with each other and help each other understand how to do the assignments. There are some limits, though. Everyone should read the guidelines for collaboration and independent work. (Really; read it. People who ignore it risk serious trouble.)
Don't expect every answer to every problem to be immediately obvious. If you find yourself stuck on a problem, take these five steps: (1) Re-read the problem; (2) follow the design recipe (which we will describe in class); (3) go back and look at how you (or we) solved similar problems; (4) recheck the explanation in the textbook or lecture notes; and (5) if you've spent three solid minutes thinking about the problem without making any progress, it's time to ask somebody (a classmate, TA, tutor, or Piazza). If you're making progress, if you have an educated guess (not a blind guess) about what to try next, then keep going—we're not saying that every problem can be solved in three minutes. But after you've spent three minutes of hard thinking with no progress and no idea of what to do next, more thinking alone isn't likely to help. We want to minimize your frustration; nobody should be spending hours working on a problem without making progress. If you're stuck, we (or sometimes your classmates) can often get you past your trouble pretty quickly. (If you haven't followed the steps above, though—especially reading the problem and following the design recipe—we'll probably just send you back to do them. You have to do your part, but after that we're happy to step in and do ours.)
Assignments: