Van Roy, Peter
[UCL]
Since 2004 we have been teaching a second-year programming course to all engineering students at UCL. The course uses a uniform framework and introduces programming concepts, techniques, and models one by one, to overcome limitations in expressiveness as they appear (hence the acronym “CTM”). The course gives a complete formal semantics for the uniform framework in terms of a simple kernel language and abstract machine. The semantics is important since it gives a precise understanding of what the language does with no handwaving. For most students at UCL it is the only programming language semantics they see in all their studies. We teach the three main programming models or paradigms, namely functional, objected-oriented, and dataflow concurrent programming. We explain how object orientation and dataflow each extend functional programming with just one concept, respectively state and concurrency. We give a thorough presentation of data abstraction that includes objects, abstract data types, polymorphism, and inheritance. For the practical coding we use the Oz multiparadigm language, which has a uniform syntax for programming in each paradigm and for combining paradigms when needed. Oz has a high-quality opensource implementation, the Mozart Programming System. The course is the second part of the two-course sequence on programming in the UCL core engineering curriculum, where the first course is an introduction to programming based on Java. We find that this combination of two courses works well. This chapter gives our experience with this course: how it originated, what it contains, how we teach it and what the learning objectives are, and how it has become accepted in the computing science department and engineering school of UCL.


Bibliographic reference |
Van Roy, Peter. The CTM approach for teaching and learning programming. In: Thomas S Clary, Horizons in Computer Science Research. Volume 2, Nova Science Publishers 2010, p. 1-26 |
Permanent URL |
http://hdl.handle.net/2078.1/89562 |