| Faculté des sciences appliquées UCL Université catholique de Louvain Concepts First in Introductory CS Courses (2003) | |||||||||||||||||
Abstract | |||||||||||||||||
| Multi-language, multi-thread, multi-paradigm, net-centric programming is becoming widely used. Our teaching of programming has to adapt to the requirements of these new directions. How can we do that without an explosion in required course-hours? This WG explores a concepts first approach to introductory programming courses that attempts to describe important ideas not simply in terms of a particular programming language but rather in terms that will permit the student to gracefully work with multiple programming paradigms. The paradigms appear naturally depending on which concepts are used for the problem being solved. The student is able to situate the paradigms in a more general framework that shows their relationships and how to use them together. We discuss one way in which concepts first may be taught based on the kernel language hierarchy and its implementation as a subset of the programming language Oz [10]. We also discuss how concepts first may be introduced in situations where Java or a similar OO language is the base language. We comment on the impact of concepts first on existing courses and problem solving methodology. We are proposing here an additional ingredient in freshman teaching, namely, language-independent concept descriptions. This approach has yet to be tried at the freshman level. Hence, we have no evidence that what we propose will make a difference. Nevertheless, we are hopeful that it will make a difference. | |||||||||||||||||
Publication details | |||||||||||||||||
| |||||||||||||||||