A killer idea for code

FSM Columnist: Trusted

Write a full post in response to this!


You know what I’d like to see? I’d like the various Free software groups (whether they use “open source” or “free software” doesn’t matter) get together to produce the greatest educational tool the world has ever seen:

A website dedicated to Free / Open Source code. Not programs. Code.

Right now, there are a few sites out there that have search interfaces to Free software code, such as the most excellent Koders (which is itself ironically proprietary). But, I have found no place specifically dedicated to small code samples, designed specifically for education and discussion.

This is really just one small step in a direction I believe to be essential for the continued development of Free software: widespread computer literacy. Not your base literacy, in which mad, mad MS-Office skillz makes you a computer expert. I am referring to the basic ability to code, and to code well.

In my experience, coders who know the basics of coding are much better programmers than those who have lived entirely in a Visual Studio-like environment. I’m not saying fancy high-level IDEs aren’t useful. They are. But a car mechanic equipped with the latest computerized diagnostic tools still needs to understand internal combustion engines to excel at his craft.

My argument isn’t against IDEs. It’s for computer knowledge. And to that end, I humbly suggest that a high-profile Free (or Open Source) entity might possibly further the cause by creating an education site for Free software; a site suitable for schools and the self-educated, that concentrates on code, code samples, and the art (and science) of programming.

This site doesn’t even need to evangelize the freedom of Free code. As people use this resource, many will come to understand the importance of openness and freedom, as it relates to information and code. As they benefit directly from the free transfer of ideas, they will understand there is intrinsic value to the sharing of information and code.

Most importantly, it results in an open education framework, in which the code snippets can be reviewed and criticized, and the educational materials may be periodically revised to match the evolving world. It can become a resource for the experienced programmer looking for the best method to accomplish a specific task. (A recent example from my own world: how do you alter the process name of a running process?)

Finally, a code resource like this would help mitigate the effect of Microsoft’s push into secondary and post-secondary education. Not that I’m worried Microsoft may be able to crush Free software. I believe Microsoft’s stranglehold on the industry is doomed, though it will take years to sort it all out. Mostly, I’m concerned about the damage they may do in the meantime, to our students, our education system, and to computing in general.

Ultimately, our society requires decent, open education. We can’t necessarily fix broken education systems in any particular country, but we can help out in the important area of computer science. All it takes is a dedicated website, and the resources to manage it. I don’t have those resources, but there are organizations in the Free / Open Source community who do have sufficient resources.

If there is a site like this, in which the discussion of Free software code snippets as an educational tool is the primary focus, please let me know. If this already exists, it deserves our support.

Bibliography

[Open Resources](http://revolution.widged.com/wiki/tiki-index.php?page=ResourcesOpen) at the Revolution in Education wiki

 [Koders](http://koders.com) searchable source code repository

Write a full post in response to this!

Similar articles

0

Do you like this post?
Vote for it!

Copyright information

This entry is (C) Copyright by its author, 2004-2008. Unless a different license is specified in the entry's body, the following license applies: "Verbatim copying and distribution of this entire article is permitted in any medium without royalty provided this notice is preserved and appropriate attribution information (author, original site, original URL) is included".

Biography

Anthony Taylor: Tony Taylor was born, causing his mother great discomfort, and has lived his life ever since. He expects to die some day. Until that day, he hopes to continue writing, and living out his childhood dream of being a geek.

Anonymous visitor's picture

There's certainly demand for such a thing

Submitted by Anonymous visitor on Thu, 2007-02-08 12:31.

Vote!
0

I'm learning coding myself, and putting my simple learning exercises on my blog as I go along.

I get a surprising number of people coming in to those posts from Google searches for simple things like converting a number from one base to another. So a big site that had lots of examples would probably do pretty well.

Anonymous visitor's picture

fundamentally agree

Submitted by Anonymous visitor on Thu, 2007-02-08 14:31.

Vote!
0

I've been thinking along a similar line for a while. For example "The Ruby Way - book" has almost two pages of ways to step through an array done as code snippets. On one hand it is useful (and in its context I think intended) to show the flexibility of the language and variety of ways to do things.

But I would like just one way shown for each, such as one way to iterate a range, one way to iterate each element of a container, one way to loop until a condition is met.

Additionally I want to mix onto it comparable constructs to other languages.

What I haven't concluded is the best way to organise it to make it browsable as I think a layered browsing approach is more important to beginners or people wanting to glance through a new language than search ability.

Steve 7's picture

Could wikipedia or wikibooks be a possible solution

Submitted by Steve 7 on Thu, 2007-02-08 15:04.

Vote!
0

Wiki Books
Wikipedia

Or do you think that there needs to be a new single site effort with custom infrastructure to handle source code syntaxes

Perhaps like the "Java Developers Almanac" but more fleshed out, with best practices already in there.
http://www.exampledepot.com/egs/index.html

I have noticed most articles and books always state that this is not what you would want for a production system. So your idea would be to list a concept or task that woul dneed to be coded, and then have articles/entries showing how to do it.

Allow for different lanuages doing the same thing. In your example link I would like to be able to find out how to do the same thing (Howto change a UNIX process and child process...) using python.

Perhaps this could be folded into the http://www.google.com/codesearch or http://code.google.com/ efforts.

Steve 7's picture

How bout Codecodex

Submitted by Steve 7 on Thu, 2007-02-08 17:48.

Vote!
0

http://www.codecodex.com/wiki/index.php?title=Main_Page

Anonymous visitor's picture

For python learners

Submitted by Anonymous visitor on Fri, 2007-02-09 05:33.

Vote!
0

www.uselesspython.com has a lot of very simple source code examples (and I can still honestly claim to be the largest single contributer with 7 scripts to my name, lol). While learning python I went their numerous times, looked for a program that did what I wanted and just read the code to see how they did it.

Anonymous visitor's picture

Great idea.

Submitted by Anonymous visitor on Fri, 2007-02-09 16:50.

Vote!
0

I started my career as a developer using Perl. I quickly came to love and respect the CPAN repository. I believe it should be the envy of every other language. For those that are unfamiliar, CPAN houses a vast number of reusable libraries for the Perl programing language. If you need to get something done in Perl and you its something someone else has done before, you will find it on CPAN. I have never found anything like it for any other language.

My point in bringing this up is that such a site for ALL languages would be awesome for both the collection reusable code as well as an educational tool if it had the appropriate search tools.

I have a server, time and some interest in seeing something like this develop. I have not started anything but would like to.

Anonymous visitor's picture

Granted It's Generally For Windows, But...

Submitted by Anonymous visitor on Fri, 2007-02-09 20:10.

Vote!
0

Checkout www.codeproject.com

That site currently has 3.7 million registered members, and almost 15,000 articles written by those members. there's even some articles that aren't windows specific, and a lot of .net (Mono) stuff.

Anonymous visitor's picture

Also O'Reilly and Prentice-Hall

Submitted by Anonymous visitor on Fri, 2007-02-09 22:30.

Vote!
0

I'm no programmer but it looks like O'Reilly's code search is a good resource. Also, all books in Prentice-Hall's Bruce Perens' Open Source Series are released under the Open Publication License and may be a source for such a project.

Vance

Anonymous visitor's picture

google codesearch

Submitted by Anonymous visitor on Sat, 2007-02-10 18:52.

Vote!
0

Well, it would be much better if such a site was open itself, but much of the worlds open code is searchable via google (http://www.google.com/codesearch)

Anonymous visitor's picture

I Agree Completely

Submitted by Anonymous visitor on Sat, 2007-02-10 20:11.

Vote!
0

A lot of users do not even know how to compile source code, what it's doing etc, let alone how to read source code, let alone how to program.

No doubt that when developers tell people, "if you don't like this, if you want something, etc. code it in yourself" the users will be able to actually do that if a website exists that helps users learn the whole process and code from beginning to end.

Anonymous visitor's picture

Missed a few?

Submitted by Anonymous visitor on Sun, 2007-02-11 01:37.

Vote!
0

I can't imagine you missed Google Codesearch or Bigbold Snippets? It sounds like that's what you're looking for.

Anonymous visitor's picture

Krugle is there...

Submitted by Anonymous visitor on Tue, 2007-02-13 03:57.

Vote!
0

http://www.krugle.com/ has a large code repository with nice interface to browse

raseel's picture

Easier said than done !!

Submitted by raseel on Tue, 2007-02-13 06:55.

Vote!
0

Albeit the fact that this i a great idea, maintaining such a project would require some serious resources. Also. a lot of other trivial things like IPR, cpoyrights, liscence, etc. might interfere.
Just my 2 cents.

Raseel
http://itvidya.com/blog/raseel

Anonymous visitor's picture

thanks for linking to my site

Submitted by Anonymous visitor on Tue, 2007-02-13 11:32.

Vote!
0

Hi Anthony.

Many thanks for linking to my website. But the link that was more directly of interest to you was: codes.widged.com. That provides a set of small code snippets to solve specific problems ;-). Comments and suggestions on how to improve this are welcome. Note that this kind of service abound. Check out snipplr for a nice web2.0 version.

On this "Most importantly, it results in an open education framework, in which the code snippets can be reviewed and criticized, and the educational materials may be periodically revised to match the evolving world. It can become a resource for the experienced programmer looking for the best method to accomplish a specific task. (A recent example from my own world: how do you alter the process name of a running process?)"

What is needed, I believe, is not so much code snippets but the expression of many education problems in terms of design patterns. There is some explanation of what is implied by this at Design Patterns for Exercise Content. There is a live example on my exercist project cms. You cannot edit them for now (I mean you have to contact me to become an editor) but editing is done via a very simple form, that even the most technophobe teacher could manage.

On opencourseware, please visit the excellent website of my friend Gordon, iberry.com, the academic porthole, an Open Courseware Directory and other Higher Education Resources.

I have been an academic for 10 years. I taught in the best universities. I became a drop out because I got fed up of the right tools and infrastructures not existing. I am trying to set them up, one by one... but I started only a year ago and this takes time. Anybody interested in doing something similar is welcome to contact me to try to synchronize our efforts ;-).

Anonymous visitor's picture

thanks for linking to my site

Submitted by Anonymous visitor on Tue, 2007-02-13 11:34.

Vote!
0

Hi Anthony.

Many thanks for linking to my website. But the link that was more directly of interest to you was: codes.widged.com. That provides a set of small code snippets to solve specific problems ;-). Comments and suggestions on how to improve this are welcome. Note that this kind of service abound. Check out snipplr for a nice web2.0 version.

On this "Most importantly, it results in an open education framework, in which the code snippets can be reviewed and criticized, and the educational materials may be periodically revised to match the evolving world. It can become a resource for the experienced programmer looking for the best method to accomplish a specific task. (A recent example from my own world: how do you alter the process name of a running process?)"

What is needed, I believe, is not so much code snippets but the expression of many education problems in terms of design patterns. There is some explanation of what is implied by this at Design Patterns for Exercise Content

There is a live example on my exercist project cms

You cannot edit them for now (I mean you have to contact me to become an editor) but editing is done via a very simple form, that even the most technophobe teacher could manage.

On opencourseware, please visit the excellent website of my friend Gordon, iberry.com, the academic porthole, an Open Courseware Directory and other Higher Education Resources.

I have been an academic for 10 years. I taught in the best universities. I became a drop out because I got fed up of the right tools and infrastructures not existing. I am trying to set them up, one by one... but I started only a year ago and this takes time. Anybody interested in doing something similar is welcome to contact me to try to synchronize our efforts ;-).

marielle's picture

thanks for linking to my site :-)

Submitted by marielle on Tue, 2007-02-13 11:56.

Vote!
0

Many thanks for linking to my website. But the link that was more directly of interest to you was: codes.widged.com. That provides a set of small code snippets to solve specific problems ;-). Comments and suggestions on how to improve this are welcome.

Check out snipplr for a nice web2.0 version of codes repository
----------------------------------------
Marielle Lange (PhD), http://widged.com
Bite-size Applications for Education

marielle's picture

design patterns could be more useful than collections of codes

Submitted by marielle on Tue, 2007-02-13 11:57.

Vote!
0

On this "Most importantly, it results in an open education framework, in which the code snippets can be reviewed and criticized, and the educational materials may be periodically revised to match the evolving world. It can become a resource for the experienced programmer looking for the best method to accomplish a specific task. (A recent example from my own world: how do you alter the process name of a running process?)"

What is needed, I believe, is not so much code snippets but the expression of many education problems in terms of design patterns. There is some explanation of what is implied by this at Design Patterns for Exercise Content. There is a live example on my exercist project cms. You cannot edit them for now (I mean you have to contact me to become an editor) but editing is done via a very simple form, that even the most technophobe teacher could manage.

marielle's picture

opencourseware

Submitted by marielle on Tue, 2007-02-13 11:59.

Vote!
0

On opencourseware, please visit the excellent website of my friend Gordon, iberry.com, the academic porthole, an Open Courseware Directory and other Higher Education Resources.

He is in the process of reorganizing the content to take advantage of the nice taxonomy features of drupal iberry next generation, version alpha

If you know of good resources, use the comment posting facility there to let Gordon know of these.

marielle's picture

teachers need resources designed for them

Submitted by marielle on Tue, 2007-02-13 12:11.

Vote!
0

On the link you give. The fairly linear structure of a wiki is not really good to organize bookmarks. All bookmarks will be reorganized with foksonomy tagging and presented within a web 2.0 interface. But I this will take me a few weeks to finish (more exactly, this will take me a few weeks to finish other projects before I can work on that one). You can see an early draft at education bookmarks, which gives you access to my personal collection of bookmarks.

If you type in etivities in the first box... then you will get a huge list of websites which contain examples of codes for learning activities. There is more on the reved wiki, under Snippets & Templates.

I could do with helping hands... I am too busy for now with other projects like writing educational software and working on some ideas for a viral education game.

Well, I have been an academic for 10 years. I taught in the best universities. I became a drop out because I got fed up of the right tools and infrastructures not existing. The problem within education is not about making codes and snippets available to teachers. The problem within education is that many teachers have great things to contribute but most cannot because of technical obstacles. You also have to take into account that most resources like koders or snipplr are not adequate for a teacher community. They simply don't have the time (or even not the interest) to browse through these large collections. You can estimate that a teacher has an hour or perhaps two to waste in a week. Not much more.

I am trying to design tools that let teachers do what they do best, create great content without having to become technical expert or design experts or being expected to spend long hours commenting, rating, or contributing resources to the community (like asking them to provide learning object metadata or uploading their courseware onto a directory, which most do not, however keen they are on the idea of free and open software -- I know, I didn't do it myself, I was simply too busy when working as an academic).

However, this takes time set them up, one by one,and I started only a year ago and this takes time. And I need to intermix these activities that bring no money with others that help me earn a living, somehow.

Anybody interested in doing something similar is welcome to contact me to try to synchronize our efforts ;-).

marielle's picture

Problem of the gap between practitioners and experts

Submitted by marielle on Tue, 2007-02-13 12:27.

Vote!
0

My own understanding of the obstacles to the development of better resources within the education arena is described here The Problems that eXercist is trying to solve. The pyramid graphic there is relevant to an educational context in general, not just this exercist project. I would be interested to hear comments on this.

On open source code/software relevant to education, don't forget to check out eduforge.org. "Eduforge is an open access environment designed for the sharing of ideas, research outcomes, open content and open source software for education. You are welcome to use our community resources or start your own project space." Nothing prevents you from using it to share code rather than full software.