So Kari raises a corollary - to what extent does it matter what mental model of a computer the student has?
But this is also on the dimension of abstraction. For example, 'how main memory works'. This might be at the level of addresses, binary contents and read/write operations. Or at the more concrete level of logic gates, or below that, semi-conductor fabrication. Or above all of it, variables which persist values during execution. Which is best? -----Original Message----- From: Kari Laitinen [mailto:kari.laiti...@oamk.fi] Sent: 07 April 2009 10:50 To: Bennett Kankuzi Cc: Ppig-Discuss-List Subject: Re: Choice of introductory programming language to a freshman class It indeed seems that there is no consensus over what is a good language to start studying computer programming. I think that almost any language will do when only the basic things are taught. On the page http://www.naturalprogramming.com/all_example_programs.html I provide about 100 simple programs written with four different languages. If a student studies, say, the Java programs, he or she should be able to easily move to other languages by using different program versions. Another important question is that what a student should know before he or she starts studying computer programming. I think it is important to understand how a COMPUTER works before one starts studying COMPUTER programming. To study the basics of computing, I provide a very simple computer at http://www.naturalprogramming.com/IC8/index_for_ic8.html With this simple computer it is possible, in less than 10 hours, to explain - how the main memory works - how machine instructions are executed - what compilation means - why high-level languages should be favored We have been teaching this computer at our school for three years before the actual programming courses. Most students think that it is a useful tool. Later on I hope to be able to provide more accurate data concerning how the ability to understand this imaginary computer corresponds with the ability to become a good programmer. Kari Laitinen School of Engineering Oulu University of Applied Sciences, Finland Bennett Kankuzi wrote: > Dear All, > > Many thanks to everyone for taking your time to air out your views on > the question I had posted on the forum. For now I will use C since the > students will need to learn the art of problem solving but most > importantly they also need to learn the basics of programming like > data types, looping constructs, pointers etc. My hope is that later > on they shall be able to transfer this basic programming knowledge in > learning other languages like Java and C++. > > I must also say that from what I get across this thread of discussion, > Scheme and Python seem also to be good alternatives. I will definitely > try them in the forthcoming semesters. I have done a bit of > programming in Python and PERL on a Unix system but not yet tried > Scheme although it seems to be a very good alternative. > > Once again many thanks for the insights! > > Bennett > > > > > 2009/4/6 Walter Milner <w.w.mil...@bham.ac.uk>: >> A question to the OP: is it true that the choice must be between C, >> C++ and Java? Or might other languages be considered? >> >> -----Original Message----- >> From: Jay McCarthy [mailto:jay.mccar...@gmail.com] >> Sent: 06 April 2009 13:21 >> To: Bennett Kankuzi >> Cc: Ppig-Discuss-List >> Subject: Re: Choice of introductory programming language to a >> freshman class >> >> I've had a lot of success using the How to Design Programs textbook >> (http://www.htdp.org/), which uses a series of Scheme-based languages >> explicitly designed for beginners. The TeachScheme, ReachJava! >> (http://www.teach-scheme.org/) curriculum uses this book in a >> two-semester sequence where students learn programming in the first >> semester with HtDP and these Scheme-derived languages, then >> transition to Java and objects in the second semester. >> >> I'm happy to provide additional help getting you running in this >> curriculum if you'd like. >> >> Jay McCarthy >> >> -- >> Jay McCarthy <j...@cs.byu.edu> >> Assistant Professor / Brigham Young University >> http://teammccarthy.org/jay >> >> "The glory of God is Intelligence" - D&C 93 >> > > >