Ithaca College Logo Ithaca College Home Blue Header

Ithaca College, Ithaca, New York

Study Guide

Spring 2008

Introduction and Prerequisites Required Textbooks Communication Grading Assignments


This study guide provides the objectives, requirements, and timetable for this course.

Contact Information.

This information is given on the top level student page. Click here to go to this page.

Introduction and Prerequisites

This course is a core course in the computer science curriculum. In this course you will learn about the different language paradigms that computer scientists have developed to create solutions to various problem domains. You'll learn about the features of programming languages and you'll learn how languages are implemented. So the course ranges from the very abstract to the very particular.

Students must have a solid background in programming in a language (which one doesn't matter), must understand how computers work at a low level (as taught in the Computer Organizations and Systems course), and must be able to apply basic mathematical concepts (as taught in the Discrete Math course).

This course will, as you might expect, entail a lot of programming, much of it in languages that you probably have not heard of before. You will also be expected to master quite a bit of theoretical material and to apply this material to solve language problems such as creating grammars.

Back to top


Required Textbooks.

Concepts of Programming Languages, 8th ed. Robert W. Sebesta, Addison Wesley, 2007. This book provides the primary conceptual material for the course. Lecture slides and problem sets will come from this book.

The Scheme Programming Language, 3rd ed. R. Kent Dybvig, MIT Press, 2003. This book describes the Scheme programming language in great detail. Much of your programming in this course will be in Scheme and many of the problem sets that you will solve in the first part of the course will come from this book.

Back to top


Communication

Back to top


Grading

Grading will be based on the following events. Note that half of your grade comes from the exams. Thus, if you score perfectly on assignments and projects and have a 70% average on the exams, you will receive a "B" for the course.

Assignments (all kinds) 30%.
Exams (3 exams) 35%.
Language Review Project 15%.
Other Projects 15%.
Class Attendence and Participation 5%.

There will be two midterm exams and a final. The first exam will take place on Thursday, 28 February, at 6:30PM in a room TBA. The second exam will take place on Thursday, 27 March, at 6:30PM in a room TBA.

The final project presentation will take place on Friday, May 2 in class. The final will take place in Williams 309 on Friday, 9 May, 1:30PM - 4PM.

Back to top


Assignments

  1. This is an upper level computer science course. I assume that you know how to design and create software and debug programs. Thus, I will not debug your programs for you. You may ask conceptual or theoretical questions, but you are responsible for making your programs run.
  2. Class attendance is mandatory. You are responsible for all material and announcements given in class. If you miss a class you are responsible for obtaining the missed material/announcements. 4 unexcused absences will lower your grade by one half of letter, e.g., an A becomes an A-. If you miss more than 8 classes I will withdraw you from the course. Note that verifiable health issues or family emergencies, religious holidays, court appearances, and most College-authorized cocurricular and extracurricular activities such as athletic events, musical and theatrical performances, and professional conferences are considered excused absences.
  3. I will take 2 points off of your final point total for every class missed. The first two misses are free.
  4. All assignments must be turned in within 2 days of the due date. Your assignment will be docked 25% if it is a day late and 50% if it is two days late. You may not turn in an assignment any later that 2 days late. Always turn in whatever work is done at the due time. You should have something FINISHED (i.e., functioning and commented), even if the entire assignment isn't completed. Individual exceptions should be discussed with me in advance.
  5. Assignments will be checked in class. You will be required to turn in hard copies of all html, javaScript, Perl, CSS, etc. Every copy must have your name and the assignment number at the top of the page in a comment.
  6. No make-up work is available. If you miss assignments there is no way to make up the work.
  7. All assignments are expected to be INDIVIDUAL work. All work handed in must be original. Duplicate or very similar assignments receive negative grades. Flagrant cheating (on an exam or project, or assignment) will result in (at minimum) a FAILING GRADE for the course. General discussion is allowed, but not sharing of answers, algorithms, or work.
  8. Some projects will be the exceptions to the above rule. These will be completed in teams.
  9. SAVE your intermediate work until an assignment has been graded, returned, and recorded. KEEP backup copies of the final versions of your assignments and projects. KEEP copies of returned work (I may make a mistake in recording the grade).
  10. Graded assignments will be returned in class. Work unclaimed in class may be picked up later from outside my office. If you have a question on a grade, bring it to my attention within one week of the assignment's return.
  11. Periodically, I will post grades as we have them recorded. It is your responsibility to check these listings to ensure their correctness, within one week of the posting.
  12. Handwritten assignments should be neat and easy to read (Or else type them!). Include your name and section number on every page and in every stack. Your term project design statements must be typed.
  13. It is more productive to use the computer for entering, editing, and running scripts, and then spend time AWAY from the machine debugging a script.
  14. Don't get behind in this class! Start each assignment as soon as it is handed out, so that you have time to ask questions and can use your time wisely.

Back to top


Last updated on 16 Mar 2008 by John Barr