Standardized Syllabus for
the
1. Catalog Description
History of programming languages, formal models for specifying languages, design goals, run-time structures, and implementation techniques, along with a survey of principal programming language paradigms. (3)
2. Pre-requisites and Co-requisites
3. Course Objectives
Students will gain both a conceptual understanding of specification and design issues in programming languages and their implementation, and hands-on experience implementing a compiler for a small programming language.
4. Contribution of course to meeting the professional component (ABET only)
N/A
5. Relationship of course to program outcomes (ABET only)
N/A
6. Instructor
Beverly A. Sanders
Office location: CSE 322
Telephone:
E-mail address: sanders@cise.ufl.edu
Web site: www.cise.ufl.edu/class/cop5555fa07 and www.cise.ufl.edu/~sanders
7. Teaching Assistant
8. Meeting Times
MWF 7 (1:55-2:45pm)
9. Class/laboratory schedule, i.e., number of sessions each week and duration of each session
3 50-minute class sessions per week
10. Meeting Location
CSE 107
11. Material and Supply Fees
N/A
12. Textbooks and Software Required
Textbooks:
Title: Programming Language Pragmatics
Author: Michael L. Scott
Publication date and edition: 2006, second edition
ISBN number: 978-0-12-633951-2
Title: Syntax and Semantics of Programming Languages
Author: Ken Slonneger and Barry Kurtz
Publication date: 1995
This book is available at http://www.cs.uiowa.edu/~slonnegr/plf/Book
Selected chapters only
Required Software:
Java J2 SE 6 (available from http://java.sun.com)
SML (available from http://www.smlnj.org)
ASM (an open source java bytecode manipulation framework available from http://asm.objectweb.org)
13. Recommended
Additional on-line reading material
14. Course Outline (given topically rather than chronologically)
a. Specification of programming languages
i. Syntax
ii. Semantics
1. Operational Semantics
2. Denotational Semantics
3. Axiomatic Semantics
4. Attribute Grammars
b. Issues in language design
i. Names, scope, and binding
ii. Types
iii. Control Flow
iv. Subroutines and Control Abstraction
c. Programming language paradigms
i. Data abstraction and object-oriented programming (examples: Java, Smalltalk, C++)
ii. Non-imperative paradigms
1. functional languages (examples: Scheme, ML, Haskell)
2. logic programming (example: Prolog)
iii. Concurrent Programming (examples: Java, SR, OpenMP)
iv. Scripting Languages (examples: csh, Ruby, Perl, tcl, etc.)
15. Attendance and Expectations
For on-campus students, regular attendance in class is expected. Class will start promptly and important announcements are made at the start of class, thus it is important to be on time.
16. Grading – methods of evaluation
Final exam 30%
Homework 50%
Midterm 20%
There will be seven homework assignments due approximately every two weeks. A major part of the homework assignment is the implementation, in Java, of a compiler for a small programming language. Each homework assignment will include a part of the compiler implementation plus additional pencil and paper exercises and/or small self-contained programming assignments unrelated to the compiler project. The final assignment is the second submission of the complete compiler and will be graded either 0 or 100 and will count as three grades, making a total of nine grades, the lowest of which will be dropped. Each part of the compiler project uses and builds on the previously implemented parts, so it is imperative to do high quality work on the compiler and not get behind.
Short (5-10 minute) unannounced open-book quizzes may be given at any time at the discretion of the instructor. These will count as extra credit. EDGE student will be given opportunities to earn the same amount of extra credit.
All homework assignments are to be done independently. Sharing your assignment, or using another student's homework assignment, even after that part of the assignment has been graded, is a violation of the honor code.
Late homework will be accepted with a penalty of 10% of the maximum grade per 12 hours past the deadline. The time of submission will be determined by the webCT timestamp and deadlines will be strictly enforced.
Since the lowest homework grade is being dropped, no extensions on homework assignments will be granted.
Unless otherwise specified, deadlines for EDGE students are 1 week after the deadline for in-class students.
17. Grading Scale
Grades will be curved
18. Make-up Exam Policy
Makeup exams will only be given in the case of a documented emergency. The final exam will be given to all on-campus students on the date scheduled by the registrar.
19. Honesty Policy – All students admitted to the University of Florida have signed a statement of academic honesty committing themselves to be honest in all academic work and understanding that failure to comply with this commitment will result in disciplinary action. This statement is a reminder to uphold your obligation as a UF student and to be honest in all work submitted and exams taken in this course and all others.
20. Accommodation for Students with Disabilities – Students Requesting classroom accommodation must first register with the Dean of Students Office. That office will provide the student with documentation that he/she must provide to the course instructor when requesting accommodation.
21. UF Counseling Services – Resources are available on-campus for students having personal problems or lacking clear career and academic goals. The resources include:
-
- SHCC mental Health, Student Health Care Center,
- Center for Sexual Assault/Abuse Recovery and Education (
-
22. Software Use – All faculty, staff and student of the University are required
and expected to obey the laws and legal agreements governing software
use. Failure to do so can lead to monetary damages and/or criminal
penalties for the individual violator. Because such violations are also
against University policies and rules, disciplinary action will be taken as
appropriate. We, the members of the