Sander van den Oever

Sander van den Oever
Computer Science student

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

Recent blogs

Calendar

August 2018
M T W T F S S
« Feb    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Categories

Posts in category Personal

New courses and ING 24H-Coding

Hi all,

The third quarter brought me some new courses and other activities. New courses I am following are Software Architecture by Arie van Deursen and Software Re-engineering by Andy Zaidman. I’m also participating in the ING hackathon next week, which I’ll talk about in a bit.

Software Re-engineering

Let’s start with discussing Software Re-engineering a bit. This course focuses on the way we look at existing software systems. How do we deal with a large system that has been developed over the course of several years? How can one efficiently enhance the structure of such a project, while assuring that everything still works as it is supposed to work? We have learned about the S.O.L.I.D.-principles (which some of you might be familiar with already) and how to refactor violations of these principles. We have learned about testing, how to develop tests to tests your hypotheses, refactor, and test again. Our knowledge was tested on a real-life example. Together with the other students we had to identify violations of several principles and following on that deliverable we had to actually refactor these violations. The system that was used this year is jMonkeyEngine. jMonkeyEngine is a 3D game engine written in Java. We have used several tools like inCode, CodeCity and other tools like code coverage tools to find all kinds of flaws and violations.

CodeCity visualisation of jMonkeyEngine

Figure 1 – CodeCity visualisation of jMonkeyEngine

In the Figure 1 you can see a visual representation of jMonkeyEngine as build with CodeCity. CodeCity renders your code as a ‘city’ giving you a quick overview of the project. Packages are being transformed into districts, classes are transformed into buildings where the properties of a class determine the properties of these buildings. For instance, one can choose to use the #Lines of Code (LOC) metric for the height of a building and the number of methods metric for the width of the building. One can also use colours on the buildings, to indicate (for example) the number of external dependencies. Classes that have a lot of methods or classes that are being referenced a lot by other classes might be suffering from the God Class-violation. These classes would (if using the right metrics of course) be noticeable fairly easy (big skyscrapers).

Software Architecture

Software Architecture is a course taught by Arie van Deursen. He uses GitHub for all course material and Slack for communication and announcements. Within this course we had to pick an open-source, GitHub hosted, software system that has been active recently (e.g. approximately one pull-request per day minimum). We, my team and I, have decided to work on the youtube-dl project. Youtube-dl is a command-line tool that allows you to download video’s from over 700 (!) supported websites. Within this course we had to analyse this system (it’s internal structure) and write a report about our findings. Next to that, the fun part of this course in my opinion, we had to think of potential contributions to the project. The course actually required us to make some contributions. We had to contact the development team and try to get our contributions merged into the project. In many cases this involved rather simple documentation fixes, but there have been contributions that add or fix actual functionality as well. The course staff wanted us students to use Slack for all communication. This way students are able to help each other efficiently and the staff was able to keep track of the group process. Read more about this course and its setup in the blogpost by Arie van Deursen, which can be found on his website: www.avandeursen.com.

The reports of our findings we have to bundle within a chapter. From all teams (all delivering their chapters) a given number will be selected, bundled and published as the DESOSA 2016 book. An example of the previous edition of the course can be found at delftswa.github.io. We are currently reviewing chapters written by other teams, while we are still trying to contribute to the youtube-dl project. Examples of (our) contributions are #8785,  #8682 and #8680. For our chapter we have created several architectural views, for example the one below, depicting the contextual view (stakeholders and other related tools/companies).

Context View

Figure 2 – Context View of youtube-dl.

ING 24H-Coding

Together with some friends I will participate in the ING 24H-Coding event in Amsterdam. Basically all kinds of teams participate here in building prototypes for their ideas and pitch them to ING. This years theme was about building a omnichannel software solution. Within that context we are free to think of anything we like. The event will be held in the Heineken Music Hall, where food and drinks are included, we only have to bring our laptops. There are not that many student teams participating so I’m really curious about the outcome of our team/idea.

Christmas time

Hi all,

So Christmas is almost here. The first semester has almost passed, studying for the exams starts, but first we can enjoy our well-deserved holidays. One thing I really miss from high school; holidays. Where you had several back in high school, we only have two (well, three) holidays at the university. And if you are behind, potentially even less. From the end of the summer break straight to the Christmas-break (2 weeks) is a long period, but it’s finally here.

That also means I had to do some shopping. Delft is really accessible, which in this case is ideal. Through Delft central station you can go to anywhere like Rotterdam, The Hague (Den Haag) or Amsterdam within no time. Myself I took the tram to the centre of The Hague, where you can find a lot of stores. During the weeks before Christmas it’s insanely crowded in most of the shops. I’ve been able to take another look on the Apple Watch at the Apple Store, I’ve seen several cosmetic shops (where the waiting lines continue outside!), places to eat and a lot more.

How about the courses? Most of them ended, more or less. There are some wrap-up lectures for some Q&A, but other than that I won’t have too many lectures anymore until the exams. I only have one exam, Compiler Construction. I failed one of the labs so I had to arrange something like an extra assignment, but the professor was really nice and offered me the possibility to pass the course this year, but I have to pass the exam first. So, I’ll be studying a lot for this course the upcoming weeks. Next to that the Functional Programming MOOC has ended officially. Only for TU students there’s the project that remains. During mid January we have to deliver the results and present them to our fellow students. We have a lot of work left, so we need to spend some time in our precious Christmas break.

Happy holidays, and all the best for 2016,

Cheers!

System.out.println(“Hello world!”);

Sander

Hi all,

Since this is my first blog post, I’ll start by introducing myself. My name is Sander van den Oever, 22 years old and a student at TU Delft. I’m following the Software Technology track of the Computer Science master program. I’m living in a student building in Delft, near the university. Next to studying I work at a start-up in Schiedam called rentomato, where I’m working as a PHP Developer. I’ve chosen to follow the Computer Science program in Delft. Why? It felt like a logical step after finishing my Bachelors in Delft. I like Delft for it’s (international) reputation, the city, it’s location and the career prospects.

As I said I’ve completed my Bachelor here in Delft, which means by now I’m quite familiar with Delft and the university. I’ve started in 2011, with the Bachelor of Electrical Engineering. I soon discovered that I was more interested in just the domain of Computer Science, which is why I switched during my first year. I’ve completed my Bachelor Computer Science in nominal time (three years) and now I’m in my first year of the Master program. I was not entirely sure about which track to choose for this master. There are two tracks; Software Technology and Data Science and Technology. The difference is mostly in the courses taught in the core of the tracks. For both tracks you have to choose a number of courses from a given list, although the lists overlap as well, they differ in some places. I checked which courses from the cores I wanted to follow and after that I had a look which track matched best with that list. So that’s how I got to Software Technology.

Now, the real challenge was to compose my so called ‘IEP’ (Individual Exam Programme, also referred to as ‘ISP’, Individual Study Plan). Next to the core courses you have to pick a number of courses out of a list with ‘free electives’ as well. Finding courses that are interesting is not too hard, making them fit together in your schedule is a whole other story. For now I’ve decided to follow to following courses; Web Science and Engineering (WSE)Compiler Construction (CC) and Functional Programming (FP). Initially I also followed Advanced Algorithms but this course took me too much time and therefore I decided to stop following the course (I’ll replace it or retry next year). That’s the good thing about your IEP, it’s not necessarily binding. If you feel the need, and you can convince your Master coordinator about the need to change your IEP, you can make changes along the road.

Let me get back to the courses; the first one will not be too much of a surprise probably. Web engineering definitely is a really interesting topic (otherwise I wouldn’t be working as a Web developer) so the WSE course was an easy pick. Next to that I’m really interested in how different program languages work, how they can be used, etc. I liked the Concepts of Programming Languages course in the Bachelor, Compiler Construction seems like the ‘next step’ there. Furthermore there’s the Functional Programming course. It offers you know-how on an entirely different way of programming, which sounds really cool to me. Functional Programming is actually a MOOC (Massive online open course). I’ll explain what the courses are about in the next blog.

In the future blogs I’ll try to give you an impression of what it’s like to study (Computer Science) in Delft and what makes Delft an awesome place to be.

See you next time!

© 2011 TU Delft