On 28 Oct, 08:58, "Alf P. Steinbach" <al...@start.no> wrote: > * tm: > > > On 28 Okt., 07:52, "Alf P. Steinbach" <al...@start.no> wrote: > >> [Cross-posted comp.programming and comp.lang.python] > > > Looking at your topic '(Python in Windows)', without taking a > > glimpse at your actual introduction, I have the following to say: > > I think it is not a good idea to teach programming with a focus > > on a specific operating system. Programming should IMHO be taught > > without reference to an operating system. Otherwise you just teach > > how to write unportable programs. > > I think you're trolling a little. :-)
Whether tm is promoting his own language or not I agree with some of his comments. I was going to avoid giving any feedback because most of my thoughts are, I'm afraid, negative but seeing your response to tm here I changed my mind. You asked for feedback. Hopefully you are looking for genuine criticism and honest opinions rather than flattery 'cause I'm not going to flatter. If you want to teach programming then target programming concepts (albeit using Python as a means to express them) and as tm says, avoid teaching either a particular OS or a particular set of bundled tools. If you want to teach programming under Windows then change the title to say so. Sorry but I find the overall tone too patronising. Phrases like "send your browser galloping in the direction of" are offputting. With this and other phrases it sounds like you are either 1) writing this for young children, or 2) having more fun writing it than your readers will have reading it or, 3) being self-indulgent and not planning to help others at all. I know you don't mean any of these. Hopefully you can change the approach to suit. There are many of these jocular phrases and they appear in both chapters. Given that this is a Windows-based course it's good that you include teaching on Notepad rather than just the IDE. The x squared graph is a good example to show that some fun can be had in a small space. I wouldn't condemn but I would query the use of Activestate's distribution. A vanilla Python may have been better if you want to teach transportable skills. Teaching Activestate reminds me of how Compuserve bundled their own stuff with Internet access so people thought the Internet was what they saw on Compuserve. You get way too deep into Python in places (for a beginner's course in programming). For example, "from now on I’ll always use from __future__ in any program that uses print." The MIT course that you mention takes a more apt approach for teaching *programming*. For example, it explains some things like floating point numbers in Python not being able to express 0.1 perfectly in binary but that's appropriate as other languages have the same issue. As you say, you are an experienced programmer who is learning Python and the chapters read that way. They rush in to all kinds of gotchas and mechanisms. Perhaps you should either change it to be a book on learning Python for experienced programmers (this seems the best option) or start again and take a different approach. With what you have written so far your audience seems to be youself (or someone in your position). > > Without reference to an OS you can't address any of the issues that a beginner > has to grapple with, including most importantly tool usage, without which it's > not even possible to get started, but also, very importantly, a file system. There's a difference between referring to an OS and tieing it in throughout the text which is what I think tm was getting at. > > Learning programming without tools and without using files (or only using the > common denominator for file systems in OSes X, Y and Z) is sort of vacuous... OSes generally support concepts of files and editors. If you cannot teach the general concepts make it clear that you are teaching Activestate Python under Windows. > In addition there's the motivational factor. > > Doing only academic examples, utilizing only a language's more or less > portable > functionality, is very de-motivational, while the opposite is motivational. The graphics and examples are fun. Be clear about what you are teaching, though, and who your intended audience is. ... > >> C++ was way too complex for the novice, JScript and C# suffered from too > >> fast-changing specifications and runtime environment, Java, well, nothing > >> particularly wrong but it's sort of too large and unwieldy and inefficient. Agreed. Python is a good introductory language. > >> I don't know whether this will ever become an actual book. I hope so! It's a good start. > > >> But since I don't know much Python -- I'm *learning* Python as I write This and that you are an experienced programmer show in what you have written. If you don't recast the material for a beginner now it will only get harder to change the approach later. ... > Yes, it would be silly to write a book or whatever about Python. This text is > primarily about programming, at the novice level, not about the Python > language. > The programming language is only a vehicle. It doesn't seem that way. Whether intended or not the text is about Python. ... I don't think you will get my meaning and will want to stick to what you have started so I'll try to illustrate: If you really want to teach *programming* start by planning out what concepts you need to teach. You might come up with a list such as: 1. Values, types, variables, expressions. 2. Immediate and stored operations. 3. Statements, functions, arguments and parameters. 4. Control flow. 5. etc. Once you have worked out the concepts you want to teach break them down to key points and then think about how to express them in the language you have chosen. If, on the other hand, you want to teach Python to experienced programmers, carry on as you are doing. Judged from that position I would rate the text far more positively. HTH James -- http://mail.python.org/mailman/listinfo/python-list