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 increased ability to learn new languages; (3) An understanding of the theoretical foundations of languages and the significance of implementation, and (4) An improved background for choosing and using different programming languages.
   
Text Programming Language Pragmatics , by Michael Scott, Morgan Kaufmann, 2000.
   
Instructor
Rebecca Bruce
Office: RBH 024
Telephone: 232-2275
e-mail: bruce@cs.unca.edu
Office Hours: 10:30am-noon on T & R, & 3:30-5:00pm on R


Tentative Course Schedule
Week Starting Lectures & Reading Assignments & Exams
Aug 11 Introduction (Syllabus & Chapter 1)
History
Aug 18 Compilation and Interpretation (Chapter 1)
Lexical Analysis (Chapter 2)
Aug 25 Syntax Specifications (chapter 2)
Parsing (chapter 2)
Sept 1 Perl Basics, Beyond the Basics
Labor Day: No Monday Classes
Assignment 1 (50 points)
Test Summary for Grading
Sept 8 Binding Time & Storage Allocation, Scope Rules,
& Symbol Table & Subroutine Closure (Chapter 3)
Sept 15 Help Session on Assignment 1
Sept 22 Semantic Analysis (Chapter 4)
Review for Exam 1
Exam 1
Sept 29 Scheme (Chapter 11) Assignment 2 (25 points)
Oct 6 Expressions Sequencing & Selection (Chapter 6)
Fall Break: No WRF classes
Oct 13 Iteration and Recursion (Chapter 6)
Intro. to Prolog (Chapter 11)
Oct 20 Prolog: Lists, Negation & Control Flow (Chapter 11)
Intro. to Data Types (Chapter 7)
Assignment 3 (25 points)
Oct 27 Type Checking & Data Type Implementation (Chapter 7)
An Ada example
Assignment 4 (5 points)
Nov 3 Control Abstraction (Chapter 8)
Exceptions & Parameters (Chapter 8)
Assignment 5 (25 points)
Nov 10 Review for Exam 2
Data Abstraction & Object Orientation (Chapter 10)
Exam 2 Sample Solution
Nov 17 Dynamic Binding (Chapter 10)
Building a Runnable Program Part 1 (Chapter 9)
Programming language case study
Nov 24 Building a Runnable Program Part 2 (Chapter 9)
Thanksgiving Break: No WRF classes
Dec 1 Case Study Presentations: Smalltalk, ML,
Csound, Eiffel, ABEL, Python, JavaScript, C#
Review for Final Exam
run your own robocode competition
Dec 8 Final Exam Week Wed. Dec 11, 3:15-5:45pm


On-Line Resources
Perl
Scheme
Prolog
Java
Robocode


Grading
Exam grades 125 x 2 250
Assignment grades --- 130
Class Presentation --- 50
Final Exam grade --- 150
Total Points --- 575


Attendance Policy:

Lectures: A roll is not taken. Students are expected to attend all class lectures. Failure to do so 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 this exam. Failure to notify the instructor prior to the scheduled time will produce an automatic zero for the exam.


Policy on Assignments:

The program that you write are your way of telling the instructor about your mastery of this course. Because this is a course about writing programs you are expected to take these assignments very seriously. Your programs must be clearly different than those turned in by others in the class and represent a unique and special effort on your part.


CSCI logo Return to the UNCA Computer Science home page