Microsoft Is Indoctrinating Children, Shouldn't We?
wildgift writes: "This is probably not news to some young people, but some of the older people here should be aware that Microsoft runs a wide ranging IT/Programming curriculum project, called Mainfunction, that teaches young people to program using Microsoft tools. The obvious issue is: is anyone leveraging the education-friendly Unix environment to create a similar program? This is a huge opportunity. So far, I've only found this Python article." If Microsoft is getting their tools in the hands of the programmers of the future, what can we do to achieve the same? Wouldn't it be much better if kids could take a look at development on several different platforms so that they can better use the technology when they are professionals rather than settling on "what they know"?
Of course, it's also good to get the notion of what, as a programmer, you should write because it's the Right Way even if the Wrong Way would also work fine (for now). But there's a time for both -- you must follow the Wrong Way if you are to understand why the Right Way is Right.
And then there's the question of whether there is anything such as OS-independant. Sure, there's mini-OSes that create one OS layer ontop of an OS (Java, JavaScript, Squeak -- and even HTML and HTTP are an OS of sorts). And then there's lowest common denominator -- usually connected with the former, so you determine how many holes you'll fill in for the host OS, and how many things you'll just leave out. But you still aren't OS independant -- you can't be -- you've just generalized your program across a certain layer abstract layer which itself is an OS.
Truly novel OS notions -- like the resource fork on Macs -- just can't be used in a portable fashion. And if they aren't used, you aren't really creating a program that fits with the OS, you are just doing lowest-common-denominator. Will your Tk programm work well in a OS that provides orthogonal persistance? Will it run on a mainframe? Distributed? Probably not... when there's only a few OSes that are all more similar than not, portability isn't that hard. But it also isn't a very important achievement.
Based on who's criteria? Windows? Every time I've installed or upgraded Windows on a Compaq machine, I've not had problems,
Based on mine, since the bad old days when MSDOS 3.3 was the latest and greatest. It works with windows because there are a bunch of drivers that have code added specifically to handle Compaq (and gloss over the incompatabilities). Even partitioning a hard drive is different on some Compaq systems (don't forget to allow for the 10 Meg 'special' partition on the primary drive etc).
It is worth noting that the differences are not necessarily bad things, just that they do compromise compatability in the process of adding their benefits.
1.The 'low cost motherboard' route is for the Linux enthusiast, which is fine. I've done the same. It's not for the "domain expert/casual computer user" who sees the computer as a means to an end, not an end unto itself. What's fine for you and me in this catagory is not even worth considering for a quite large (and important) group of people.
The casual user should probably just buy a pre-configured system with OS installed from a Linux enthusiast. (If they want Linux). In other words, tell me what you want, and let me worry about driver and other issues. I do that all the time.
2.What version of Debian? If it's based on versions from 12 months ago, I went through two distributions, Debian and Corel, trying to install it on a Gateway PentiumIII 450 (E5500, I believe). Once again, the installed Windows NT 4 worked just fine. Once again, I had problems with the video card and the network card.
Potato. By no problems, I mean just do the install by rote and it comes right up, no special instructions.
I felt that test10 was reasonably stable and close to being usable by mere mortals such as myself. That meant that stuff working reasonably well in the 2.2 kernel series would continue to work in the late 2.4 test series. I should have realized that it's probably another false hope, like the announcements in April and May. I stand corrected.
Once again, major Linux houses were asked to install internally and TEST. That's how unknown issues are discovered. Nowhere did he say 'here it is, ready for the masses, I guarantee that things working in 2.2 all continue to work'. He DID say "We've already found a few things that way, and hopefully, a month of this will shake out the worst.". It hasn't been a month yet, and a bum NIC driver is not even the worst.
Again, the comment concerning money saved is based on what studies, what public statistics to back this up?
Simple figure, public information. The pricetag on Windows vs. the price tag on Linux. I don't even have to start counting other costs like license compliance auditing to see that it'll add up significantly for a school. As for hiring an idiot admin, that's not a real factor since it's true across the board. If we presume they've had the sense to hire or contract a good admin, the ability to fix up a Linux box remotely is a big cost saver. It is even possable to do a full Linux upgrade remotely (with a little care).
Over the past few decades, Microsoft and others have published rack after rack of information on operating system and application internals. Yes, there have been authors such as Andrew Schulman (Unauthorized Windows 95, etc) who've made a cottage industry out of documenting those dark corners that Microsoft 'forgot', but the system has been heavily documented based on customer feedback and need.
Meanwhile, Linux exposes every last dark corner intrinsically at no cost (those Windows books aren't cheap). Since the source is provided, you can change literally anything at all, re-compile and see how it affects the system. Until MS publishes their source code for free, Windows can't begin to compare with the openness of Linux.
Windows, they can get an educational discount on the Borland Standard version and teach that portion of Windows.
And yet, it'll still cost more for a single user license than the same tools for Linux plus a full source license with unlimited distribution rights.
Two weeks ago I found a very good bargain on another Compaq; this one, a Presario 5000 with an Athlon 900MHz (Socket A), Hercules 3D Prophet II with Nvidia's GeForce2 MX chipset, 30Gig HD, 256MB ram, etc, etc, etc.
For many years, Compaq has been one of the least compatable 'PC compatables' on the market. Some of their models do run Linux just fine. I regularly buy low cost motherboards from Taiwan with built-in everything and get Debian up and running in no time. The only thing that doesn't work is the 'winmodem' (the name should be a clue). That would work too (as well as a winmodem ever works anyway) but for patent issues in the U.S. the performance is the same as a Compaq or better, the price is lower, and compatibility issues are non-existant.
and when I've tried to test the 2.4.0-test10 kernel, I loose the network card
The word test isn't there because it looks cool, it means 'TEST', not 'ready to go out of the box'. Unless you want to TEST, don't use a test kernel.
A school that just wants to plug in and go should buy their machines pre-configured and tested. If they choose a Linux based machine, they stand to save a lot of money. If the goal is to really teach kids about computers inside and out, they'll need one where looking inside is encouraged, not one that tries it's best to keep the hidden parts a secret. Imagine an auto mechanics course where the cars all have their hoods welded shut.
I believe that a truly dedicated kid, one who enjoys programming, will devour (or at least try) every new development environment they come across. A kid who's really interested in coding is not going to say "man, this linux thing is icky" if they got broken in with VB or Visual Studio.
However, from a practical/school system point of view, the nice thing about Microsoft development environments is that they install well onto those PCs from Dell that are shared between the C class, the BASIC class, and the word processing class. Dual booting is always an option, I guess, but try telling a overworked schoolteacher that they have to go through a 2-operating-system installation ordeal every time somebody infects a machine with a virus or hoses it some other way.
I'm teaching my nephew (aged 8) to program in Python. I selected it because it's got a fairly shallow learning curve (you can get impressive results almost as soon as you start), it's a 'real' programming language (lists, maps, objects etc) and it's got elements from most of the major language families (structured, OO, functional - but not really declarative).
He is picking it up amazingly fast, and loving every minute. I am having a lot of fun, too.
I am sure other languages would be appropriate too, but from personal experience I can say that Python seems to be an ideal 'first' language.
Incidentally, his PC runs Win95, so I've given him the Gnu tools. He think's they're funny, but he is already having a load of fun doing simple text processing with the 'usual suspects' (cat, sort, uniq, grep etc) I think this gives him the best of both worlds.
I'll get him using Emacs before he's 9...
I have a 7 yr old that I would like to bring beyond the gaming stage. I started learning basic myself (the book "Basic Basic" on my PCjr at age 13. Of course that screwed me for other languages later no. That's probably why I'm not a programmer, that and I don't want to be one.
Anyway, what would be a good language to feed my 7 yr old son? Is python too advanced? I seem to remember Logo.. is it still around?
I don't think that a seven year old want's to use a linux disto because of the simple fact that they can't play much games on them
"Games" are a distraction. The computer IS the game. You learn by playing with it, first from the outside, then by writing simple programs, then by tearing into the code to see how it works, then by modifying the code to see if you can make it better, cleaner, or more capable.
Try THAT with windows! You hit a wall. With linux it's all there as you get to each step.
It's not convenient for professionalls - there's a learning curve. But children are little learning engines, with all the time in the world.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
Far more important than Unix vs. Windows is commercial vs. non-commercial. Are these kids going to be stuck on MS developer mailing lists for life? Are they going to be constantly told how much better the tools they are using than those of MS's competitors, (or those of the FSF)? What's going to be the long-term effect on these kids? Is this education or advertising?
Free Hans!
The first few months were the worst, I was bitching all the time about the fact that the teachers didn't know shit, that they were teaching us stupid Microsoft stuff (VBscript instead of JavaScript, MS OSI Model, etc). I got really pissed.
One day, I realized that I wasn't learning anything and that I had to get my degree. To make my experience at that #@$#%!@ school enjoyable, I decided to start teaching Linux. And that's exactly what I did. I teach Linux for FREE, I have a server where students have an account.
It's every saturday afternoon. Today I am teaching apache.
Linux classes
Apache for today
Looking for a great online backup: Green Backup
Shouldn't that be Malfunction??
--Clay
The reason for that is because m$-windowses were designed starting from the wrong end, the GUI. Also it was an evolution from single-user, single-task MS-DOS. Then, in NT, they tried to glue a VMS kernel to that GUI, making a total mess of it. The result is that the simplest tasks, like, for instance, making an animated sequence displaying the result of some calculation, results in a huge and cumbersome thing, needing multi-thread programming, etc.
Compare that to Unix, where the system grew up from the kernel. To do the animation I mentioned above, you can write two separate programs, one for the calculations and another for drawing the results and use a pipe for process-to-process communication.
Yes, I know, there *are* pipes in m$-windowses, too. Just don't try to find any mention of them in the documentation. For instance, "Programming Windows with MFC" by Jeff Prosise, Microsoft Press second edition, 1999. If it's not in a 1327 page book, published by Microsoft itself, where can I find out how to use unnamed pipes in w2k, NT, or windoze95/98? The blurb says "The premier resource for object-oriented programming on 32-bit Windows platforms" on the front cover and "...the definitive exposition of Microsoft's powerful C++ class library..." in the back cover. Ironically, the answer for this documentation problem is... read the source. MFC comes with source code, or, at least it came in the last version I bought. In the end, if you want to do any programing beyond what VB can do, be prepared to spend long hours browsing what must be the most confusing GUI toolkit since OWL.
Or you can do what I did: migrate everything to Unix. If you program in a corporate environment there will be resistance to this, but I found the way to overcome it. I put together a Linux server running Oracle8i, a magic word that conquers corporate hearts and minds. Then I write my programs to allow clients to have web access. This way, we are all happy. I do all my development in Linux and they can use whatever desktop machine they want.
I'm in my second year of highschool now.
I've been to two schools because of reorganization.
In both schools I've tried to get some sort of unix education running. Both of the schools were completely Microsoft dependant.
So far, I've found a few challenging obstacles.
The school board doesn't want to train their existing tech teachers or hire new technology teachers to use any sorts of unix. They don't realize, in the long term, training staff to use unix would probably save them more then continuing to buy MS site licenses for each and every school. Really, they just haven't gotten into this whole *nix thing, and I don't see them wanting to. It's more work for them. It's just easier to spend tax dollars than to learn something new.
In my first year, I managed to get one debian box running. sshd, apache, whatnot. This is where I actually got most of my linux clue. Most students weren't all that interested in sshing to a shell to poke around like they could in DOS. Some managed to get their ~/public_html directories running with a little help. The last few classes in my Computer Technology 3200 class I was permitted to hook up a projector and take the students through a quick linux trainer. They learned how to use pico and things. The school board said all along that they didn't "support" linux, and wouldn't give us any help or resources with the project. I came away from that school when it closed fairly satisfied.
This year, my highschool has *no* intention of using any sort of unix. The NT administrator doesn't have the time to learn how to use it and doesn't seem to want to.
They feel a linux box on their network would be a security risk. I'm not sure how they've come to this conclusion. I think they've got their facts backwards. A linbox on their network would only be a problem if a student got root, while on a windows 95 box you're free to do whatever you please.
" Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" anyone?
Also worth pointing out, recently, the school had all the students participate in a chocolate-selling fundraiser to pay for Windows 2000 Advanced Server. M$'s site says it's $3,999 USD for Advanced server with 25 client access Licences. The highschool has over 150 workstations. That there is a _lot_ of money for an operating system. We're not even talking about the client OS. For the amount of money they're going to spend on Windows, I believe they could train staff to use a unix based operating system with KDE, or similar.
It's really sad that citizens don't realize millions of their tax dollars are being wasted on an operating system they could do better without.
-i
I have to disagree with your statement that windows programming is the only kind likely to "likely to provide a decent living". I am college students and in fact all of the jobs I have had (summer and term-time) have been in unix. The reason for this is that the number of companies needing web-based programs has exploded and I have had no trouble finding work programming perl under unix for applications that used the web for their interface. Not just small cgi's, but large application with a team of people working on them full time that just use the web (and email) for their interface. Granted, this does not require a great knowledge of unix system calls/networking, but I think it is a real error to say that unless you know how to program for windows, you will be unemployed.
Care about freedom?
I'd rather be lucky than good.
Even though its based on Microsoft software and such. It still might make persuade more kids into taking computer classes and heading into the computer industry at an early age.
Once they have gained a stable base, most will more then likely go out on their own looking for things that interest them. Not to mention, how could one be computer literate these days and not know life outside of Microsoft.
I believe getting programs like these iinto schools is a good thing, even if they are funded by Microsoft. They will help everyone as a whole. And at some point as more open source companies and products become mainstream, you will see schools open to more then just a few free licenses from Microsoft.
On a last note. I would tend to think most middle school and high school computer teachers have not had much open source exsposure in their lives, mostly general computer use and programming. Once those teachers retire and new teachers that have "grown up with/grown along with" open source products will attitudes change as to what is tought.
Okay, I'm definitely not a "Unix Zealot." I'm typing this in microsoft explorer for chrissakes. Having said that, I have to agree that Unix-like systems do have a natural appeal for programmers.
The main reason simply comes down to this: most programmers are the kind of people who just have to know what that funny looking button on the VCR remote does. They're tinkerers. That's usually how they got into programming in the first place (at least in my experience). Unix systems allow a lot of this, because damn near everything's in text files. There's just no end of stuff to play with. Windows, on the other hand, tends to hide everything in the registry.
The main advantages of windows are it's ease of installation/configuration and the availability of software. These are great for the mass market, but really offer a lot less appeal to the kind of person who is into programming. I enjoy fiddling around with a Linux install to get everything just right. If I were still seriously into programming, as the people we're talking about are, the software thing wouldn't bother me. It would just be a good excuse to mess with code.
Which brings me to another reason programmers like Linux and similar system - availability of source code. Just something more to tinker with.
(Of course, Linux doesn't HAVE to be that way. Mandrake has its flaws, but it sure makes life easier...)
"If God created us in his own image, we have more than reciprocated"
Apple did this long ago, with their campaign to put their Macintosh computers in all the schools. Their thinking was, let's get the kiddies used to the Mac during their growing up years and when they get older, they're be ours forever. Not a bad idea (if you recall, Hitler ran a similar campaign), but we all know how this turned out for the both of them.
We don't need to worry - unix has the "natural appeal" for aspiring programmers. And, with unix,they get all the necessary tools for free. This microsoft program might teach programming to someone who will never really be a good programmer - good programmers are "natural" (at least they have the "programmers drive"), and don't wait for school to teach them something they would learn much earlier if they just bothered to read some books.
This seems kinda desperate. Is microsoft really losing ALL the interest among developers?
Save your wrists today - switch to Dvorak
If you are programming in a modern programming language like Python or even JavaScript, with a portable GUI framework like Tk, Swing or Mozilla, it really sould not matter what operating system you are using.
Rather than promoting "Unix for schools" we should promote "platform-independent software development for schools." We should stress that if you focus on that which works across platforms you come to understand better the universal themes of computer science rather than the specifics of an OS.
Once the operating system becomes more or less irrelevant, schools will of their own volition choose the operating system that is cheaper, more secure, easier to maintain programatically and so forth.
Paul Prescod
Comment removed based on user account deletion