Saturday, June 22, 2013

Punishment & Reward - How to get past that Thesis Fear

So I have problems, big ones, getting the motivation to work on my thesis. It seems that I have developed what I have dubbed "Thesis Fear". Thesis Fear can be described as the giant feeling of despair when you think about your thesis - either you have writer's block, or have fear that an experiment isn't going to go well or sometimes just the feeling that you are completely off-track. Instead of working on my thesis, I do more hours of job work (I work part-time), or flick between different thesis activities, hoping that I will suddenly feel like working on one of them.

This state is very difficult to get out of and I believe it is a form of Thesis-induced depression

At my weekly dinner with M club, I was discussing my issues, when one friend told me about his Thesis Punishment Scheme. He had to do the 20 hours of Master's work a week. For the first hour he failed to do, he must run 5 km... and then add on an extra kilometer for every hour he misses. He invited me to his punishment scheme. I chose my hours to 18 a week. (8 of Thursday, 8 on Friday, and 2 that I have to fit in somewhere). Master's needed to become priority one. And at least if I wasn't doing Master's, I was keeping healthy.

I don't know what it is, but it is working. Maybe its the competition? Perhaps it's just the idea that someone is checking up on your (and you on them) constantly to see how many hours you've done? Perhaps it is the fear of punishment?  But I just sit down and FORCE myself to work. We believe that it allows one to automatically set very small short goals (what I believe is the key to getting anything done in life) thus inspiring productivity.

It also helped me realize something about myself. I struggle with the routine of sitting in the same lab all day, eating the same lunch, seeing the same people. I get very bored and struggle to concentrate when my surroundings become uninteresting. I figured that if I allowed everything else to vary according to what I felt like, and just make sure I got my hours done, I could get more done. I need things to be dynamic. I must allow myself to work on a Saturday or at Midnight. I never used to do this. I used to say "MUST WORK 9 to 5", and decided that my evenings and my weekends were for myself. But life just doesnt fit to my strict schedule. So I must learnt to adapt. 

For this, I initiated reward scheme - Thesis by Coffee shop. If I just cant convince myself to sit in my lab any longer or cant motivate myself in the morning to go there in the first place, I choose a coffee shop or restaurant (or even a park if I have stuff to be read) which has wifi (preferably) and go work there for a few hours. The music is different, people are coming and going - general busyness, I can drink and eat something different every time. It makes working on my thesis a little bit more novel. Eventually, I am forced to go to my lab - when I need to do some serious programming or lots of data analysis - but I really do enjoy thesising in a coffee shop. I think perhaps that is the reward for working on my thesis - being able to go somewhere cool to do it.

I have made more progress in the last 3 weeks with my running punishment and coffee-shopping than I have all year. Nearly time to run those experiments! I guess that I need punishment and reward and that helps me get past my thesis fear. Do you suffer from thesis fear? Do you have a thesis punishment and reward system?

Remember to follow me on twitter:

Thursday, November 1, 2012

So how's research?

I realized that I hadn't made a specific post about this awesome thing, so it is time! (It is also Friday, and I struggle to get much done on Fridays)

I was lucky enough to join a research group where a group of us graduates (about 6 of us who had completed our under-grad together) began our MScs at the same time. For those of you who dont know, MScs are rarely course based these days in South Africa. Instead, they are MScs by thesis and the thesis tends to be on the scale of a Phd (at least in our research group). 

At some stage, my good friend Christien and I were chatting about Masters and she concluded it would be a cool idea to meet once a week, to discuss our thesis then work on it for a few hours afterwards in the library. We discussed it with the gang, and we all concluded that although we probably wouldn't all be able to work on our thesis's at the same time, but it would certainly be beneficial to meet once a week to discuss problems, complain about supervisors and such. 

And that was the birth of M club. Every Monday night, us graduates meet at a different restaurant - fun and informal, order some good food and ask each person the question-that-must-not-be-asked "How is research?" and listen to and discuss each person's answer. In this way, we motivate each other to plow on through, share productivity tricks, how to communicate with one's supervisor and (because we are all a group of Computer Scientists) give advice solving the obstacles we have reached with our thesis. Just sometimes explaining your issues to other people makes things clearer as well as minimizes that feeling of not making any progress even though you work on it all the time. 

Everyone gets there chance to speak and everyone listens. 

Recently, we started with a primitive reward system - if you achieved something on your thesis (no matter how small) in the past week, you get a sweetie :) Silly, but effective. 

M Club has been one of the most enjoyable and beneficial part of the first year of my MSc (ours are traditionally 2 - 3 years long). And I advise any group of researchers to start their own M club ^_^ 

Thursday, October 18, 2012

SCRUMing my Thesis... Lets go!

My brain melted about 20 minutes ago, so I figured it was time for a post.

I had been contemplating it for a while, but I finally decided that this is what I needed to do:
SCRUM my thesis.

For those of you who dont know SCRUM, Scrum is a process used for agile software development. A project makes progress via a series of iterations known as Sprints, which are generally 2-4 weeks long. The planning of a spring is essential. SCRUM lends itself well to projects with rapidly changing or highly emergent requirements.

SCRUM is generally used in software development. Considering that I am a Computer Scientist, I figured this might even apply to a Scientific Thesis - particularly one in computer science where I have to code as well.

The main activities of SCRUM are as follows:

  1. A Sprint Product Meeting - list of tasks are created to be performed during the sprint.
  2. Daily Scrum Meeting: Every day, a daily SCRUM meeting is attended by all team members, for maximum 15 minutes - everybody stands. Members share what was worked on the prior day, what will be worked on today and any  obstacles that are decreasing progress. 
  3. Sprint review - performed at the end of a Scrum sprint. Functionality is demonstrated. The goal is to get feedback from the product owner. 
Those are the basics. Obviously there are some GLARING problems with this model in terms of thesis writing. In most (all) cases, we do not get to see our supervisor every day for 15 minutes in the morning.
In fact, often we don't get to see them every 2-4 weeks (although I try make a point of doing so, if at all possible). 

However, the main idea is quite useful. The sprint product meeting where one sits with oneself, and sets up a list of thesis related tasks to be performed during the sprint. If one can sit with one's supervisor at the beginning of each SCRUM, then how beneficial would that be?

Before I thought about using SCRUM, I would create lists too... all the time. But I found I either end up creating lists for too small an amount of time (multiple detailed things I needed to do in an hour) or a list for too large an amount of time ( like for the entire period of my thesis, where I end up wandering lost between items in the list). The SCRUM amount is for 2 - 4 weeks. Just the perfect amount of time. 

The daily scrum meeting is more like a sanity check for the thesis writer: "Yes, I did manage to do something constructive today - this is what it was. Today I will make more progress on this and these were the issues hindering me". I don't know about you, but I generally really really need a daily sanity check. 

As for the Sprint review - this is the little "reward" session where you can demonstrate to yourself what you have achieved during the sprint. And if possible, running what you have done by your supervisor at this point, WOULD be a useful feedback session. 

SCRUM has 2 important artifacts that are both relevant to thesis writing: 
- scrum product backlog - the complete list of functionality that remains to be added to the product (thesis)
- sprint backlog - a to do list for the sprint. 
- the burndown chart - shows the amount of work remaining

Luckily for me, my supervisor has agreed to have monthly group Thesis sessions (All his MSc and Phd students in one room). This will be the perforect opportunity for my Sprint product meeting and Sprint Review. 

The other awesome part about scrum are the useful tools that exist for the methodology. My favorite being the Kanban board. 

The kan ban board is a board with a few sections and some sticky notes. Each task is written down on a sticky note, including a duration, owner, deadline etc. The colours of the sticky notes can be related to priority of the job or the owner of the job. It has sections for tasks to be done, tasks that are in progress and tasks that are already done. Sounds brainless doesn't it? Turns out, the kanban board has become super popular in a large amount of domains where productivity is required. 

What is really fun, is that there exist free online versions, my favourite being Trello. Try it out. It has been a productivity saver for me. No more annoying lists, that get lost and spilt on. No sticky notes that fall off the screen or wall. And so far, it really seems to be helping my thesis.

This week I had an unofficial run of my first sprint. From next week I will set up a longer sprint and inform my supervisor what I am doing. I will be posting again about my progress. :)

I know this is a rushed post, but I wanted to get the jist of it on paper. I will update and go into more details soon. 

Tuesday, August 21, 2012

Make it Visual

My good friend Bobby was just here on holiday. He works in Denmark as a game programmer for IO Interactive but studied at UP and was our graphics lecturer at a stage. You may also know him from here:, if you have ever tried to learn to program in DirectX or attempted to program a Neural Network.

He decided to visit the lab (after a good morning of munching Cinnabon) where he insisted on looking at what I have programmed for the initial phase of my M.

As a re-cap, I am currently working with my swarm robotics algorithms in a 2D grid world, rather than a real-world simulator or actual robots. It has taken AGES to program it. Not because it was difficult to do, but because it is HORRIBLE to debug. I outputted the grid world is the form of a text-based grid. This was fine for the beginning stages of testing. I could check if each robot moved correctly. I thought about programming a nice graphical animation output but I had blocked out all my graphics training quite heavily for some reason and didn't want to go near it.

Anyway, so  after exclaiming how totally pointless and academic my thesis topic is (he tends to do things like that) and helping me figure out how to do a 3D histogram in office (not as easy as you'd think), Bobby said "Why are you using a histogram to do this? Make it visual". I told him I'd been avoiding programming some sort of proper visual output. He (having seen the state I managed to get myself in when I had last programmed my Honours graphics project) was nice enough to let me use a part of what he programmed for his thesis. His thesis was on path-finding in games and thus he also needed a little grid-world. Took about half an hour of stripping out the important stuff and merging it to with code and I had a little visualizer.

Immediately, I identified 4 or 5 issues occurring in my grid-world! Hopefully on my way to perfectly functioning abstract mining problem.

So my advice for this month is this: Make it Visual!

Wednesday, June 6, 2012

Stagnating at the familiar

The laboratory I work in is really great. We have top-notch pcs, two shiny screens each, a big white board that is always covered in scribbles (some that are useful, others for fun). Seated next to me and across from me are my two best friends, also working on research or lecturing or development. We have a really good view of Pretoria from the window and the lab is open plan, spacious, light and airy - unlike so many others. 

Outside our particular lab room is a round table, where us and a few members from the lab next door meet everyday for lunch of whatever we decided to buy or bring with. If we are bored, there is inevitably someone interesting and academic making coffee in the kitchen downstairs to chat to. 

This sounds like a fantastic space to work in... and don't get me wrong, most of the time it really is. Unfortunately, it is not conclusive to out-of-the-box research thinking! But why is that? Is it just THIS space? What is wrong with it? It certainly aids to all other types of work: preparing lectures and practicals, developing the research group's open-source AI library, and writing up papers. The lab promotes a calm, familiar, friendly and organised mindset - even if I do have my two best friends to chat to next to me.

The issue, I think, is in the fact that out of the box thinking requires a portion of slightly uncomfortable chaos - putting us in a position where we are forced out of our comfort zone into the realm of the unexplored. To really benefit from reading a paper and analysing its depths or coming up with new ideas or algorithms, I find the lab to be the WORST place to do it. It's as if the familiarity of the laboratory allows one to slip into the comfortable little box too easily and instead of thinking of broader ideas, I scramble around the bottom on the box like a hamster, searching for gourmet food on the corners of the cage. The fact is - the hamster isn't going to find it. Instead the hamster may end up on Facebook looking at funny images and commenting on unrelated posts. :P Despite the charm of the space, if I try to think critically and creatively in the lab, I CANT!

Solution I have discovered to be simple really. Get out the lab. In fact, don't only get out the lab - get out the entire goddamn building!!! Working at a University, one has the benefits of trees and grass with benches and tables. The university is big enough and I could choose a new place every day if I wanted to and it would be weeks before I would have to return to the same spot. 

I have found that once I am outside, my mind feels more open and in some ways more logical - as if I can generalize properly and thus see the bigger picture. I find that I can think more critically and new ideas come more naturally. Planning feels purposeful and progress is inevitable. 

Inside the lab, my stagnating research is a giant pressure, full of looming deadlines (that I have never realyl defined). In the lab, research is everything. Outside the lab, research is just a part of life - something that needs the inspiration from the rest of life to function - and what do you know?  the pressure dissipates, thus resulting in more creative thinking and quality ideas. 

So now everyday, I start out outside, under a tree or on a bench with paper and pen or some journal articles that need to be read and the important parts summarized. Best idea I have had yet

Thursday, May 3, 2012

At least there is progress

After some discussions with my supervisor, we concluded that the best way to approach my robotics thesis was to first of all: Ignore my robots entirely.

Although this is sad, because all I really want to do all day is play with robots, I found a fair amount of relief. I am still on my way of learning about how robots work. The basic movement, tracking, identification stuff is new and fresh and still rather untouched. Before I even get to developing a new algorithm for them, I thought I would have to go through the painstaking process of learning all the basic robotic stuff in detail. My issue with doing it this way, was that I felt that I may be wasting time, learning certain aspects about robotics that I didn't really need to know.

So my supervisor decided I should do it the other way around. Instead of starting with learning the back end of the robotics side, I should start working on the algorithm, in an ultra theoretical space - a 2D grid world. Model everything in the ultra simple 2D grid world, then take it down to robot simulation world, and then down to real robot world.

So I have been working on some ant cemetery algorithms in abstract world and they are kinda working to some degree. They still need some work certainly and although the world may be abstract, progress has become significantly more tangible. All I need to do now, is add the division of labour. Great.

I went to Ballito over the long weekend, which was a nice break. I unfortunately got ill on the way down there and so I am struggling to get back into the flow of things. I stress a little when I think how much time I am loosing. I need to just get on with it and function.

Next week I need to have division of labour. Something, anything - as long as it kinda works. Progress is required.

Thursday, April 5, 2012

Taking back Master's to Undergrad

We spend our entire lives: primary school, high-school and university using similar (if not identical) structures of learning. Although the difficulty increases, with an increase in tasks as you go, in general, the structure remains the same

Here are some of those tasks that we are used to:

Lectures/Classes - approximately 45 minute periods of learning something new.
  • Requires some preparation reading
  • Involves introductions, definitions, overviews of main techniques, and then detailed algorithms or examples of those techniques
  • Break between class or lectures to get to the next venue.
Practicals - approximately 3 to 5 hours (depending on the subject matter) giving one the chance to physically apply what one has learnt.
  • In Physics, it would be run an experiment demonstrating the physical laws, in computer science it is to program a working version of the topics and algorithms covered in class
  • Generally starts with a simple task, then follows with more difficult challenges.
Assignments - Take home things which last a few weeks, usually involving the theory, working out difficult examples, and providing new incite and critical discussion. Sometimes involving practical demonstrations and experiments.

Tests - whether a pop quiz or semester test or exam, tests are the most commonly used evaluation of assessments. These are usually set out with separate questions for each section (not always though) - testing everything from basic definitions, to techniques to actually formulating new models and solving new problems. A large amount of study (if you're doing it correctly ;)) goes into the bigger tests, while a pop quiz just requires listening and understanding basic topics covered in class and practicas.

Project - a large assignment generally at the end of the semester/term which evaluates a large quantity of the topics covered in the course - an accumulation of one's knowledge involving theoretical side as well as practical.

So... We do this our entire lives, until we get to postgrad. Up until this point, we have had our studies divided up into different types of learning and understanding for us. But at a postgrad level it all changes: One focus, One topic, One thesis, One final presentation - in absolute detail and (in general) entirely unguided.

For those of us who managed to fly through highschool and undergrad, following the method of evaluation prescribed to us, without a bother, often find the sudden change to a research master's to be difficult. There is no granularity of how to divide learning. Most of us just start reading, and start writing - totally unguided - jumping from beginning to end to middle, sitting lost among a pile of journal papers, with endless headaches and panic attacks.

Wouldn't it be beneficial to steal some of those things from undergrad, since we are so well accustomed to them and try to use them in our how we approach Masters? I have a few ideas how this could be done and intend to implement some of them.

Lets take lectures: 45 minutes period of learning something new - starting with the basic definition and overview then going into relative detail with a few techniques. I think think can be used to introduce oneself to a topic one has come across during research. Generally a quick search about the topic can often yield conference paper presentations , which will introduce one to the topic. Then a look at existing textbooks and literature reviews for a few more ideas.

Once one has absorbed the knowledge in a lecture, it is probably time to implement a bit of what you have learnt. Take 3 hours, write up a mini-specification of what you are going to try do and apply what you have learnt. If its calculations, then try to redo those calculations, try program that robot or repeat the experiment. If you get stuck, the research to solve those problems may undoubtedly prove useful in your thesis.

Assignments seem to be akin to Chapters in one's thesis. Perhaps posing one's chapter in assignment form may allow for guidance. It also makes it less intimidating thinking of a thesis chapter as merely an assignment. It is also good to remember that even in the literature review, critical discussion and analysis is required - as it would be in an assignment.

What about tests? Where do they fit in? Well, regular meetings with ones supervisor are important. At these meetings one should be able to explain the topics that have been tackled so far. A good supervisor will ask for a presentation and ask you to answer questions about what you understand and what you have done. Is this like the tests we used to receive in undergrad? Not entirely, as often the "marker" has no idea what the topic is about. But it may be useful to formulate your main thesis points as questions and be able to answer them without looking at notes - a technique often used for studying for tests. This way one can solidify some of the more difficult topics in the thesis.

Projects - well... the project is the thesis. The accumulation of one's knowledge learnt during the duration of the course. Luckily one can use all the "assignments" that one has previously done, make changes, add some introductions and extra experiments... and voila - THESIS!! its not that simple, but I think it's a nice analogy.

Reading through what I have just written, I realized that in my own way, I was doing this sort of thing anyways... but in an unstructured unknowing fashion. I think, just on a mental level, it is good to sometimes think of a chapter as simply an assignment and as little problems and experiments as practicals. It should mentally bring the entire vast and frightening idea of writing a thesis into something we are acquainted with and have (for all you cum laude/honours students) mastered.

Happy research ;)