COP4020: Programming Languages

Course Description

COP4020 is an introduction to the design and implementation of programming languages. Programming languages are an essential means to express abstract computer programs. While programming languages may differ significantly in syntax and semantics, they share many common design concepts, translation mechanisms, and properties. This course reviews several common programming languages, defines programming language classes, introduces imperative and object-oriented programming language concepts, functional programming with Scheme, logic programming with Prolog, and presents theoretical and pragmatic aspects of programming language design and implementation.


Course Web Site
R. C. Lacher
Lacher contact info and schedule
Some working knowledge of the UNIX/Linux programming environment
Proficiency in C++.
Class Meetings
Room 206 TEC [PC Campus] on Tuesdays from 6:00 PM to 7:00 PM.
Course Materials
Text: Michael Scott, Programming Language Pragmatics, 2nd Edition, Morgan Kaufmann
Text Web site:
Lecture notes: see the course schedule
Other material: distributed via the calendar
Course Mentor
Keith Rupert
rupert AT cs DOT fsu DOT edu
Office: 386.754.4216
Home: 386.758.3296
Projects, Assignments, Exams, and Grading
See the grading policy below. You need an account to complete the programming assignments.
This class has students attending in two distinct modes:
  1. Mixed-Mode On-Campus
  2. Distance Learning On-Line
The content, objectives, assignments, assessments, and grading are the same for all students. Obviously, however, on-campus and distance students sometimes participate in different ways.

For all students: Regular participation via the Blackboard course interface is required. Official course announcements, lecture materials, assignments, and help archives will all be on-line at this site. Note that all registered students should have the course web site listed on their My FSU portal page. Be sure to test this and resolve any difficulties no later than the first week of classes.

For on-campus students: Class (lecture and recitation) will be met and attendance is required. (See schedule details below.) All exams will be given in class during scheduled class time.

For on-line students: All exams must be proctored and taken during the exam window. It is the student's responsibility to arrange for proctored exams in compliance with the FSU standards. (See Course Policies for details.)

Note that students may be required to identify themselves with official FSU ID to sit an exam.

Honor Code
All exams and assignments must be completed individually unless stated otherwise. Copying solutions is considered cheating. Submitted source code listings will be compared. Keep a copy of the listings to provide evidence of creative development. Students are expected to uphold the Honor Code. All students involved in cheating are in violation of the Honor code. Consult the Student Handbook for more details on the Honor code.

Grading Policy

The following table shows the coursework components and how they contribute to your final grade:

Programming projects 30%
Homework assignments 10%
Midterm exam 30%
Final exam 30%

To receive a passing grade (C- or better) for the overall course, you must earn a passing grade (C- or better) on the final exam and a passing grade on the projects (C- or better on average). In addition, you must submit a working version of every programming assignment in order to be eligible for the grade of A or A-.

Once these constraints have been satisfied, the course letter grade is determined using the following table:

94-100% A 87-89% B+ 77-79% C+ 67-69% D+ 0-59% F
90-93% A- 83-86% B 73-76% C 63-66% D  
  80-82% B- 70-72% C- 60-62% D-

Your grades for projects, homework, and exams will be accessible via FSU's Blackboard.


The midterm exam covers the first part of the course. The final exam the second part. The final exam is not comprehensive. The following table shows the dates of exams for on-campus students and exam windows for online students taking exams at proctored sites:

Exam Calendar
Exam On-Campus     Distance Window (Inclusive)    
Midterm Exam     Tue Oct 14 Thu Oct 16 - Tue Oct 21
Final Exam Tue Dec 9 Thu Dec 4 - Tue Dec 9

Note that it is the student's responsibility to set up the exam proctoring schedule individually. (See Course Policies for details.)

Access to some past exams is given through the following table. These are provided as a service to help with exam preparation and review. Note that solutions to exam questions are not provided and that the instruction staff will not participate in discussions of these questions. However students are welcome to discuss them openly via Blackboard. Note however that posting solutions is not appropriate, since the value of old exams is primarily as a self-study tool.

Year Midterm Final
2006 PDF PDF
2004 PDF PDF
2003 PDF PDF
2002 PDF PDF
2001 PDF PDF

Homework and Projects

There will be a number of programming projects. You are expected to work individually on these projects. Programming project assignments and due dates can be found on the course schedule.

Homework assignments consist of short-answer questions, essays, or problems. The purpose of these assignments is to prepare you for the exams. Homework assignments and due dates can be found on the course calendar.

For homework and projects, you must include your name and last four digits of your SSN on each submitted item (electronic or hardcopy). Note that copying program listings and homework from other persons violates the honor code and such abuse will not be tolerated. This includes dishonest practices such as programming-for-hire. Appropriate penalties will be enforced.

The project and homework assignments, when turned in before or at the due date before midnight will be graded. When turned in late, 10% will be deducted from the grade per day late until the homework has been received, with a maximum extension of five days.

Computer Accounts

You will need an account to log on to the Computer Science department machines. If you don’t have one, visit the system info site: CS System Info | New Student. You will need to check email on this account.

You will also need your Blackboard / FSU Email account (i.e., for logging in to the class communications web site and for receiving email originated from Blackboard. If you have not obtained this account, go to FSU Guide to Computing Resources | Getting Started. You will also need to check email on this account.

Class Communication

Most course communication is supported by the Blackboard course web site through Announcements, MyGrades, and the Discussion Board. In particular, students should use the Discussion Board for class communication, treating that as a "classroom". However there are circumstances when email will be used by instructors and students. Sometimes very important announcements may be emailed from Blackboard to your FSU account. And reports from your program assignments will be emailed to your CS account. Conversely, students may choose email to communicate with instructional personnel in cases where the subject matter is personal or otherwise inappropriate for public consumption on the Discussion Board.

It is therefore essential that you check email at both your CS account and your FSU account regularly - at least every weekday. Note that you can forward email from one or both of these accounts to a place where you commonly check email. See FSU Help Desk | Forwarding and CS Help Desk | Forwarding for details.

Schedule, Lecture Notes, and Assignments

The tentative schedule with PPT lecture notes is shown below (refresh this page if necessary). You are encouraged to download and print the notes as study guides. Links will be active when new notes have been added. The schedule will be updated when needed and significant changes will be announced on Blackboard.

Project and homework assignments can be downloaded by selecting the link in the "Assignments" column. Assignment submission processes will be announced. Note that assignment due dates are in the last column.


Date Lecture notes Reading material Other useful resources Assignments Due Date1
8/26 Introduction Chapter 1 (1.1 to 1.3, 1.5 and 1.7)
The Semicolon Wars
The Language List Homework 1 Key 8/29
9/2 Functional Programming Chapter 10 (10.1 to 10.3, 10.5 and 10.7) Scheme Homework 2 Key
Program 1
Program 2
9/9 Compilers and Interpreters Chapter 1 (1.4 and 1.6) Parser demo Homework 3 Key 9/12
9/16 Syntax Chapter 2 (2.1 to 2.3.1, 2.5, and pages 77 to 80) - Homework 4 Key
Program 3
9/23 Semantics Chapter 4 (4.1 to 4.3, and 4.7) - Homework 5 Key
Program 4
9/30 Axiomatic Semantics Handout (up to page 408) - Program 5 Key 10/19
10/7 Review - - -
10/14 Midterm Exam - - - Schedule
10/21 Names, Scopes, and Bindings Chapter 3 - Homework 6 Key
10/28 Control Flow Chapter 6 (6.1 to 6.6.1, and 6.8) - - -
11/4 Subroutines and Parameter Passing Chapter 8 (8.1, 8.2.4, 8.3, 8.4, 8.7) - Homework 7 Key
Program 6
11/11 Exception Handling
11/11 is Veteran's Day. There is no class scheduled.
Chapter 8 (8.5)
- Program 7 11/23
11/18 Logic Programming Chapter 11 (11.1 to 11.2, 11.4 and 11.5) - Homework 8
Program 8 Hint
11/25 Review - Program 5 Solution Program 9
12/2 Review - - - -
12/9 Final Exam - - - Schedule

1 In general, homework is due on Friday and program is due on Sunday

For information on university events, see the FSU academic calendar and the final exam schedule.

Course Policies

First Day Attendance Policy: Official university policy is that any student not attending the first class meeting will be automatically dropped from the class. For distance students, this policy is interpreted as posting to the discussion forum "First Day Attendance" no later than the first day of the semester.

Regular Attendance Policy: The university requires attendance in all classes. Attendance in distance classes shall mean regular access to the course web site via and regular participation in the class discussion forums. Here, "regular" shall mean a substantial amount of time on a weekly basis. Note that individual access statistics are maintained by Blackboard.

Proctored Exam Policy: All exams must be proctored and taken at an approved testing site during the exam window or in class on the designated date. It is the student's responsibility to arrange for proctored exams in compliance with the FSU standards. Go to for complete information on setting up a proctored exam site.

Exam Makeup Policy: An exam missed without an acceptable excuse will be recorded as a grade of zero (0). The following are the only acceptable excuses:

All excuses must be submitted in writing, must be signed by the excusing authority, and must include complete contact information for the authority, including telephone numbers and address.

Missed exams with acceptable excuse will be made up or assigned the average grade of all other exams, at the option of the course instructor.

Missed, and acceptably excused, final exams will result in the course grade of 'I' and must be made up in the first two weeks of the following semester.

Grade of 'I' Policy: The grade of 'I' will be assigned only under the following exceptional circumstances:

Completion of Work Policy: To be eligible for the grade of A or A-, working versions of all programming assignments must be submitted.

Academic Honor Policy

The Florida State University Academic Honor Policy outlines the University’s expectations for the integrity of students’ academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process.  Students are responsible for reading the Academic Honor Policy and for living up to their pledge to “. . . be honest and truthful and . . . [to] strive for personal and institutional integrity at Florida State University.”  (Florida State University Academic Honor Policy, found at

All students are expected to uphold the Academic Honor Policy. Please note the following items are defined and made violations by the policy:

  1. Plagiarism
  2. Cheating
  3. Unauthorized Group Work
  4. Fabrication, Falsification, and Misrepresentation
  5. Multiple Submission
  6. Abuse of Academic Materials
  7. Complicity in Academic Dishonesty
  8. Attempted ...

Violations of the academic honor policy may result in failing grades and/or dismissal from the university. All students are expected to read and understand the policy. FSU subscribes to, a database of papers that have been previously published or turned in for credit in university courses worldwide. Student work may be checked in the Turnitin database for originality. Note that turning in work that contains uncited quoted material from any source is considered plagiarism and a violation of the FSU honor code.

Americans with Disability Act

Students with disabilities needing academic accommodation should:
(1) register with and provide documentation to the Student Disability Resource Center; and
(2) bring a letter to the instructor indicating the need for accommodation and what type.  This should be done during the first week of class.

This syllabus and other class materials are available in alternative format upon request.

For more information about services available to FSU students with disabilities, contact the:

Student Disability Resource Center
97 Woodward Avenue, South
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)

(This syllabus and other class materials are available in alternative format upon request.)

Emergency Management Information

Information regarding the status of FSU in an emergency situation may be obtained from the following sources:

Any specific information related to this class will be posted on the course web site or sent via email to your fsu email address.

Syllabus Change Policy

This syllabus is a guide for the course and is subject to change with advanced notice. Such notice will be in the form of an announcement to the course web site on My FSU.

This syllabus is based on the original course design and syllabus by Robert van Engelen of Florida State University, 2006. The course and syllabus have been modified by R.C. Lacher for Fall 2008.