CSCI 431: Organization of Programming Languages
   
Course Goals A comparative study of programming languages designed to provide the following: (1) An understanding of language features and limitations. (2) An understanding of language specification and compilation. (3) An understanding of the theoretical foundations of languages. (4) An increased ability to learn new languages. (5) An improved background for choosing and using different programming languages.
   
Text Programming Language Pragmatics , by Michael Scott, Morgan Kaufmann, 2000.
   
Instructor
J. Dean Brock
Office: RBH 221A
Telephone: 232-5161
e-mail: brock@cs.unca.edu
Office Hours: TBD



Exam 3
Tentative Course Schedule
Week Starting Lectures & Reading Assignments & Exams
Aug 17-Aug 19 Syllabus & Chapter 1: Introduction
Compiling Overview
Assignment 1: Compiler exploration
Aug 22-Aug 26 Chapter 1: Overview of compilation
Chapter 2: Lexical analysis
Non-determinate Finite String Recognizers
Intro to the compiler generator Coco/R
Assignment 2: Intro to Coco/R
Aug 29-Sept 2 Chapter 2: Theoretical foundations of languages
Assignment 3: LL Grammar specification in Coco/R
Sept 5-Sept 9 Labor Day Holiday - No Monday classes
Chapter 2: Context-Free grammars & parsing
Assignment 4: Attributed grammar specification in Coco/R
Sept 12-Sept 16 Chapter 2: Context-Free grammars & parsing
FIRST, FOLLOW, & PREDICT
Sept 19-Sept 23 Chapter 4: Semantic analysis
Exam 1 review
Exam 1
Sept 26-Sept 30 Chapter 3: Name, scope & binding
Java inner class example
Perl scope example
C alias example
Assignment 5: Interpretation using Coco/R
Oct 3-Oct 7 Chapter 6: Control flow
Fall Break: No WRF classes
Assignment 6: Java 1.5
Oct 10-Oct 14 Perl basics
Advanced Perl
Perl OOP
Some Perl examples
Assignment 7: Perl
Oct 17-Oct 21 Intro. to Data Types
Type Checking & Type Implementation
Chapter 7 figures C++ I/O
Oct 24-Oct 28 Control Abstraction
Parameter Passing
Exceptions
Exam 2, Friday
Oct 31-Nov 4 Objects in Ada and C++
CSCI 333 C++ examples
Nov 7-Nov 11 Implementation of multiple inheritence
Scheme
Assignment 8: C++
Nov 14-Nov 18 Functional programming
λ-calculus
Nov 21-Nov 25 Acheiving closure
Nov 28-Dec 2 Locking Assignment 9: Pthreads
Dec 5-Dec 9 Class presentations Final exam period


On-Line Resources for Assignments
Perl
Scheme
Prolog
Smalltalk
C
Coco/R resource kit


Language Investigation Suggestions
Processing
ALICE
NetLogo
StarLogo
Python
php


Grades

Grades will be based on points earned from assignments, exams, and a final exam as follows:

Three Exams 54%
Class Presentation 18%
Assignments 28%
Total 100%

The following numerical scale will be used in assigning letter grades based on Score, the weighted score computed using the preceding table. The instructor reserves the option of relaxing the cut-offs for a letter grade in special circumstances.

Score ≥ 92A
Score ≥ 90 & Score < 92A-
Score ≥ 88 & Score < 90B+
Score ≥ 82 & Score < 88B
Score ≥ 80 & Score < 82B-
Score ≥ 78 & Score < 80C+
Score ≥ 72 & Score < 78C
Score ≥ 70 & Score < 72C-
Score ≥ 68 & Score < 70D+
Score ≥ 60 & Score < 68D
Score < 60F

Grading Procedures:

Assignments: Assignments will be graded on the +/ok/- scale, where + indicates excellent, ok indicates satisfactory, and - indicates needs improvement. Assignments will be given each week and will be due the following week. Late assignments will be accepted with a late penalty of 10% per day late. Your solutions to these assignments are your way of telling the instructor about your mastery of this course. Your solutions must be clearly different than those turned in by others in the class and represent a unique and special effort on your part.

Exams: During the semester there will be three in class exams. These exams will cover class material, reading, and homework questions. Exams will be given on the dates indicated unless otherwise indicated in class.


Attendance Policy:

Lectures: Students are expected to attend all class lectures. Failure to do so will impact your homework grade and will be considered a lack of interest in success on the part of the student.

Exams: If you must miss an exam due to illness you must email or telephone the instructor before the scheduled time and perhaps something can be arranged to avoid a zero for the exam.