All Blog Entries

Running a little late this week by rurwinrurwin, posted on 15 Feb 2012 23:31

Richard Urwin

avatar-riu.png
Secretary

Unfortunately a certain romantic date got in the way of preparations this week. You will, however be glad to know that SWMBO had a great time.

I've not put up anything more on the history of computers yet, instead I've posted a little something on Binary Logic. I'll get back to the computer stuff soonish, but I wanted to lay some foundations a little wider than I have been. There's also a brief post on What is Binary? That links to some superb pedagogy from CS Unplugged. At long last, that's two subjects that actually have an impact on the syllabus. (I said I'd get there eventually ;-) )

In other news, the practical examples now get you up to running Python. SILIAC is in our sights.

If you build it they will come by pythagorasukpythagorasuk, posted on 06 Feb 2012 21:48

Included page "sig:pythagorasuk" does not exist (create it now)

Cant I upload files on a journal page?

Two or three weeks in and where am I now? by russell wallrussell wall, posted on 05 Feb 2012 20:44

Included page "sig:russell" does not exist (create it now)

Like all new pupils in the classroom it’s sometimes difficult to be the one who puts their hand up in the air, either for questions or answers, so feedback to our teacher/guru/whatever is patchy to say the least. But let’s be honest here for a moment and have a look at what I, personally, have got out of the first couple of weeks here in “Form 1C”! (That Grammar School Education left marks that will never heal)
First of all, I had a go at the GCSE paper
ocr_31050_sam_gcse_2010_sam_a451.pdf
Started well, hey this is easy! Then Mary (question 2C) turns into an eco-warrior. Never in my life have I formally considered the environmental impact of upgrading a computer, although as I sit here surrounded by old beige boxes, I am most probably a classic “green” computer user. This situation was, and still is, brought about by lack of cash and a complete loathing of buying anything unless I can completely justify it. The netbook I’m writing this on is from the local tip! I know someone who works there!
Back to Mary and her dilemma. I had a bit of a think about it and gave a reasonable answer. Still feeling confident … then came question 8. The wheels fell off! No idea what a variable was … but could still answer part B. Absolutely no idea with 8C. From then on the eyes glazed over. That is where I am in my knowledge.
Ok, so I dived at the chance of joining up to this course so I must want something out of it, but what? Well, to be blunt …. A job! Some idea that there will be schools crying out for teaching assistants with a good grounding in computing/programming seemed a path which might produce something. I’ve got some lecturing experience (fine art) but really don’t want to go down the PGCE route at this stage in the game (55 and feeling it!). Question 8 is a big wake up call. I actually am just the classic windows user, no real understanding of the mechanics of computing although I am pretty handy when using software. Midi and audio (cubase and other audio software) is my bag! How it works, hooking up compressors, reverbs, splitting channels in audio … this I know. The code, how the computer puts these images of a Vox AC30 on the screen and makes the cable I plug into it wobble just like the real thing … no idea. Not only do I think I need to know, or at least have some idea of how a computer does this if any chance of a job might materialise in the near future, more importantly, I WANT to know.
I adored the (self imposed) thinking in binary exercise that was brought about by Pythagorusuk asking a simple question. Can you write a negative number in binary? That for me was the spark.This is what I needed. I had to start from scratch. Add up a few numbers, show the “working out” and then subtraction. Ouch! Spent hours just playing about, getting a method that eventually I was comfortable using. The actual method for writing a negative binary I would never have got in a lifetime, but that’s not the point. I was getting a grounding in binary, a different way of thinking!
The Eniac/Siliac worries me, what’s Sir! got up his sleeve for us? But in the same way as the binary problem, I’ll bang away at it until I get somewhere. Same with the control prompt. A few hours of playing about on win7 control prompt, the next thing you know I’m using it with a bit more than just beginner’s confidence. Today, I installed Ubuntu on this netbook , dual boot! Tomorrow, linux terminal, look out!
I’m time rich and cash poor. The rest of you, it seems to me, are the opposite. Whatever you decide is achievable through support/networking please count me in. But I’m in no doubt about the fact that, yes, this course is showing me the way but it’s up to me to actually use it fully. Expect lots of comments, questions etc.
And so finally, after a fair amount of rambling, a concrete idea. Similar to the raspberry pi site, once we start hitting specific exercises, is there a place (on white background?) we can post our grievances, start our own threads about the homework, the teacher etc. Somewhere away from the lessons! Or am I just being dumb! (laughs out loud!)
Cls
Quit

A fun little project by rurwinrurwin, posted on 30 Jan 2012 11:09

Richard Urwin

avatar-riu.png
Secretary

"Would you like an exercise on programming something like ENIAC?" I asked.

Of course, the only thing like an ENIAC simulator out there is an ENIAC simulator. I'm sure it was possible to program ENIAC once you'd had a week or two's training. But at least the simulator manual gave me some idea of how it worked. Then with a couple of days musing about how to simplify it down I had a basic idea.

And so I spent a couple of really enjoyable hours last night building a simulator for something at least somewhat similar to ENIAC. One of those hours was building the basic program, the other was programming it to produce the Fibonacci sequence and adding features to the program that I needed.

I've called is SILIAC.

Tonight (if I have time) I'll be writing a front end for it, so the students don't have to write Python in order to write SILIAC wiring charts. So instead of writing:

acc1 = accumulator(m, "acc1")
acc1.when("fred", action("george", "add"))

The required instructions will be something more like:
ACCUMULATOR acc1
IN RESPONSE TO fred, acc1 DOES add AND SENDS george

Nobody said it was going to be easy :-)
In comparison, a similar instruction to the ENIAC operators would look something like:
On Accumulator 1:
    Channel α connects to data tray I          (Data is coming in on tray I and we connect it to input port α)
    Channel A connects to data tray II         (We send the result to data tray II)
    Operation Switch 4, to α, clear off        (This will be triggered by program input 4, and will use the number on input port α)
    Repetition switch 4, to 1                  (Only do it once)
    Program Input 4, connects to A-1           (Do it when we get a signal on A-1 ("fred"))
    Program Output 4, connects to A-2          (When we've done it send a signal on A-2 ("george"))

But it did take around two weeks to program it.

Educational points to be covered:

  • Installing and running Python (version 3)
  • Using the command-line
  • Writing programs in text files
  • The Edit-Compile-Execute cycle
  • Programming an ENIAC-type machine
  • Introduction to named variables and labels
  • Designing an algorithm and converting it to code
  • Debugging

The SILIAC is a simplified version of ENIAC.

  • I have not bothered to limit the number length to ten digits, or to allow it to be reduced. Numbers in SILIAC are Python integers.
  • A SILIAC program can use any number of any type of unit. ENIAC was limited to 30 accumulators, 1 multiplier, 1 divider, etc.
  • There is one signal bus capable of carrying an infinite number of different signals with arbitrary names, rather than a limited number of data and control buses with fixed labels.
  • A unit can have an unlimited number of different responses to signals, rather than a limited number of input and control ports.
  • An ENIAC accumulator only adds, but outputs both the result and its complement. A SILIAC accumulator only outputs the result, but can subtract.
  • The ENIAC multiplier and divider units were separate and worked by being connected to dedicated accumulator units. The SILIAC multiplier is an independent unit and it can divide.
  • ENIAC did conditional branching by placing data on the control bus. This is confusing. SILIAC does conditional branching by sending a different signal depending on the sign of the result. It's the same capability, just more logical.
  • SILIAC does not have the equivalent of ENIAC's repeated operations switches.
  • SILIAC does not have look-up tables

John's Journal by pythagorasukpythagorasuk, posted on 28 Jan 2012 18:22

Included page "sig:pythagorasuk" does not exist (create it now)

This is what I have been working on. I'm really excited that I can build a rudimentary computer out of a few logic circuits some transistors/resistors and a few billion electrons!!!!
I can't seem to work out how to embed the image files I have uploaded Edit: "Think I got it"

adder%20page1.tif
adder%20page2.tif
adder%20page3.tif
adder%20page%204.tif
adder%20page%205.tif

I didn't realise you couldn't reply to someones journal, obvious really Doh! I would like some help in building this so would appreciate comments and feedback. Where would you suggest I copy this post to Richard?

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License