понедельник, 1 июня 2009 г.

The end of the academic year at USI

2008-2009 academic year at the University of Lugano, the Faculty of Informatics, finished on Friday, May 29, with presentations of students' achievements. The event consisted of several parts dedicated to a separate course each: one part for every year of the bachelor program (3 in total) and one part for the master program. Every part started with a course overview, given by a professor, and continued with students presentations describing their achievements within the course.

Bachelor session
First year bachelor students go through "Programming Fundamentals" course, which ends up with mini-projects written in Java, one for 2 students. Two projects were presented. One calculates the fastest path for a given map and a given vehicle location with respect to a current traffic (!). The map and moving vehicles are represented graphically. One can generate new maps and manually drive a vehicle. The other project implemented fully functional Arcanoid game up to a level editor (!). Thus the students were able to manage pretty complex algorithms implementations and graphical applications within a first year, which is very impressive for me. During the course and the project students also learned patterns, UML and version control system.

Second year bachelor students dealt with web-programming. As a result they developed an on-line web-page editor (like Google sites). The choice of the programming language was a little bit strange for me - they used smaltalk. Moreover, it is not clear how much did they do on their own besides frameworks and libraries used. Unfortunately the result was not as impressive as that of the first year students. The system is only in its initial state now and is not user-friendly, one has to click a lot to work with it.

Third year bachelor students within the course of "Theory of Computation" invented a boolean formula of sudoku. Based on that formula and one of the SAT solvers they implemented a simple application which generates sudoku of different sizes with some predefined numbers. Although the course is more theoretical and is not as visual impressive as the previous ones, the work done was significant and the presentation itself was very good.

Bachelor session ended up with 2-minutes bachelor projects presentations. During the bachelor program each student was involved in some research activities within one of the Faculty's research groups. Students accomplished some practical tasks in the scope of the group they worked with. The bachelor projects defense will take place on June, 16.

Other sessions
When presenting the master program of the Faculty, Professor Pedone asked, how many third year bachelor students were going to participate. Only 3 out of 10-12 answered in the affirmative. (Here I have to mention that we have only 10-15 students per year, which is less then a little). On the other hand, the Faculty is supposed to attract people from outside Ticino canton (and from outside Switzerland as well) to take the master program in Lugano. The more students come the more funding the Faculty gets.

The overview of master projects was presented. The defense will take place on June, 18.

I also have to mention that the Faculty offers summer internship for students. Again students have to work within one of the research groups for 2 month. The achievements of two such interns were presented.

The event ended up with a small banquet organized by the Faculty.

Overall impression
Not only the current students achievements impressed me much, but also the possibilities for studying and practicing they have here. Their success is caused not only by their passion to study and work, but also by a quality of professors and courses offered by the Faculty. Several young professors passioned to teach use the latest technologies both in informatics and teaching. Most of the professors try to make their courses as much interesting for students as possible. And I am happy to take part in this process.

Another very good point is that students always present their works, both during a semester and in the end of it.
  • This gives an impression of educational milestones other than exams.
  • Students practice presenting their work a lot.
  • It makes them fun.
I have to say, that students' presentations on the whole were much better than those one can expect from professors and researchers. Presentations were well-formed and well-presented with a sense of humor almost in each of them.

Again, my impression is that hard-working students, supervised by good professors (and assistants) can do almost everything.

Some notes on the curriculum of the Faculty of Informatics, the University of Lugano.
According to Bologna process, informatics curriculum is divided into bachelor (3 years) and master (2 years) programs. On top of that there is a PhD program (ideally 3 years, but actually 4 years), which forms 3-5-8 formula. As soon as students can change their specialization after bachelor program (continuing, for instance, in economics or whatever else) the task of the Faculty is to give "full" informatics education in 3 years. Therefore the curriculum covers only required minimum of disciplines needed by an average IT specialist, although there is at least one theoretical course almost every semester.

вторник, 12 мая 2009 г.

Leslie Lamport at USI

Leslie Lamport visited the University of Lugano on 11 - 13 of May and gave 3 talks. His main idea is to use math in programming. Before writing a code programmer should try to represent the idea of a program mathematically. This is needed
  • to understand better, what he / she is going to implement;
  • to formulate the idea precisely without any natural language;
  • to avoid bugs before implementing the code.
Lamport did not talk about proving the correctness of programs, but showed on several examples that it is possible to "assign meanings to programs" (see the paper by R.W. Floyd), i.e. mathematical meaning.
Obviously, it is impossible to convince everybody from programmers to CEO that it worth spending time on that (for the same reasons which Fowler mentioned in his "Refactoring"). Therefore this "math" idea can be treated as a long-term message to the software engineering community. Lamport proposes to start from university education and make an emphasis more on math than on programming skills. As soon as a new generation with such an education appears, it will not be difficult any more to convince anybody to use math in programming.
Lamport talked about TLA+ language, which is again a formal math (+ couple of temporal logic operators and some others like ') and about its application for writing specifications. He also presented PlusCal algorithm language, which is based on TLA+, and encouraged to use it in writing algorithms instead of pseudo-code because of PlusCal preciseness. His book on all this stuff is available.

P.S. This text is my own understanding of what was presented and can be different from Lamport's point of view.