91.301 Organization of Programming Languages, Fall 2014
We will be using the following book:
Structure and Interpretation of Computer Programs (2nd edition, 1996, ISBN 0070004846)
Analytical approach to the study of programming languages. Description of the salient features of the imperative, functional, logical, and object-oriented programming paradigms in a suitable metalanguage such as Scheme. Topics include iteration, recursion, higher-order functions, types, inheritance, unification, message passing, orders of evaluation, and scope rules. Elementary syntactic and semantic descriptions. Implementation of simple interpreters.
There are five categories of work that will be assessed:
You will apply the ideas developed in the class in an original software implementation. You may thus connect the ideas of the class with your own interestsmusic, robotics, art, databases, the web, networking, gaming, etc. The learning goal of the project is to have you find some real-world relevance of the ideas in the class.
Because of the high number of enrolled students, projects will be done in teams. Each partner will be responsible for an equal share of the work.
Collaboration and Academic Integrity Policy
You are welcome to discuss ideas in the class with your peers. However, pair programming or other side-by-side work that involves sharing of code is not allowed. By turning in an assignment, you attest that you have written the new code that it includes. Please be familiar with the university's academic integrity policies: for undergraduates for graduate students
Discussion Group / E-Mail List
We will use Google Groups for class conversation and announcements.