I have always greatly enjoyed programming as a discipline with two faces. On the one hand the practice of building things, the compromises to get to shipping a product, and working with real people and real technology. On the other hand the underlying theory of language computation, which suggests with allure that everything can be done with yet more elegance, performance, and reliability.
In line with these two passions, I have always tried to keep one foot in the practice of how things work, and the other in the theory of why they actually work. Professionally I have worked as a consultant for now almost a decade, building a variety of software ranging from mobile games (the biggest of which is still online) to full HD video recording software for unmanned underwater vehicles.
I also hold both a Bachelor and a Master of Science degree in Computer Science at the University of Venice. My study continued with a (research) Doctorate in the design of functional programming languages for soft real-time simulations in collaboration with Prof. Pieter Spronck at the University of Tilburg. This resulted in the Casanova programming language for games, which has now reached its stable second iteration also thanks to the splendid work of Mohamed Abbadi and Francesco Di Giacomo. My research work now continues in the field of meta compilers, in order to simplify the task of building domain specific languages and also to harness the elegance of the underlying theories of computation.
I am now working as Hoofddocent (which roughly translates to Associate professor) at the Hogeschool Rotterdam (Rotterdam University of Applied Sciences), where most of my work happens in the departments of Informatica and Technische Informatica. I teach and develop courses in the areas of basic programming, OO and design patterns, functional programming, algorithms and data structures, and discrete mathematics.
Learning from my personal experience in building a variety of software, I am compelled to notice the inherent complexity of the subject of programming. For the person wishing to learn how to program, and code solutions to actual problems, then both theory and practice fall tremendously short. Theory and books give the fundamental knowledge needed to handle the building blocks correctly, but tells us nothing about how to put it in practice. Practice sheds light on the relationship between code and real world problems and solutions, but gives no actual insight in how code and its complex abstractions actually work.
Moreover, working in Software Engineering is just like working in any other engineering discipline: there is no almost works. Either a complex product is understood in all its parts, and therefore works correctly, or any uncertain bits will certainly come around to break something. Often breaking happens in the most dramatic of ways.
Together, we will be able to reach the perfect balance between theory and practice, to "make thngs work", but under our precise control.
Together we will understand the underlying conceptual reasons why code is structured as it is, and then we will put them into practice and build actual software. You will be asked patience in the understanding of things, and determination in putting them in practice into ever-growing complex architectures.
Should you choose for me as a teacher, then we will see each other regularly (on a weekly basis). Most classes happen in the evening or during the weekend. We always work in small groups, of ten persons maximum. Everyone works on an individual level, and receives individual attention.
The location depends on the size of the group. It might be possible to conduct a portion of the courses online, but for effectiveness working directly together is highly advised.
Before the actual start of your courses, we will have a short personal discussion to assess your level of skills and knowledge together with your goals and interests. This discussion has no associated costs and is completely free of any obligation.
After you have succesfully completed a study path for a specific topic, you will receive a signed certificate and I will support you as a reference person by interviews.
The courses can be done in both Dutch and English, upon request.
For any questions, or to set an appointment up, do not hesitate to call or send me an email.
|Mobile:||06 - 41 78 12 23|
|Adress:||Jufferstraat 212, 3011 XM Rotterdam|