Sunday 22 October 2017

Comfort zones are boring. Who wants to read about them!

I'm reading the Feynman lectures on Physics at the moment. It's based on some lectures given during the early 1960's, but Feynman's flare and passion is still just as infectious now as it must have been back then, and it's certainly having a huge impact on my study of algorithms.

There are so many quotable bits, but here's one of my favourites:

'From the point of view of basic physics, the most interesting phenomena are of course in the new places, the places where the rules do not work - not the places where they do work! That is the way in which we discover new rules.'

It's all about what we don't know. That's the fun stuff!

Tuesday 17 October 2017

Algorithms: Dynamic Connectivity and Quick Find

So, I've signed up for this Algorithms course with Coursera.

It starts on Monday 30th October, but I'm getting a head-start, because I'm a little bit rusty.

The first lesson is all about Union Find: Dynamic Connectivity and Quick Find.

Key takeaways:


  1. To find the algorithm to solve a problem you first need to understand the problem.
  2. If at first you don't succeed, try and try again.
  3. And even if you do succeed, keep trying until you find the best solution - That's the scientific method.
  4. When joining the dots, the point of entry is everything.
  5. Equivalence relations:
    • Reflexive: A thing is connected to itself - i.e. p is connected to p.
    • Symmetric: If p is connected to q, then q is connected to p.
    • Transitive: If p is connected to q, and q is connected to r, then p is connected to r.
  6. Union commands: They are the match-makers.
  7. Connected Queries: They follow the breadcrumbs and discover connections.
  8. Data Structures: Using integers as an array index is convenient to start with. Do it.
I'll put my notes up in a convenient infographic or something shortly.

Thanks for reading!

Tuesday 10 October 2017

Algorithms... Hello my old friends!

HelloWorld!

It's been a while!

My day job has been keeping me busy, but the challenges have dried-up.

I need something to crank up the old cogs and put my brain through some sweet pain! What better way to do that than tackle algorithms again. My old friends.

I've signed up for 'Algorithms, Part I' on Coursera and although the first submission isn't for 3 weeks, I'm making a start now because it's been such a long time since I did any programming.

Programming skills / awareness or just generally knowing your way round a computer is great for work, but I'm a bit rusty.

Step 1: Download a programming environment

This course recommends DrJava, so I downloaded that this evening and had a play.

I'll keep you updated, and I hope you enjoy the journey!