Abstract
The article presents a research that focused on how the concept programming paradigm is understood in general, and on the understanding of the following three programming paradigms, in particular: functional, procedural, and object-oriented. The research population included seventeen prospective computer science teachers who were participating in a "Programming Paradigms" course. Research observations are organized within a framework that categorizes students' thinking about the concept of programming paradigm in three levels of abstraction.
- Abelson H., Sussman G., and Sussman J. (1996). Structure and Interpretation of Computer Programs, 2nd Edition, The MIT Press, Cambridge, MA. Google ScholarDigital Library
- Ambler, A. L., Burnett, M. M. and Zimmerman, B. A. (1992). Operational versus definitional: a perspective on programming paradigms, Computer 25(9), pp. 28--43. Google ScholarDigital Library
- Carey, T. and Shepherd, M. (1988) Towards empirical studies of programming in new paradigms. Proceedings of the ACM Sixteenth Annual Conference on Computer Science (Atlanta, Georgia, United States), CSC '88. ACM Press, New York, pp. 72--78. Google ScholarDigital Library
- Coorder, C. (1990). Teaching Hard Teaching Soft: A Structured Approach to Planning and Running Effective Training Courses, Gower.Google Scholar
- Dubinsky, E. (1991). Reflective abstraction in advanced mathematical thinking, in D. Tall (ed.), Advanced Mathematical Thinking, Kluwer Academic Publishers, Dordrecht, pp. 95--123.Google Scholar
- Harel, G. and Kaput, J. (1991). The role of conceptual entities in building advanced mathematical concepts and their symbols, in D. Tall (ed.), Advanced Mathematical Thinking, Kluwer Academic Publishers, Dordrecht, The Netherlands, pp. 82--94.Google Scholar
- Floyd, R. W. (1979). The paradigms of programming, Comm. of the ACM22(8), pp. 445--460. Google ScholarDigital Library
- Kuhn, T. S. (1962). The Structure of Scientific Revolution, University of Chicago.Google Scholar
- Liskov, B. with Cuttag, J. (2001). Program Development in Java --- Abstraction, Specification, and Object-Oriented Design, Addison-Wesley. Google ScholarDigital Library
- Sethi, R (1996). Programming Languages Concepts & Constructs, 2nd Edition, Addison-Wesley. Google ScholarDigital Library
- Sfard, A (1991). On the dual nature of mathematical conceptions: Reflections on processes and objects as different sides of the same coin, Educational Studies in Mathematics 22, pp. 1--36.Google ScholarCross Ref
- Sfard, A and Linchevski, L. (1994). The gains and the pitfalls of reification---the case of algebra, Educational Studies in Mathematics 26, pp. 191--228Google ScholarCross Ref
- Tucker, A. and Noonan, R. (2002). Programming Languages --- Principles and Paradigms, McGraw Hill. Google ScholarDigital Library
- Tall, D. and Gray, E. (1994) Duality, ambiguity and flexibility: A proceptual view of simple arithmetic, The Journal for Research in Mathematics Education 26(2), pp. 115--141.Google Scholar
- Turkle, S. (1984). The Second Self: Computer and Human Spirits, Simon and Shuster. Google ScholarDigital Library
- Van Roy P. and Haridi S. (2002). Teaching programming with the kernel language approach, PLI2002 Workshop on Functional and Declarative Programming in Education.Google Scholar
- Van Roy P. and Haridi, S. (2004). Concepts, Techniques, and Models of Computer Programming, MIT Press. Google ScholarDigital Library
- Van Roy, P., Armstrong, J., Flatt, M., and Magnusson, B. (2003). The role of language paradigms in teaching programming. Proceedings of the 34th technical symposium on Computer science education, pp. 269--270. Google ScholarDigital Library
- Watt, D. A. (1990). Programming Language Concepts and Paradigms, Prentice Hall. Google ScholarDigital Library
Index Terms
- Students' understanding of computer science soft ideas: the case of programming paradigm
Recommendations
The Art of Teaching Computer Science: Niklaus Wirth
With a goal of improving how computer science is taught, Niklaus Wirth created some of the field's most influential programming languages, including Pascal, Modula, and Oberon. An audio recording of author Charles Severance's Computing Conversations ...
A Multi-Paradigm Programming Language for Education
ECSEE '23: Proceedings of the 5th European Conference on Software Engineering EducationAn introductory CS1 course at universities has to meet different requirements. In addition to computational thinking, students have to learn a programming language and its underlying concepts. Furthermore, they should be educated in different paradigms ...
Do Programming Languages Make Software Too Soft?
It's difficult to create simple, correct software with current programming languages. They are unnecessarily complex. This is a plea for less softness and for safer, simpler programming languages.
Comments