Course Information for Spring 2019
Time: TR 9:30-10:45am
Place: Davis 117
Final Exam: Friday May 17, 2019 1:30pm
Instructor Information
Prof. Stephanie Taylor
Office: Davis 114
Email: s r taylor _at_ colby _dot_ edu
Default Office hours: M 12-2:30, T 2-4, W 12:30-2:30, R 12:30-2:30, F 11-12
Any time my door is open
Note that my hours often need to change from week to week, and that I send out an email early each week (Sunday night or Monday morning) with my hours for the week
Course Description
This course is a survey of programming languages and paradigms. We will focus on the design of programming languages and compare and contrast different language familes including imperative, object-oriented, functional, and logic paradigms. Topics include syntax, context-free grammars, parsing, semantics, abstract representations of programming processes and structures, memory management, and exceptions. Students will undertake small programming projects in various languages and more extensive projects in two languages of their choice. Students will present the characteristics of their chosen languages to their peers at the end of the term.
Prerequisite: CS 231
Recommended Textbooks
- Tucker and Noonan, Programming Languages, 2nd ed., McGraw-Hill, 2007.
- Handouts
Languages
- Everyone will be programming in C.
- And choosing two languages from the Languages Page (one from Category A and one from Category A, B, or C).
Useful Links
- Concrete Syntax for Clite (complete)
- Concrete and Abstract Syntax for subset of Clite
- Maxwell's Lecture notes (Spring 2018)
- Maxwell's Daily Outlines (Spring 2018)
- xkcd
- K. Slonneger, Syntax and Semantics of Programming Languages
- Makefile tutorial
- ENIAC Computer
- Fortran statement on a punch card
Programming Language Tools
Source Code Examples
Source code examples are in Courses/CS333/Course_Materials/Spring2019.