CS 4500/6500: Programming Languages (Fall 2003)
Class Time
Monday :
Tuesday - Thursday :
Location
Monday:
Tuesday - Thursday: Hardman, Rm 101
Instructor
Scott Watterson
Boyd 219D
saw@cs.uga.edu
TA
To be determined
Textbook
Programming
Languages, Principles and Practice, Second Edition
Kenneth C. Louden,
ISBN: 0-534-95341-7; © 2002
Please sign up to the mailing list. You will be responsible
for any material posted to the list.
Prerequisites
Undergraduate prerequisite: CSCI 1302
Undergraduate prerequisite or corequisite: CSCI 2720
Exam Schedule
Midterm: October 7
Final : Tuesday, December 16,
Grading
Grades will be assigned on the usual A-F basis. Grading will
be absolute; there will be no "curve". Achieving a 90% will guarantee
an "A", 80% a "B", and so on. However, when the final
grades are given, it could be the case, for example, that an 85% gets an
"A". Do not confuse this with a curve, however. If everyone does A
work (as I hope), everyone will get an A. If everyone does C work, everyone
will get a C.
There will be approximately 6 written homework assignments,
and 4 programming assignments. Their approximate weight will be:
Please note that these are tentative. Relative weights of
assignments can change, although I would expect them to end up very close to
those listed above. Also, you will not pass the course with a grade of C or
better unless you get a C or better on one of the exams. Please understand what
this means---if you get all A's on the assignments, but fail both of the exams, you will not receive a passing grade in the class.
Note: I do not expect this situation to arise.
Important: Your grade will be the one you earn. If you need
this class to graduate, I suggest that you earn a C or better. Under no
circumstances will your graduation status or your HOPE status affect your
grade. This includes situations like: (1) your parents are coming for
graduation, (2) your relatives are flying in from halfway around the world for
your graduation, (3) you have a job lined up and have to start immediately, and
(4) you got all A's up to this point, and you have never received a grade below
a C.
Office Hours: M - T - Th 2-3,
and by appointment
Office hours are for you. Please do not hesitate to come to
my office. Office hours will usually be very busy right before an assignment is
due; if you start the assignments early and come to my office well before they
are due, you have a better chance of avoiding the rush. Due to my busy
schedule, I may not accept drop-ins outside of office hours.
I will also be available by appointment; please send me
email to set one up. Please note that I will not be able to accept all requests
for appointments, especially around assignment due dates. If you do wish to see
me outside of office hours, you need to make an appointment. I am more likely
to accept appointments on Tuesdays and Thursdays --- Wednesday and Fridays are
my research days.
Finally, please keep in mind that office hours are not a
substitute for missed lectures.
Lectures
Attendance at lectures is optional. You are, however,
responsible for all material covered in lectures. We will often be discussing
material different from the textbook. I feel that the lectures are the course;
I will do my best to make them interesting. I believe that you won't just be
able to read the notes and succeed.
Please do not hesitate to ask questions; you might think
your question is dumb, but more likely, many people are wondering about the
same thing.
You should come to lecture prepared. Ideally this means you
have read the assigned material in advance. I am aware that this will not
always be possible -- at least review the previous lecture.
Written Assignments
Written assignments will cover the material in the book and
in lecture.
Programming Assignments
Your projects will be tested by me. Test cases are generally
pass (full credit) or fail (no credit). This means
that if you fail every test case, you will get a zero on the assignment (it is
possible that a few points will be given for programming style, etc., but your
score will be very poor nonetheless). You are responsible for testing your
programs to ensure their correctness. Note that just getting the program to
compile is not enough; similarly, just getting the program to pass a few test
cases is not enough. You are welcome to share test cases; this is often the
best way to ensure that your program works.
Your programs will be tested on Atlas. This means that you
are responsible for making sure that your program works on Atlas. Do not assume
that just because it worked at home it will work here. Test it.
I will not regrade assigments because of transmission errors or other problems
related to not testing the assignments on Atlas.
Late Assignments
All written assignments are due at the start of class. If
you are late to class, I will not accept your assignment. You must turn in the
assignment before the time it is due. I will not say "you only missed it
by 1 minute so that's OK."
All programming assignments are due at the time indicated on
the assignment handout. I will accept programs turned in 1 day (24 hours) late
for a 20% penalty. This means that if the assignment is due at
If you are sick and have appropriate documentation, always
let me know as soon as you get sick. It will be to your disadvantage to tell me
after the fact that you were sick; you may not be excused from the regular due
date.
Please keep in mind that social events (e.g.,
fraternity/sorority parties, football games, all-night Quake contests) are not
acceptable excuses for late work and will be immediately rejected. You probably
think that no one would ever use such excuses, but if you did --- you would be
wrong. On the other hand, if you have a conflict that is school sponsored (and
academic to some extent), I will consider but not
necessarily grant a request for an extension.
Note that scheduled downtimes are not an excuse for late
work. The systems go down once a month for backups, for a total of a few hours.
That is not a hardship. However, if there is an unscheduled downtime for a
significant period of time, I will make an adjustment in the due date --- as
long as the downtime occurs close to the due date.
Cheating
Cheating will not be tolerated in this class. You are
allowed to discuss the programming assignments with other students. However,
these must be general discussions. Any duplication of even one line of code is
a violation of the academic honesty policy. If you have any doubts about what
you are doing, ask me. I hand over all cheating cases directly to the Academic
Honesty department. Their punishment, if you are found guilty, carries with it
a minimum of a failing grade on the assignment and a transcript notation; the
latter item will certainly hinder your efforts to find a good job. This means
that if I catch you cheating, you're not just going to get away with an F on
that assignment; the punishment is much stricter than that. So, simply put,
don't cheat. Note that copying materials from the Web is a violation of
academic honesty. Furthermore, accepting code written by students in previous
offerings of this, or any other, class will be considered gross violations of
the academic honesty policy. If I catch you copying code, I will do my best to
make sure you receive the harshest penalty possible, including expulsion from
the University.
Please note that unfamiliarity with the rules and
regulations of the academic honesty environment at the
You may think that it's easy to get away with cheating, but
I would suggest that you realize that I will look for cheating, and I will
pursue cases where I see it.
Withdrawals and Incompletes
You may drop the class during the first three days without
an annotation ending up on your transcript. Thereafter until the drop day, you
may drop the class with an annotation. An incomplete will only be considered in
a case where there is a documented medical evidence
and you are making satisfactory progress in the course. If you have a medical
emergency and are not making satisfactory progress after the drop date, you may
be offered a late withdrawal; this is up to the instructor.
Warnings
First, you are responsible for reading and understanding
this entire syllabus. I will hold you to the rules set forth within this
document. Second, any computer science programming course involves a
significant amount of work. If you do not feel you have the time to spend, you
may want to think about taking a different course. I expect you to treat this
class professionally.
Language Materials