CS 4500/6500: Programming Languages (Fall 2003)

Class Time

Monday : 12:20 - 1:10PM
Tuesday - Thursday : 12:30 - 1:45PM

Location

Monday: Boyd Building, Rm 306
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, San Jose State University

ISBN: 0-534-95341-7; © 2002

Mailing list

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

Schedule of Topics

Exam Schedule

Midterm: October 7
Final : Tuesday, December 16, 12 - 3 PM

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:

  • 20% Written Homework
  • 25% Programming Homework
  • 25% Midterm
  • 30% Final Exam

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 12 noon, and you turn it in at 12:01, you will recieve the same grade as someone that turns it in at 11:59 the next day. Programs more than 24 hours late will not be accepted for any reason.

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 University of Georgia will not be grounds for leniency. In other words, if you come from a background where collaborative work is the norm, you must realize immediately that it is not allowed in this class, unless cleared by me first.

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