Torben Amtoft
Xinming (Simon) Ou
Aug 23, 2010
• 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
• 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
• 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
• 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.
• 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.
• 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
• 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
• Python
• Standard ML of NJ
• XSB Prolog system