General Information
Professor: Jim Plank
- Claxton 221
- plank@cs.utk.edu
- Office hours by appointment. Send email.
Teaching Assistants: Jonathan Gardner and Jun Xu. See
the CS360 Lab Home Page for
their information.
Class TT 3:40-4:55 in Claxton 206
Lab Wednesday 8:00-11:00 in Claxton 105
and Wednesday 11:15-2:15 in Claxton 105
Grading is roughly 55% labs, 20% exam 1, 25% exam 2.
Lab grading policy will be set by the TA's. See their
web page for information.
Lab questions should be directed to the TA's first, and then me.
Lecture Notes
There will lecture notes for each lecture. These will be put on the
web with a pointer hanging off the class home page. The point of
lecture notes is to give you a hard reference for the things that we
talk about in class, since they are often not covered in the book.
All programs that I go over in class will also be online in a
directory for that class (~plank/cs360/notes/name).
The point here is that you don't have to try to copy
them down in class, as that's a waste of your time.
I will try to make lecture notes available as soon as possible after
class. Usually that will be by the end of the afternoon. I will
notify you that the notes are completed by email.
Labs
Besides the first week,
whose lab will probably take the entire session, lab attendance is mandatory
in the beginning, during which time the TA's will go over
general things that you need to know. After that, you may leave or
stay as you see fit. This is a very good time, however, to get an
early start on the lab, and use the TA's to answer questions.
You may go to either lab as long as there is space. If there is
not space, precedence goes to those who have signed up for the specific lab.
As you cannot use the labs when other classes are having their labs, you
may want to use both lab times as dedicated work times, again in which
the TA's is available to help you.
The homeworks are where you are going to learn the most in this class.
They are going to require far more than 3 hours per week. Thus, you
will have to use evenings or weekends to get machine time. Work this
out. Some classes will let you use extra machines if they are available
and you are quiet. I believe there are no labs scheduled during evening
and weekend hours. You may also want to explore remote login from UTCC
machines, or from your own terminal and modem if you own one.
Ask the TA's about how to log in remotely.
Homeworks
Homeworks will always be due at 11:59:59PM on tuesday night.
Once you have finished writing your code, you must document it,
create a makefile for it, and a shell script to show that it works.
the TA's will go over this in detail in lab. To submit
homeworks, you should go through the following steps:
- Put all your work in one directory.
- cd to that directory.
- Remove all extraneous files from this directory.
This includes all .o files, and all executable
files (e.g. a.out).
- Run the program /home/cs360/bin/360submit,
and follow its instructions. This will create your homework
submission file. the TA's will tell you in lab what
to do with that file.
You may talk with the TA, other students, or me about your
homeworks, but do the programming on your own. Copying other
students' code is considered plagiarism.
The Textbook, and Its Code
The textbook for this class is Advanced Programming for the
Unix Environment,'' by Richard Stevens. This is a wonderful reference
book for Unix hacking, and it contains much valuable information. My
only complaint with it is that it goes so much into issues of portability
and Unix standards, that sometimes you get lost in the overload of
information. This happens --- after a while, you'll figure it out.
Reading the textbook is kind of like reading man pages: It takes a while
to figure out how to get information from it, but once you do, it becomes
an extremely valuable reference.
All of the code in the textbook is available online in the directory
~plank/cs360/book_examples.
This code was ported by a student a few years back, and I
don't know if anyone made use of it. I never looked at it. However, if
you are reading the book and would like to try its programs, that is the
place to look.
Unix Man Pages
Another valuable resource in this class are the Unix man
pages. These can be viewed online, by typing ``man xxx,''
where you want to learn about xxx. For example, try ``man
cat'' to learn about all the things you can do with the program
cat You will find that there are Unix tools for doing many things
you'd like to do. The routines sprintf, sscanf,
strcmp, strdup, atoi, and of course malloc will
all be of great use to you throughout the semester. Read up on them.
If you'd like to know if there is a man page on a certain topic, try
``man -k topic.'' Or read the man page for man....