Lecture meets MWF at 10am in MRDC 2407. The class newsgroup is git.cc.class.3411a; you are required to be aware of any information posted there by the instructor or any TA.
| Instructor | Brian McNamara | lorgon@cc | MWF 2-3 |
| TA | Tanisha Hall | thall@cc | T/Th 12:30-1:30 |
| TA | Dan Singhal | death@cc | M/W/Th 11-12 |
| TA | Joe Lafiosca | fnord@cc | T/W/Th 4-6 |
We all hold office hours in the common area of the College of Computing Building.
This a 3000-level course, Programming Language Concepts is offered primarily as a core requirement for undergraduates majoring in Computer Science. Other students with appropriate backgrounds in programming languages are welcomed.
Programming languages have been an important area of study in computer science for many years. Although most programming is done in a relatively small number of languages, many very important software development concepts and other key ideas in computer science have been incorporated into programming languages over the last 30 years. The primary goal of this course is to enable you to develop a well-organized conceptual understanding of programming languages, building on your prior concrete experience with several diverse languages.
Because you are being graded relative to other students in this course and not on an arbitrary, predetermined scale, any student's attempt to increase his or her grade through dishonest means could unfairly decrease the grades of other honest students. The assignments in this course are not intended to be collaborative exercises, but on the other hand we don't want to discourage discussion between students about ideas pertaining to this course. So, if you incorporate ideas into your assignments that did not originate with you, or did not come from the obvious sources--your instructor, teaching assistant, textbooks, lectures, or supplementary reading materials provided in this course--you must give credit to your sources. Furthermore, at no time is it acceptable for you to share your solutions to the assignments with other students, whether these solutions are complete or partial. You are not to work on these assignments in groups, whether on paper or at the computer. Students who fail to follow these rules will be charged with academic misconduct, which carries severe penalties. Of course, there is to be no collaboration whatsoever during exams. If you haven't already done so, you should take the time to become familiar with Georgia Tech's definition of academic misconduct and the policies and procedures pertaining to academic misconduct. This information can be found in the 1997-99 general catalog on pages 364-371.
Grades will be computed according to the following formula:
| Component | Normal Weighting | Graduating Seniors |
| Homeworks (4) | 25% | 35% |
| Programs (2) | 20% | 30% |
| Midterm | 20% | 35% |
| Final | 35% | N/A |
There will be two exams: a midterm and the final. Most exam questions will reflect the material covered in lectures, the readings and the homework. They will consist mostly of short answer questions, with a few longer essay questions and a little code writing or interpretation.
There will be two programming assignments required during the quarter, one in Prolog and one in C++. Programs will be graded on a 100 point basis, with 95 being the grade for a plain functional programs that meets the requirements of the problem statement. The other 5 points may be awarded for an especially outstanding job, such as including extensive error-checking, additional features, and so forth. Programs should be written in a readable coding style with descriptive variable names and informative comments.
Programs are to be turned in electronically (details to be provided later). Programs will be accepted up to three days late, with a penalty of 10 points for each day. On-time submissions are strongly encouraged, but getting the programs working is obviously important.
In addition to the programs, there will be four written homework assignments. They will involve questions pertinent to material covered in class and in the readings. They will be assigned in class and due at the beginning of class on their due dates.
For more specific information about assignments, go to the assignments page.
There is another section of CS 3411 this quarter: section B, taught by Phil Hutto. It has a newsgroup and web page which are bound to have useful materials.
Follow this link to a short tutorial on C++, which will be useful for the programming assignment.
Go here to learn a little more about the recent ANSI/ISO C++ Standard, and find links to Bjarne Stroustrup's homepage and books.