Tuesday 28 June 2011

A Eureka Moment About Genes

For a while, now, I’ve been intrigued by the parallels between genes/DNA and computer programming.

The salient points are:

                Modular programming

                Self-modifying code

Computer programs are structured as functionally oriented, self-contained modules. The advantages being:

The programming task can be shared between many programmers to reduce development time.

If the program is subject to modification, only the relevant module(s) need be amended and released to the user, reducing download time

A specialised module can be given to a similarly specialised programmer, to improve the quality of the developed module

Every program application on your computer has large numbers of such modules (suffixed by “.dll”).

The relevance to genes should be partly apparent by now. Genes are also functionally specialised.  We have learnt to swap out troublesome genes from an organism and replace them with good ones.

Question: how does a single egg, divide in two, repeatedly, until, 9 months later, we have a human being containing thousands of different types of cells, when we started with only one type?

A partial answer would be a form of self-modification.  In computer programming there are several types of language or development tool.  The most primitive form of programming is direct operating code programming, but more usually assembler programming, as it’s called. At this level, the program code can directly address memory locations to modify data but also its own program code.  So we can have a code loop (sorry, lots of “gotos” involved) and incorporate an instruction that modifies one of the others in the loop, so that it does something different each time around. A similar operation in genes would enable a cell in, say, the liver to evolve to connective tissue instead of liver cells, next time it divides. In a computer program we would use counters and change cell types on reaching a specified value in the counter.  We could, in fact, develop a complete computer model of the development from egg to human using this method. I had been wondering how this counter approach could be implemented in genes/DNA. Then I watched Prof Jim al-Khalili’s chaos TV program. 

Now to my “eureka moment”:

It took a while, then I realised that cells don’t need to count as such, they just do their thing. It’s all down to chance. If it makes too many, or not enough, cells of the right type, the organism will, as likely as not, be sickly and perhaps die.  The rest is up to Darwin. Eureka!

Saturday 4 June 2011

Kids and Programming – The Issues

The issues can be categorised by:

Public ignorance (including most teachers)

One-size-fits-all education system

Lack of expertise within education

Geeky image, uncool

The Great British attitude – knock anything that’s good

Lack of respect in the class (putting people off teaching)

Taking these in order:

When people buy a car they don’t expect to build a better gearbox for themselves, and they know they couldn’t.  The car comes complete and you use it as it is.  Customizing means adding ICE or body kits.  Likewise a computer is bought and used “as-is”, with maybe some extra software packages. How would they know that they can download open source development tools, or even MS Visual Studio Express, for free, and do real programming?  Who shows them how to do this?  Mind you, some kids not only know how to program, but are highly competent hackers!

Sadly our educational system has been bankrupt for years, and succeeding governments have sought to disguise this in many ways.  One-size-fits-all is cheaper than tiered education.  “Elitism” is the excuse used to remove the higher tiers.  But, notice where the politicians send their kids to school.  So talented children must put up with the pace of the slowest, and not receive the stretching classes they deserve.  And, again, the government spoils things for the teachers by the top heavy administrative load that extends working hours and leaves teachers short of creative thinking time.  It is worth mentioning here that ADD/ADHD is a growing problem.  It is passed on by a positive gene, which pretty much guarantees this growth.  These kids are wired differently (not wrongly!) and need a different approach to teaching. How can this be done in the current set-up?

As mentioned above, there is mainly no perception that the computer is a home-programmable device, and many teachers even struggle with basic ICT.  That means bringing in professionals.  I have tweeted before on employment conditions.  Good programmers can earn much more in business than in education: often, newly graduated computing students can earn more than the lecturers who taught them.  Getting real, qualified programmers to teach in mainstream education, in any numbers, is a problem.  Older people may be available, (we get pensioned off at 50) but will their skills be up to date?  And, by the way, what child wants to work in computing when they’ve just had a holiday cancelled because their dad has been pensioned off?

Kids want to be footballers or pop stars.  You don’t need education, or for that matter good manners and self-discipline, for that, they think.  The public example of behaviour set by many such is a disgrace. Some kids bully those who appear to achieve, so best to keep a low profile and avoid doing anything clever.  Heaven forbid that you might ask a question in class.

That brings us to the great British attitude.  Anybody who is any good at anything has to undergo trial be media.  The media do this because they know the general public like it.  Got to bring people down to size, because they think (wrongly of course) that bringing somebody down makes themselves look better.  If they can’t find anything derogatory to say, they’ll call them by some pathetic nickname.  So who would want to be good at anything?

Continuing the theme, we get to classroom attitude.  Teachers used to be held in high regard by the community at large.  If a kid got a smack in class and told his parents, he would get another smack from his parents (or worse).  Nowadays, in many schools, children are almost beyond control, and school heads, in many cases, have not the wit to back up their staff by dealing with the trouble makers. Then there is the public misconception, encouraged by government, that teachers earn £37k, work 9-4 Monday to Friday, and get 25 weeks holiday per year. So who would want to work in education?  Of course I know many who do, and who love it, because they feel this inner need to teach, and it can certainly be emotionally rewarding to witness the intellectual growth of individuals.  My son is a science teacher, and has been lucky in getting a post at a good school.

What would I do?

(And I wouldn’t limit this to computing, but science and technology generally)

Let’s have programming on TV in a fun context during children’s peak hours.

I like what Young Rewired State are doing.  But we should extend it by providing specialist out-of-school classes (much like some schools have a sports afternoon, why not a special classes afternoon?)  We can get better value from better paid industrial staff by limiting classes to those who want to do it, and making up numbers by covering more than one school in a class.

We should campaign for TV programme makers (perhaps soaps especially?) to present high achievers in a positive light in their programmes.  Let’s have programmers and scientists in soaps!

I don’t in anyway advocate diminishing freedom of speech, but surely something can be done through legislature to stop the media knocking for knocking’s sake?

It is the last of the above that worries me most.