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 aspacts of programming language design, implementation, and analysis.
The following coursework components contribute to your final grade by the weights shown in the table below:
|Presentation topic (oral presentation and paper)||10%|
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 letter grade distribution for the final combined grade score (after roundoff) is shown in the table below:
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. The programming project assignments and their due dates can be found in 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 in the course schedule.
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 instructor 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, 5% will be deducted from the project grade per day until the submission has been received, with a maximum extension of five 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 covers the second part. Thus, the final exam is not comprehensive.
A list of past exams (without solutions) is listed here:
You will need an account to log on to the Computer Science department machines. If you dont have one, visit the system info site: http://system.cs.fsu.edu/newusers
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 handouts to take to class. 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 due" column.
|Date||Lecture notes||Reading material||Other useful resources||Assignments due||Date|
|1/4||Introduction||Chapter 1 (1.1 to 1.3, 1.5 and 1.7)||The Language List||n/a||1/4|
|1/6||The Semicolon Wars||-||Quiz1 results (HW1)||1/6|
|1/11||Functional Programming||Chapter 10 (10.1 to 10.3, 10.5 and 10.7)||-||-||1/11|
|1/20||Logic Programming||Chapter 11 (11.1 to 11.2, 11.4 and 11.5)||-||-||1/20|
|2/1||Compilers and Interpreters||Chapter 1 (1.4 and 1.6)||-||-||2/1|
|2/3||Syntax||Chapter 2 (2.1 to 2.3.2, 2.5)||Parser demo||-||2/3|
|2/15||Semantics||Chapter 4 (4.1 to 4.3, and 4.7)||-||-||2/15|
|3/15||Axiomatic Semantics||Handout (up to page 408)||-||-||3/15|
|3/22||Names, Scopes, and Bindings||Chapter 3||-||-||3/22|
submission extended to 3/28
|3/31||Control Flow||Chapter 6 (6.1 to 6.6, and 6.8)||-||-||3/31|
|4/5||Subroutines and Parameter Passing||Chapter 8 (8.1, 8.2 up to but not including 8.2.1, 8.3, 8.4, 8.7)||-||-||4/5|
|4/14||Exception Handling||Chapter 8 (8.5)||-||HW7||4/14|
Presentation papers are due
|4/29||Final Exam 7:30-9:30 AM||n/a||n/a||n/a||4/29|
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 Universitys 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 http://dof.fsu.edu/honorpolicy.htm.)
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: Robert van Engelen, Florida State University, 2011.