CS 333: Programming Languages

Course Information for Spring 2008

Time: Tues & Thurs. 1:00-2:15
Place: Keyes 103

Instructor Information

Prof. Scott Russell
Office: Mudd 416A
Phone: (207) 859-5855
e-mail: srussell (at) colby (dot) edu
class mailing list: cs333 (join here)

Office Hours: Mon., Wed., Thurs. 2:30-3:30, Tues. 3:30-4:30, and by appointment

Course Description

We will examine languages from each of the four major types of languages: imperitive, functional, logical, and object-oriented to gain an understanding of their respective strengths and weaknesses as well as commonalities spanning these different types. In addition to learning how to use these various languages, we will study formal syntactic and semantic methods for describing programming languages.

As any good craftsperson will tell you, the quality of what you produce depends on having and using the right tools for the job and understanding how to effectively employ those tools. Programming languages are tremendously flexible tools that allow us to craft solutions to a myriad of different problems. So far you have a reasonable level of mastery of at least one programming language. By the end of this course you will have a better appreciation for what that language can and cannot do, how it accomplishes those things, and some of the design tradeoffs that it embodies. You will also have developed a greater awareness and appreciation for some other languages out there. My hope is that next time you need to reach for a software tool to help you solve a problem you will be able to make a more informed and intelligent choice.

Textbooks

Kenneth C. Louden,Programming Languages: Principles and Practice, Second Ed., Brooks/Cole-Thomson, 2003, ISBN 0-534-95341-7.
online book content

Language Related Links

Frequently Asked Questions for comp.lang.functional


Scheme Standard ML Haskell Prolog