This document describes an innovative approach used to teach programming techniques to repeat computer science students. Typically 35-45% of students fail the course the first time. The approach integrated flipped classroom and problem-based learning for repeat students. After implementing this approach in two student groups, the failure rate was reduced to 20% for the first group and 0% for the second group, showing improved performance over traditional teaching methods. The integration of these student-centered approaches for repeat students significantly improved learning outcomes.