Informatics 102 Spring 2012
Lab Manual


The assignments


Introduction

This quarter, you'll work on five programming assignments, along with a brief initial exercise that will help you get some necessary software installed and configured for later use. The assignments will all involve some amount of programming in one of a few programming languages, though some may also require written answers or analysis. It is not necessarily the case that the assignments will increase in size or difficulty throughout the quarter; they will be centered around topics that are covered in lecture, which vary in difficulty (and, I should note, different people will find different aspects of this course to be more difficult than others).

By the end of the quarter, when you've successfully worked through all of these assignments, you'll be surprised at how much your skills have both broadened and deepened.


Evaluation of your work

Evaluation criteria

Each of your assignments will be graded using a slightly different scale, though all will bear the same weight on your final course grade. Some assignments are broken into parts, while others are single programs. When you write code, it is naturally your primary goal to write a program that works correctly; however, this is not your sole objective. Each of your programs will be evaluated for style and quality of approach, in addition to correctness. Some assignments will limit what features of a particular programming language you're permitted to use, and your score will suffer if you stray away from these features.

We reserve the right to assign as few as zero points to any program that cannot be compiled and/or executed. (Not all languages are compiled.) In these cases, we will try to assign some partial credit, though it is not always possible to accurately judge the correctness of incomplete programs.

Late work

Things happen and ten-week quarters can be unforgiving. It's not unreasonable to expect that you may find it difficult to finish one of the assignments on time, even if you're on top of things most of the time. I get emails often from students, saying things like If I just had one more day to work on this, I'd get it done! On the other hand, being consistently behind is a recipe for struggle in this course; we'll be moving quickly, and it will be progressively harder to catch up the farther behind you get.

The best balance between these two realities is that everyone is allowed to have a tough time with one assignment this quarter — maybe you underestimated the difficulty of an assignment, maybe you have three midterms and a paper due the same day, maybe you have a sudden outside commmitment that can't be avoided. For this reason, I'm offering the following late work policy:

Each student is permitted to submit one assignment up to 48 hours late, with no questions asked about why.

For the purposes of clarification, here are some additional details about how this policy works:

We'll be tracking this throughout the quarter and, of course, will not grant the extension to anyone more than once. But this should accommodate the unforeseen issues that might otherwise prevent you from finishing an assignment on time.

Other than this, late work is not accepted in this course.

Out-of-the-ordinary circumstances sometimes warrant exceptions to this policy; if you are faced with a problem that is preventing you from getting your work done on time, either on a single assignment or chronically, please contact me and we can talk about a solution to it.

Paired or group work

In this course, your programs are to be written individually. No paired or group work is permitted.

Re-evaluation of your work

This course has a reader, who will be grading all of the assignments this quarter. If you believe you've been graded unfairly, you should first contact the reader to discuss the issue. If, after that conversation, you're still feeling that your score does not fairly represent your work, contact me and I'll be glad to arbitrate. Understand, however, that my overruling a reader's judgment is relatively rare.


Submitting your assignments

When you complete each assignment, you must submit it to us electronically. Follow this link for a detailed description of how to submit your assignments. Understand that we will only accept assignments submitted using the procedure described there; we do not accept printed copies of your assignments, nor do we accept them via email under any circumstances.

You are responsible for submitting the version of your assignment that you want graded. We will grade the most recent submission that you made before the deadline. Accidentally submitting the wrong version will not be considered grounds for a regrade.


Academic honesty

The policy

As Informatics 102 students, you are expected to know and follow the academic honesty policies of both the Bren School of ICS and the University as a whole. Please take a few minutes to read the policies, which can be found at this link.

All of your lab work is expected to be completed solely by you (and your partner, on paired assignments). Worker in larger groups and/or sharing of code between students that are not partners is not permitted. Note that "high-level discussion of course material for better understanding" is permitted and encouraged, but when it comes time to sit down and write code, that is expected to be done by you and you alone. All submissions are compared to one another using an automated plagiarism detection system. This system is extraordinarily good at finding similarities between submissions, even when there are superficial differences. (Note that we also compare your submissions to those submitted during previous quarters whenever one of these assignments was given during a previous quarter, so it is an exceedingly bad idea to turn in, or even refer to, code written by a friend of yours who took the course already.)

Since all of your work is expected to be completed solely by you (and your partner, on paired assignments), you will be held responsible even if you plagiarize only a small portion of someone else's work.

You are not permitted to reuse code that you wrote along with a partner during a previous quarter. You may only reuse code that you wrote on your own, and you may only reuse it for a project that is not paired this quarter. (The reason for this rule is simply that I do not want students repeating the course to pair up with someone new and deprive them of the opportunity to work on the project. Besides, if you're repeating the course, it's generally a good idea to start fresh, to solidify the ideas you missed the first time around.)

Academic honesty is a two-way street. Providing your code to other students for them to turn in as their own is not permitted anymore than turning in someone else's code. Resist the temptation to give code to your friends "for reference." Based on my experience, I can say that your "friends" may very well betray you and turn it in, anyway.

Naturally, the Midterm and Final Exam are also expected to be individual efforts. Dishonest behavior during an exam will not be tolerated.

Violators of academic honesty policies are subject to the penalties described in the Bren School of ICS policy. They are also subject to an immediate course grade of F, and you will not be allowed to drop the course to avoid the grade. Also be aware that a single documented case of academic dishonesty may preclude you from switching into computing majors, registering for computing minors, joining the ICS Honors Program, and graduating from a computing major with honors.

The lesson

Okay, so the moral of the story is that it's wise to avoid cheating. I believe that it's relatively rare that students enter a course with the conscious intent to cheat their way through it; why come to UCI if you're not planning to get something out of the coursework? So why do people cheat every quarter in every course? The answers vary, but here's the easiest way I can boil down the numerous conversations I've had with students caught cheating in my courses over the years: I fell behind and couldn't figure out how to catch up. Things happen and ten-week quarters are unforgiving. You might get sick, you might have issues crop up in your family, you might have an off-campus job that's demanding too much of your time, you might be trying to decide whether you're on the path you want to be on... Any of those things (and many others) can make it hard to keep up. You fall a little behind, you fall a little further behind, and pretty soon the situation seems hopeless. You're under pressure, temptation gets the better of you...

If you feel like you're beginning to slip off course or things are getting beyond your control, the best thing to do is to talk to us sooner rather than later. We're here to help; we understand. But the reality of taking large-sized courses at a large-sized institution is that we're not going to know you're in need unless you tell us. If things are happening in your life, tell us; you don't have to be specific if you're not comfortable with it. Before the fact, there's often a way to work things out. After the fact, it's usually too late.