Skip to main content

Experiential Learning Programs

Experiential Learning

Our flagship initiative is our experiential learning program. We provides students practical experience developing software products and platforms for our clients using successful software development practices from industry.

Flagship Program

Overview

Our flagship experiential learning program enhances computer science education by connecting talented student developers with real-world software challenges. At the heart of this initiative are product teams that deliver substantial value to clients—often SLU researchers and their global collaborators—while developing open source solutions that benefit the broader academic and research community. These projects address genuine problems with meaningful impact, from research data management platforms to specialized analytical tools that advance scientific discovery.

Central to our approach is a process of continuous improvement that mirrors professional software development environments. Every team member submits pull requests at least every two weeks, ensuring consistent progress and regular code review. This cadence creates accountability while allowing for iterative refinement of both code quality and individual skills. Regular client feedback sessions validate that development efforts align with user needs and provide opportunities to pivot when requirements evolve. Dynamic team collaboration through standups, sprint planning, and retrospectives keeps projects moving forward while fostering strong communication skills.

Our teams follow rigorous open source software engineering disciplines that produce high-quality, adaptable software. This includes comprehensive version control practices, automated testing pipelines, thorough documentation standards, and systematic code review processes. Students learn to write maintainable code that others can understand, extend, and debug—skills essential for both open source contributions and professional development. These practices ensure that the software we create remains valuable long after the original development team graduates, creating lasting impact for our clients and the broader research community.

The open source nature of our work amplifies this impact exponentially. By developing software under open licenses, our student teams contribute to a global commons of research tools and infrastructure. Their code, documentation, and innovations become building blocks for countless other projects, extending the reach of their work far beyond our campus. This approach not only serves the immediate needs of our clients but also establishes our students as contributors to the larger open source ecosystem.

Our program represents a powerful talent pipeline for the software engineering industry. Students graduate with portfolios of real production software, hands-on experience with industry-standard development practices, and proven ability to work effectively in cross-functional teams. They've navigated complex client relationships, managed technical debt, and delivered under pressure—experiences that traditional classroom projects simply cannot replicate. Employers consistently recognize graduates from our program as exceptionally well-prepared for professional software development roles.

Team Roles

Client-Driven Software Development

Giving students developers a realistic development experience requires developing real software. That means we develop software products that solves real problems for real people. To do this, we engage with clients with specific needs. Our clients are at the heart of our software development teams. Clients drive decisions within each project about what gets made and what is a priority. Clients validate that the development team has built the right thing, and verify that it meets or exceeds their quality expectations.

Capstone Teams

Each product teams is staffed with a small team of undergraduate student software engineers enrolled in the Computer Science Capstone course. The teams vary in size about from three to five software engineers. Each week these developers deliver continuous improvements to their project. Team members get hands on experience as software developers, delivering value for their product. The capstone course is a 2 credit course, and this means each developer is responsible for at least 8 hours of development each week (2 hours in class, and 6 hours outside of class).

Near-Peer Leadership

Each product team is led by a graduate student serving as the Tech Lead. The Tech Lead guides the student software engineers, coordinates with the client, and serves as the products maintainer. They are enrolled in a graduate course called Developing Open Source Software Products that is scheduled to ensure they can meet with their team, and get structured support for their leadership role. In addition to working with their product teams, the course also provides them supplementary material related to managing team dynamics, building open source communities, effective software engineering, product, and project management, and general leadership abilities. This role is limited to graduate students who have demonstrated leadership potential through prior professional or academic work, and has a work expectation of at least 12 hours each week.

Projects with financial sponsorship are able to hire a dedicated undergraduate or graduate developer for up to 20 hours per week during the semester or 40 hours during semester breaks. Staff developers are also available for up to 40 hours each week. Sponsored developers are selected from the current product teams. To ensure a clear separation, students may only work for pay on products that they are not already working on for course credit. Experience has shown that hiring a dedicated developer ensures that any key deadlines are met, and enables the entire product team to be more effective and efficient developers.

Faculty Support

Faculty members play a crucial role in our experiential learning ecosystem by serving as academic advisors and industry liaisons for student development teams. Computer Science faculty provide structured oversight for both the undergraduate capstone teams and graduate Tech Lead courses, ensuring that learning objectives align with professional software development practices. They meet weekly with product teams and Tech Leas to provide technical guidance and connect classroom theory with real-world implementation challenges. Beyond direct project oversight, faculty members contribute to curriculum development and help identify potential clients from their research networks and professional connections. This ensures that our experiential learning program maintains academic rigor while preparing students for successful careers in software development.


Building Open Leadership Toolsets (BOLT)

BOLT is an intensive workshop designed to equip participants with the essential skills and knowledge needed to lead open source software projects, particularly in research contexts. This comprehensive training program addresses the unique challenges of working with clients, managing a local development teams, fostering inclusive open source communities, and balancing technical excellence with sustainable project governance. Participants learn practical strategies for code review, community building, conflict resolution, and project roadmap development, while gaining hands-on experience with the tools and workflows that successful open source maintainers use daily.

The BOLT workshop is strategically offered every summer and winter immediately before the start of classes, ensuring that new graduate student Tech Leads are fully prepared to guide their teams from day one. This timing allows participants to immediately apply their learning in real project contexts, reinforcing the workshop concepts through practical experience. Each Tech Lead is matched with a project for the coming semester and becomes a core maintainer for the codebase. Participants engage in planning exercises and develop resources to help them navigate everything from establishing contributor guidelines and managing pull requests to facilitating productive teamwork and navigating the interpersonal dynamics that determine project success.

By combining leadership theory with open source best practices, BOLT creates confident, capable project leaders who can effectively bridge technical and human aspects of software development. Graduates of the workshop consistently demonstrate stronger team management skills, more inclusive project cultures, and greater success in building sustainable open source communities around their research software projects.


Open Source in Service

Our experiential learning program has engaged with service to community in numerous wasy. Two distinct but complementary activities that demonstrate how open source principles can amplify social and community impact include a special topics course and a research innovation challenge . Both activities are grounded in the premise that open source software communities and service organizations can learn from each other—open source projects can adopt proven strategies from the charitable sector while non-profits leverage open source methodologies help community volunteers engage in innovative and effective ways.

Special Topics Course: Open Source and Community Service

This project-based course bridges technology and social impact by pairing computer science students with local non-profit partners including BWorks, the St. Louis Science Center, and the SLU Transformative Workforce Academy. Students first develop fluency in both domains, learning the operational language and success metrics of non-profit organizations while deepening their understanding of open source development practices. Through conversations with experts like UNESCO's primary open source coordinator, they understand how to articulate technical concepts to social service providers while designing software solutions that address complex community needs sustainably.

Throughout the semester, student teams work directly with non-profit staff to develop meaningful technology solutions for the partner organizations. These partnerships require students to navigate privacy considerations, accessibility requirements, and the particular needs of users with varied technology experience, while following structured engagement processes that ensure mutual benefit and sustainable outcomes.

Research Innovation Challenge

The Research Innovation Challenge operates as a semester-long competition where students develop open source software solutions for Raspberry Pi platforms that address authentic needs from active research labs on campus. Unlike traditional hackathons, this extended format allows for thorough needs analysis, iterative development, and production-ready solutions that contribute genuine value to ongoing scholarly work, from sensor networks for environmental monitoring to data collection interfaces for psychology experiments.

The challenge is evaluated by guest judges like Jeff Geerling, a renowned YouTuber and Raspberry Pi expert whose platform reaches hundreds of thousands of makers worldwide. His involvement brings community credibility and potential visibility to student work, while his evaluation criteria emphasize practical utility, documentation quality, and potential for broader community adoption. This combination of research relevance, expert evaluation, and extended development time creates conditions for innovative solutions that often evolve into ongoing research tools or foundations for further development beyond the academic context.