Biomedical Engineering Summer of Code
The Biomedical Engineering (BME) Summer of Code is a 12-week programme launched in 2012 by the Computational Bioengineering Laboratory.
Inspired by its famed Google counterpart, the BME Summer of Code aims at providing NUS BME students with an opportunity to strengthen their programming skills and to be exposed to industry best practice programming methodologies.
Participation is on a voluntary basis. All undegraduate students from year 1 to year 3 are eligible. Due to space constraints, however, only a limited number of students will join the programme each year.
The approach used is a hands-on one. Participants are exposed to a very limited number of short lectures, while they will spend most of the time coding.
In the past few years, the Summer of Code students' coding efforts resulted in the release of a non-linear optimization software, Unfit
Particular emphasis is placed on programming methodologies and tools. Many concepts belonging to the extreme programming paradigm form an important part of the learning process.
The development follows a test-driven approach, where the introduction of any new functionality to the main code begins with writing a test that checks what the functionality is expected to do.
Throughout the programme, no individual programming is performed. Following the pair programming methodology, two students sit at the same workstation and work on the same problem. One student does the actual coding while the other checks and provides feedback. The roles are interchanged frequently.
Another important part of the programme is the notion of being a programmer as part of a team. The main code is developed as collectively owned by the entire team, with the idea of promoting a sense of responsibility towards the entire project.
At the end of each programming session, the pairs of students brief each other on the work performed and gather suggestions and feedback. This briefing occurs during stand-up meetings, where the entire team stand up to listen to each other. The standing up is designed to encourage brevity and focus on important issues only.
Students are typically assigned a task. They then discuss among themselves possible strategies for a solution. They are also required to break the problem into smaller problems and divide the smaller tasks among the various pairs.
The programming language used during the Summer of Code is C++.
However, at the beginning of the programme, no prior knowledge of C++ is required.