CS 3210 - UNIX Sytem Programming - Course Syllabus

General Information

Semester: Summer 2003
Textbook: Linux Application Development, Michael K. Johnson & Erik W. Troan. ISBN: 0-201-30821-5
When: Tuesdays and Thursdays, 5:30pm to 7:30pm
Location: TB 403
Instructor Info: Mark Whitley
mark.k.whitley@gmail.com
966-1297 (home) (after 10pm is too late to call)
Class Website: http://codepoet.org/~markw/weber/unix
Class Schedule: Right here

Goals of This Class

Evaluation

Your final grade will be comprised from the following areas:

Midterm (chapters 1-15): 20%
Final Exam (chapters 16-26): 20%
Lab Assignments: 30%
Writeup of Term Project: 5%
Term Project: 20%
Class Participation: 5%

A description of each area of evaluation follows.

Reading

While not a part of the above evaluation, reading the textbook is a good idea. It would be nice if students would read assigned chapters prior to class. I certainly don't expect anyone to do so, but it would be nice. More likely than not, you'll just try to hurry and read the chapter while I'm lecturing, miss many important explanations and raise your hand after the fact and make me repeat myself. (But I'm not bitter. :-)

A schedule of reading and lab assignments can be found right here. In general, we will cover one or two chapters each class session.

Lab Assignments

A lab assignment will be given in nearly every class session. The lab assignments are typically small and should help you to learn UNIX programming one feature at a time.

You will turn in your lab assignments by printing them out on a sheet of paper and handing them to me. If you have a bunch to turn in (likely) please staple them all together. Also, at the top of each and every one of your labs, please write (1) your name (2) the lab number, (3) a description of the lab (use the same text I put on the website) and (4) the course number.

Lab assignments will be due the day after test days. This means that the next class session after you take the Midterm, all the lab assignments given since the beginning of class will be due. The day after you take the Final happens, all the lab assignments given since the Midterm will be due.

Late assignments will not be accepted. If you do not turn in your assignments by the due date, you will get a zero for the assignments you didn't turn in. Turn them in on time and nobody gets hurt.

Don't copy another student's assignment. Don't offer your assignment to someone else so they can copy it. Do your own work. If you have a question about something, ask me.

Midterm and Final Exams

You will have two tests this semester: a Midterm and a Final. They will both be written tests taken with paper and pencil; there will be no lab / coding questions on either test.

The kinds of questions you can expect on the exams are:

There will be no makeup tests and no re-tests offered. The only exceptions to this rule will be for legitimate excuses like: "I got in a car wreck" or "I was having a baby the night of the exam". One other excuse that I might buy is if you have to be out of town for a business trip, but I expect to be told in advance about that sort of thing so I can make a special arrangement with you to take it earlier.

Tests will be closed-note, closed-book, closed-Internet... oh heck, just closed everything. You will actually need to study and recall answers from memory.

Students who do not speak English as their first language may use an English-to-[name of your native language here] dictionary on days of tests. Native English-speakers don't get to use anything.

Anyone caught cheating on a test will get a zero for the test.

Class Project

Each of you will write a fully-fledged UNIX application. You will first need to turn in a writeup that gives a brief description of your project and the features it will have. The writeup is due the class session after the Midterm Exam and the Project itself is due the class session after the Final Exam. To grade your project, I will sit down with each of you individually and you will demo it for me.

Class Participation

I do not like teaching to a boring audience. I encourage you to ask pertinent questions and make insightful comments. I recognize that most (if not all) of you are attending this class after a full day of work and that some of you do not speak English as your first language. I do not consider any of these to be good reasons for not participating. If you have a question, didn't understand something, or have something smart-sounding to say, say it.

If you really don't like speaking up, an excellent way to earn participation points is to email me with suggestions for the website. (Links to external resources, example code, that kind of thing.)

Grading Scale

The grading scale will be as follows:

100-93% = A 82.9-80% = B- 69.9-67% = D+
92.9-90% = A- 79.9-77% = C+ 66.9-63% = D
89.9-87% = B+ 76.9-73% = C 62.9-60% = D-
86.9-83% = B 72.9-70% = C- below 60% = E

Please note that this scale applies ONLY to the final grade, and not to individual tests or lab assignments. (The difference between a 79 and an 80 on a test is the same as the difference between an 80 and an 81, i.e. one point.)

Details That Nobody Ever Reads

The instructor reserves the right to capriciously amend the course schedule in any way he deems fit, especially if he figures out that he missed something pretty important when he first sat down to write it.

We probably won't take a break during the middle of class. My experience has been that students prefer to just zoom through and get class over with.

If we can cover the material thoroughly and completely, I have no problem with excusing class early; I do not intend to keep you all in class until the very end "just because". That having been said, we have a lot of material to cover, so I expect we'll consume the full two hours most nights.

No extra credit will be offered for this class. Don't ask for any.

Requests for a higher grade will not be honored, even if this is your last class before graduating, or your visa is about to expire. You will receive the grade that you earn.

On nights of exams, students will be expected (not required, merely expected) to ask stupid questions. Examples include:

After asking one of these questions, you will probably give me a nervous, halting laugh.

The above is not an exhaustive list. Feel free to come up with your own. I'm sure you will anyway.