Course Information for Fall 2018
Time: TR 9:30-10:45am (section A), TR 1:00-2:15pm (section B)
Place: Davis 117
Final Exam: Saturday, December 15, 2018 1:30-4:30pm, Lovejoy 215
Instructor Information
Prof. Stephanie Taylor
Office: Davis 114
Email: s r taylor _at_ colby _dot_ edu
Office hours: M 10-12, possibly also 4-5, T 10:45-11:45, W 2:30-4:00, R 10:45-11:45 and 4:00-5:00
Any time my door is open. Good times this semester are MWF before 11am.
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
I will put source code examples here.