1 The Department of Communication, Business and Information Technologies, Roskilde University2 Programming, Logic and Intelligent Systems, Department of People and Technology, Roskilde University
Theoretical issues of computer science are traditionally taught in a way that presupposes a solid mathematical background and are usually considered more or less unaccessible for students without this. An effective methodology is described which has been developed for a target group of university students with different backgrounds such as natural science or humanities. It has been developed for a course that integrates theoretical material on computer languages and abstract machines with practical programming techniques. Prolog used as meta-language for describing language issues is the central instrument in the approach: Formal descriptions become running prototypes that are easy and appealing to test and modify, and can be extended into analyzers, interpreters, and tools such as tracers and debuggers. Experience shows a high learning curve, especially when the principles are extended into a learning-by-doing approach having the students to develop such descriptions themselves from an informal introduction.
Computer Science Education, 2004, Vol 14, Issue 3, p. 205-234