 |
CMPSCI 630 (691F)
Programming Languages
Spring 2009
|
Course Administrative Information
Instructor
Prof. Jack C. Wileden
Office: Computer Science 206
Phone: (413) 545-0289
Email: wileden@cs.umass.edu
Course Overview
Programming languages are the central tools used by all computer scientists.
This course undertakes a detailed examination of the fundamental principles
underlying the design and implementation of modern programming languages.
Our goal is to develop a thorough understanding of programming languages:
what they are, how they work, how we can reason about them.
We address a wide range of programming language concepts and issues from
both a practical and a theoretical perspective.
Special attention is given to type systems and typechecking, since these
are central to all subsequent developments.
We also examine other important contemporary language features such as
object orientation, modularity, polymorphism and concurrency.
The predominant paradigm for contemporary programming languages --
the imperative, object-oriented paradigm -- is our primary focus,
and the functional paradigm is our secondary focus.
For concreteness, the course will focus
on a very new language called Scala that combines both
object-oriented and functional programming language features.
Prerequisites
The prerequisite for CMPSCI 630 is graduate standing or permission of the
instructor.
Course Structure
Class meetings will mostly be lectures, but some discussion and
student presentations may take place.
Students are encouraged to ask
any pertinent questions and participate
actively
in discussions.
There will be several written homework assignments,
several programming assignments and a project.
Computing Resources
The workstations in the Education Lab in the Lederle Graduate
Research Tower 223 and 225 will be available for use by
students in
completing course assignments.
Manuals relating to the use of the workstations and software are
available in the laboratory.
Students may
use another computing system
instead of using the EdLab.
Access to a Java programming environment and
the Scala programming language will be
necessary for completing the programming exercises and projects.
Assignments
Assignments are due at the beginning of class on the specified due
date.
No credit will be given for homeworks submitted late, since solutions may be
handed out or discussed in class.
Grading
Your final grade will be computed as follows:
- 35% based on the homework assignments
- 35% based on the programming assignments
- 30% based on the project
Textbooks and Reserved Readings
The required texts for CMPSCI 630 are:
-
R. Harper,
Practical Foundations for Programming Languages,
(Working Draft; available on the course WWW site)
-
M. Odersky,
Scala by Example,
(Working Draft; available on the course WWW site)
-
M. Odersky,
The Scala Language Specification,
(Working Draft; available on the course WWW site)
In addition some readings
will be assigned from other sources, primarily materials available on
the WWW.
Copies of any assigned readings not available on line will be provided
by the instructor.
Policies
Attendance
Students are expected to attend each class. Attendance will not be officially
recorded, but will be noted.
The official means of communication for
this course will be in-class announcements. Missing class is not an
excuse for failure to act as required by these announcements.
Submitting Assignments
Assignments done with pencil and paper (or equivalent)
must be submitted directly to
the instructor
unless other
arrangements are made. Programs must be submitted electronically.
Other assignments done using computers may be handed in
electronically or submitted by hand.
The work submitted for grading must be your own.
Submission of work that is not your own is considered
to be cheating. We encourage students to
assist one another in learning and overcoming difficulties with the material,
but discussing or sharing answers to specific homework questions or
programming
assignments,
except in cases of explicit group assignments or projects,
is considered dishonest. If you have
questions as to what we consider honest, please ask!
Computer Science department policy specifies that the penalty
for cheating is 1) a final course grade of `F', and 2) possible
referral to the Academic Dishonesty Committee.
See the University's
Academic Regulations and
Academic Honesty Policy and Appeal Procedure
for details.
Intellectual Property
You may be using copyright-protected software in
this course.
Federal law and license agreements between the University and various
software producers prohibit copying this software for any purpose.
Such activity will be regarded as a form of cheating (see above).
Many of the materials created for this course are the intellectual
property of the instructor.
This includes, but is not limited to, the
syllabus, lectures and course notes. Except to the extent not protected
by copyright law, any use, distribution or sale of such materials
requires the permission of the instructor. Please be aware that it is
a violation of university policy to reproduce, for distribution or sale,
class lectures or class notes, unless copyright has been explicity waived
by the faculty member.
Other materials used in this course are the intellectual
property of other individuals.
This includes, but is not limited to, the (draft)
textbooks and other books, papers, notes, etc.
Except to the extent not protected
by copyright law, any use, distribution or sale of such materials
requires the permission of their creator or owner.
Incompletes and Audits
An incomplete will be given only when documented, exceptional
circumstances beyond your control have made it impossible to complete
the assigned work before the end of the semester. It is your
responsibility to contact the instructor regarding any such problems
well before the end of the semester. Note that the general rules of
the University allow an incomplete only if most of the work has been
completed satisfactorily before the end of the semester so that the
incomplete can be finished within the first four weeks of the
immediately following semester. They further state that if a
substantial amount of work remains undone then a retroactive drop
should be obtained and the entire course repeated.
Official auditors will be expected to complete either
all of the assignments or all of the projects
and to achieve at least a C-level performance on whichever
they choose to complete.
Contacting Us
The
instructor
will normally be available in
his office during his
posted office hours. Outside of those hours, or
times arranged on an appointment basis,
the instructor cannot
be assumed to
be available for Computer Science 630 matters,
even if
he happens to be in his office.
Particularly if you have substantial questions, it is best
to come
during
office hours or make an appointment if those
times are not convenient. If you cannot reach
the instructor in his office, you may send
email or leave a message with any of the staff in the
Computer Science office, Computer Science 100.
Bulletin Board, Email and the Web
Many announcements will be made electronically. In particular,
identification of files you will need to access, changes to due dates,
and other such information about assignments
will be posted regularly. These announcements will be
posted in the bulletin board section of the course homepage on the World Wide Web
and, if particularly urgent,
will also be sent by email to all
students registered for this course.
It is your responsibility to check these announcements regularly.
E-mail the instructor
Return
to the 630 main page
Last modified: Sun Jan 25 16:45 EST 2009
By wileden@cs.umass.edu.