This project is designing, implementing, and assessing a new introductory computer science course by adapting and implementing three exemplary practices: test-driven development, pair programming and laboratory practica. Each practice plays a complementary role in the course. Test-Driven-Development (TDD) motivates students to adopt a systematic approach to developing and testing their programs, pair programming provides design and debugging assistance while leveraging the benefits of collaborative learning, and laboratory practica increase students' motivation to develop their individual programming skills. The project has three distinct goals: adapt and integrate the three practices in the course; assess success and retention rates, the development of students' individual programming skills, students' use and mastery of TDD, and the effects of pair programming; and refine and disseminate the materials developed for our course.