CIS505 Fall 2010 Lecture Notes
CIS505 Lecture Notes: Introduction to Programming-Language Paradigms
Here is a set of lecture notes meant to serve as
a Programming-Language Principles/Paradigms text.
There are some rough edges here, but remember that
I am saving you $100 that you would otherwise be spending for a textbook....
Here are some links to programming languages
that are likely to be used during the course:
(We assume you already know well either Java or C#. If not, please go study one of them.)
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
summary of Python's basic capabilities
* Your computer might already have Python installed;
to check for Python and install it if needed.
* Here is the
for a free copy of Python. Download version 2.6.5 or 2.7.0.
(The 3.X versions use syntax incompatible with the examples in the course
* 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
("MetaLanguage") is a functional language that cleverly
combines compile-time type checking with dynamic data structures.
* Here is some on-line reference material:
* You will likely need to install ML on your computer;
try one of these:
SML New Jersey (claims to work
on any of Windows, Mac, Linux)
(supposedly a ``lighter'' version of ML; works with Windows and Linux)
MLton (Linux, Unix, Mac)
Prolog: The classic logic-programming language.
You must see it to believe it.
* Here is a good, easy-to-install implementation:
* 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
David Schmidt, das at ksu.edu, July 2010
Sample exercises from Fall'09