COP 5555, Programming Language Principles

Course Description and Administration

 


       COP 5555 - PRINCIPLES OF PROGRAMMING LANGUAGES

                       Summer 2008

Instructor:      Dr. Manuel E. Bermudez
Schedule:        M, W, F: 7th period, CSE 107.
Office:          E362 CSE
Phone:           (352)-392-1534 (desk)
E-mail:          manuel@cise.ufl.edu
Office Hours: See my home page: http://www.cise.ufl.edu/~manuel/
Text:	Programming Language Pragmatics 2nd Edition, 
		Michael Scott, Morgan Kaufman, 2006.
Class Notes:     available on this site.
		


COURSE DESCRIPTION:

This  course  will cover the central principles of designing
and implementing   programming   languages.  The  four  main
paradigms of programming will becovered: imperative, object-
oriented, functional, and logic  programming.    Programming
language specification (syntax and semantics) is emphasized,
and special attention is given to  the  functional  paradigm
because of its usefulness in  specifying  the  semantics  of
imperative languages. There  will  be  a  class  project, in
which students  will  implement  portions  of  a programming
anguage.

At the end of this course, students should be able to:

1. Understand the  central  issues  and principles governing
   the design of modern programming languages.
2. Understand the  fundamental  differences between the four
   major programming language paradigms.
3. Understand  the  value  of  operational  and denotational
   semantic specifications of programming languages.
4. Implement a syntax analyzer for any programming language.
5. Understand the  process  of  translation  of a program in
   a high-level language to a low-level language.



PREREQUISITES:

COP  3530  Data  and  Program  Structures, graduate standing
and/or consent of instructor. Further, you should be a  pro-
ficient  programmer, capable of understanding and implement-
ing sophisticated data  structures  modularly,  quickly  and
efficiently.   Familiarity  with several high-level program-
ming languages is useful but not necessary.

ATTENDANCE:

Strongly recommended: class notes describe each of the major
components  of the class project, and they will be discussed
in class.  Attendance is mandatory for all tests.

PROJECTS: There will a class project, involving the implementation
of a programming language.  Groups of maximum size two are
allowed, and the implementation language must be Java or C++.


GRADING:   Project (2 reports)   30%   Averages:   A    90-100
           Homeworks             10%               B+   86-89
           Midterm               25%               B    80-85
           Final                 35%               C+   76-79
                                                   C    70-75
                                                   D+   66-69
                                                   D    60-65
                                                   E    0-59


DISHONESTY:

     Electronic copying of source code is  strictly  prohib-
ited.  Students are encouraged to exchange advice and infor-
mation about programming  projects,  but  working  together,
especially at the computer, is not allowed unless explicitly
permitted by the instructor.  Source code in this  class  is
collected  by  the  instructor,  and compared against source
code from other students, and code from previous  semesters,
with  great  effectiveness in detecting similarities.  Inci-
dents of students copying the work of other students will be
referred  to  the Student Honor Court, with the minimum pun-
ishment being a grade of 'E' in the course.


  COURSE CALENDAR:              Powerpoint   Exam/Project
                                Lectures         Dates
------------------------------------------------------------

      May 2008      
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17   Week 1   1,2,3
18 19 20 21 22 23 24   Week 2   4,5,6
25 26 27 28 29 30 31   Week 3   7,8,9
                    
     June 2008      
Su Mo Tu We Th Fr Sa   
 1  2  3  4  5  6  7   Week 4   10,11
 8  9 10 11 12 13 14   Week 5   12,13,14
15 16 17 18 19 20 21   Week 6   15,16     MIDTERM: JUNE 20
22 23 24 25 26 27 28   BREAK
29 30                                     Project 1 DUE 6/30
                    
     July 2008      
Su Mo Tu We Th Fr Sa
       1  2  3  4  5   Week 7   17,18,19  
 6  7  8  9 10 11 12   Week 8   20,21,22
13 14 15 16 17 18 19   Week 9   23,24,25
20 21 22 23 24 25 26   Week 10  26,27
27 28 29 30 31      
                    
    August 2008     
Su Mo Tu We Th Fr Sa
                1  2   Week 11  28,29
 3  4  5  6  7  8  9   Week 12  30,31,32   FINAL: AUGUST 8
10 11 12 13 14 15 16                       PROJECT 2 DUE 8/8
17 18 19 20 21 22 23