COP4020/CGS5426 Programming Languages


COP4020 Programming Langages introduces the fundamentals of 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, implementation, and analysis.


Course Web Site
Professor Xin Yuan
xyuan AT cs DOT fsu DOT edu
Office: 168 LOV
Phone: 644-9133
Office Hours: T, H 10:00 AM to 11:30 PM and by appointment.
COP4530 (co-requisiste)
Working knowledge of the UNIX/Linux environment
Proficiency in C or C++.
MCH 0201 on Tuesday and Thursday from 12:30 PM to 1:45 PM. Class attendance is required.
Recitation: Monday 8:00am-8:50am Lov 301 (Section 1), Monday 12:20pm-1:10pm Lov 301 (Section 2), and Friday 11:15-12:05 Lov 301 (Section 3)
Recitation time includes student presentations. Recitation attendance is required.
Course Material
Textbook: Michael Scott, Programming Language Pragmatics, 3rd Edition, Morgan Kaufmann
Textbook Web site:
Lecture notes: see the course website
Other material: class handouts (also made available online).
Teaching Assistant
Projects, Assignments, Exams, and Grading
See the grading policy below. You need a CS account to complete the programming assignments.
The university requires attendance in all classes. Roll will be taken on a random basis to check attendance. Absences can only be excused with proper documentation and students are expected to make up for any material missed due to absences.
Zero Tolerance for Cheating!
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 implemented code listings to provide evidence of creative work. Students are expected to uphold the Honor Code, see also below. Any student involved in cheating is in violation of the Honor code. Consult the "Student Handbook" for more details on the Honor code.


The following coursework components contribute to your final grade by the weights shown in the table below:

Programming projects 25%
Homework assignments 15%
Presentation topic (oral presentation and paper) 10%
Midterm exam 20%
Final exam 30%

To receive a passing grade for the overall course, you must earn a passing on the projects (C- or better on average) and receive a combined passing grade according to the weight distribution shown in the table above.

The tentative letter grade distribution for the final combined grade score (after roundoff) is shown in the table below:

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 at Blackboard.

Programming Projects and Homework

All assignments are mandatory and part of the final grade. There are several programming projects in this course. You are expected to work individually on these projects.

Homework assignments consist of short-answer questions, essays, or problems. The purpose of these assignments is to prepare you for the exams.


In all submissions of homework and projects you must include your name with your FSUID and identify the homework by HOMEWORK # (for example HOMEWORK 5) and projects by PROJECT # in the email subject line or in Blackboard drop box content.

Homework can be submitted on paper or electronically. Electronic submissions of homework and projects should be done through email to the TA or uploaded to the Blackboard dropbox (preferred). For projects, please submit only one file (zip or tarball) that includes all sources of your programming assignment, the input and output files (when applicable), and a Makefile when applicable. Use the tar utility to compress and archive the material for inclusion as an attachment in the email message (preferably use tar to avoid zipped files from being filtered). Use the email subject line "PROJECT #" for projects and "HOMEWORK #" for homework, where # is the homework/assignment number.

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 assignments should be turned in before midnight at the due date. When turned in late, 10% will be deducted from the project grade per day until the submission has been received, with a maximum extension of two working days.


A paper and classroom presentation is required, see the presentation schedule. The paper should describe the topic in sufficent depth and include references to publications. References to web sites are allowed. The presentation will take place during recitation hours and attended by the class and instructor. After the presentation the paper and presentation material should be submitted in hardcopy or in electronic form for grading, preferably the same day but no later than the official day of the last class.


The midterm exam covers the first part of the course. The final exam is comprehensive, covering the whole course.

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:

Schedule, Lecture Notes, and Assignments

The tentative schedule is shown below. For more details on university events, see the FSU academic calendar and the final exam schedule.


First class attendance is mandatory. Attendance during exams is also mandatory. For the remaining duration of the course roll is not taken, but you are responsible for obtaining all material delivered in class, including verbal communications.

Excused absences include documented illness, deaths in the immediate family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. Accommodations for these excused absences will be made and will do so in a way that does not penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.

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 violations will be processed by the university. Penalty for step 1 violation is a 0 grade for the particular project/homework/exam and a letter downgrade for the course letter grade (e.g. B->C)


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)

Copyright: Xin Yuan, Florida State University, 2013-2014.
Last modified: Monday, Jan. 6, 2014