programming


According to Google Analytics, Zotero2GROKCodex is the second most commonly accessed page in all of groklab.org (64 hits in the last month). The main page, of course, is first (136 hits).

I’ve updated the software to work with the latest Firefox and latest stable version of Zotero (I haven’t tested with the 1.5 server sync preview yet). You can install Zotero2GROKCodex here.

Any new feature requests for this software?

What? You’ve got some spare time and you want an addictive online game where you build a machine to put a ball in a target? And you want that online game to use real physics constraints?

Ok!

http://FantasticContraption.com/

Here’s one that I did. My solution is effective, though not efficient. Once you solve a level, you can see other people’s solutions…

http://FantasticContraption.com/?designId=993115

Could we use this as some sort of design competition in EPS2, or some other class?  Maybe score on time and number of parts used (could assign a cost to each part).  Lowest score wins…

Thought this would be an interesting discussion piece.

STSC CrossTalk – Computer Science Education: Where Are the Software Engineers of Tomorrow? – Jan 2008

It is our view that Computer Science (CS) education is neglecting basic skills, in particular in the areas of programming and formal methods. We consider that the general adoption of Java as a first programming language is in part responsible for this decline. We examine briefly the set of programming skills that should be part of every software professional’s repertoire.

The main argument here is that students are becoming programming plumbers – basically able to follow set patterns or string together libraries, but lack knowledge in fundamental computing areas to enable them to solve complex or large scale computing problems efficiently.  The article also describes some computer engineering skills/knowledge that programmers should have.

In the Iowa College of Engineering, first year students have a programming course in which they learn C.  However, the course skips pointers, references, and memory management in order to simplify the course and retain more students.  I’m not sure when, if ever, pointers and memory management are re-introduced into the engineering curriculum.  Perhaps somewhere in the EE track.  As a programmer, I hated having to deal with memory management and pointers, and I have been extremely happy to move from strongly typed compiled languages like C, C++, Java into scripting languages like Python and Ruby. But I think that a fundamental knowledge of memory management becomes like a common abstraction between languges that lets you learn new languages and techniques more efficiently.