Welcome to the IT2105 Web Page!
This course teaches functional programming in the LISP programming language.
On these pages you will find relevant information regarding the course. It's Learning may also be used to a certain extent.
Students who follow the course should check the news section regularly.
Latest News
- 2007-10-16
The members of the student reference group for it2105 are Martin Syvertsen and Kjetil Orbekk. They will be meeting with the instructor to discuss the course sometime in November. Feel free to send you comments, whether positive, negative or neutral, about the course. They will discuss these points (with names of senders removed) at the November meeting.
Contact info:
Martin Syvertsen (martinmi < at > stud.ntnu.no)
Kjetil Orbekk (kjetil < at > orbekk.com)
P.S. Any other students who want to participate in this reference group can simply send an email to either Keith, Min or Boye. The date for the November meeting has not been set yet.
Read more news here.
Course Overview
This course provides an introduction to functional programming in the List Processing Language (LISP).
LISP was invented in the late 1950's in response to artificial intelligence (AI) researchers who needed a language to efficiently process complex lists of symbols.
Since these symbol lists can represent either data or other programs, LISP offers the ability to write programs that can create and modify other programs, a key
prerequisite to many AI endeavors.
Now, nearly 50 years since LISP's invention, the ANSI-standard LISP, known as Common LISP (CL), is still one of the most popular AI programming languages.
This makes LISP the second oldest programming language (next to FORTRAN) still in
widespread use.
The ease of procedural and data abstraction combined with the strength of its macro-writing facilities makes LISP an ideal language for both
- writing extensive libraries of general-purpose routines using user-tailored syntax,
- writing complete new languages on top of LISP.
LISP's simple syntax and weak typing, combined with friendly development environments (supporting features such as command-line interpretation and piecewise compilation), make it one of the most general and effective rapid prototyping languages - both in and outside of AI.
In addition, the Common LISP Object System (CLOS) enhances LISP with all the benefits of object-oriented programming (OOP).
Through plenty of hands-on programming experience, students will learn LISP's basic syntax and gain a strong appreciation for the power of recursion, procedural and data abstraction, and functional programming in general.
It is strongly recommended that IT2105 students also take IT2702 (Artificial Intelligence), preferrably during the same semester.
Read more on LISP in Wikipedia
People
Lecturer: Keith Downing (keithd<at>idi.ntnu.no)
Office: Room 308 IT-Vest
Phone: (73 5)9 02 71
Teaching Assistants: Boye Annfelt Høverstad (hoversta<at>idi.ntnu.no) and Min Shi (minshi<at>idi.ntnu.no)
Office: Room 361 IT-Vest
Phone: (73 5)5 10 17
Reference Group: Martin Syvertsen (martinmi<at>stud.ntnu.no) and Kjetil Orbekk (kjetil<at>orbekk.com)
Disclaimer/Warning
This web page is both a service for students and a nice organizational tool for the instructor, but it is not a sacred stone into which all official rules and decisions (e.g., what is on the exam) will be carved.
To get all the essential information about this class, a student must attend classes (or get lecture notes, not just the slides, from a friend).
This course takes advantage of the new university reform by
replacing the 4-hour final exam with a 2-hour mid-term exam, to be
taken during a normal class meeting period. The reform also allows
points to be given for homeworks and projects.
In the first phase, students will spend 8-10 weeks learning Common Lisp and applying it to relatively straightforward artificial intelligence (AI) search problems. This period will involve 5 or 6, rather time-consuming, homework assignments.
To insure that all students are up to speed with Common Lisp before beginning the final 2-3 homework exercises (which resemble small projects), a mid-term exam will be given in late October.
After that, students can focus completely on the projects. This year, the 2-3 final projects will be components of a single system to play the card game of Texas Hold`Em Poker.