Icon of a piece of paper.

Rust Free and Open Source Software
Practicum Program Proposal
Academic Year 2023–24

Purpose

To provide learning and application of Rust in an open source context to a community of non-traditional CS learners in order to improve their employment opportunities and to broaden their perspective of the tech industry. 

To provide students with exposure to the open source community and for a foundational experience in contributing to open source code, enabling them to further engage in the community and to build their contribution portfolio and seek employment or remunerated open source work (eg. Linux foundation paid mentorship).

Src Material Role

  • Secure alignment with partner organizations 
  • Select and vet FOSS project, align with project owner/maintainers, provide reporting on student progress and plans
  • Advocate for post-project opportunities for students
  • Guide the delivery of the educational component
  • Serve as Rust SME and FOSS Project Champion (see Roles and Responsibilities section)
  • Liaise with Practicum Mentors

Roles and Responsibilities

FOSS Project Champion

  • Liaise with partner organizations, hiring managers, apprenticeship programs
  • Ensure continued alignment with MinT, sponsoring educational organization

Instructor (Green River or otherwise)

  • Provide instruction in tandem with Rust SME
  • Provide grade and formal evaluation to students

Rust SME 

  • Provide course instruction solo or in tandem with other instructors
  • Provide student reviews to instructor 

Practicum Mentor

  • Ensure that students are following coursework and project work
  • Unblock student on tech needs
  • Align with primary MinT mentor on opportunities for student

Primary MinT Mentor

  • Discuss meta topics around culture, working in a team, addressing problem solving and workstyles
  • Align with practicum mentor on opportunities for student

Open Source Project Criteria

  • Well-organized contributor ecosystem: documentation, contribution docs, code expectations, team charter/code of conduct
  • Well-maintained repo: many tagged “good first issues”, PRs reviewed frequently, repo has at least 1k stars
  • Project has a core group dedicated maintainers and a repo sponsor/champion that can dedicate time to align with the practicum team
  • Project has a commitment to open source and is staffed accordingly
  • Recommended: enrollment in Linux Foundation’s mentorship program and/or willingness to do so

Possible Projects

  1. Linkerd2
  2. Bytecode Alliance Component Model
  3. Wasmtime (example)

Roles and Responsibilities

FOSS Project Champion

  • Liaise with partner organizations, hiring managers, apprenticeship programs
  • Ensure continued alignment with MinT, sponsoring educational organization

Instructor (Green River or otherwise)

  • Provide instruction in tandem with Rust SME
  • Provide grade and formal evaluation to students

Rust SME 

  • Provide course instruction solo or in tandem with other instructors
  • Provide student reviews to instructor 

Practicum Mentor

  • Ensure that students are following coursework and project work
  • Unblock student on tech needs
  • Align with primary MinT mentor on opportunities for student

Primary MinT Mentor

  • Discuss meta topics around culture, working in a team, addressing problem solving and workstyles
  • Align with practicum mentor on opportunities for student
caption for image

Post-Mortem from Rust FOSS Pilot (Spring 2023)

  • Success
    • Students..
      • learned and used Rust
      • learned about a network security product
      • learned about real-life development practices
      • (one of the students) got an internship based on the CI/CD experiences she had
      • gained confidence in ability to work in an open source environment
      • gained confidence in ability to learn new material in a self-led fashion
      • got exposure to a highly sought after skillset
      • got exposure to systems engineering
    • MinT and the organizers…
      • built bridges between MinT and Rust Foundation
      • got a sense for the needs of running this program in a bigger context
      • got a sense for level of interest from the students
  • Challenges
    • Students..
      • Felt that timing was hard - the pilot ran at the same time as the hardest course of the year (data structures and algorithms), as well a job searches
      • Felt thrown into the deep end a little bit
      • Felt a little out of their depth wrt the project and language
      • Were frustrated with setup pains and the fact that the work took a long time (they didn’t get to ship a feature)
    • Project..
      • Started 1-2 weeks late due to instructor availability
      • Was self-led – students were drinking from the firehose; little resources for classroom support
      • Touch on a very new and emerging topic
      • Provided a lot to learn and apply in 3 months
      • Needed to have clearly identified tasks, rather than asking students to pick
      • Needed to have clearly articulated R&Rs and tasks for students, and to have earlier check in points about potential blockers, and to have more clear cut “status” milestones for go/no go decisions and next steps for project
    • Mentors..
      • Didn’t have clarity about roles and responsibilities
      • Main mentor (Marianne) had a larger share of continuity and other tasks; overhead for management and organization of tasks, coordination with open source project

Outstanding Questions

  • Who will provide course instruction? Will course be graded based on scrum participation or something else?
  • Will the course be integrated into curriculum or not-for-credit?
  • Which organizations are equipped to provide the support for the course?
  • What is the full extent of partnership opportunity with sponsors?