An Agile Classroom Experience: Teaching TDD and Refactoring

room: Conference B, M — time: Wednesday 10:30-12:00
Average Rating: -

As Agile software development principles and practices gain widespread adoption there is a growing need to ensure that graduating students have a basic understanding of core technical practices such as test-driven development and refactoring. In this session we will discuss how I embrace the Agile principles of simple design, low tech tools, and evolutionary development to teach Java in a test-first manner, giving students a foundation in unit testing and refactoring while learning the Java language.

Process/Mechanics

I have been teaching Java for 3 years and would like to share my experiences and get some feedback with others who have done it or are planning on trying it. There are quite a few things that I am not covering and would like some feedback about how to incorporate the topics while not taking away from the focus on Java. This would likely take the form of a presentation (with Java examples) and maybe a CWAC (or Lounge…) session. :)

I teach an entry level course and here is some context:

Entry level programming students:

  • JUnit is intimidating
  • Little OO exerience

Informtion overload, students are learning:

  • unit testing
  • test-first
  • Java

We take some shortcuts:

  • We test getters and setters (in practice, I don’t)
  • Integration testing, not unit testing (i.e. no mocks)