ICS 31 • DAVID G. KAY • UC IRVINE • FALL 2017
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. [If you add the class late, you are responsible for arranging with your TA a schedule for making up the labs you missed. The early labs are pretty easy; it would be unfortunate to get a zero for them.]
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).
At the beginning of each assignment (most weeks on Friday) you will choose a partner for the next lab. For each assignment, you will choose a new partner, someone you haven't worked with before. The ICS 31 Partner App will help with this. It works like Facebook: You can invite someone to partner with you; the partnership is formed only if they accept the invitation. You can't just partner up informally; you must follow the process in the app to get credit for the partnership and the work you do.
After you turn in each assignment (most weeks on Friday) you will evaluate your partner for that lab, again using the partner app. You must evaluate each partnership; filling out an evaluation counts towards your participation score.
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 policies 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 completely 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 those steps. You have to do your part, but after that we're happy to step in and do ours.)