Research Topics in Software (a.k.a. Esoteric Paradigms)
Graduate Level (Master)
This course is permanently under construction. The goal is to give students the chance to study “esoteric” software paradigms, i.e. computational paradigms that are “off the beaten track”.
Academic year 2011-2012
In 2011-2012, the topic will be Internet Programming on Steroids. Andoni Lombide Carreton will help me with the organization.
Today’s so-called “web applications” are no longer just web pages containing multimedia content together with some buttons and text-areas. A modern web application is a full-fledged application that runs in the browser. It is gradually turning the browser into the virtual machine of the next decade.
JavaScript is arguably the dominant player in this field. In order to facilitate the construction of web applications, several application frameworks have been developed in JavaScript. Examples are jQuery and node.js. However, building a web application using these frameworks remains a tedious task. Not in the least because JavaScript is not the easiest language ever conceived.
In order to tackle this problem, a number of innovative internet client programming languages have been designed. These languages bring extremely high-level programming constructs to the web programmer (and they are compiled to JavaScript). These internet programming languages “on steroids” will be the topic of this course.
The number of languages and technologies studied during the course will depend on the number of students that will participate in the course. The course will be mainly driven by the students themselves. The goal is to present the material to each other and to give each other hands-on programming assignments. If you are interested in taking this course, please drop me a line urgently.
References
The exact list of languages studied will depend on the number of students that take the course. This is because students will participate actively. The current shortlist will definitely include:
Prerequisites
This course will study a number of very advanced programming languages. We assume fairly deep familiarity with a language such as Scheme, Python, Smalltalk or Lisp. Especially the notion of a lambda closure and the technique of higher-order programming need to be well-understood.
Normally, students that did their bachelor at VUB should be prepared for this course. Students that lack the aforementioned background should be prepared to take this course in parallel with (or after having taken) “Structure and Interpretation of Computer Programs” or “Functional Programming”.
Exam, Assignments and Presentations
To be updated.
