Computer Science

Configuring Automatic IEEE Referencing in Microsoft Word (Windows and OS X)

Like many people here, I have found one of the frustrating parts of academic writing is the referencing. Unless you did an Extended Project Qualification it’s unlikely that you’ll have had to use referencing before you came to University, and are probably thinking it’s a very time consuming thing to do.

Luckily there are some really smart tools designed to do the hard work for you. Microsoft Office Word is great at making referencing within your work hassle free. It’s features include the ability to hold a library of resources you have used, allowing you to easily insert a reference to such resources with just a double click. It can also automatically create bibliographies and supports position-referenced numbered footnotes that automatically adjust themselves. Unfortunately however, by default it does not support the IEEE standard required for our course. After spending some time researching how to set this up, I thought it made sense to write a post explaining the process, so that more people can do the same and make use of the tools. Installation is, easy – follow the steps below:

  1. Download and extract this file [1] then:
    • On Windows, navigate to ‘C:\Program Files\Microsoft Office\Office 12\Bibliography\Style’ and paste the file you just extracted here. (Note, in above path amend ‘Office 12’ for your version.)
    • On OS X, navigate to ‘/Applications/Microsoft Office 2011/Microsoft’ and paste the file you just extracted here. (Note, in above path amend ‘Microsoft Office 2011’ for your version.)
  2. Now open Word then:
    • On Windows, go to the ‘References’ tab. In the ‘Citations and Bibliography’ section and change the ‘Style’ to ‘IEEE – Reference Order’.
    • On OS X, go to the ‘Document Elements’ tab. In the ‘References’ section select ‘IEEE – Reference Order’.

Rather than duplicate many other tutorials online that teach you how to use these great features, I’d encourage you to look at the instructions linked to here and a video tutorial here.

Once the IEEE referencing style has been installed, for each reference all you need to do is enter source material when asked (and it only asks for that which is relevant to the source format – see below). From there, the reference and bibliography are generated automatically and Word will keep track of your references for later use.

Reference Input for Office Word
Reference Input for Office Word



Yves Dhondt. (2010, January) BibWord : Microsoft Word Citation and Bibliography Styles. [Online].

P.S. – Want to offset your Carbon Footprint? Check out

Computer Science CPU Project

Mum… I’m building a CPU – Brief Update

Since last week, we have added numerous arithmetic unit boards to our CPU as well as found an entire bus that was positioned wrongly!  Andrei has been working on connecting his full ripple-adder to the flip-flops, and Charlie and I have been working on various other boards, including the program counter and a shift/rotate functional unit (more about this one next week).

CPU Boards on 16th February New: Bottom Left: Program Counter, Top Right: Bit Shift / Bit Rotate
CPU Boards on 16th February
New: Bottom Left: Program Counter, Top Right: Bit Shift / Bit Rotate

The program counter has an interesting story behind it.  Initially, we were just looking at getting a register that would be incremented when clocked.  Then we realised it needed to be programmable to support our jump instructions (for moving between instructions and into subroutines).  We all spent a lot of time trying to find an IC that did this, and I thought I had found a CMOS IC that looked hopeful, but it was complex to program.  We were doing all this because we didn’t want to manually add ‘1’ to a 8 bit register, worried it would lead to constructing another 8 bit full adder (see Episode 2 for a discussion of this).

Realising that this appeared to be the only way, Charlie and I sat down on Saturday morning to see if we could minimise the logic required to cut down on the wiring and IC’s.  And low and behold, we did (albeit via a rather round about way)!  After completing an SOP representation and a KMAP, we put them into ‘Simple Solver‘ which said if we were tying one input to Vcc (a logical ‘1’) all we needed was an XOR and an AND.  And if you think about that, it makes perfect sense.

  • Take any binary number and add ‘1’ to it – this flips the least significant bit.
  • Then, for each next significant bit, you are just adding two things together – A (the bit) and Cin (the carry in).
  • So, put both A and Cin though an AND gate.  This represents Cout (the carry out) – if you get a 1 you need to send that to the carry in on the next significant bit when performing that sum.  If not, the carry out is set to 0.
  • Then, put A and Cin into an XOR gate.  If both are 0, the result will be 0, if exactly one is 1, the result will be 1 (0+1 = 1) and if both are 1, the result will be 0 (and this makes sense, because 1+1 = 2, and this is higher than can be represented in one binary bit, so you need to send a carry to the next significant bit’s sum, done via the above AND gate).

We really shouldn’t have needed software help for that!  Anyway, I hope you enjoy the quick video update below.

Computer Science University

What I Learnt From My Application to Google

If you are aiming high career wise, for example Google, you will need more than academic prowess to net the job.  For example, In Brown et al., we read a quote from one human resources manager:

Academic qualifications are the first tick in the box and then we move on. Today we simply take them for granted. [1]

Over the last 3 months, I have been closely involved with a number of Google events, including a mentoring program and an internship program.  In this blog post, I am going to talk about what I learnt from the experience that may help when trying to get a tick in those other ‘boxes’ at Google.

The first thing on the ‘Life at Google’ page that they look for in a potential employee is Leadership skills.  Most interestingly though, they are as interested in how you lead as how you can “[help] a team succeed when you weren’t officially appointed as the leader” [2].  What are they looking for then?  Todd Carlisle, Staffing Director for Google’s Business Teams, explains, saying that:

You have to want to take them out to lunch after the interview. It’s important to hire leaders who play well with others, so ask about their experiences working on a team. Their bragging that they convinced everyone else that they were right or taking credit for everything are big red flags. [3]

When I was going through the application process, the piece of advice I was given many-a-time was “take part in Open-Source projects”, and I can see from the above why it’s so relevant.

So, they are not looking for leaders so much as collaborators.  What about academic skills then?  Are their requirements more traditional for this area?  Well, perhaps more so, but again to quote their website, Google are “less concerned about grades and transcripts and more interested in how you think.” [2]

Carlisle again explains that he looks for trajectory rather than results in academic achievement:

“I look for a trajectory in background stories, … because that’s a far better indicator of focus, intelligence and experience than what you can glean from a résumé. For instance, an Ivy League alum with a high GPA is great, but even better is the person who was the first in the family to go to college and did well while working an extra job.” [3]

Google say the ideal candidate will display ‘Googleyness’, but what on earth is that?  On their website, they say they will “be looking for signs around your comfort with ambiguity, your bias to action.” [2].  I think it is more than this though – employees go on trips with each other (for example, three days to Disneyland and hiking expeditions) and have very different facilities in their offices (for example, slides, climbing walls and vegetable gardens).  What does this mean for us?  Take part in some active societies and try something really different, the chances are your personality will start to resemble something a little more ‘Googley’.

After going through the application process and researching this piece, the following is what I think you need to do to get a job at Google (or any other similar high-end tech company):

  1. Show your leadership skills in a way that also shows your passion about Computer Science.  The best way of doing this is to take part in Open-Source projects.
  2. Strive for the best.  Whatever your background, Google want to see you doing more than would be expected of you.  Challenge yourself to work on a difficult project.
  3. Do something ‘quirky’, whether an unusual sport or hobby, that will get a Recruiter interested.  Remember, Google Recruiters process hundreds of CV’s daily and you need to stand out.



A Hesketh, S Williams P Brown, “Employability in a knowledge-driven economy,” Journal of Education and Work, pp. 107-126, 2003.


Google Inc. Google Jobs. [Online].


Jennifer Wang. (2011, January) [Online].
Computer Science CPU Project

Mum, I’m Building a CPU – Architecture Block Diagram

Lots has changed with our CPU project over the last two weeks.  Firstly, and most importantly, Andrei has finished our 8-bit ripple adder.  Charlie and I have also worked on the negator board for subtraction (more here about that).  All that in the next episode though.  This week, we take you through the architecture of the overall project (in block diagram form).

And here is the higher-resolution cleaner version of our architecture diagram:

Architecture Diagram for UniCPU Project
Architecture Diagram for UniCPU Project