CMSC 330:
  Organization of Programming Languages




Primary Text

Robert W. Sebesta. Concepts of Programming Languages (Fourth Edition), Addison-Wesley, 1999, ISBN 0-201-38596-1.

Related Readings

The following are only examples. You can find the information you need in other places, including the World Wide Web.


  • E. Siever, S. Spainhour and N. Patwardhan, Perl in a Nutshell, O'Reilly, 1999.
  • R.L. Schwartz and T. Christiansen, Learning Perl (2nd Edition), O'Reilly, 1997.


  • K. Arnold and J. Gosling, The Java Programming Language (2nd Edition), Addison-Wesley, 1999.


Web sources

Reiner's helpful home page





Your grade will be determined as follows:



% each

% total

Programming projects












  • There will be no makeup mid-terms; students with valid written medical excuses will have their other mid-term and exam weighted appropriately to make up the difference. Students who miss exams without a written medical excuse receive a grade of zero.
  • Projects should be submitted by 6:00 pm on the day they are due. Projects submitted after 6:00 pm receive a zero.
  • Project grades consist of 50% for correct execution on standard, publicly available data, 50% for correct execution on data that will be unavailable to the students.
  • You must submit working copies of all projects by the last day of classes in order to pass the course.
    is defined as getting a 90/100 or better on a project.  A resubmission must get at least 90/100 to be considered working.
  • All submissions of assignments will be via an online submit program, which will be described by the TAs. Posted deadlines for program submission are sharp; standard Unix time of submission is used.

I recommend submitting early and often; only the last submitted version of your program will be remembered.

  • You may use any computing equipment you wish (such as your home computer) to develop your programs. However, this is "at your own risk". Your programming assignments must be electronically submitted from the account provided to you for this class, and will be graded based on how they run on standard Unix machines. If you make use of a language extension supported on your machine but not under Unix, or if your programming environment doesn't support standard language features supported under Unix, you will run into problems. No alterations to conditions of the assignment will be made to accommodate peculiarities of your other computing resources.

Intellectual Integrity, Academic Honesty, and Cheating

  • The college policy on academic dishonesty is strictly followed.
    All graded materials (whether exams or programming assignments) must be strictly individual efforts.
  • We expect you to follow all AITS guidelines for responsible machine usage.
  • Dr. Sussman is the information owner for all AITS accounts in this class, and all files in those accounts may be inspected by him at any time.
  • Allowing another student to examine a listing of your program or examining the listing of another student's program, for any reason, is strictly forbidden.
  • You may discuss only the following with other students:

    The program statement (e.g., “What size inputs did Sussman say we had to handle?'”).
    Syntax errors and features of programming languages (e.g., “How do I declare a file?'” or ”Do I need to terminate the last line in a procedure with a semi-colon?”).
  • Logging onto another student's account, for any reason, is cheating.
  • Discussion of solutions to a programming assignment must be limited to a discussion of what was discussed in class, in handouts or in the book. You may not otherwise discuss algorithms to be used to solve programming assignments (e.g., you should not ask or answer “Should I use linked lists to store the input lines?”) except to discuss what was said in class about the issue.
  • Attempting to falsely represent the correctness of your program, or to delay other members of the class from completing a programming assignment, is cheating.
  • The standard penalty for any cheating is to receive a grade of XF in the course. This grade denotes failure due to academic dishonesty, and your transcript will be so annotated.
  • You are discouraged, in the strongest possible terms, from making a habit of getting together with another student while you work on a programming project with the idea that you will limit yourselves to discussion of problems such as syntax errors only. There are too many temptations, and if by chance your programs wind up being very similar, you will find it difficult to make a convincing argument that you limited yourselves to allowable discussions of the project.