| CSCI 431 -- Organization of Programming Languages | ||||||
| Catalog Description |
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. (4) An improved background for choosing and
using different programming languages.
Prerequisites: CSCI 333 (Data Structures). Offered: Fall. (3) |
|||||
| Course Description | The goal of this course is to provide a framework for thinking about programming languages. The course is about how programming languages work, focusing on concepts that underlie various languages that the student is likely to encounter. | |||||
| Course Objectives |
As a result of taking this course, the student will be able to
think about programming languages analytically. This includes the abilities to:
|
|||||
| Required Textbook | Programming Language Pragmatics , by Michael Scott, Morgan Kaufmann, 2000., | |||||
| Class Time | Monday, 6:00 to 8:30 PM, RH 228 | |||||
| Instructor |
| |||||
| Tentative Course Schedule | ||||
| Week | Dates | Slides | Class Discussion Topics | Due Today |
| 1 | W Aug 18   |   | University classes start today |   |
| 2 | M   Aug 23 |
L1:
    Welcome Introduction to the course     Syllabus     Student background survey     An Historical Perspective     ACM Computing Classification - Software |
||
| 3 | M   Aug 30 | Chapter 1 |
L2:
Chapter 1: Introduction to Programming   Languages and Compilation 1.1-1.7, p 1-25 |
ICD TRQ 1.1, 1.3, 1.5, 1.6, 1.7, 1.12,
1.17, 1.25 ICD TE 1.1, 1,7, 1,10, 1,11 Papers selected for team reports. Towards a Natural Theory of Programming Languages |
| 4 | M   Sept 6 | Labor day. No classes. | ||
| 5 | M   Sept 13 | Chapter 2 |
L3:
Chapter 2: Programming Language Syntax 2.1 Specifying Syntax, Regular Expressions and      Context-Free Grammars, p 31-38 2.2 Recognizing Syntax: Scanners and Parsers, p 39-48 |
ICD,SFG TR Team report 1, paper 15
    (Karen, Mat) Snacks: Karen ICD TRQ 2.1, 2.3, 2.4, 2.9, 2.11, 2.17 ICD TE 2.1, 2.6 |
| 6 | M   Sept 20 |
Chapter 3 Java Passing Arguments |
L4:
Chapter 3: Names, Scopes, Bindings 3.1 The Notion of Binding Time, p 105-108 3.2 Object Lifetime and Storage Management, p 108-115 3.3 Scope Rules, p 115-139 (omit Modules p 122-129) |
ICD,SFG TR Team report 2, paper 4
    (Adam, Alexander) Snacks: Adam ICD TRQ 3.1, 3.3, 3.4, 3.5, 3.6, 3.7, 3.13, ICD TE 3.1, 3.4, 3.5 |
| 7 | M   Sept 27 |
Chapter 3 Java Field Accessibility |
L5:
Chapter 3: Names, Scopes, Bindings 3.3 Scope Rules, p 115-139 (continued) 3.4 The binding of Referencing Environments, p 139-144 |
ICD,SFG TR Team report 3, paper 5
    (Mat, Chris) Snacks: Keith |
| 8 | M   Oct 4 |
Chapter 6.1
Chapter 6.2 |
L6:
Chapter 6: Control Flow 6.1 Expression Evaluation, p 249-267 6.2 Structured and Unstructured Flow, p 267-270 |
ICD,SFG TR Team report 4, paper 2
    (Karen, Aidar, Michael) SFG,ICD Java Notebook Snacks: Tom |
| 9 | M   Oct 11 |
Chapter 6.3
Chapter 6.4 |
L7:
Chapter 6: Control Flow (continued) 6.3 Sequencing, p 270-271 6.4 Selection, p 271-279 6.5 Iteration, p 280-296 |
ICD,SFG TR Team report 5, paper 1     (Tom, Keith, Chris) ICD TRQ 6.3, 6.6, 6.11, 6.13,     6.16, 6.17, 6.21, 6.22 ICD TE 6.1, 6.6 Snacks: JDBrownsmith - popcorn |
| 10 | M   Oct 18 |
Chapter 6.5
Chapter 6.6 |
L8:
Chapter 6: Control Flow 6.5 Iteration, p 280-296 (continued) 6.6 Recursion, p 297-303 |
Quiz
QuizFormat.doc Snacks: |
| 11 | M   Oct 25 | Chapter 7 |
L9:
Chapter 7: Data Types 7.1 Type Systems, p 319-330. 7.2 Type Checking, p 320-351 |
ICD TRQ ...
SFG,ICD ICD,SFG TR Team report 6, paper 3     (Karen, Alexander) Snacks: Karen ICD TRQ 7.1, 7.2, 7.4,     7.6, 7.11 |
| 12 | M   Nov 1 | Chapter 7 |
L10:
Chapter 7: Data Types continued 7.3 Records, p 351-364 7.4 Arrays, p 365-379 |
ICD,SFG TR Team report 7, paper 13     (Aidar, Mat, Alexander) Snacks: Alex ICD TRQ 7.13, 7.18, 7.22, 7.23,     7.24, 7.25 |
| 13 | M   Nov 8 | Chapter 8 |
L11:
Chapter 8: Subroutines and Control Abstraction 8.1 Review of Stack Layout, p 427-431 8.2 Calling Sequences, p 431-442 |
SFG,ICD Java Notebook ICD,SFG TR Team report 8, paper 8     (Adam, Keith) Snacks: Chris ICD TRQ 8.1, 8.2 ICD TE 8.4 |
| 14 | M   Nov 15 | Chapter 8 |
L12:
Chapter 8 Continued 8.3 Parameter Passing, p 442-459 8.5 Exception Handling p 464-474 |
ICD,SFG TR Team report 9, paper 11     (Tom, Aidar, Michael) Snacks: Tom & Michael ICD TRQ 8.7, 8.8, 8.19, 8.20 ICD TE 8.9 |
| 15 | M   Nov 22 |
Chapter 10 |
L12:
Chapter 10: Data Abstraction and Object Orientation 10.1 Object Oriented Programming, p 529-539 10.3 Initialization and Finalization, p 546-554 7.7.3 Garbage Collection, p 395-401 |
ICD,SFG TR Team report 10, paper 14
    (Adam, Chris) Snacks: Alex ICD TRQ 10.1, 10.2, 10.3, 10.11 ICD TE 10.1 ICD TRQ 7.34, 7.35, 7.36, 7.37 |
| 16 | M   Nov 29 | Chapter 10 |
L14:
Chapter 10: Data Abstraction and Object Orientation 10.4 Dynamic Method Binding, p 554-564 10.5 Multiple Inheritance, p 564-574 |
SFG,ICD Java Notebook ICD,SFG TR Team report 11, paper 16     (Tom, Michael) Snacks: Matt |
| 17 | M   Dec 6 |   | Final Exam Week | CSCI 431.001 (TBD)
SFG Final Exam, Monday 6 - 8:30 PM Snacks: JDBrownsmith |
| Abbreviations Used in the Course Schedule | ||
| Activities | ||
| ICD | In class discussion | |
| SFG | Submit for grading | |
| Items to be submitted | ||
| TR | Team Report | |
| Textbook Exercises | ||
| TRQ | Textbook Review Questions | |
| TE | Textbook Exercise | |
| APL | ||
| http://www.users.cloud9.net/~bradmcc/APL.html Some recollections on a Programming Language | ||
| Ada Documents and Programs |
| Assembly Language Documents and Programs |
| 2_sample.txt 2_sample.txt |
| 3_sample.txt 3_sample.txt |
| calc.txt calc.txt |
| factorial.txt factorial.txt |
| COBOL Documents and Programs |
| DATET.COB.txt |
| DATEP.COB.txt |
| DATEW.COB.txt |
| Fortran Documents and Programs |
| alscal.f90.txt |
| bayes_beta.f90.txt |
| Modules and Module Procedures |
| PL/I Documents and Programs |
| IBM Enterprise PL/I - internet link |
| PLI_programming_language.htm |
| RHolt.fatal_disease.article |
| Languages Related To PLI |
| Grading | ||
| In class degree of engagement
(e.g., preparedness, participation, active listening) |
10% | |
| Quiz (1 at 10%) | 10% | |
| Java Notebook | 15% | |
| Team Reports on Assigned Papers (3 at 15% each) | 45% | |
| Final Exam | 20% | |
Evaluation of each assignment will use the specific criteria discussed in this syllabus and discussed in class. The following rubric will be used to evaluate the team reports, quiz, and exam answers:
An Outstanding Report/Paper (grade of A) is a well organized paper that can be understood without explanation from the author, is well-written, clearly conceptualized, addresses all stated criteria, reflects a great deal of time investment in the assignment, is carefully crafted, and adds at least one additional criteria. Be sure to identify in your report the added item, lest I should miss it.
A Good Report/Paper (grade of B) is well organized, can be understood without explanation from the author, is well written and clearly conceptualized, and addresses all the stated criteria.
A Satisfactory Report/Paper (grade of C) is organized but not especially well organized, can be understood only with some effort or explanation from the author, addresses most or all the stated criteria. If your assignment merely meets the requirements you will receive a C.
Poor Report/Paper (grade of D or below) is unorganized, poorly written/conceptualized, is missing criteria.
In order to encourage the development of good communication skills which are essential in the business environment, sloppy or incorrect English in any assignment will affect your grade.
Letter grades are assigned based on the percentage of available points obtained by a student. 100% to 90% guarantees an A, 89% to 80% guarantees a B, and so on. The instructor reserves the option of relaxing the cut-offs for a letter grade in special circumstances. Plus and minus grades will be used for this course.
Team Reports
You are expected to participate in three reports over the course of the semester. One of these should be in a team of two, one of these in a team of 2 or 3, and one of these in a team of 3. This guideline may be changed in class depending on the number of students enrolled.
You can select from one of the prepared project descriptions or create your own project. More details on the team reports are provided in class and in the Trem Reports Resources table on this web page.
Java Notebook: What to do when reading the text book
Many students are not familiar with all the programming languages sited in the text book - such as Snobol, Ada, Euclid, APL, C, C++, Pascal, and even if familiar, may not be able to understand the particular nuance being illustrated. However, all students taking this course are familiar with Java.
Therefore, when reading of a lnaguage feature, determine the Java "story" with regard to that feature. For example, Section 3.2.3 (page 114) is about garbage collection. Your notes for that day would include an item such as: Garbage Collection: Java implements it; automatically runs as needed to reclaim space in the heap, you can call it with System.gc().> and so on about what you know about Java garbage collection.
You may modify you notebook before, during, and after each class session.
Turn in your notebook as indicated on the syllabus.
The structure of each class session and in-class participation
We will form in-class discussion groups. The groups will be assigned by the instructor and will remain in place for two weeks.
The group will first process the textbook review questions (TRQ) that were assigned and prepare to provide answers when called upon. Textbook review questions (TRQ) are fact-based questions and are based on the reading assignment. These questions will be reviewed in class as they form the basis for follow-on discussions.
The small groups will then process the other textbook assignments in the same manner.
These in-class discussions of the textbook review questions (TRQ) and the other textbook exercises (i.e., TE) require your preparation. Before class you should prepare an answer to each question assigned. Your preparation may consist of answering the question completely or providing an answer outline. As part of your answer, list any parts you do not understand, and any extensions (in the form of: "Therefore...) that occur to you. In either case, references textbook pages are appropriate and useful. These answers will not be collected but are your basis for in-class discussion, study guide and reference.
We will typically have a theme, problem, or issue that the reading material addresses. We will apply what we have read to the issue, theme, or problem.
Attendance Policy
Your attendance at all class sessions is crucial. The class will be driven by your participation, thoughtful reflection, and experience, not solely by the instructor's expertise. Attend ALL class sessions, complete the weekly readings and prepare the assignments. You will have one (sorry, just one) personal day for absence, should you need it. For each additional class period missed, your course grade will be reduced by one letter grade (e.g., from A to B).
Academic Integrity Policy
The assignments that you create are your way of telling the instructor about your mastery of this course. All of the assignments must represent a unique and special effort on your part. All assignments are individual in nature unless otherwise noted. Any cases involving suspected academic dishonesty result in a grade of zero for the assignment. See Student Responsibilities - Academic Honesty at http://www.unca.edu/catalog/academicregs.html#grading.
Information
You should budget at least 6 hours outside of class per week for assignments, study and reading for this course.