DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES
CISC 470/670 Programming Languages
Syllabus
Fall Semester 2000
Meeting Time and Place
Tuesdays/Thursdays 2:00-3:15 Recitation Hall 101.
Important announcements are usually made at the beginning of class. Quizzes
are also given at the beginning of class on Tuesdays.
Prerequisites
(Logic and Programming) Programming skill in a block
structured language and
Lisp; an understanding of symbol tables, lists, trees,
stacks, queues is assumed (e.g., CISC 220); CISC 310.
Recommended Background
CISC 320. (Algorithm and Advanced Programming)
Required Textbook
Programming Language Pragmatics, Michael Scott, Morgan Kaufmann Publishers,
2000.
Course Objectives and Content
This course examines the fundamental principles at work in the
most important contemporary languages, highlights the critical relationship between
language design and language implementation, and devotes special attention to issues of
importance to the expert programmer.
Students should emerge better prepared to choose the best language
for particular projects, to make
more effective use of languages they already know,
and to learn new languages quickly and
completely.
You should consider taking CISC 470/670 if you are curious
about:
- what's "under the hood" of your favorite programming language,
i.e., the basic concepts underlying programming languages
- learning about programming languages you do not already know
- the differences between the features of different languages
and the reasons for the differences between those languages
- how to choose the most appropriate language for any given task
- the implications of language design features on implementation of the language, and the interaction between language design and implementation
AND you have the proper prerequisites.
Topics
In this course, we will discuss the following basic concepts that
underlie all programming languages:
- Programming Language Specification: Syntax and Semantics
- Overview of compilers, interpreters, programming environments, and tools
- Naming, Scoping, and Binding
- Type systems, data structures, data abstraction, and storage management
- Control Flow, subroutines, exception handling, and concurrency
- Imperative, functional, logic-based, and object-oriented programming paradigms
Course Catalog Description
Selection, use and implementation of appropriate
language(s) for given problems. Syntax, semantics,
pragmatics, parameter passsing and abstract data types.
Course Requirements and Grading
- 40%) Homeworks, programming assignments, and group projects.
- (10%) Attendance, preparation, participation, and attitude.
Unexcused absences and tardiness will detract
from your final grade. Active participation in classroom activities is
expected.
-
(10%) Weekly Quizzes
-
(20%) Midterm
-
(20%) Final Examination
Email Questions
I have found that the quickest way to resolve ambiguities and answer questions
o n homework and programming assignments is via email. Any questions sent
to pollock@cis will be anonymously posted with an answer via email to the
entire class.
Assignment Submission
The due dates are to be taken seriously and you should not expect them
to be extended. The pace of work is implicit in the due dates and necessary
if you expect to finish by the end of the semester. Deliverables to be
graded should be turned in at the start of class on the specifie d due
date. NO late assignments will be accepted FOR FULL CREDIT without discussion
with me prior to the due date. If you can not reach me, leave a message
on my voicemail. All other assignments not delivered by the due date are
considered late.
My philosophy on late assignments is: (1) Everyone should try their
best to complete all assignments by the specified due date. (2) People
who work conscientiously to make the deadlines s hould be rewarded for
their promptness and sacrifice of sleep. Thus, allowing others to hand
in late assignments without some penalty is not fair to these people. However,
there are various circumstances that may prevent you from completing an
assignment by the due date. Allowing no late assignments would not give
you much incentive to continue to work on the assignment, which is a major
source of learning in this course. Thus, I believe late assignments are
better than no assignment.
Late assignments will be penalized 10% off the total possible points
if turne d in within the first 24-hour period after the specified due date
and time, and 10% per 24-hour period (or fraction of a day) (including
weekends) after that time, up to a week after the due date. Late assignments
will be accepted with penalty up to one week after the due date. Assignments
submitted at any later time without an approved excuse will not be accepted.
It is up to you to determine the version of your assignment to be graded.
You must weigh the late penalty against the completeness of your assignment.
Regrading Policy
If you are dissatisfied with a grade on a homework, programming assignment,
or exam, you should consult the instructor directly within a week of the
day the graded assignment was returned to you. No regrade requests will
be considered after this week period.
Posting Grades
With your permission, grades will be posted periodically (by your secret
code) o utside my door (101D Smith Hall). Questions about accuracy of recorded
grades should be addressed to me.
Policy on Academic Dishonesty
The assignments in this class will be performed in groups. You are permitted
to consult with other students and professors on any conceptual problems
or for debugging assistance on all programming assignments. Any evidence
of collaboration other than this kind will be handled as stated in the
Official Student Handbook of the University of Delaware. If you are in
doubt regarding the requirements, please consult with me before you complete
any requirement of this course.
Staff |
Name |
Office |
Email |
Phone |
Office Hours |
Instructor |
Lori Pollock |
101D Smith |
pollock@cis.udel.edu |
831-1953 |
3-4 pm Mondays, 2-4 Wednesdays, and by appt |
TA |
Yaqin Zhu |
|
zhu@cis.udel.edu |
831-2770 |
Tuesdays 11-1 |
TA Office hours held in 404 Wolf Hall, Phone 831-2770 |