Showing posts with label University. Show all posts
Showing posts with label University. Show all posts

Sunday, 7 October 2012

Three years since my Master Degree in Computer Science Engineering

Tomorrow will be three years since my Master Degree in Computer Science Engineering.

I got my degree from the University of Pisa and I am writing this post to simply remember that unforgettable day.

The title of my degree thesis (translated in English) was "Modular architecture for testing smartcard-based solutions" and here you can find the original paper:

The following is a video of my formal presentation (obviously in Italian). I still can't believe how relaxed I was that day and how good the presentation was. Fortunately, being a speaker in DotNetToscana helped me a lot for that event.



It is impossible to forget the satisfaction of getting the maximum score: 110/110 with Honours and the unique certification of excellence. I order to get the certificate of excellence I had to do 5 additional exams with strict deadlines: Computer Science applied to biological systems, Dynamic Systems, Web Algorithms, Game Theory and Computational Intelligence. That was hard but extremely rewarding.





You can find the complete photo album here: Master Degree and Party.

Let me show few pictures from the project itself.

The SCOTT Architecture (Smart Card Open Test Toolkit):

An example of interaction with the SCOTT Shell:


The project was written in C++ with the ability to run on Windows and Linux.

I tested it with the Cryptoflex 8K Card and the TODOS Argos Mini Card Reader:


The following are the class diagrams of the simple and complex types. I had to define a type system and write the relative parser in the SCOTT shell (lots of fun!).



I like the macro I used to define a type naming convention for smart pointers and more complex data structures like maps and vectors of smart pointers. Unfortunately C++ is not like C# and I found this solution a good compromise to think like having List and Dictionary and almost forget about memory management.




The following code defines a smart pointer to vector/map of smart pointers to SValue:

This was also the first project where I started to use Unit Testing and understand the importance:


The entire project is almost 10000 lines of source code and I released it as open source but it is abandoned. If you are curious you can download the source code from the official repository.

Wednesday, 27 June 2012

A Snake game entirely written in assembler

Snake is always been for me my hello world program. I implemented it in many different languages Basic, C, C++, Java and Javascript. But I didn't limited myself at high level languages. At the second year of university (something like 7 years ago) I actually implemented it entirely in assembler MASM in roughly 600 lines of code. It is so old that the variables and the comments are in italian :)


Unfortunately I can't run it (and provide a screenshot of the game) because is using a library called compatib that I am not able to find. Friends can confirm that this code actually worked at the time :)



This is the main procedure:



This is the game loop:


This is the procedure that print the snake on the screen:


The entire code is available in my repository on copeplex.

This program is very old but I still remember the feeling after I implemented it in one evening and in particular the satisfaction of the following day when I showed it to my class mates. They were shocked!

This is what I call fun!



Saturday, 4 February 2012

Democratizing Higher Education

Last year, I have been part of the first step in the upcoming revolution of education. I took an online class on "Introduction to Artificial Intelligence" and the experience has been great. I love learning and I truly believe in the importance of higher quality education at lower cost delivered through Internet everywhere at anytime.

There are already some outstanding experiments out there:
Both offer interesting lessons on a broad range of topics for free. The topics are not strictly related with computer science.

I believe that people love learning but at the same time people want to be able to add their new skills on their CV. For this reason, it is important to organise exams and give certificates. The most important thing is price: price have to be very low in order to make education available to all the people.
There is now a new exiting project that is called Udacity with exactly this purpose in mind. The classes will be free of cost and all about computer science topics (at the moment).

Classes start on 20th February 2012 but courses will be offered again starting April 16, 2012.

The most exiting thing for me is that now they have a programming environment, so you can develop and test software. This means that there will be programming problems to solve in order to pass the course.

An another upcoming project is MITx that will offer a portfolio of MIT courses through an online interactive learning platform. I am very curious to see what will happen.

We will have plenty of cool things to learn... as usual is all about prioritising and finding the time for studying.

Sebastian Thrun resigns from Stanford to Launch Udacity. I have a great respect for this man.