CIS 505: Programming-Language Paradigms

advertisement

CIS 505: Programming-

Language Paradigms

Torben Amtoft

Xinming (Simon) Ou

Aug 23, 2010

What is this course about

• It is not about any specific programming languages

– Although we will learn to use a few languages you may not have used before

• We will learn how programming languages are designed, implemented, and compiled

– In particular, we will introduce three “paradigms” of programming languages

Why do you want to take this course?

• To let computers do things for us, we must speak computers’ languages

– Computers’ languages are designed by humans

– Whether you realize it or not, you are designing languages to be used by computer programs all the time

– A “good” language is fundamental to getting the task accomplished

How the course is organized

• Simon will cover the first quarter of the course

– Basic concepts in language design

– The imperative paradigm

• Torben will cover the middle half

– The functional paradigm

• Simon will wrap up the last quarter

– The logical paradigm

How will the course be graded?

• There will be a number of homeworks which are mostly programming assignments

– You earn points for each assignment

– Total points from assignments constitute 95% of the final points

• 5% Class participation

– We will ask some of you to do exercises in each class.

– If I often cannot find you in the classroom, your class participation points will suffer.

– The quality of the answers is not a factor, as long as you try your best.

Collaboration Policy

• Pairing with another student in assignments is encouraged

– You learn how to work with your teammate, in addition to the course knowledge.

– When you submit the assignment, it must be the case that each of you could individually produce the solution by yourself alone.

– You have the option of working by yourself, but you will not earn any extra credit for doing so.

Course web site

• All course materials (slides, assignments, examples, announcements, etc.) can be found at the following urls:

– http://people.cis.ksu.edu/~tamtoft/505f10/

– http://people.cis.ksu.edu/~xou/505f10/

• Check the website often for updates

Textbooks

• Simon will use David Schmidt’s online textbook at:

– http://people.cis.ksu.edu/~schmidt/505f10/

• Torben will use Ullman’s textbook

– Elements of ML Programming , ML97 edition,

Prentice Hall 1998

Software

• Python

• Standard ML of NJ

• XSB Prolog system

Download