CS140 -- General Information

James S. Plank


Grading

The grading break down will be something like 45% homeworks, 4%/5% in-class labs, 50%/51% tests, with each test counting equally. For an example of how I translate numbers into letters, see my See the final grades information for last year.

Lab Stuff

Lab attendance is mandatory.

Labs are due at 7:00 AM on Tuesdays. That deadline is firm. The late policy is simple: you lose ten points for each day that the lab is late. The TA's will get your lab grade back to you within one week from when you submit it.

There will be a correctness script for each lab. That is what the TA's will execute to test the correctness of your code. It will be worth something like 80% of your grade for each lab. These scripts help you in three ways:

  1. You will have an easier time testing your code for correctness.
  2. The TA's turnaround time on grading will be quicker.
  3. The TA's effort in grading will be less, freeing them up for more office hours.

You must perform your labs alone. Obviously, you may talk about your labs with the TA's and with other students, but when it comes time to code, you must write your own code. Otherwise, it is plagiarism.

A corollary of this is to protect your directories so that no one can read them. If you do all of your work in ~/cs140, then right now, do:

UNIX> chmod 0700 ~/cs140
If someone cheats off of you, chances are we cannot determine that, since file access times can be modified. In the past, when I have discovered cheating, both parties (cheater and cheatee) get zeros. Protect yourself.

TA's and Help

The primary place for you to receive help with your labs is during lab time and during the TA's office hours. The class is organized so that you can get help starting your labs during the lab time. As you work on your labs during the week, you should solicit help and comradery from other classmates on tuesdays and wednesdays. You can email your TA's as well, although they are both students taking full course loads, so their responses will be best-effort. On thursdays and fridays, the TA's both have office hours. This is time dedicated to you! It is your chance to make the best use of them as you attempt to finish your labs, or alternatively plan for the weekend.

Over the weekend, you're back on your own, and again you should solicit help and support from your classmates. You may try to email the TA's, but again, they may not respond. They have lives too.

I shouldn't have to write this, but history requires me to. While I love you, and the TA's love you, this class is not our only responsibility during the semester. Similarly, you are taking other classes, so this class is probably not your only responsibility. Think about that when you do things. For example, a few years ago, a student resubmitted a late lab whose score was obviously going to be lower than his first submission. He submitted it because he was proud of finishing it, and wanted the TA to know. The TA, who was swamped with other classes, simply regraded the submission and gave the student the lower score. The student was outraged -- all he wanted was a pat on the back!! Who was at fault? Everybody had good intentions. However, the student should have used the proper channels -- if he wanted an "attaboy," he should have emailed the TA seperately or gone through office hours. This may seem picky, but a matter like this cost everyone time and emotional drama. Including me. The bottom line is to think about your actions before you do them.


Help Each Other!

You are all brothers and sisters in this class. While I'm not the biggest fan of interpersonal interaction and conversation, even I will admit that you learn many unexpected and valuable things through interaction. This is both when you are soliciting help and providing it. I encourage you to try to help each other.

My Pet Peeves

I go over these on the first day of class, but I figure it's time to write them down so that you have reference material. Every teacher has his/her own style, and after 20+ years of teaching, I know mine pretty well. This list doesn't apply to all teachers -- just me.

My Non-Pet Peeves


Commenting Your Code

You will be graded on commenting. Something like 15%. You should comment your code by blocks of comments at the beginning of your files, and before subroutines. Variables should be commented inline. You may also want to comment large blocks of code. You should not comment with a ``running commentary'' to the right of your code, because that is often useless, hard to maintain, and disconcerting. I have seen comments like the following:
  if (i == 0) {               /* If i equals zero */
    return;                   /* then return */
  } else {                    /* otherwise */
    exit(1);                  /* exit with a value of one */
  }
The above is an extreme example, but don't let it happen to you.

Here's an example of what I would consider a well documented program:

 
#include <stdio.h>

/* sumnsquared.c
   Jim Plank
   August 23, 1998

   This program prompts for and reads a value n from standard
   input, and then calculates and prints the sum of squares
   from one to n.  It uses a for loop instead of using the 
   closed form expression.
   */


main()
{
  int n;                   /* The value */
  int sum;                 /* The running sum of squares */
  int i;                   /* An induction variable */

  /* Prompt for and read in a value of n */

  printf("Enter a value n: ");
  fflush(stdout);
  if (scanf("%d", &n) != 1) {
    exit(1);
  }
  
  /* Calculate sum for each value of i from one to n */

  sum = 0;
  for (i = 1; i <= n; i++) sum += (i*i);

  /* Print the final summation */

  printf("%d\n", sum);
}