Syllabus

Course Description

CS 2360 is intended for relatively new students to computer science. The goal of this course is not so much to help you learn to write efficient computer programs, but rather to help you learn to be efficient computer programmers. Another way of putting this is that you will learn to write programs for the benefit of people, as opposed to writing programs for the benefit of computers. As you will see during this course, these two ideals will often be in conflict. Along the way, you'll be introduced to a different paradigm for problem-solving and programming than the one you're probably most familiar with; this new paradigm is often referred to as functional programming, although we'll stray far away from the purist's approach to functional programming in this course. You'll also become intimately aware of program design principles of decomposition, modularity, transparency, and abstraction. In this sense, this course can be viewed as a software engineering course. At the same time, you'll also gain experience with diverse methods of representing symbolic information, as well as different ways of manipulating that information, so you might also view this course as an algorithms and data structures course.

Our main vehicle for exploring this terrain will be the programming language called Common LISP. Common LISP is the second oldest computer programming language currently in widespread use, but don't let the age fool you--some implementations of Common LISP offer the most sophisticated programming environments in existence. LISP is usually closely identified with the world of artificial intelligence, as it is the language most often used in the development of "intelligent" systems. Yet LISP has also gained acceptance as a tool for the rapid protyping of other large systems such as compilers and operating systems. In any case, knowledge of Common LISP will give you an additional tool for solving problems you may be faced with in your career.

Preequisties

Everyone in this course should have successfully completed CS 1501 and CS 1502 or their equivalents. Course credit cannot be given for CS 2360 and either CS 1411 or CS 2201. Also, course credit cannot be given for CS 2360 and CS 4730.

Text books

Required Text: The required text is Common LISPCraft by Robert Wilensky (Addison-Wesley).

Recommended Texts: Common LISP: The Language (second edition) by Guy L. Steele (Digital Press). The contents of this book are also available on the Web.

Course Requirements and Grading

There will be three exams in this course. The two midterm exams will each count for 10% of your grade. The final exam will count for 30% of your grade. (Occasionally we encounter students who are at a disadvantage in exams because of a reading or other disability. If you have been diagnosed as having such a disability, please see me so that we can arrange for a more appropriate method of evaluation for you.) There will be eight programming assignments, each of which will be worth 4% of your grade. There will also be nine mandatory laboratory sessions during the quarter, during which your teaching assistants will evaluate your participation and performance. Each of these lab sessions will be worth 2% of your grade.

Late Assignments: Assignments are due no later than 8:00am of the day specified in the assignment posting, which you'll find on the newsgroup for this course. We'll aim to have a new assignment posted every Tuesday night, with that assignment usually due the following Monday at 8:00am. We will post one assignment each week, except for the last week of classes, so we'll have to grade and return the assignments pretty quickly. Consequently, we won't have any time to deal with late assignments, so turn in whatever you've done by the specified day and time. There will be no credit for late assignments.

Computing: All programming assignments are to be done in Common LISP. Macintosh Common LISP is available on many of Georgia Tech's Macintoshes; Common LISP is also available on acme. The College of Computing's workstations have Harlequin LISPWorks, which has an X-Windows interface. We are currently trying to arrange to make Macintosh Common LISP and Harlequin FreeLISP available to you for home use at relatively low cost. The former will be available as soon as Tech's legal department approves the agreement with Apple; the latter may be more of a problem, but we'll keep working on it. In addition, there are a number of freeware and shareware versions of LISP available via the Internet, but many of these versions do not adhere completely to the Common LISP standard. So beware---any problems of incompatibility between your version of LISP and our version of LISP are in fact your problems, not ours, and your programming assignments will be graded accordingly.

Academic Misconduct

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 will unfairly decrease the grades of other honest students. The homework 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 homework 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 homework 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 1995-96 general catalog on pages 355-360.
Back to Fall 2360 Home Page

Last modified: by Lyman S. Taylor(lyman@cc.gatech.edu)
(c) copyright Lyman S. Taylor 1995, All rights reserved