Welcome to the international (English-speaking) blog of the Department of Computer Science at the University of Helsinki. Our blog invites views on research, education, student life, and other societal themes connected to our computer science fields. The intention is to build a forum as an open window for readers from inside and outside computer science. If you have any good ideas or articles to share on this blog, please feel free to contact us: cs-blog [ät] cs.helsinki.fi.
Reflections after five years of Software Factory projects
This 2015 spring term marks the fifth anniversary of the Software Factory at the Department of Computer Science, University of Helsinki. The first Factory project started in January 2010, and since then, we've been running projects on a continuous basis. We've done projects with both small and large companies and on a variety of topics, as shown in the list of completed and ongoing projects. In this year's spring edition, ten students from the Department of Computer Science participate in the Facebook Open Academy program. Open Academy is a large-scale educational program which brings together students from top universities around the world to work with selected open source projects.
With the Software Factory turning five, it's a suitable time to reflect on the experiences from a coordinator's perspective.
The Software Factory is first and foremost a realistic learning environment. Participating in a Software Factory project is a challenging experience, but students have considered it to be well worth it. Reading the learning diaries from both this and last year's programs, you can get a glimpse of the challenges and successes that they experienced during the Open Academy program. I'm amazed by the amount of time and thought that has gone into the contributions they made to the Kotlin IDE, Ruby on Rails, App Inventor, Socket.IO, and Lokki projects. With these experiences under their belt, I believe that these students are well prepared for challenging positions in working life.
Software Factory students and coordinator Fabian Fagerholm (right) visiting Facebook in Menlo Park, California, in 2014. Photo by Jarmo Isotalo.
According to töissä.fi, an employment statistics site maintained by the University of Helsinki's Palmenia Centre for Continuing Education, 68% of Finnish computer science university graduates find employment in the private sector. A majority of graduates are employed in positions where they plan and develop software, or manage software-related projects. There appears to be a strong demand for practical skills in programming, software engineering, and project management combined with a solid foundation in computer science. For university educators, a difficult question is how to provide opportunities for students to transform foundational theory into skills which are relevant in working life.
Some of the issues have to do with scale. With MOOCs, the traditional classroom can be automated and universities can handle an order of magnitude more students without increasing the number of teachers. Employers have caught on quickly: online competency-based modules can be used to assess potential hires based on performance rather than credentials. But MOOCs can become impersonal. A recent book on near-future developments in engineering education, inspired by Gardner's notion of multiple intelligences, and with pertinent relevance to computing, suggests that students educated in such automated settings will feel let down, and seek an education that develops their mastery and skills as designers and innovators. This includes knowing technical practices and being able to solve actual real-life problems, but also a plethora of other skills that are needed to create in a collaborative environment. Effective coordination and communication requires the ability to speak and listen: disclosing information and listening to concerns raised by individuals and communities. Acting as a designer requires the ability to propose solutions for real problems by using existing technologies. Being an entrepreneur and innovator means helping communities transform their practices and navigating the changing landscape of possibilities. These skills are important in industry, but also for those who want to pursue an academic career.
Software Factory students, mentor Anton Berezin (front) and coach Kati Kyllönen (right) visiting Facebook in Menlo Park, California, in 2015.
Perhaps most importantly, students must know themselves. They need presence of mind to be thoughtful and reflective, learn from mistakes, find meaning, and switch between perspectives. Goldberg and Sommerville assert that a learning environment for cultivating such skills must be founded on the deceptively simple concepts of joy, trust, courage, openness, and connectedness with a collaborative community.
One of the main educational goals of the Software Factory is precisely to provide such relevant experiences in an authentic environment. By working in open-ended, realistic projects, students must access all the foundational knowledge they have acquired during their studies so far. They must put this knowledge into use to create actual working software, and they must do so in a collaborative environment with others. The transition from foundational knowledge to practical application, and onwards to collaborative creation is what turns students into experts in their field.
Meaningful experiences during university studies are also important because they affect students' self-efficacy beliefs – what students think they are capable of. A recent study of US college graduates found that the type of experiences students had during their studies was the most significant predictor of happiness and satisfaction in work and life elsewhere. The top-ranked, most expensive universities did no better than lower-ranked, less expensive ones. Students who felt they had a professor who cared about them, made them excited about learning, and encouraged them to pursue their dreams, had more than twice the odds of being engaged at work and thriving in other areas of life. An internship, job, or project of at least one semester, where students could apply what they learned in the classroom, also more than doubled their odds of being engaged at work. It would be surprising if this would not apply to students in our university as well.
Visit to GitHub HQ in California. Photo by Jarmo Isotalo.
One way of showing students that their education has relevance is to keep it open and visible, and to link coursework with real-world content. The Open Academy program has gained attention in online media. Our ongoing collaboration with F-Secure allowed us to link the newly open sourced Lokki service into the Software Factory and the Open Academy program. In general, all of our Software Factory projects are designed as industry-academia collaborations. The work done in those projects has benefit outside the classroom, as well, increasing the relevance and impact of what our students do.
The Software Factory has also proven to be a fruitful grounds for research. Apart from documenting the Software Factory itself, its utility as a teaching platform, the peer assessment techniques in use, and the possibilities for industry collaboration, we have published research on many other topics: the Kanban software development method, how it impacts team communication and collaboration, and the role of requirements in Kanban; self-organising software development teams; continuous experimentation; and onboarding in Open Source projects, with a continuation in IEEE Software. The factory has also allowed several Master's thesis workers to ground their studies in a realistic project environment.
It has been an eventful half-decade of designing, building, and operating the Software Factory. From the beginning, the goal was, and remains, to combine research, education, and entrepreneurship through industry-academia collaboration. I believe the challenge to universities is still relevant: to evolve computer science curricula to meet advances in the technology industry. This means having highly relevant foundational content, the best teaching methods, active links to working life, and a culture of fostering meaningful and mutually beneficial relationships between students and teachers. The Software Factory has already provided the opportunity for a meaningful experience to a few hundred students since it started in 2010. Hopefully, the future will see many more students experiencing similarly meaningful, encouraging, and growing activities!
The CS Blog Task Force
Paba is a PhD student in Ubiquitous Interaction Group (UIx group) at
HIIT, CS Department of UH. Her research focus is on developing
interaction models to predict user interests and information-needs in
Aaron is doing his PhD in the NODES group at the CS department. His research focuses on mobile computing and energy efficient design for multi-interfaced mobile devices.
Ella is a PhD student in the Nodes group. She is interested in e.g. distributed algorithms, real-life data mining, clouds and ubiquitous computing.
Giulio is a Professor at the CS department. His area is Human-Computer Interaction. For more information, please find his homepage here