CS 312: Fall 2017

Principles of Programming Languages


PPL Home Schedule Grading Tools


Course:  CS 312 
Title:  Principles of Programming Languages 
Semester:  Fall 2017 
Hours:  MWF 10:00-10:50AM 
Location:  Washington Hall 301 
Prerequisite:  CS 241 -- Data Structures
CS 243 -- Discrete Structures 
Text:  None 
Programming Languages:  Python; Haskell; C 
Final Exam:  TBD 
Office Hours:  MWF 11:00 AM--12:00 PM
By appointment, MGS 117 
Grader:  Pengfei Su; Email: psu@email.wm.edu
Office hours: TTh 2-3:00 PM at MGS 139; By appointment 



Catalog Description

A study of programming language principles and paradigms. Formal syntax, including grammars, and semantics. Paradigms, including: imperative, object-oriented, functional, logic, event-driven, and concurrent. Runtime implementation issues, including: memory management, parameter passing, and event handling.



Academic Honesty

The College of William and Mary has an Honor Code. All students are expected to abide by the rules of this code.

You must sign all of your work to be graded, indicating that you consider the work presented to be your work product. Any copying of any work in your solution (other than instructor-provided work) should be referenced as to amount of work and from where the work was obtained.

If you are part of a pair-programming partnership, your signature indicates that you actively participated in the construction of the solution to the la, assignment or programming project. It is a violation of academic honesty if you claim to have worked together with your partner when, in fact, one of you did essentially all the work.

In discussing an assignment or programmming project with students excluding your partnership, you are limited by the empty hands philosophy, which prohibits the any sharing of code or other written materials, even that viewed on a screen, a black board, or white board. However, you may discuss the requirements of an assignment, information about what the instructor wants in the solution, test cases, and even the general use of algorithms and data structures in the solution; such discussion must be purely verbal, and may include a high level description of the algorithms and data structures used.

The Final Exam must be solely your own work, excluding help from your partner, other students in the course, the Internet, etc.


I support the College's goals on sustainability. This course attempts to reduce paper usage by storing course documents on the web, including the course syllabus, schedule, assignments, and course notes. Assignments will be collected electronically and graded and returned electronically as well. Please limit your use of printing these documents.

For more information about Sustainability at W&M, see http://www.wm.edu/sustainability.

Derived from Robert Noonan's CS312 course web pages