UMBC CMSC 331 Fall 2016
Principles of Programming Languages
Home · About· Schedule· Resources ·

About CMSC 331

Overview

This course examines the structure and semantics of programming languages. Topics include: history and fundamentals of programing languages, formal specifications of syntax and semantics; the implementation and execution of programs; and object-oriented, functional, and logic programming. Programming assignments and projects will provide experience in a number of languages. Prerequisites: CMSC 202 and CMSC 203.

Objectives

The key learning objectives for this course are:

Class participation

Education works better when we're all actively engaged in it. It's more effective and more interesting when there are questions, comments, challenges, and occasional rants.

Exams and quizzes

We will have a mid-term examination in class and a comprehensive final examination. There may be online quizzes and surveys.

Homeworks and Projects

There will be roughly one homework assignment every two weeks (see the syllabus for details). One or more of the homeworks may involve reading articles or papers and writing short essays.

Expectations

Unless otherwise specified, all assignments are to be turned in by midnight on the day they are due (which is given in the schedule). It is your responsibility to contact the instructor or TA in advance if this will not be possible. There will be a penalty for every day an assignment is late. Students are expected to adhere to all university policies regarding student conduct, academic and otherwise, as posted on the University web site and in the Student Handbook. Academic dishonesty of any kind will be handled in accordance with University policy.
"By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community, in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the UMBC Student Handbook, the Faculty Handbook, or the UMBC Policies section of the UMBC Directory." [Statement adopted by UMBC's Undergraduate Council and Provost's Office.]
Regular class attendance is expected.

Grading Policy

Semester grades will be based on the following components. The percentages are initial estimates and subject to change to reflect the actual number and complexity of the quizzes, homework assignment and projects.

Assignments

We will have several programming and homework assignments. Doing these is critical to learning the material. Consequently, your performance on these assignments will count towards about 60% of your grade. Homework assigments will have a strict due date and penalties will be applied for late homeworks according to the following scale.

Academic integrity

Here is some guidance on what we expect from you. Some of this was adopted from David Matuszek's policies at UPenn.

You may:

You may not:

  • Work together on the same program.
  • Copy another’s code.
  • Allow your code to be copied.
  • Lend your code to someone else.
  • Leave your code lying around where someone else may copy it.
  • Use any code from textbooks or the Web without our permission.
  • Have someone else write your program for you. If you think you may have accidentally broken a rule, come and talk to us about it. You will be much better off than if we discover it ourselves.