(Symbolic) programming for non-(symbolic) programmers
In order to take into account the different levels of programming skills and the different interests of the participants of this atelier, we have decided to organise three separate tracks for this course. The first is aimed at the skilled (symbolic) programmers who wants to get some hands-on experience on an advanced AI topic (pattern matcher), the second is adapted to novice programmers who want to expand their programming skills and the third is aimed at participants who want to gain insights in pattern matching without having to program themselves.
Track 1: Advanced (symbolic) programmers (Joachim De Beule and Joris Bleys)
In this course you will implement one of the basic utilities from artificial intelligence and symbolic programming: a general purpose matcher. Matching is a simple form of unification which is used in many linguistic formalisms including Fluid Construction Grammar.
The first session will mainly consist of getting to know the programming environment (SLIME). In the second sessions we will study Eliza and dialogue with a machine, based on chapter 5 of the book 'Artificial Intelligence Programming, Case Studies in Common Lisp'. Finally we will guide you in writing an extension to this basic pattern matcher.
Prerequisites:
People who want to participate in this class are expected to bring their personal computer with a Common Lisp installed. We highly recommend using SLIME + Emacs + Common Lisp supported by SLIME. Mac and Windows users might want to install an all-in-one package: Lispbox. More detailed instructions on installing Lisp on your machine can be found here.
Suggested reading:
- Peter Norvig. Paradigms of Artificial Intelligence Programming - Case Studies in Common Lisp. San Mateo, California: Morgan Kaufmann Publishers.
Especially Chapter 3 and 5 are relevant to this class. - Peter Seibel. Practical Common Lisp. Berkely: Apress
- Paul Graham. On Lisp.
Covers more advanced topics which will not be covered in this class.
Course material:
- Slides of classes (one, two)
- Bag of goodies
- Code (two, three)
Track 2: Novice programmers (Wouter Van den Broeck and Remi van Trijp)
This second track is meant for participants with no or very little prior experience in programming. We do not pretend to transform participants in fully fledged programmers in 120 minutes, but rather aim at conveying a basic understanding of symbolic programming in Lisp, to better grasp the methodology of computational construction grammar.
In the first session we will introduce some essential basic concepts of Lisp programming in general and symbolic programming in particular. During the second hands-on session the participants will take their first steps in actual programming through practical exercises. Finally the third section will introduce the student to basic notions in computational linguistics such as feature structures.
Prerequisites:
People who want to participate in this class should bring their personal computer which preferably should be equipped with a wireless network card.
Suggested reading: none.
Course material:
Track 3: Eager learners (Martin Loetzsch and Pieter Wellens)
The third track starts with a short introduction to Lisp programming and then gives two in-depth interactive examples of a naming game and pattern-matching performed in Lisp. It does not involve programming by participants.
In the first session we will give a very short introduction to Lisp (symbols, functions, list processing). In the second session a basic multi-agent system will be implemented and we will start the implementation of a naming game. During the third session we will show some in-depth interactive examples of pattern-matching. Although not required it will help to have some knowledge of language game terminology and some basic familiarity with computer programming (cfr. suggested reading).
Prerequisites: none.
Suggested reading:
- Peter Norvig. Paradigms of Artificial Intelligence Programming - Case Studies in Common Lisp. San Mateo, California: Morgan Kaufmann Publishers.
Especially Chapter 3 and 5 are relevant to this class. - Peter Seibel. Practical Common Lisp. Berkely: Apress
- Luc Steels. Evolving grounded communication for robots. Trends in Cognitive Science. 7(7), July 2003, pp. 308--312.
Course material:
- The Simple Naming Game code that we started writing during session 2 but "finished" and documented.
- More incremental build-up that might be better for understanding the Simple Naming Game code.