This is the archive of my blog, which will focus mainly on things I've learned and my activities in programming, computer science, and mathematics.

From Silicon to DNA Computers

09 April 2014

Tags: | DNA computing | computer science | biology |

Traditional computing on silicon chips has certainly been successful over the past several decades. It's increasingly fast, flexible, and well understood. It does have its limitations, however; these computers have limitations of size, operating temperature, processing speed1, and availability of materials. Alternatives to these traditional methods of building computers have been proposed and are being developed to address some of these limitations. Perhaps the most well-known of these is quantum computing, which makes use of quantum properties of individual atoms and, for some problems, allows the use of faster-running algorithms, such as Shor's algorithm for factorising numbers. Another relatively recent method of computation is DNA computing. We can predict the behaviour of DNA molecules, and by setting up strands of DNA in the right way, they can act as logic gates from which we can build basic computers. In this short blog post, my first effort for #SciWriteFortnights, I will talk a bit about why DNA computing is cool, what it can be used for, and how it works.

  1. For an example of what even a bit of heat can do to silicon computers, check out this Defcon talk.

Read more

Model Checking: From Computer Chips to Everything Else

22 March 2014

Tags: | model checking | computer science | logic | biology |

Yesterday, I handed in an extended essay that I've been working on since last summer on the subject of probabilistic model checking. I've blogged a bit about it before, but I thought it might be nice to write about what I mean when I talk about model checking and why I think it's cool and worth studying.

Model checking techniques were originally developed by computer scientists to help with the design of systems (especially hardware systems, although they are increasingly useful for software as well). One of the really cool things about it, though, is that it is almost directly applicable to research in all sorts of other fields (albeit not always for the same purpose).

Read more

Ethics in Computer Science Update: From Nothing to Something

03 March 2014

Tags: | ethics | computer science |

A week and a half ago, I blogged about the level of discussion of ethical issues relating to computer science at my university. Since then, I have had a lot of encouraging and positive conversations with people about this, and real progress is being made in the computer science department at the University of Oxford (where I am currently an undergraduate).

There is work to be done to make this happen, and make it effective and useful for current and future computer science students. This post will serve as an update on the progress that is being made, as well as a call for input from anyone who is interested in this topic.

Read more

From Industry to Research: Why We Need More Ethics in Undergraduate Computer Science

20 February 2014

Tags: | computer science | ethics |

I am half way through my third year of my undergraduate degree in mathematics and computer science, and these days I spend most of my time in the computer science department. I've taken courses and attended seminars covering a huge range of topics, including software engineering, machine learning and 'big data1' processing, and model checking of missions for UAVs (unmanned aerial vehicles). However, in all those lectures, seminars, and talks, I remember hearing the word 'ethics' at most once or twice.

I feel that ethical considerations are vitally important in computer science, and that universities should make more of an effort to bring these discussions to the attention of undergruate students.

  1. I once discussed machine learning with a former (mathematics) tutor of mine, who was strongly of the opinion that most of machine learning and ‘big data’ is a collection of buzzwords to describe what statisticians have been doing for decades. I especially remember him shouting “you know what they used to call ‘big data’? Data!”

Read more

From \maketitle to \end{problem}: Making a Custom LaTeX Template for Problem Sheets

06 February 2014

Tags: | LaTeX |

As an undergraduate studying mathematics and computer science, I have to do a lot of problem sheets. I used to write them all out by hand (often working in rough and writing it up again neatly afterwards), but my handwriting isn't very neat which occasionally caused headaches for the people marking my work! Given that I am writing my extended essay this year in , I decided it would be a good idea for legibility and to get some practice if I started typing up my work in .

After a few weeks of copying and pasting common bits of code between my problem sheet solutions, I decided to move them into a separate .sty file which I could then use to format my work and keep the .tex files a bit neater.

Read more