CS140 -- General Information
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:
- You will have an easier time testing your code for correctness.
- The TA's turnaround time on grading will be quicker.
- 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.
- Crosstalk in class: Evidently many professors don't mind this. I hate
it -- it both distracts and irritates me. I find it disrespectful, and I will be nasty to
you when I tell you to stop talking. I don't care if
you are talking about your labs or even what I've just talked about in class. Either
ask me, or wait until after class. I don't mind being interrupted with questions -- I
do mind when you talk with each other while I am lecturing.
- Laptops in class: Laptops (and iphones and ipods and ipads)
are distractions. You may tell yourself
that you're following along with my lecture notes, or taking notes yourself, but in
reality your mailbox is showing you that you have new mail, and the browser window
on facebook is simply beckoning you to see what your friends are doing and to reply.
I may ban them. I haven't decided. When your laptop is open in class, though, I
will assume that you're not paying attention.
- Email in the proper format: When you send me email, it should be in the
proper format. That means that is starts with "Dear Dr. Plank", and it ends with "Sincerely, your name."
You should capitalize, punctuate and spell properly. You should treat me as you would
an employer. Frankly, you should do this with all professors.
- "Dr. Plank, will xxx be on the test?":
What's on the test? Everything that's in the lecture notes. You don't need to ask me.
If I don't tell my "what's on the test" story in class, ask me to. It's a good one.
- "How about an extension or more points?":
There are people who believe "It can't hurt to ask,"
and therefore ask me often and gratuitously for lab extensions and points. Saying "no"
wears me out and irritates me. I am very sensitive to your time concerns. I am
especially sensitive to when things disrupt the lab schedule -- especially if it's
due to a mistake by me. I always attempt to make things fair. So don't ask just
because you think it can't hurt -- Pharaoh's heart will harden. Have a good reason.
- Cheating: I shouldn't have to put this down as a pet peeve, since it's so
obvious, but after watching my children go through college and hearing the tales of
cheating that they relay, I will address it.
If you cheat, you deserve to be kicked out of school.
Does that statement make my views on cheating clear enough? It absolutely disgusts me.
My Non-Pet Peeves
- You are my children: I take a parental view of class. I am your father,
and you are my children. My wife says that this can be construed as being demeaning when
I say it, so I want to let you know that it is not. I take class and teaching very
personally -- I really want you all to work hard and succeed with this material.
Sometimes that requires tough love, but let it be known that I do care and
want you to do well.
- Non-class issues: This extends to computer-science/school issues that don't
directly concern this class. If you need advice about which classes to take, how to
search for jobs, which jobs to search for, how to manage your workload that has gotten
out of control, email me and schedule a meeting. I've been at UT since 1993.
I have a lot of experience and knowledge and am happy to share.
- Class participation: Although I get all bitchy about crosstalk, I very much
like class participation. If you have questions, ask them. They may seem stupid -- they
may even be stupid -- but
I won't treat them as such. If you're lost and confused, say so.
I also don't mind you being smartasses (so long as you realize that as you give, you may receive).
There are times were I deserve to receive some
jibes from you...
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);
}