CTI-CodeDay Open Source Experience

CTI-CodeDay Open Source Experience

Broadening participation in open source software development

The open-source community is enormous, with thousands of people contributing to numerous projects every day. These open source projects present a significant opportunity for beginners and early-year computer science students to learn current technologies and practice applying their software engineering skills in the context of a realistic development environment. Such an experience will give students opportunities to navigate and understand complex codebases that serve a large and active user base, think critically to solve problems, communicate with teams, and engage in collaborative work using Git.

However, there is a learning curve to getting involved in open source. And while this learning curve is not insurmountable, most undergrad CS students, especially those from under-resourced institutions such as community colleges and regional public universities, have trouble getting enough momentum to engage. Given that a majority of first-generation, low-income and underrepresented minority students start their computer science education at such under-resourced institutions, a solution that provides them with the necessary structure - in the form of learning resources, guidance, and mentorship - to get started and make a meaningful contribution will go a long way to broaden the computing talent pipeline.

The Computing Talent Initiative 's Accelerate program (described in this case study by Siegel Family Endowment ), in partnership with CodeDay , has been building such a structure, designing, implementing and testing two types of internship-like experiences to help students break this open-source barrier and contribute to projects. Since 2021, we’ve had 350 students participate in 141 such experiences designed by the program, collectively submitting 92 pull requests. In addition to building a structure around the open-source experience, which includes preparatory activities and support during the experience, we’ve had great success using the UMPIRE (Understand, Match, Plan, Implement, Review, Evaluate) mnemonic to guide students through their open source project work, while regularly documenting and reflecting on their journey.

Focus on the breadth of critical skills

UMPIRE is a framework for approaching and solving problems that helps students prepare for and succeed in coding interviews. Accelerate program students learn UMPIRE and use it to solve hundreds of coding problems of different difficulty levels prior to starting their open-source internship-like experiences. We have also found that during their open-source internship-like experiences, students benefit from using the UMPIRE process, at a regular cadence, to develop concise and clear answers to important questions related to their project work. 

The questions were designed to guide students to apply the UMPIRE method to their project work, helping them to:

  • Develop a clear understanding of the overall project, their specific role, and the issue they're addressing.
  • Develop a clear understanding of the system design of the project and identify potential changes to the system design to address the particular issue assigned to them.
  • Develop a plan to consider multiple approaches to tackle the particular issue and how to select the approach that is most likely to succeed, weighing the pros and cons of each of the approaches
  • Select and implement a solution to address the issue
  • Test their chosen solution to ensure it meets all project requirements and constraints, and if necessary, repeat the process with a different approach

In addition to guiding them through the project, the iterative writing process also helps them:

  • To prepare for their weekly mentor meetings, ensuring they have explored their work at sufficient level of details developing precise and meaningful questions for their mentor, and
  • Improve their ability to clearly communicate their work professionally. 

Building on these reflections, students culminate their learning experience through a publishing blog post on LinkedIn.

Status and Outcomes

While the CTI team is still in the early stages of experimenting with how to guide students to think critically and methodically about their open-source issue, the qualitative improvement we have seen thus far through this approach is promising. Evidence for this promise can be seen in the blog posts written by the student participants at the conclusion of their open source experience. As a Professor of Computer Science, with over a decade of experience trying to help students bridge the gap between their academic learning and industry readiness, I can see that these blog posts are a game changer in two important ways:

  1. as in-depth demonstration of the student’s ability to work as a team to meet their software engineering project goal, and 
  2. being a valuable model for teaching critical soft and hard software engineering skills beyond what is currently possible within CS majors at higher education institutions

Readers are encouraged to sample the blog posts linked here to get a sense of the potential this approach has to prepare the next generation of computing talent. We invite partnership from anyone interested in learning more about the program or would like to volunteer to mentor students through their open source experience.

I highly recommend this experience. My first experience working on open source was with Computing Talent Initiative, and it really enabled me to understand how to work in large codebases. Thank you Professor Narayanan.

To view or add a comment, sign in

Others also viewed

Explore content categories