Blog

The plan for the second week is to start learning some basic Python notions. Before that, I usually introduce the notion of pseudocode as an easy way of describe how to solve problems. This allows me to discuss problems for which we do not have all the necessary programming background to implement them. I tend to keep a fairly informal definition of pseudocode. After that, I introduce the notions of data types and variables. We learn about integers, floats and strings. I also discuss branching (if-then-else) as a first way of controlling the flow of the program.

Read more

The plan for the first lecture is to get the course started. Usually I use this first lecture to introduce the course, schedule, assessments, etc and make sure all the students are able to run python on their computers or the computers from university. I introduce Python, the notion of problem solving and reading from the standard input and printing to standard output. Students have the chance to play with the Turtle module as a first way of interacting with Python.

Read more

The majority of the materials in this course are made using Jupyter Notebooks, even the slides. I will explain in another post how I prepare the slides. Meanwhile, this post is to help you if you are struggling to navigate the slides.

Read more

I am a big fan of the WP Mendeley and I have been using it for quite a long time. I use Mendeley to maintain my bibliography anyway, so having an automatic way to display various sets of publications in WordPress is a bonus. One of the features that I missed is the option to display the abstract of papers. This is not available out of the box, but it’s not too difficult to achieve. Here are the steps that I had to take in order to allow visitors to display the abstracts of my papers.

Read more

Photos taken during a nice stroll along the Basingstoke canal near West Byfleet. I took these photos using my mobile phone on a nice sunny day in December 2020. Given how pretty the place is, I am sure there are more photos to come.

Read more

A few weeks ago I introduced my students to the notion of dictionaries in python. The obvious way of teaching them, especially in the context of my module, is to use dictionaries to create word frequency lists. In order to make the students understand better why dictionaries are useful, we discussed other ways to produce frequency lists which use only lists. This prompted me to try to think as many ways as possible to produce frequency lists. I also wanted to see how feasible is to use these methods.

Read more

This is a very much delayed series of posts related the yearly module I give on Python programming for Natural Language Processing. The purpose of this module is to teach students how to use Python for processing corpora and for other Natural Language Processing (NLP) related tasks. The background of students is different from year to year, but in general students come with non-computer science related backgrounds. This makes the module a bit challenging because in about 12 weeks, I need to bring these students from zero to an intermediate level.

Read more

When my university decided to discontinue the support for personal webpages (i.e. literally pull the plug from the server hosting them), I was left with a dilemma. I had a pretty static HTML page that was hosted there and a rather standard (and largely abandoned) WordPress installation. Because I liked the structure of my HTML page, I decided to create a theme based on it and restart using my WordPress blog. What you read now, is the result of this conversion. Depending on when you read this post, there may still be some rough patches. In this post, I will show how you can develop a theme for WordPress using Varying Vagrant Vagrants and synchornise it using Dropbox.

Read more

The First Shared task on Aggression Identification was organised in conjunction with the First Workshop on Trolling, Aggression and Cyberbullying. The idea of the shared task was fairly simple. Classify a text in one of the following three categories: Overtly Aggressive (OAG), Covertly Aggressive (CAG) and Non-aggressive (NAG). This means that the task is essentially a standard text categorisation task and an approach based on bag-of-words is a good baseline to start with (neither me, nor the task organisers provided a baseline based on bag-of-words, so I don’t know what is the accuracy of the method).

Read more

10/17