Programming Language Design
CSC 460
Spring 2001
Saint Augustine's College
Instructor:
Albert L. Crawford
Office: Cheshire 118
Office Hours: MWF 9:00am to 11:00am, MW 3:00pm to 4:00pm
E-mail: crawford@hilltop.ic.edu
Web page: http://hilltop.ic.edu/~crawford
Text: "Concepts of Programming Languages,
4th Edition" by Robert Sebesta.
Course Description:
This course constitutes as an introduction to the formal study
of programming language concepts, including syntax and grammar, data types
and structures. Run-time behavior characteristics of several languages
are analyzed and compared.
Course Goals and Objectives
Understand the concepts of procedural languages
Learn independently a new programming language
Know how computer languages are represented
Understand the limitation of programming languages
Be aware of a variety of programming paradigms
Course Schedule:
-
Week 1 -- Introduction, Chapter 1
-
Week 2 -- Evolution of Major Programming Languages, Chapter 2
-
Week 3 -- Describing Syntax and Semantics, Chapter 3
-
Week 4 -- Chapter 3, continued
-
Week 5 -- Names, Bindings, Type Checking, and Scopes, Chapter 4
-
Week 6 -- Chapter 4, continued
-
Week 7 -- Data Types, Chapter 5
-
Week 8 -- Chapter 5, continued
-
Week 9 -- Expressions and the Assignment Statement, Chapter 6
-
Week 10 -- Chapter 6, continued
-
Week 11 -- Statement-Level Control Structures, Chapter 7
-
Week 12 -- Chapter 7, continued
-
Week 13 -- Subprograms, Chapter 8
-
Week 14 -- Chapter 8, continued
-
Week 15 -- review for final examination
Final Examination
Assignments
Notebook contents
Daily Schedule -- Entered after the classes
Part I -- Programming Language Project -- Preliminary
Selections
Sample Examination I -- February 6
Part II -- Programming Language Project
Example -- Static vs. Dynamic scoping
Topics -- Examination II -- March 8
Program Language Papers -- Part II
Topics -- Examination III -- April 17
Program Language Project -- Part III
Topics -- Final Examination -- May 3
Project: Each student will be required to learn
on their own a programming language. The project will have several
phases
-
Chose three programming languages and write a one page description of each.
-
Determine the student's project language, install the language in the advanced
lab and run a test program in that language.
-
Write a significant program in the language of choice. This program
must demonstrate the unique features of the language.
-
Write a paper in the language. The paper must have sections that
describe the concepts we have learned in the course as it applies to the
language.
-
Present the paper to the class. A handout plus the presentation must
be sufficient to give the rest of the class a good start in learning the
language. The presentation should also give the other students an
understanding as to why the language would be one that would be useful
to learn.
Grading and Testing
-
Notebook and oral exam: Each student will keep a notebook.
This notebook will include class notes from each class plus homework done
outside of class to assure that the student understands the lessons of
each class period. Prior to each major examination each student will
make an appointment with the instructor for an oral examination and a review
of their notebook. This review will be weighted at 33 points each.
-
Quizzes: There will be several in class quizzes given throughout
the semester. These will be weighted from 0 to 20 points each. These may
be either announced or unannounced. No make ups will be given for quizzes.
If you miss a quiz your grade will be zero for that quiz.
-
Written Exams: There will be three regular hour exams during the
semester. These exams will be weighted at 100 points each.
-
Final Examination: The final examination will be weighted at 200
points and will cover the material from the entire course.
-
Grades: Counting the final exam as two grades, and the oral exams
as one grade, the lowest grade the student earns will be dropped.
Quizzes will not be dropped nor may they be made up. All grades will
be based on a 90, 80, 70, 60 percentage of all points for grades of A,
B, C, and D. Any "curves" that will be placed on the grades will be made
on the individual tests and not at the end of the semester. Such curves
are not likely.
Course Policies
-
Attendance: You are expected to attend class. Any unexcused absence
is considered excessive. If such absences reaches three or more the student
will receive a half of a letter grade reduction for each absence beyond
two. Attendance will be taken at the beginning of each class.
-
Late for Class: If a student is late for class (arriving after the
role has been taken) he/she must notify the instructor at the end of the
class period. If the student fails to give the instructor proper
notification this will be counted as an unexcused absence. Under
any event, being late will be treated as an absence and the rules for makeup
of work apply. Normally the first one or two times a student is late
for class will be counted as an excused absence, but if a student is regularly
late these will be counted as unexcused absences.
-
Leaving Class: If a student leaves the class for any reason,
he or she may not return to class. This will be considered an absence.
-
Makeup of work: If a student misses a class, or part of a
class, for any reason he/she must make an appointment with the instructor
to make sure that the student has properly made up the work missed.
This will include the completition of the notebook for the days missed.
During this appointment it will be determined if the absence is excused
or unexcused. If this appointment is not made and kept the absence
will automatically be considered unexcused.
-
Make ups for missed regular exams: The first major examination missed,
for any reason, will be the one that is dropped. The non-attendance
will be treated as any other absence. If the student misses more
than one major examination the instructor may allow the student to make
up the exam in a manner determined by the instructor. In any case,
if
the absence for any exam is unexcused no exam may be made up, even if that
absence is excused. Students who know ahead of time that they
will miss an exam for a good reason, such as the participation in an official
school activity, must notify the instructor at least one week prior to
the exam. They will take the exam at the instructors discretion,
probably prior their leave from school.
-
Cheating: I do not expect this paragraph to apply to anyone. However,
in the very unlikely event that a student is caught cheating please see
the student handbook for the penalties that the instructor has the authority
to apply.
-
Noise making devices: Students may not have in class any device
that may disrupt the class. This includes, but is not limited to,
cell phones that are turned on and alarms on watches.
Note: The above syllabus is subject to change at the instructor's
discretion