Introduction |
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 discusses program translation, formal type systems, and formal semantics.
Syllabus |
Submitting |
Homework can be submitted on paper or electronically (Blackboard dropbox). Projects should be submitted electronically (Blackboard dropbox). 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 zip or tar utility to compress and archive your submitted material. Identify the submission with "PROJECT #
" for projects and "HOMEWORK #
" for homework, where #
is the homework/assignment number.
Copying program listings and homework from other persons or from the web 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 each day until the submission has been received, with a maximum extension of five days.
Presentations |
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.
Exams |
The midterm exam covers the first part of the course. The final exam covers the second part. The final exam is not comprehensive.
A list of past exams (without solutions):
Grading |
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 | 25% |
Final exam | 25% |
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:
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.
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.
Computer Accounts |
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/newuser
Schedule, Lecture Notes, and Assignments |
The schedule with PDF lecture notes is shown below (refresh this page if necessary). The instructor reserves the right to modify the schedule and will announce any such change in class and on Blackboard. You are encouraged to download and print the notes as handouts to take to class. Project and homework assignments can be downloaded by selecting the link in the "Assignments due" column.
Links to PDF notes may be non-active (HTTP 404 error) until a week before the lectures cover that topic.
Date | Lecture notes | Reading material (4th ed) | Other useful resources | Assignments due |
---|---|---|---|---|
8/29 | Introduction | Chapter 1: 1.1 to 1.3, 1.5 and 1.7, The Semicolon Wars | The Language List | |
8/31 | Functional Programming | Chapter 11: 11.1 to 11.3, 11.5 (11.5.1 only), 11.6 to 11.8 | Scheme | |
9/2 | Scheme Example | |||
9/7 | Haskell | |||
9/9 | Monica demo FP language | |||
9/12 | Logic Programming | Chapter 12: 12.1 to 12.2, 12.4 and 12.5 | SWI-prolog | |
9/14 | Prolog Example | |||
9/16 | ||||
9/19 | HW1 | |||
9/21 | Compilers and Interpreters | Chapter 1: 1.4 and 1.6 | Parser demo | |
9/23 | Flex Bison & Yacc ANTLR Calc.g Example |
|||
9/26 | Syntax | Chapter 2: 2.1 to 2.3, and 2.5 | HW2 | |
9/28 | ||||
9/30 | ||||
10/3 | Semantics | Chapter 4: 4.1 to 4.4, and 4.7 | ||
10/5 | ||||
10/7 | ||||
10/10 | Axiomatic Semantics | Handout (read up to page 408) | HW3 | |
10/12 | ||||
10/14 | ||||
10/17 | Review | PR1 | ||
10/19 | Midterm Exam | |||
10/21 | Axiomatic Semantics | Handout (read up to page 408) | ||
10/24 | ||||
10/26 | ||||
10/28 | Names, Scopes, and Bindings | >Chapter 3: 3.1 to 3.7, and 3.9 | ||
10/31 | ||||
11/2 | ||||
11/4 | ||||
11/7 | ||||
11/9 | Control Flow | Chapter 6: 6.1 to 6.6, and 6.8 | ||
11/14 | ||||
11/16 | ||||
11/18 | ||||
11/21 | Subroutines and Parameter Passing | Chapter 7: 7.1 to 7.2, and 7.3.1 | ||
11/28 | Chapter 9: 9.1, 9.2 intro only (not 9.2.1-4), 9.3, 9.5 to 9.7 | |||
11/30 | ||||
12/2 | HW4 | |||
12/5 | Exception Handling | Chapter 9: 9.4 and handouts | ||
12/7 | PR2 | |||
12/9 | Review | Presentation papers are due | ||
12/14 | Final Exam 12:30-2:30 PM |
Attendance |
First class attendance is mandatory.
Recitation attendance is mandatory.
Exam attendance is mandatory.
Class lectures should be attended to keep up with the pace. You should not skip more than three lectures unless the absence is officially excused. If you skip a class lecture then please be advised that you are responsible for collecting the material and notes delivered in the lecture.
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.
See FSU's General Bulletin.
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://fda.fsu.edu/Academic-Resources/Academic-Honor-Policy.)
ADA |
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)
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.edu/
Copyright: Robert van Engelen, Florida State University, 2016.
Last updated
Monday, October 10, 2016