Home

 

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 358
Telephone: (352) 450-9213
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:  2009, third edition  

ISBN  13:  978-0-12-374514-9

 

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)

Eclipse is  highly recommended (available from www.eclipse.org.  The eclipse IDE for Java developers is sufficient)

 

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.     Scripting Languages (examples:  csh, Ruby, Perl, tcl, etc.)

                                               iv.      Concurrent Programming (examples:  Java, SR, OpenMP)

                                     

 

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%

            Midterm 1 10%

            Midterm 2  10%

            Project  30%  

      Homework 20%

 

The project is the implementation, in Java, of a compiler for a small programming language and will be assigned in small parts  usually every two weeks.   The final part of the project is a second submission of the complete compiler.   A total of 45 points will be available for the project (30 from the individual parts, and 15 (graded 0 or 15) for the resubmission) and a maximum of 30 points will be applied to your grade.  (This is basically the same effect as dropping several low grades.)   Each part of the compiler project uses and builds on the previously implemented parts, so it is extremely important  to do high quality work as you go along and not get behind.

The homework assignments are pencil and paper exercises and/or small self-contained programming assignments  unrelated to the compiler project illustrating various programming paradigms that will be assigned concurrently with the project.  A total of 30 points will be available, a maximum of 20 points will be applied to your grade.

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.

Due to the generous policy of dropping low grades, no extensions will be granted.  Late projects and homework will be accepted with a penalty of 20% of the maximum grade for each 12 hours it is late.   The time of submission will be determined by the e-learning timestamp and deadlines will be strictly enforced.

Unless otherwise specified, deadlines for EDGE students are 1 week after the deadline for in-class students.   Midterm exams are due for EDGE students one week after they have been given to the on-campus students.   The due date for the final exam for EDGE students will be announced and will be determined by the deadline for grade submission.

 

17.  Grading Scale

Grades will be curved

 

18.  Make-up Exam Policy

No makeup exams will be given.  Exams will be excused (i.e. the final grade will be computed without that score) for documented illness and emergencies only. 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.