Fall 2009 Semester

"A paradigm is a set of rules or expected actions used to solve problems.
After time, the paradigm becomes the norm and thus drives the way we act in certain circumstances,
many times without [our] thinking or justifying our actions.
We simply trust the paradigm."

From http://willtheybuyagain.wordpress.com/2008/03/22/xcs-a-new-paradigm-kind-of/

KSU CIS505:
Programming-Language Paradigms

Lectures: MWF 2:30pm, Nichols Hall, room 122

Instructors:
Torben Amtoft (tamtoft @ksu.edu, phone: 532-7917), 219C Nichols Hall

David Schmidt (das @ksu.edu, phone: 532-7912), 219A Nichols Hall

Teaching assistant: Vijay Kolli (vijayk @ksu.edu)

Important: Schmidt will teach the first quarter of the course, Amtoft will teach the middle half, and Schmidt will finish. Please consult the course web page for the instructor in charge for assignments and announcements.

Course log | Announcements (last updated August 31, 2009) | Lectures | Assignments | Amtoft's course home page |

Syllabus | Text Materials | Software Support


Office hours:
Torben Amtoft: to be determined
Dave Schmidt: to be determined
Vijay Kolli: Tues. and Thurs., 2:00pm-3:30pm, Nichols 19, Desk L

You are also welcome to send email to schedule meetings with the instructors.


Text Materials

Software Support

We will conduct case studies in these programming languages:
  1. Python: Python is a dynamically typed and structured language, and it supports imperative, declarative, and o-o programming. It is great for doing small- and medium-sized programs quickly.
    * Here is some tutorial material. and a a summary of Python's basic capabilities
    * Your computer might already have Python installed; please read Installing Python to check for Python and install it if needed.
    * This nice on-line book, The Python Standard Libary, shows you how to use Python to do clever systems hacking and gluing, the sort of stuff not normally taught in courses but is hugely useful in practice.
    Please direct questions to Schmidt.

  2. ML: ("MetaLanguage") is a functional language that cleverly combines compile-time type checking with dynamic data structures.
    * A comprehensive reference is your textbook.
    * You can also skim this on-line ML intro for quick info.
    * You will likely need to install ML on your computer; try one of these:
    Please direct questions to Amtoft.

  3. Prolog: The classic logic-programming language. You must see it to believe it.
    * There is a good, easy-to-install implementation: www.swi-prolog.org.
    * Here is some intro material on Prolog that I wrote for my CIS301 students.
    * This material is oriented towards using SWI Prolog: PLPM, St. Etienne, France | CSC485, Univ. Toronto
    Questions go to Schmidt.