Standardized
Syllabus for the
College
of
Engineering
COP
5555 Programming Language
Principles
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
COP
3530 Data Structures and Algorithms (or equivalent undergraduate
course)
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: (352) 392-1528
E-mail address: sanders@cise.ufl.edu
Web site: www.cise.ufl.edu/~sanders
7.
Teaching Assistant
TBA
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
TBA
11.
Material and Supply Fees
none
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
Reading
Additional on-line
reading material
TBA
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 40%
Homework 40%
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:
-
University
Counseling
Center
, 301
Peabody
Hall, 392-1575, Personal and Career Counseling.
- SHCC mental Health, Student Health Care Center, 392-1171, Personal
and Counseling.
- Center for Sexual Assault/Abuse Recovery and Education (
CARE
), Student Health Care Center, 392-1161, sexual assault
counseling.
-
Career
Resource
Center
, Reitz Union, 392-1601, career development assistance
and counseling.
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
University
of
Florida
community, pledge to uphold ourselves and our peers to the highest
standards of honesty and integrity.