UMass logo
CMPSCI 630 (691F)
Programming Languages
Spring 2009

Course Administrative Information


Prof. Jack C. Wileden
Office: Computer Science 206
Phone: (413) 545-0289

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.


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 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.


Your final grade will be computed as follows:
  1. 35% based on the homework assignments
  2. 35% based on the programming assignments
  3. 30% based on the project

Textbooks and Reserved Readings

The required texts for CMPSCI 630 are: 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.



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