Sander van den Oever

Sander van den Oever
Computer Science student

Track: Software Technology
Interests: Software (Web) Engineering
Occupation: PHP Developer

Recent blogs

Calendar

December 2017
M T W T F S S
« Oct    
 123
45678910
11121314151617
18192021222324
25262728293031

Categories

Sander van den Oever

Master Student Computer Science – Software Technology track

Ciphers, teaching, working,..

Hi all!

The quarter is turning out to be really challenging. The course on Security and Cryptography is really difficult for me, it relies a lot on mathematics / probabilistic calculations. Both are not things I like too much, so it takes me a lot of time. Also all the formal definitions make it hard to follow. Luckily this course is recorded on Collegerama, so I’m rewatching most lectures multiple times now to catch up and pass the exam. Next to that I am an assistant for some courses, I work at bunq and because it sounded fun, I started a MOOC on Railway Engineering.

The course

The very last course for me to complete, the assignments were really challenging, they took a lot of time. Where it said that the estimated effort would be around 12h per assignment I nearly had to spend double, not even to get really great grades in return. So I really need to do well on the final exam, which counts for 60% of the final grade. The assignments consist of questions where we are asked to analyse an encrypted text (encrypted using some shifting algorithms for instance). Those can easily be broken using analysis of characteristics of the English language (or another language for that matter). We also had to break the RSA algorithm, from the public key we had to work our way to the private key. Really interesting to do (once)!

Script to decrypt a simple cipher

Image – Quick, hacky and easy script to decrypt a simple cipher

Teaching

Next to this course I assist in two courses; I help out bachelor freshmen in the Object-Oriented Programming course. Last week they had a mock-exam to experience the time pressure and atmosphere of a real exam. Only this time we would still be around to answer questions. The other course is on Software Engineering Methods (2nd year, BSc). Here I only arrange the logistic part of the course, align with all other assistants, collect grades, etc. I will really miss these jobs once I graduate. 🙂

Railway Engineering

I saw an ad for this MOOC and it caught my attention. I really like the infrastructure / public transport systems so I signed up for the course. It’s not really difficult at the moment, but it is an interesting change from Computer Science for a while. Within this MOOC they use a simulator where you can build your own network of trains connecting cities on a virtual map. You will need to take into account to amount of passengers on a line, maintenance, disruptions, etc. 🙂

Thesis preparations

During the free time I have (barely any at the moment) I try to read some papers. My supervisor, Andy Zaidman, provided me with some really useful papers, to help me explore the domain and find a nice topic for my thesis. At this point we are looking into Program Comprehension and Traceability of features to documentation and vice versa. The main idea behind it will be to allow developers to understand a given piece of software faster to waste less time and be more productive. Stay tuned for more!

Starting with the last bits

The new year has started and it is superbusy! This year I will be following my very last course and make my very last exam (for the master at least). The final course I will need to complete is Security and Cryptography. Here we talk about how your data can be encrypted properly using modern techniques.

Security and Cryptography

In this course we talk about what “Secure” means and how to secure data. To understand the modern techniques we also look at examples of old, broken, techniques. The lab is quite interesting, we get to break cipher text to show the weaknesses of old encryption methods. It really helps to gain some understanding on the matter. This course is tele-lectured to Twente, meaning that students from that university see the lecture over a video-stream. The system is not always working perfect, but in theory it’s a really nice system to follow courses from another university while being in your own university.

Let’s go to Groningen

Dutch students are eligible for a public transport subscription that lets them travel throughout the entire country for €0,- (it’s valid either midweek or in the weekend, outside the chosen timeframe we get a discount of 40%). My subscription ends soon, so to “celebrate” I went to Groningen by train with my girlfriend. Although the Netherlands is a small country it still takes you almost 3 hours to get from Delft to Groningen. We left in the early morning to visit a “Behind the Scenes”-programme at Schiphol Airport (fun thing to do!). Afterwards we travelled to Groningen. In Groningen we visited several board-game shops and walked around in the city center. After a delightful dinner at “La Cubanita” we were ready for the next 3 hours in the train. When you get to Delft, La Cubanita also has a branch in Delft, definitely check it out at the Beestenmarkt. You can order unlimited tapas there for a affordable price.

Groningen

Groningen – Facades built from beer crates and dinner in La Cubanita

S.O.S., I have time left? What to do?

Okay, time left might be a bit of an exaggeration. However, during the holidays I finally got to do some of the things I wanted to do for a longer time. For instance at the end of August I went karting with a group of friends at RacePlanet Delft. At certain times they combine the three individual race tracks to bigger tracks so it’s really cool to race in such a heat! You can see what it looks like in the impression on their website.

Other than this I mostly visited friends, family, attended birthday parties and I worked as well. I work at bunq, but next to that I also help out some teachers with their courses. For example I recruited the Teaching Assistants for a course and I’m helping out as a assistant in the very first programming course for the Computer Science freshmen. I remember like yesterday what it was like to sit in those lab sessions while I had no freaking clue as to what to do. Things changed, luckily, now I know a little bit more. 😉

Summertime

Hi all! As the holidays are here there are no more lectures for me to follow until Q1 starts. That leaves me a lot of time to do stuff I really enjoy. One of those things is developing software. That’s why I will be working at bunq during the summer. This also helps me to prepare for my thesis in the end, which I will be completing at the same company. So, maybe you don’t really know what “bunq” is; it’s a ‘fintech’ company. Officially speaking it’s a bank (with a license and all) but bunq rather sees itself as a tech-company that happens to have a banking license. So what I really like there is that they’ve build everything from scratch, with a few simple design principles in mind. The codebase however is quite big, and it is always challenging to understand the structure of such a project.

Working at the company where I will be doing my thesis also allows me to orientate for possible thesis topics. As my supervisor is focusing his research on software testing and software evolution it seems obvious to go that way. At this point I’m really intrigued by the onboarding process for a software project; I think a lot of time can be saved here so I’ll be looking into possible studies there. I still have a lot of time left anyway to decide.

Apart from working I also try to enjoy some of my spare time; I went to Nijmegen to support my girlfriend at the Vierdaagse (Four Days Marches). The weather was really awesome and the atmosphere was also great. I rather not walk 4 times 40km / day but I have a lot of respect for those who participated. Furthermore I went for some shopping in the Hague, dropped some of my friends off at Schiphol Airport and planned meetings. We’re still talking to multiple parties for the enrolment analysis tool. I’ve managed to get a Single-Sign On setup working, so now we can authenticate users with the official NetID system used here at the university.

Vierdaagse @ Nijmegen

Vierdaagse @ Nijmegen

Vierdaagse @ Nijmegen with friends / family.

DHENIM Congress and wrapping up the quarter

Hi everyone!

A few hours ago I handed in the very last assignment of this year, finally the holidays are here!

So let me give an overview of what kept me occupied this quarter.

Web Data Management

This was a new course for me that was taught in Q4. Within this course we learned how to deal with distributed database systems and others; how to have an always available system, how to ensure consistency of your data across all nodes, how to divide data over your nodes? The course came with either a teaching or a development assignment where we could pick the one we liked most. In groups of 3 to 4 students you could give a 45 minute lecture to the other students, or you could implement a movie information system. I chose the development assignment. We had to implement the tool for PostgreSQL (dataset was given) and then transform it to have a Document-based database and a Graph-based database as a data store. We chose to use CouchDB and Neo4J from the list of allowed DBMS’es. By implementing all of these different backends we really got to know about the differences and advantages of the various systems. We wanted to be able to compare the different backends easily in terms of performance, so we created a very simple HTML interface where results would be shown after the requests had ran in parallel. It turned out that configuring the servers on our Amazon servers was the hardest part for us, but it was extremely useful to learn this stuff! Did you know that you can apply for free Amazon Web Services stuff?

Battle of the DB's

Battle of the DB’s – Overview of the tool

Intelligent User Experience Engineering

This is the course where we had to program the Nao robots and see whether they can support children that are being treated for cancer. To test our design we had to perform an experiment with actual children. Testing with actual cancer patients would be a bit too much, so we could test with a class of children from a local primary school. We programmed the robot to explain the flu to the children and tested different approaches of explaining to see which one worked best. We learned a lot here, especially about doing research that involves children. Children tend to give completely unexpected or unreliable answers (ceiling effect; they answer what they think is the right answer). It was a really fun experience to do this experiment and program the Nao’s.

What’s left?

So what’s left? At this point I’ve managed to collect 71 ECTS (as planned). Next year I’ve to collect the remaining 50 ECTS; 45 ECTS for my thesis and 5 ECTS for the last course I picked (Security & Cryptography). So that means that my Q1 shouldn’t be too difficult to manage. I will assist first-year students with an Object-Oriented Programming course (entry level) probably and work some hours at bunq to prepare for my thesis.

DHENIM Congress

In Q2 I (together with my team) developed a tool for the analysis of the international master enrolment data. We actually continued the development after the course had finished. The marketing department of the university was really interested in the tool. So, they paid us to expand it. A few weeks back they invited us to talk at the congress called DHENIM (Dutch Higher Education Network for International Marketing). We got 45 minutes to present the tool to various marketeers from all over the world. We even got some questions on where to get it and whether we could build a similar tool for different universities and institutes as well. Really fun to see how a course-project can grow into a bigger project.

DHENIM - Presentation

DHENIM – Presentation about the tool

First day/event at bunq

So, as I mentioned before, I will be doing my thesis at bunq. In order to prepare a bit and gain more experience I’ll start working there part-time during the summer and Q1. Normally, you’d have a first day where you would be at the office, setup everything, get to know the important people, get familiar with the tools used, etc. Nothing like that for me. I was invited to join the team on one of the frequently organised team events. This time we went on a boat through Amsterdam. It was a really informal way to get to know the first of my colleagues while enjoying some music and drinks (and of course, some rain, because yeah, it’s still The Netherlands) ;-).

On the 'IJ' in Amsterdam

On the ‘IJ’ in Amsterdam

Docked under a bridge because of the rain

Docked under a bridge because of the rain

So, that was the year for now! I’ll be continuing to work on the tool for the Marketing department, start at bunq, and relax a bit as well. Enjoy your summer!

Thesis stuff: bunq

Hi everyone!

Last quarter I’ve been working a lot on some of my courses and next to that I invested a lot of time orientating for a thesis company/subject. I’ve contacted several companies to check out the possibilities. Examples are Pay.nl and bunq. Both are online based companies, the first one is an online payment provider (links web shops to banks) and the latter one is literally an online bank. I have experienced that it is really important to work on your network while studying. For instance, I knew someone in Pay.nl who could help me find the right people and who knew what my capabilities were. For bunq the same applies; Ali Niknam visited the Software Architecture course (guest lecture) and afterwards you could talk to him and ask him some questions. And here I am, after a few talks at bunq’s headquarters (in Amsterdam) I’ll be doing my thesis at bunq. The subject is yet to be determined as I will start working on my thesis in November (I want to finish all my courses first). Finding a supervisor for your thesis is also really easy. Most teachers/professors have an open-door policy. Whenever they are there (and not in a meeting) you can just knock on their door and have a chat. Before, I wanted to do my thesis in the Programming Languages (PL) group, but I discovered that I liked the Software Engineering Research Group (SERG) even more. I’ve been talking a lot to Alberto Bacchelli and Andy Zaidman. They helped me a lot while finding a company / thesis; providing examples theses, giving advise, etc. If I were to give advise to anyone that is orientating for his/her thesis it would be to talk, soon. Start talking to your teachers, find out about their interests and research and see what you like most. Most teachers have huge networks, I know a friend of mine who’s now in Silicon Valley simply by talking to the right professor (who happened to know a nice project there). I started orientating early on, I’d advise the same to others, it’ll give you enough time to think about what you really want.

bunq headquarters

bunq headquarters

Anyway, back to the courses.  I finished the Information Retrieval course. It’s a tough one, but really interesting. We had to implement a system that was able to collect different kinds of information about hospitals (from different sources). So we would collect the locational data, specialists working in the hospital (by analysing their website), clinical trials at the hospital (from other databases) and so on. In the end we built a tool that allows you to search a nearby hospital that has expertise in a certain field (based on the specialists and trials in that specific hospital). Next to the group work we had to write a literature survey. Overall a lot of work, but I am pleased with the project outcome and I hope to have passed the survey as well.

For Intelligent User Experience Engineering we have actually started implementing the Nao robot. Next week we will be conducting experiments with real children to see whether our robot behaviour has the expected outcome. Programming the Nao is quite simple actually, you connect modules using lines and these modules will be played in chronological order. Then you can add some conditionals (speech recognition, object recognition, etc.) and speaking abilities. It did not take us too much time to build the first prototype.

Nao programming

Nao programming in Choregraphe

I have one new course in the last quarter of this year: Web Data Management. Here we learn all kinds of stuff about databases, distributing them, etc. Our project is a hands-on assignment on databases. We get a Postgres database and we have to convert it into (in our case) a similar CouchDB database and a Neo4J database. The data is from IMDB, we need to built a query feature around these different database backends. Really interesting, we will be using Python (Flask) and some other libraries to build something nice. I’ll update on this next time!

See ya!

Freedom

We are already halfway Q3. Time is flying by. At this point I’m following two new courses; Information Retrieval and Intelligent User Experience Engineering. Within Information Retrieval we learn about search engines, indexing, (web)scraping, Machine Learning (related to IR) and much more. The course is accompanied by a nice project and an individual assignment (literature survey). The other course (IUXE) is mostly about the project; we have to develop a method for a robot (NAO) to interact with childhood cancer patients and act like a personal buddy for these kids while they undergo their treatments. Very interesting! Last but not least I’m assisting the Software Architecture course, which I followed myself last year.

Delft

Last week I was present at the Master Event to represent the Software Technology track. Rucha was there for the Data Science and Technology track. Together we got a lot of questions about the Computer Science program and the differences between the tracks. One of the questions was about why I like studying in Delft and what I like about the program. The program I’ve mentioned a lot already, but what I like most is the freedom you get. There are some constraints (the common core), but other than that you are really free to choose any course you like. You can specialize in the fields that you find interesting. Secondly, Delft has a good reputation, which offers a really good perspective for the future. Companies are really eager to have you on board. But why not study Computer Science somewhere else? Honestly, I followed my Bachelors here and I got really attached to Delft, so I just did not want to leave Delft behind. I chose Delft previously because it has a really nice university and campus. Furthermore I liked the atmosphere, which you can experience during Shadow Days (I can really recommend that!). And of course, there’s the historical city centre with its many pubs and restaurants. Every once in a while I grab a movie with some friends and a drink afterwards. Even in the winter it’s really nice to sit outside.

Promo Team EEMCS – Master Event March ’16

Scheveningen

Last Sunday the weather was really nice, some sunshine (yes!), nice temperature. So I decided to walk to Scheveningen Beach with my girlfriend. It turns out that it is quite a walk, but it is a nice one. I wrote about Scheveningen earlier, it’s just a nice place to visit to stretch your legs, walk on the beach or just release the exam stress. When the weather is nice you can be amazed by the amount of people that go there. 🙂

Next time I hope to give some more info on the projects we’ve been working on; show some cool results for instance, but right now it’s mostly drafts and design proposals.

See ya!

Only 4 more courses to go

Hi all,

It has been a while since the last blog. I planned on writing a blog around the Christmas break, but I was occupied with some of my courses. Last Friday I had the last of my exams; Behaviour Change Support Systems. That exam concluded the second quarter of this year. I wanted to highlight a couple of things that kept me busy during this quarter.

Behaviour Change Support Systems

This course was about building applications that focus on changing / learning behaviour. To understand the concepts here we learned about many psychological and behaviour related models. During the course we had to design our own system so that we could apply the theory in practice. My team worked on an application that would motivate people to take the stairs instead of the elevator. This sounds fairly simple, but there are many things that you should consider when designing such an application. The course follows the four stages as in the design strategy as discussed by Wendel (2013, O’Reilly Media); understanding, discovering, designing and refining.

Four Design Stages of Behaviour

Four Design Stages of Behaviour

Compiler Construction

Finished, at last. I finished the last lab assignments and we learned the last theories behind garbage collection, register allocation, parsing algorithms, etc. The exam was pretty tough, I didn’t manage to finish in time because we had to write a lot of (intermediate) results. I hope that it has been enough to pass the course.

Data Science for the 99%

If I’d be able to recommend any course, I’d definitely recommend this one by Felienne Hermans. The MOOC is not too interesting for Computer Science students, or well, it’s fairly easy probably. But the project makes the course really interesting. Together with some of my fellow students we’ve built a visualisation of the Master enrolments data. The application has been built using a Lumen powered API and a simple, Bootstrap styled, Plotly.JS powered HTML page. Using the dynamic visualisations one can easily get an overview of all the data that normally gets presented from a huge Excel sheet (thousands of entries that is). The visualisation is useful for the marketing department, which liked it very much. They even said they might want to show it to the Executive Board, in which case we could present it ourselves to the board. Anyway, I was very pleased with the outcome of this project.

Master Enrolment data visualised in a tool

Master Enrolment data visualised in a tool

CoderDojo

Next to several side-projects I’m also a volunteer for the CoderDojo Nederland organisation. We organise coding events for children from 7 up to 17 years old. They can learn how to build their own website, game or robots free of charge. Each month I help organising one of the so called dojo’s. It’s really fun to help these kids with getting started, explaining the basics, and see what they end up with when they try a bit on their own. Delft also has a local CoderDojo group (https://coderdojo-delft.nl). CoderDojo is an international initiative so chances are that there’s a CoderDojo group near you too.

CoderDojo celebrating its 1-year anniversary

CoderDojo celebrating its 1-year anniversary

So, that’s (part of) what kept me busy in the past quarter. Next quarter there will be two new courses for me, while I also assist in the Software Architecture course that I took last year. The countdown has started,.. only 4 more courses until I have completed them all. The last (minor) thing to do then is the Master thesis project, more about that in a future blog.

Cheers!

Hard Work Pays Off

Hi all!

By now we have reached the end of the first quarter. Next week the new quarter will start, with some new courses. But let me give you a summary of the past quarter first;

Mining Software Repositories

This turned out to be a really tough course. Initially we were a group of 4 (2 girls, 2 boys). Then one of the girls left unfortunately, got replaced by another girl, who left as well (both did not manage to keep up with the speed/level of the course). So in the end we were a group of 3, where we had to perform a tough project that was based on 4 students. From a given list of papers we had to pick an interesting one; this paper would be the basis of our own paper that we would write during the course. From the selected paper we should try to create an extension or replication study. In our case we picked the paper by Bird et al. called “Latent social structure in open source projects“. We had to perform a research, which included the analysis of several open source projects’ repositories. Thing we had to do as well were the formulation of research questions and our hypotheses, statistical analyses, critical thinking, etc. Next to our own paper we had to review the papers of some of our peers. All of this, put into a tight (frequently changing) schedule, was quite hard to manage. Still, I think this is a really interesting topic and you’ll learn a lot about writing scientific papers and performing the required research. We got some really helpful feedback there from Dr. Bacchelli, whom we met a couple of times during feedback sessions.

Seminar Programming Languages

The other new course that I took was a seminar. Within the Computer Science master you’ll have to pick either a seminar or a literature survey. I choose to do the seminar. Within this seminar we had to read scientific papers on meta-programming twice a week. We met twice a week, where we had to read and summarise the papers upfront and during these meetings we would discuss the papers. Although I felt kinda lost in many of these meetings (the level is quite high) I learned a lot (also on reading papers). Some of the papers were really easy to understand, while others even confused the lecturer. Due to the size of the group (10 students approximately) it was really nice to have discussions about the contents of the paper. We were graded on our input into the discussions mostly. It took a lot of time to grasp the message of the papers, but in the end it was totally worth it; I now know more about which direction I want to go with my thesis.

Compiler Construction

The course is pretty much the same as last year. The second part of the lab-work was different though. The Programming Languages group introduced NaBL2, which replaced NaBL that had been used in the past. NaBL2 is the name binding language that resolves name occurrences to declarations and similar stuff. It’s part of the Spoofax workbench. NaBL2 is brand-new so the documentation is still lacking, which put some additional challenges in the assignments. Last year, I didn’t visit the labs (conflict in my schedule), this year I tried to prepare before the labs and that way I could ask for assistance when I got stuck. I keep wondering why I do not visit these labs more often, I got some detailed explanations on how the (partially or undocumented) stuff works, I guess it’s because I tend to be a bit lazy. 😉

Dinner with the COO and CIO of ING

Remember the ING 24hCoding Hackathon that my team and I won last year (hint; this blog)? Well, we finally collected our prize last week. We were invited to have dinner at the Amsterdam Harbour Club with Peter Jacobs (CIO) and Bart Schlatmann (COO). You might expect a really formal dinner, but actually the opposite was true. They were really interested in our educational background and our personal interests. We talked a lot about their student lives “back in the days” (which is not that long ago), their experience with studying in the USA, their daily jobs, opportunities at ING, and much much more. It was a really awesome experience to meet and get to know them.

Hackergames.io

Last weekend (18-19 november) I’ve participated in the Hackergames. Within 24 hours we build the “Uber for package deliveries”; a nice API accompanied with a nice (prototype) Android app. Although we did not win this time, we had a lot of fun, pizza and drinks. Oh, don’t forget about the free karting from midnight to 3AM. Really awesome. 😉

Code being hacked
New technologies being showcased Lunch being served

What’s up next?

The second quarter is about to start. Starting next week I’ll be following Data Science for the 99% and Behaviour Change Support Systems next to Compiler Construction (which is a semester course). Next to that I’ve been asked by Rafa Bidarra to assist in a Computer Science minor course, so I’ll be guiding and assessing minor students too. In the next blog I’ll try to give you an impression of the new courses and happenings, stay tuned! 🙂

Back to Work

Hi all!

So, yeah, summer break is over *sadface*. After seeing France and Mallorca we’re now stuck in the lecture halls again, which ain’t that bad considering the weather of the past few days. 😉

Courses

So this quarter I will be following three courses;

  • Compiler Construction – the course I took last year but which I had to drop halfway because I did not invest enough time. This year it’s easier as I’ve seen all material already. So I can try to focus more on the lab assignments. The first part I do not have to hand in, as I completed it last year already. However the second part I failed last year, so I’ll have to re-do that one (and the third part which I did not even start). 🙂 So far so good, but it’ll get more difficult when the second/third parts will start.
  • Seminar Programming Languages – within this course we have to prepare papers which we will discuss during our meetings. Twice a week we gather with all students and the teacher (group of approx. 12 people) and we discuss the contents of the papers. I can tell you, some papers are really hard to follow/understand.
  • Mining Software Repositories – within this course we learn how to analyze repositories (such as Git/SVN repositories) or related data. This analysis can be used to find relations between (e.g.) the experience of a developer and the number of bugs (s)he introduces. This course requires a lot of time, assignments are big and are close to each other. So far we are doing a decent job however.

How to.. prepare for Delft?

When working on group assignments in Delft it is inevitable that you will work with other students (from different countries/bachelors). You really notice the differences when working together. In my experience newstudents often (definitely not always) have way more specific knowledge on subjects than students that followed the Bachelor Computer Science in Delft. Delft tends to provide a broad foundation of knowledge which enables you to learn specific stuff more easily. I do see some students (either new or not) struggling with some stuff, so what stuff is useful to be familiar with when you want to follow this master? I’ve created a small list below;

  • Git – really learn how to git. A lot of courses use it, or assume you know git. Try some tutorials like this Interactive JavaScript tutorial or this GitHub Git tutorial. Being a student you can apply for the Student Discount pack at GitHub. Using the pack, you can create unlimited private repositories to experiment with git. If you need a nice graphical interface to git you might want to check out SourceTree.
  • Java / Python / … – it’s always good to know more languages. It’s best if you master at least one language. You can follow some of the courses/tutorials that are offered on many sites like e.g. Codecademy.
  • LaTeX – some basic knowledge of LaTeX can be really useful. Many students prefer to use TeX to write their papers and reports. There are a couple of online TeX environments (like ShareLaTeX and Overleaf) so using those you won’t need to install anything on your local machine.

You can definitely learn all of this while studying here, but knowing some of this upfront can really help you and ease the courses for you! 🙂

Summer Break

Well, that’s been quite a quarter. Apologies for the late blog, I’ve been very very busy with my courses and my TA jobs. The courses were awesome and supervising all my teams was also  very pleasant experience. I had to sacrifice a lot of my spare time, but in the end everything is finished. That means that it is finally time for the Summer Break. 😀

Multimedia Search and Recommendation

Within Multimedia Search and Recommendation (MMSR) we learned the basics of Search and Recommendation techniques. This course was brand new but the teachers did an awesome job nonetheless. The course consisted of three weeks of common lectures where we would all gather the same foundation of knowledge. After that we had to pick one of the two offered specialisations. We could pick one from MMSR Analytics and MMSR Systems where Analytics is more about the theory and Systems more about the practical aspects. So that’s how we learned about compression techniques, fingerprinting of media, recommendation models, video streaming, etc. Next to the lectures there was a big project. I’ve worked on the celebrity contest by Microsoft. Together with my teammate, Shirley, I have build a Python application that firstly detects your face from a video stream (webcam) and secondly recognise that face. We had received a huge dataset of celebrities that we should be able to recognise. Because of the time limitations within the MMSR course we had to narrow this down to a subset of approximately 100-200 celebs. We trained some recognition models with this set. In the end we had an system where fellow students, teachers, friends, etc. could sit in front of the webcam and see which celeb was most similar to them (according to our system that is). Really fun experience which was awarded with a nice grade (9.5 / 10).

Sidenote; one of the teachers of MMSR (Cynthia Liem) was awarded the ‘Teacher of the Year 2016’ award for Computer Science (see also this post on Facebook).

Language Engineering Lab

The other course I took this quarter was the Language Engineering Lab. Within this course we had to define a chosen language within the Spoofax workbench in teams of two students. I’ve worked on the ‘RaSDF’ project. The aim of this project was to allow for transformation of Rascal (competitor of Spoofax) grammars into SDF3 grammars (the syntax formalism that is used by Spoofax). This was really tricky but also provided us with a lot of experience in the field of Language Engineering. Spoofax is also the tool that has been used in the Compiler Construction (CC) course for Q1. Next year CC will be given by Eelco Visser (also the teacher of this lab) so things might change a bit, but I’m fairly certain that Spoofax won’t leave the course. If you plan on following this course I strongly recommend to follow CC as it will help you to understand Spoofax properly before this project. Myself I had some struggles with some of the components that I had not studied enough yet during CC.

Presenting the RaSDF project together with Rob van Bekkum (photo by Eelco Visser)

Figure: Presenting the RaSDF project together with Rob van Bekkum (photo by Eelco Visser). PS: We do not present with our hands in our pockets, haha.

Contextproject

The project I’ve been supervising was the second-year bachelor course called Contextproject. This project tried to emulate real-world projects as much as possible, including the different stakeholders. As mentioned in my previous blog I was a teaching assistant (TA) for both the Computer Games and Virtual Humans contexts. Within Computer Games the teams had to build a game that supports the Oculus Rift (every team borrowed a Rift for the entire quarter actually!). Because there was a Java requirement they had to use jMonkeyEngine (remember the name?) for the development. Unfortunately the documentation of that engine went down in the first or second week of the project until the very last week of the project. Although Rift support for jMonkeyEngine is not as trivial as we had hoped initially, we were really pleased with the games that resulted from the project. One of them was a virtual ‘Escape the Maze’ game. This game even won the ‘Best project of Contextproject 2016’ award.

The other context was a bit chaotic, teams struggled with getting started and they had troubles with the existing codebase. Another challenge that the students had to face was that all teams in this context had a shared component which they all had to work on. Although it’s not the most exciting part of the TA job, it is very useful. You learn how to push your groups to work, you learn to detect potential problems, etc. Useful experiences whenever you are to work in (or guide) a group project in future.

Viva la France! 😀

Friday, 1st of July were the final presentation of the Language Engineering Lab. After we presented the ‘RaSDF’ project I went home, packed my suitcase and left for a nice holiday in France. I could really use that free time at last! 🙂

France - Noyer

Figure: France – Noyer

Enjoy the summer break, I might post some stuff during the break, but no promises. 😉

© 2011 TU Delft