Abstract
Computer programming is a compulsory subject in most engineering curricula, and also in several science curricula. For most studentsit is also the first subject in their education in which they can actually build something. Programs can be written to do useful computation, and also to explore other subjects such as science, engineering, and even art. Computer programming has the potential to empower students and unleash their creative abilities.We have developed an approach to teaching programming which emphasizes these aspects. We use the C++ programming language, augmented with agraphics library and some linguistic deviceswe have developed. We have found that our augmentations are very useful in explaining many programming concepts such as recursion, and of course enable visualization and graphical interaction. In addition to teaching the syntax of C++ we show how interesting programs from science, engineering, operations research can be developed with relatively little effort. We feel that this approach improves student participation, excitement, and learning.Our proposed curriculum has been described at length in the book "An introduction to programming through C++", recently published by Mc GrawHill.
References
- Harold Abelson and Gerald J. Sussman. (1996) Structure and Interpretation of Computer Programs. MIT Press, Cambridge, MA, USA, 2nd edition.
- J. Bennedsen. (2008) Teaching and learning introductory programming - a model based approach. PhD Thesis.
- Stephen Cooper, Wanda Dann, and Randy Pausch. (2000) Alice:A 3-d tool for introductory programming concepts. J. Comput. Sci. Coll., 15(5):107116.
- E.W. Dijkstra. (1988) On the cruelty of really teaching computing science. EWD1036.
- Andrea diSessa and Harold Abelson. (1981) Turtle Geometry: the computer as a mediumfor exploring mathematics. MIT Press, Cambridge, MA, USA.
- R. Findler, J. Clements, C. Flanagan, M. Flatt, S. Krishnamurthi, P. Steckler, and M. Felleisen. (2002) Drscheme: a programming environment for scheme. J. Functional Programming, 12(2):159182.
- P. Lawhead, M. Duncan, C. Bland, M. Goldweber, M. Schep, D. Barnes, and R.Hollingsworth. (2002) A road map for teaching introductory programming using LEGO. In ITiCSE-WGR '02 Working group reports from ITiCSE on Innovation and technology in computer science education, pages 191201.ACM.
- B. Meyer. (2003) The Outside-In Method of Teaching Introductory Programming. In Ershov Memorial Conference, volume 2890 of Lecture Notes in Computer Science,pages 6678.
- Seymour Papert. (1980) Mindstorms: Children, Computers, and Powerful Ideas. BasicBooks, Inc., New York, NY, USA.
- Abhiram Ranade. (2014) An Introduction to Computer Programming through C++. McGraw Hill Education.
- Mitchel Resnick, John Maloney, Andr�esMonroyHern�andez, Natalie Rusk, Evelyn Eastmond, Karen Brennan, AmonMillner, Eric Rosenbaum, Jay Silver, BrianSilverman, and YasminKafai. (2009) Scratch: Programming for all. Communications of the ACM, 52(11):6067. time to include the best features from other languages (e.g. lambda expressions from Scheme/Lisp).