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/class/cop5555fa07  and 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

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 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  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:

            - 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.