I just returned from an interesting event: more than a hundred students from fourteen universities spent three days writing code led by committers from Open Source projects (one of which was
Kotlin ). And this is just the beginning :)
General considerations
It has long been clear that in order to graduate skilled programmers from a university, it is necessary for students to program a lot in the learning process. Moreover, it is desirable that the tasks were not too "educational", but were close to real life.
')
There are different solutions to this problem: we have many students get practical skills working from the second or third year, which is not always a good effect on their studies. In more developed countries, summer internships in the industry are popular (we also have this in some places). Both are not particularly connected with universities (a good or a bad question is a separate one).
Some universities try to incorporate the practice into their educational process: they do term papers in the form of projects. There are always some problems in order to find adequate topics for projects and people who are ready to lead students, and at the same time have sufficient qualifications.
One of the possible approaches to solving this problem is using Open Source projects: tasks are not toy, committers are used to watching and commenting on someone else's code, the process requires the student to be able to use different tools like version control systems, etc.
Open source, project-based, collaborative university curriculum
This approach has been tested in recent years by Stanford and a group of Canadian universities. This year, Stanford spokesman Jay Borenstein organized a large-scale initiative that included
14 universities that sent a
little more than a hundred students : Austin, Cornell, MIT, Stanford, (USA), McGuill, Toronto, Waterloo (Canada), Imperial College London (UK) , Tokyo (Japan), Sichuan (China), Helsinki, Tampere (Finland), Jagiellonian (Poland), National University (Singapore), and
14 Open Source projects : Eclipse, Formulize, Blackberry, MarkUs, Umple, Freeseer, Kotlin, MongoDB , Mozilla Open Badges, Phanator, PouchDB, ReviewBoard, Ruby-on-Rails, SocketIO.
The approximate organization principle is as follows: each project provides one or several “
mentors ” who will supervise students. Students form
teams of up to eight people (usually from different universities).
For example, Kotlin was chosen by 11 students who made up two teams: one from Helsinki and Tokyo, and the other from Krakow and Cornell University (NY).
Representatives of universities take on the administrative work on the ground: organizing student meetings, various kinds of monitoring and other project management. Students write code, mentors read it and advise students on technical issues.
Kickoff hackathon
The project opened with an in-person meeting of all participants, which was held from January 18 to 21 on the Facebook campus in Menlo Park, CA.
Facebook sponsored this meeting and paid the road and accommodation for all participants, for which he thanks a lot.What we did in these three days. We first got acquainted, and then wrote the code (in fact, the whole event was called Hackathon, and writing the code was its main part).
Two of my teams worked according to this scheme: first they wrote
Game of Life to get acquainted with Kotlin, and then they were engaged in their projects. The Finnish-Japanese team is working on
a source code converter from Java to Kotlin , and the American-Polish team is working on smart IDE light bulbs (intention actions, quick fixes etc). The guys came up pretty strong, I think the results will be good.
Conclusion
The overall feeling of the event is very positive: everything is quite well organized, almost no unnecessary nonsense, a very friendly atmosphere. Something about the meeting and about the project in general can be read in
this group . If everything goes well, next year I will try to involve Russian universities in this project; I think that at least SPSU and ITMO should be interesting and useful.