Traditional approaches to teaching computer science often involve complex schedules of assignments, projects, and exams. Educators can struggle to balance this schedule while teaching students a course's required hard skills, using innovative pedagogy approaches, preparing students with interpersonal soft-skills, and still disincentivizing cheating. In an effort address these issues, this experience report details the author's work in developing a sprint-based teaching method. This method combines traditional lectures, selfdirected learning, and learners as designers in a way that can simplify the scheduled demands on each student, allow the application of newer pedagogical practices, and better prepare students with both hard and soft skills. Described in this paper through four iterations of refinement, this approach allows students to choose their own projects, reduces cheating opportunities, increases instructorstudent interaction time, and transitioned well to remote learning when required by the COVID-19 shutdown. Statistically significant survey results from four class sections across two semesters suggest that students prefer this approach to a traditional lecture-based teaching style. CCS CONCEPTS • Applied computing → Education; Collaborative learning; • Software and its engineering → Agile software development.