Lab Assignment 0

This one-day assignment is due by 10:00 p.m. on Friday, September 29.

Preparation (Do this part individually; you can extend it past Friday if necessary)

(1) Do everything on the course refrence sheet (the syllabus) under the heading "What to do this week to get started in ICS 31." This includes filling out the questionnaire at eee.uci.edu/survey/ics31.f17.q and registering yourself at checkmate.ics.uci.edu and at Piazza.com for the ICS 31 Q&A and the ICS 31 IN CLASS activities.

(2) Read through the Lab Work part of this assignment before you come to lab, to get an idea of what you'll be doing with your partner.

(3) If you haven't already, read the guidelines for pair programming. They describe how you will be doing all your work in the lab. Pair programming is not as simple as just working together; there are specific roles and specific things each person needs to do.

(4) 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 (when the quizzes and exams come, for example) is much more important than just putting down the answer. If you haven't already, read the policies for collaboration and independent work. You may also wish to read some general advice about how to approach college work; not all of the practices that served you well in secondary school will work well here.

(5) Read Chapter 1 of the Perkovic textbook; it provides some background, including some issues we talked about in class.

These "preparation" sections of each assignment will include the reading in the text and some exercises for you to try out as you read. People learn best when they apply what they read as they go, so it's best to read the book with a computer at hand so you can type things in and try them out. 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 about it (on Piazza, probably) 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.

[Perkovic reading notes: In Chapter 1 on page 3, the author characterizes different career paths in computing. But he mis-characterizes work in Human-Computer Interaction (HCI) when he says, "Artistic computer professionals design the interfaces that clients use to interact with an application." Designing interfaces is not primarily an artistic activity and many people who work in HCI have no particular artistic interest or ability. Instead, HCI designers are experimenters, observing how actual users perform when using a design and refining the design based on what they observe. UCI is a world leader in HCI research; ICS offers half a dozen undergrad courses in various aspects of HCI.]

(6) Read sections 2.1 and 2.2 of the Perkovic text. You don't have to do all of this by Friday, but it may be helpful for the lab work below.

As you're reading, it's important that you apply what you're reading; it's impossible to learn this material without actually working through it. Perkovic provides "Practice Problem" sections. You should try to do nearly all of these. Don't get stalled for a long time on any single question, but if you have trouble, ask someone. Especially early in the course, it may seem tedious and slow because you're just learning your way. But the effort here will pay off in a greater facility later (or, to put it negatively, failing to do this now will result in disappointing performance later).

We don't require you to turn in your answers to these practice problems; most of the solutions appear at the end of the chapter in Perkovic. But don't just read the problem, turn to the solution, and say, "Yeah, that looks right." Write down your answer first; force yourself to work it through. That's how you learn.

(7) To install Python on your personal machine, follow these instructions. We'll expect everybody to participate regularly in the in-class problems; it's possible to do this with a text editor alone, but realistically, sometimes you'll want to try running your code. If you run into installation problems, your TA or lab tutor may be able to help in lab.


Lab Work (Do this part with your partner in lab)

(a) Choose a partner for this assignment and register your choice using the ICS Partner App. Remember that you'll choose a different partner for each lab assignment, so you'll work with this partner only on this one-day assignment. Your partner must be enrolled in the same lab section you're enrolled in. Make sure you know your partner's name (first and last) and contact information (Email or cellphone or whatever) in case one of you can't make it to lab. All your computer-based work on this (and every) lab assignment must follow the pair programming guidelines.

(b) It's especially important that you be able to receive electronic mail sent to your UCInet ID (you@uci.edu). You may redirect this mail to another account of your choosing, but don't let that mail go unread.

With your partner, test this out by sending each other Email at your UCI addresses. There's nothing to turn in for this part.

(c) Locate and launch the IDLE software. IDLE starts up with a "Python Shell" window where we'll see the results of most of our programs. IDLE also lets you open up a program window; do this now, by choosing "New Window" from the File menu. Give that window a name right away and save it, by choosing "Save As" from the file menu and specifying the name lab0.py . (You can save it anywhere on your machine; just don't forget where you put it. If you're using a lab machine, remember to recycle/discard your file after you're done so that the next student using your lab machine doesn't use your work by mistake (or on purpose).)

In your lab0.py file, you can type print statements that contain expressions; when you run the code in the file (choose "Run Module" from the Run menu or press the F5 key), the results are printed in the Python Shell window. Try it: Type print('Hello') in your lab0.py file and then run it. You should see Hello in the shell window.

[It is also possible to type expressions, without the print, directly into the shell window after IDLE's "prompt" of three greater-than signs (">>>"). This behaves a little differently, though, and most beginners find it confusing, so for now we're going to type all our Python code in a code window and run it when we're ready.]

If you have time left, experiment with IDLE to get familiar with it.

(d) Remember that each partner must complete a partner evaluation form and submit it individually. Do this by connecting to the partner app; you'll need to log in with your UCInet ID. The partner evaluations will typically be available on the day the lab is due.

Make sure you know your partner's name, first and last, so you can evaluate the right person. Please complete your evaluation by the end of the day on Friday, or Saturday morning at the latest. It only takes a couple of minutes and not doing it hurts your participation score.

What to turn in: One member of each pair (not both!) must submit via Checkmate the lab0.py file you created for part (c); make sure both partners' names appear at the top of each file. Also remember that each student must complete a partner evaluation form in the partner app; these evaluations contribute to your class participation score. Get in the habit of doing this every week on Friday after you've submitted your assignment; the partner evaluations close on Saturday.


Written by David G. Kay in Fall 2012 for ICS 31, based on materials from ICS H21, H22, and Informatics 41; modified by David G. Kay, Winter and Fall 2013, Winter 2014, Fall 2014, Winter 2015, Fall 2015, Fall 2017. Python exercises by David Lepe, Winter 2014.

David G. Kay, kay@uci.edu
Saturday, October 7, 2017 9:48 AM