Category Archives: Teaching



Ever since I graduated I’ve always wanted to learn new things and for that reason I’ve pretty much always had at least three different types books on the go at any given time.  Typically I have a fiction book to read when my brain is really tired, a technical book linked to engineering, maths, or programming, and some sort of self-improvement book.   I want to be the best I can be, to reach my full potential and not be limited by my lack of understanding.

007:365 - Unlimited...

Over the past few years I’ve been spending quite a bit of time thinking about how mentoring (and what I believe to be the lack of) is affecting the environment for modern graduates in industry.  As margins become tighter and tighter in industry, the experienced engineers have less and less wriggle room to spend mentoring graduates.  Instead the experienced engineers merely push the less-experienced engineers to a quick solution so that deadlines are met and fee structures are not blown – resulting in a shallow learning experience.

I’ve always tried to make time to help less experienced engineers understand new concepts, even if I think they should know them already from University.  This has meant frequently giving up my dinner hour and time after work to help someone understand a new concept.  I’ve not always been successful and that’s a limitation of my skill and something that I’m getting better at with time as I improve as a mentor, but as time goes by I wonder if my approach is mentoring or coaching?

Most of the time I spend on a 1 to 1 basis with students takes the form of conversations and specific questioning to change the way they think about things.  To change or reinforce their perceptions about how something can be improved in the future.  This is the commonest form of mentoring that I’ve taken over the years, but through what I’ve read of Starr (2010) this approach isn’t mentoring at all, it’s more like coaching.  It’s essentially a series of conversations to help change a future outcome.  One of the favourite activities I teach is the supervision of dissertations, this is the module I can see the biggest leap in a student’s abilities, particularly with regards critical thinking and it presents the biggest opportunity that I get to mentor and build a connection with the students.  It’s the one area that probably sucks a disproportionate amount of time out of my week but it’s definitely where my mojo (Goldsmith, 2010, p17) lies when I’m teaching.

It’s this connection with the students and their topics I think that I enjoy the most, especially as I watch them grow and I still get emails and calls from some of the students that I supervised a few years ago simply so they can let me know what they’re up to.  Of course quite a few students only get in touch when they’re chasing a reference or contacting me because they want something from me but when someone drops you a note to say hi or let you know what they’re up to now without wanting anything from you it’s personally very rewarding and it’s this type of contact that I treasure as it’s then that you know you’ve made a real impact on someone’s perspective on life.

Dissertations are also one of the key activities that is keeping me in academia, as it’s giving me an opportunity to continually learn and grow on a personal level although the longer I stay in academia the lower my career progression opportunities and the lower my earning potential become…. Perhaps Robert Greene (2012) is right, when looking back on my life nobody will remember the wonderful report I sacrificed weekends and evenings to complete, but perhaps they’ll remember the time I gave them to help improve their critical thinking skills and understanding of structural behaviour and I know my kids will hopefully appreciate the time we have together now I’m no longer being continually shipped out all over the place to design buildings.

068:365 - Behind the Wheel...

After all I’ve changed quite a few skylines around the world when I had a proper job, maybe there’s more satisfaction to be had creating brilliant engineers to create even more radical designs.  Or perhaps there’s a compromise to be had by spending some of my time teaching and another chunk of my time working with brilliant engineers and architects to design really radical and life-changing designs… I think this could be where my future lies in all honesty, it’s about time I seized the steering wheel again as these things don’t happen by themselves.


Goldsmith, M. (2010). Mojo. London: Profile Books.

Greene, R. (2012). Mastery. London: Profile Books.

Starr, J. (2010). The Coaching Manual (Third ed.). London: Pearson Business.



General Teaching


Whilst I’ve been in academia for about 2 and a half years now, I’ve only just seen off my second batch of first years and attended my first graduation (after much cajoling by a few final years).  Having a significant birthday approaching I’ve been thinking a great deal about what am I going to do for the next few years until retirement, I enjoy the teaching a lot and working on dissertations gives me tremendous pleasure, but I miss designing buildings is the dilemma that I’ve been having.  But there’s one aspect I’d not really considered when I moved to academia, and that’s that I genuinely love learning and essentially I’m getting paid to learn… not as well paid as I would be as a consultant, but I get a lot of time to be very self-indulgent and learn new skills.

056:365 - The Crescent...

I try hard to not be the kind of lecturer that I had to endure when I was doing my degree and typically put anywhere between 5 and 12 hours of preparation behind every hour of lecture that I deliver.  I’m not saying that my lecturers weren’t prepared, they certainly knew their stuff, but they were really dry and tedious in their delivery and at times it felt a little like they were padding.  I had hoped to at least inspire a few of the engineers of the future and hopefully I’ve done that by combining my industry background with my enthusiasm, but what I hadn’t counted on was that my students would inspire me and teach me all sorts of things about the world and myself.

Having been fortunate to work with engineers, architects, and clients who have really been brave and pushed the boundaries of my abilities with the result that we’ve created some truly fantastic buildings together, I foolishly thought that all of this experience meant that as the lecturer the ability to inspire was my sole domain, but I’m frequently humbled and inspired by my students.  I’ll comfortably pull 17 hour days when I’ve a bee in my bonnet and can sustain this pace for several months at a go, but I’ve students who put my work ethic and self-discipline to shame.

002:365 - My brain hurts...

The beauty of teaching classes far in excess of a hundred students (many of whom are international) is that they come with a multitude and wealth of experience and perspectives.  Each of them are complex individuals with differing opinions and backgrounds and in all honesty I’d never really encountered this level of diversity in industry.  Each week I’m humbled and gain new perspectives from the students, some of whom have faced more adversity than I ever could have imagined and yet still manage to achieve impressive results and retain their ability to be great humans.  Something that perhaps I’ve lost track of at times during my career, but that hopefully I’m regaining as the days tick by.

When I joined academia, I had a clear exit strategy… 3 years and then exit back to industry.  It’s not that clear cut any longer though, I was prepared to be the lecturer… but I don’t think I was prepared to become the student and I’m discovering that I’ve still so much to learn that I may just have to hang around a little while longer than I had planned.

General Teaching

Critical thinking…

One of the biggest challenges that I face as a lecturer is helping the students to develop their critical thinking skills, especially with regards problem solving as this is one of the key skills an engineer should possess.

It’s a fundamental skill for a practicing engineer to not only problem solve, but to critically review the problem and reconstruct it so that only the important parts are focused upon.  Essentially honing in on the nub of the problem.

I’m a fan of using stories in lectures and I used to work with an Italian engineer who unfortunately died last year and he had a plethora of stories and anecdotes that he paraded out whenever the occasion arose.  One of his numerous stories that sticks in my mind and that I think I’ll start using in my lectures about critical thinking involves three construction professionals on a train ride to Scotland for the first time.

35:52.5 - Scarborough Flyer...

There is an Architect, a Project Manager, and an Engineer on a train together and as they cross the border into Scotland for the first time on a train racing through the countryside they spot a brown cow in a field.

The Architect, being the first to spot the cow, declares that clearly all Scottish cows are brown, the Project Manager who feels that he clearly has the organisational skills to rationalise this observation and thinks that the architect hasn’t been critical enough, decides to correct the Architect and notes that in reality what the Architect has actually observed is that in Scotland there is a field which has brown cows.

The Engineer meanwhile has been listening intently to this discussion and decides to correct them both by sharing his observation, that in fact there is in Scotland, a field, that contains a cow, one side of which is brown.


Golden ratio…

A quick link through to my first ever screen case written for a Maths MOOC that’s hopefully going live soon… this was much more hard work than I gave it credit for when I agreed to write it.

The slides are available from below as a slideshare link.

Teaching Tutorial


I was recently approached to see if I could tinker about and create a short video associated with the Fibonacci series and more specifically the golden ratio for a maths MOOC that’s about to launch.  As per usual my inability to say no came into play and then I suddenly realised that I’ve never created a teaching video before and really what do I know about the Fibonacci series apart from fluffing about with a few Mathematica notebooks, and so blind panic set in… and with blind panic comes a quick trip to XKCD to check out the latest strips for a bit of inspiration…

XKCD Image

Now the golden ratio (φ) doesn’t sound like the sort of everyday mathematics that you would use will pushing a trolley around TESCO’s but the key thing you have to appreciate is that it’s a very sneaky number.  Things are that are proportioned using the golden ratio are naturally and inexplicably appealing to the eye, we find the ratio a thing of beauty even though most people don’t even know what it is.  It turns out that it’s used in everything from composing pleasing photographs (using the rule of thirds as an approximation) through to designing the Parthenon in Greece which is proportioned using this ratio.  It’s cool stuff, and to be frank if Mother Nature sees fit to use the principle to establish geometries in plants and other animals… who am I to argue?!

One of the things I like about XKCD are the graphs that they create, they have a certain charm about them and I love the style… and as sketchy as it looks, I’ve always struggled to replicate these diagrams using Visio or Omnigraffle.

XKCD Graph

One of my other digital haunts is the Stack Exchange forum, which as a (very) amateur coder I constantly find myself sitting reading through in a sense of amazement at some of the nifty tricks that people pull to make some quite elegant and funky code.  One of the sub-forums I like there is the Mathematica one, which recently asked the question if it was possible to create XKCD graphs using Mathematica, a copy of the thread is here.  I’ve replicated the code below, as much to save it for myself should the thread ever get closed.

The author of this code has created some sample images using this code and I think they’re brilliant.

Sample image from the code author.

But coming back to the reason I needed to create some diagrams, the fibonacci sequence and the golden ratio… starting with the golden ratio this is defined by the equation below.

\[\varphi = \frac{{1 + \sqrt 5 }}{2}\]

\[\varphi = 1.61803…\]

The reason that this number is expressed as a fraction is that it is an irrational number, which means it’s similar to π and the decimal places keep on repeating forever with no repetition and so it can’t accurately be approximated a decimal.  So how would you approximate this number? Well to start with you need to understand the Fibonacci sequence, which sounds quite grand and complex, but is simple once you understand the trick to determine the sequence… essentially you add together the previous two numbers in the sequence and this gives you the next number.  So to start with 1+0=1;  1+1=2; 2+1=3; 3+2=5; etc etc.

\[{\text{1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144…}}\]

But how does this get you to the golden ratio?  Well, if you divide one number, by the number before it you get a series of numbers that after a few iterations start to get close to the golden ratio (φ).


Which shows that the number starts to approximate towards the golden ratio with a reasonable level of accuracy after about the fifth iteration or so (well reasonable to a simple engineering brain anyway).. but let’s not be blinded by numbers, let’s draw an XKCD style graph using our new mathematica code…

The last ImageSize term is important to get a reasonable resolution on the image when you export it from Mathematica for embedding into other documents, but the code above gives the graph below… which I think is quite a good attempt at a XKCD style diagram.


Now that we can determine the Fibonacci sequence and the golden mean easily in Mathematica, we could start to see how these relate to the large sunflower seed heads that mother nature creates time after time…


Just a single line of code will help us generate some nice pretty Golden Ratio inspired spirals in Mathematica which look strangely familiar.


So it turns out that I did know enough about the Fibonacci sequence and the Golden Ratio to be almost dangerous… the trick’s going to be can I record a short YouTube video for a maths MOOC as I promised to a half decent standard?  We’ll have to wait and see… but now I know I can muck about with formatting diagrams and the code that goes along with the Golden Ratio in Mathematica I can start to mess around with tessalating spheres to create geodesic domes…

Geodesic Dome

And here’s a Mathematica graphic after following the procedure set out in this blog post.


But I don’t want to go off another tangent just yet with Bucky Fuller… but he was inspired by nature and the cleanness of the geometry that the golden ratio presented.



I’m spending a lot of my time tinkering in Mathematica lately, with two objectives really.

1.) I want to write some code to calculate the tedious geometrical aspects for me for my research.

2.) I think that Mathematica has some real potential for students who are trying to learn structures, particularly through the CDF files.

I’ve learned various programming languages over the years most of which I’ve taught myself, admittedly not to the level that perhaps a computer programmer would, but I’ve armed myself with just enough knowledge to be dangerous and get the task done that I want to achieve.  I’ve created countless spreadsheets that can do all sorts of elaborate calculations and also to use as validation calculations for more complex analysis models that I’ve created.

111:365 - Clever Clogs...

This is a skill that I take for granted for engineers, particularly of my age, and in most engineers that are a couple of years older or so I tend to find that they’ve spent some time abusing Fortran code in some fashion.  Fortran isn’t a language that I’ve ever learned, but it’s probably one of those languages that a lot of engineers have dabbled with at some point.

One trend I’ve noticed in a lot of younger engineers is a reluctance to create computer code and indeed even in creating what I would consider simple spreadsheets to make a calculation tool that can run several scenarios for them and validate an approach to determine the boundaries of their calculations.  Increasingly there seems to be a preponderancy for young engineers to select their FEM weapon of choice and throw triangles at it until the model begs for mercy, or to download an app that some other bright spark has written to do at least part of the process of what they want to happen.  None of this promotes a deeper understanding of how the process works though unfortunately.

101:365 - Studious...

Perhaps the days of writing your own code are long gone for young engineers? But part of me thinks that they are missing out on a real opportunity to structure their understanding of the steps needed to do certain tasks as they assemble their code.  Writing code to perform a task, whether on a spreadsheet or in a more formal programming language, is a great way to develop understanding and to explore the intricacies of design codes and I feel that younger engineers are missing out on this experience by only using off the shelf packages.

One encouraging aspect is that with the launch of the Raspberry Pi I can see that if this continues to gather momentum that younger generations will again an ability to tinker and break programming code and gain an appreciation of the advantages that breaking down engineering problems into a series of procedural steps can bring.

At least for the next year or so I’m still responsible for sculpting young engineers minds and I’m determined to develop a fun way of getting them to extend their understanding of how to write code or spreadsheets, I just need to work out a way of doing this within the confines of the resources I do or don’t have available.

What do you think? Should engineers know how to programme or at least be able to create simple spreadsheets?

Research Teaching Tutorial

Kriss Kross…

I’ve been really busy with various things associated with my new house lately and not really had much time to tinker and meddle with Mathematica or my PhD.  One of the key elements that I need to investigate is to calculate the internal area of a polygon where cables cross…  This will vary, depending on how many internal cables that I have and so I need a quick way of finding out the internal area for lots of different permutations.

Internal Area

This is a simple polygon problem which can be easily calculated once you know the cartesian co-ordinates for each of the key points using the following equation which is presented for the general condition.  It’s not a hard calculation, as really it’s just triangles, but it is a tedious calculation, which means it’s perfect for Mathematica or Excel.

\[Area = \left| {\frac{{\left( {{x_1}{y_2} – {y_1}{x_2}} \right) + \left( {{x_2}{y_3} – {y_2}{x_3}} \right) \ldots + \left( {{x_n}{y_1} – {y_n}{x_1}} \right)}}{2}} \right|\]

However, the tricky part comes from determining where the cables actually cross over as that is where the cartesian co-ordinates will come from that are needed to determine the areas.  The calculation of the co-ordinates can be done a few different ways, but I’ve decided to solve the problem through using some vector based geometry, consider the simple condition below which is just for two lines that cross, how do we find the point where the lines intersect?


You could describe the two lines in the general term of y=mx+c, but this isn’t what I want to do within Mathematica as I want to automate this for a wide range of values and lines and so iterative geometry using vectors is likely to be far more beneficial.  Representing these two lines in vector format using cartesian co-ordinates gives:

\[\begin{array}{l} Lin{e_1} = \left( {1 – \lambda } \right){P_1} + \lambda {P_2}\\ Lin{e_2} = \left( {1 – \mu } \right){P_3} + \mu {P_4} \end{array}\]

Now we know the equations in vector format it becomes possible to solve both of these equations to determine λ and μ which when back substituted into either equation will give us the co-ordinate for the intersection point p5 in (x,y) format.

This isn’t that difficult to do by hand, but requires a bit of vector manipulation to expand the brackets and given my low attention span I would inevitably get it wrong after a few run throughs, but in Mathematica the problem gets much more simple, so for the example below we’ll assume that the four co-ordinates are at 4m away from the origin (0,0) that is point p1.

{p1, p2, p3, p4} := {{0, 0}, {4, 4}, {0, 4}, {4, 0}};

Solve[{(1 – λ) p1 + λ*p2 == (1 – μ) p3 + μ*p4}, {λ, μ}, Reals];

p5 = Flatten[(1 – λ) p1 + λ*p2 /. %]

Executing this codes gives the intersection as being at point (2,2) in a fraction of a second, which is where you would expect it to be.  Now to explain the three lines of code and what they do, I’m sure a more experienced user could make this code much neater but doing it this way makes sense to my tiny brain.

The first line simply sets the variables p1-p4 with their corresponding cartesian co-ordinate position, giving the point two in the top right corner 4m up and 4m across, p3 is along the bottom 4m away, p4 is straight up in the top left corner 4m above point p1, as shown in the figure below.


The second line then solves the two vector equations of the lines for λ and μ and makes sure that they are real numbers, rather than imaginary.  The real part probably isn’t necessary, but it’s just a force of habit that I put this in when using the solver as a just incase.

The final line substitutes the λ value back into the equation and then stores this as variable p5 so that I can use this in up and coming calculations, this was the fiddly part for me and makes use of the strange /. % input that allows the equation to effectively go back and substitute the solutions from the Solve command into the equation specified and recalculate and because my equation has the λ within it Mathematica knows this is what I want substituting in even without me being explicit.   I spent ages trying to work out this final stage, but now I’ve cracked it as a principle I can start to roll it out on the other sheets that I’ve been working on and this was the reason for writing this post incase it too helps someone else.  Now I can directly write the solution outputs from Solve, FindRoot, and NSolve and then carry on using these within my calculations rather than having to manually type them in.

This process lets me know that the intersection point is at (2,2) and now I know that the process works I can start to extrapolate this algebraically for the general conditions and start to calculate the areas of my polygons.

All of the figures in this post have been written using OmniGraffle, which I’m slowly getting to grips with, I can’t make it dance as well as I can Visio, but I think it will help create some nice looking diagrams for my thesis once I get more proficient with it.


Teaching Tutorial


One of the reasons that I started this blog was so that I could mess about with embedding some Mathematica files to help with testing out some ideas.  For this to make sense it’s easiest if I embed a few simple examples in this blog post.  Now if you want to interact with these examples, I’m afraid you’re going to have to download the Wolfram CDF player, which is completely free and works on PC’s and Mac’s alike.  Imagine it as a sort of PDF viewer but it lets you interact with the files as opposed to a PDF which is typically just a static and lifeless document.

Consider the following equation:

\[Sin\left( {2x} \right)\]

Most text books would draw the graph for this over whichever range they deemed to be suitable and then students would try and learn from these dull and boring diagrams.

[WolframCDF source=”” width=”653″ height=”405″ altimage=”” altimagewidth=”” altimageheight=””]

 Now this is how I was taught maths and in fairness, it’s pretty dull and it’s difficult to gain any form of intuition as to how it might behave if the 2 became a 3 for example, this is where Mathematica’s CDF files come in handy because it has some nice tricks for letting you explore maths in an interactive fashion… let’s consider the following equation, from the previous graph most people wouldn’t really know how it would affect the graph.

\[Sin\left( {a.{\rm{ }}x} \right)\]

But if we crank this through Mathematica we can create a really nice interactive widget that can be shared with anyone for free!  As you change the slider, the graph updates in real time, and if you want to know what number you’re changing ‘a’ to be then simply click the little + sign next to the slider itself to expand the input values beneath it.  In fact if you think that messsing with sliders is far too much like hard work, then simply click the little play button in the top right and the widget will work the sliders for you… sit back and watch the pattern.

 [WolframCDF source=”” CDFwidth=”752″ CDFheight=”574″]

If you’re not familiar with Mathematica, you may be concerned that this sort of widget is really difficult to create, but actually I’m still on Chapter 3 on the text that I’m working through and the code is incredibly simple to create this kind of interactive learning tool and I’ve replicated it below to show how few lines of text can create this level of interaction.

Manipulate[ Plot[ Sin[a x], {x, -10, 10}], {a, 1, 5}]

Essentially this code starts with “I want a slider widget”, “Plot me a graph of Sin(a.x) over a range of values for x from -10 to 10”, then “make the slider vary a from 1 to 5”.

Now this seems ok, but the Manipulate command is actually incredibly powerful and with a little more twiddling, high quality interactive 3D plots can be created, so let’s consider the following expression.

\[f{\rm{ }}Sin\left( x \right) + g{\rm{ }}Sin\left( y \right)\]

This expression has four variables: f,g,x, and y.  Of course, I bet you’re dying to know what the graph looks like for this function so you can boost your maths skills…

 [WolframCDF source=”” CDFwidth=”752″ CDFheight=”758″]

This is where the CDF player starts to flex its muscles a little, not only can you mess around with the sliders to change the values of f and g… but you can click and rotate the 3D graph itself to get a better view of how you think it’s working.  For me this level of interaction is a real opportunity for playing with the maths to help build up a level of intuition and feeling of how the maths will behave.  And once again the code to get it to work is fairly straight forward even for a novice such as myself.

Manipulate[Plot3D[(f ) Sin[ x] + (g)  Sin [y], {x, 1, 10}, {y, 1, 10}], {f, -10, 10}, {g, -10, 10}]

Now here’s the rub, a full Mathematica licence is the best part of £1,000 for a lecturer to use, in these hard times that’s a lot of money.  But because I carry ‘dual’ status as I’m studying 2 degrees as well as working full time as a lecturer I was able to pick up a student licence for roughly £80.  Normally the cost for a student licence is a shade over £100 but it is possible to reduce the normal student price by 15% by using the discount code PD1637 at the Wolfram store checkout and I still retain the full functionality of sharing my CDF files via export.

I hope this helps someone, if you’ve any feedback on this post or would like to ask any questions, please get in touch or leave a comment below.