This assignment is due by 5:00 on Friday, June 28.
There's some reading and preparation as part of this assignment, but for the main active part, part (d), you will work with a partner. We'll set aside a little time for this in Thursday's class, but in general it will be your responsibility to pair up with a different person for each assignment. You can read more about working in pairs on the assignment page. Working in pairs is required, not optional; not having a partner for an assignment will affect your class participation score.
When you've picked a partner, be sure to exchange contact information (Email, cellphone, whatever). Then—and this is critical—send a message to ics10@uci.edu that gives the full names and UCInet IDs of both partners.
If you haven't read the homework advice on the class assignment page, now's the time to do it.
A certain amount of frustration is inherent in working with computers; think of all the cartoons you've seen whose theme is frustrated computer users. People are complex (and diverse, messy, and not well understood) and computers, fundamentally, are mechanical and simplistic; we're not yet at the point when we can count on computer systems always to do what we expect. For most people, the satisfaction of completing a computing task makes up for the frustration experienced along the way and we hope that's the case for you. To keep your frustration level manageable, make a point of starting on each assignment early. That way, you have time to ask questions that will help you past any rough spots.
Complete the ICS 10 Questionnaire and do the other items on the syllabus under "What to do to get started …" Be sure you've read the rest of the syllabus, too.
Read the appendix of Blown to Bits, which describes how the internet works.
Using and understanding computer systems often involves mastering a lot of details. Good system design (using good abstractions) can help keep those details manageable, but stilll, it can seem overwhelming. Consider, for example, the number of buttons on the typical TV remote conntrol, or all the different features in Microsoft Word.
You'll also find a lot of details in the readings we assign. One of the goals of this course is to help you learn to navigate through detailed technical material. On the other hand, for this course you don't need the same level of detail as you'd need if you were planning on a career as a computer professional. Even though it may still seem very detailed to you, we've tried to hit an appropriate level in the readings and assignments we've chosen.
This guideline may help you determine which details in the assigned readings are important for you to learn: If concepts or terms we mention in class occur in the readings, you're responsible for them. But if the readings mention terms or concepts that we do not mention in class, we won't expect you to know them. In other words, when we write exam questions we're not going to go looking through the readings for topics we haven't already mentioned in class.
This quarter we're going to build some animations and simulations using a tool called Snap (related to tools called BYOB and Scratch). This is actually a form of programming, but it's not the painstaking, heavy-duty, industrial-strength, text-based programming you'd learn in ICS 31 (or its predecessors, ICS 21 or Informatics 41). Nor is our goal to turn you into programmers, even in Snap/BYOB/Scratch; we just want you to have some experience with describing procedures that a computer can carry out. And besides, this kind of programming is fun.
Here's some more precise background: The original Scratch tool was developed at MIT; its home page is scratch.mit.edu. BYOB is a version of Scratch developed at Berkeley. BYOB stands for "build your own blocks"; it contains a few useful capabilities that original Scratch doesn't. Snap is a web-based version of BYOB that doesn't require you to install anything on your computer. All the basics of these systems are the same, so most anything we can learn about Scratch or BYOB also applies to Snap. Maybe the most visible difference is that Scratch starts out showing a cat as the starting character (or sprite), BYOB starts out with a fish, and Snap starts out with an arrow. Each of these is changeable, of course.
With your partner, do the following:
hw1d4-johnz-janex. Snap will add the ".xml" suffix). To test that your export worked correctly, close the Snap window, open a new one, and import the file you just exported.hw1d7-johnz-janex) and submit it, following the instructions above. The same partner must submit both parts of the assignment on Checkmate; this helps us keep track of who does what.Our TA, Caitlin Lustig, will hold lab hours this week on Thursday from 12:30 to 2:00 and on Friday from 1:00 to 3:00, in the third-floor ICS lab, room 364 ICS. You can also get brief questions answered on Piazza (see the syllabus).
Have fun!