DS/CS‑519: Spark! Software Engineering Practicum
Course Overview
Project-based practicum where students work in teams to deliver production-quality software for real-world clients. Emphasizes agile methods, GitHub workflows, code review, testing, and collaboration with nontechnical stakeholders.
Teaching Impact
September 2018 – Present: Taught or oversaw the course across multiple offerings, beginning with CS‑501T (CS-only). Continued after cross-listing as DS/CS‑519. Recruited and supported new instructors starting in Spring 2023. Regularly guest lecture on agile practices and team onboarding.
Designed to prepare students for industry software roles by embedding them in semester-long engagements with external or campus partners.
Learning Objectives
Students develop professional software engineering skills through:
- Agile Development: Sprint planning, stand-ups, retrospectives
- Version Control: Advanced Git workflows and collaborative development
- Code Quality: Testing, code review, and documentation standards
- Client Communication: Requirements gathering and stakeholder management
- Project Delivery: End-to-end software development lifecycle
Course Structure
- Client Projects: Real-world software development for external partners
- Team-based: 4-5 student teams working collaboratively
- Agile Methodology: 2-week sprints with regular client check-ins
- Professional Tools: GitHub, project management software, CI/CD
- Mentorship: Industry professionals as project advisors
Impact and Outcomes
- Industry Preparation: Students gain experience with professional development practices
- Portfolio Development: Students build substantial projects for their portfolios
- Network Building: Direct connections with industry partners and mentors
- Career Readiness: Many students receive job offers from client organizations
Spark Program Integration
This course is a cornerstone of the Spark experiential learning program, directly connecting students with industry partners for authentic project work.