  We describe a novel way in which students can learn the cipher systems
without much supervision. In this work we focus on learning symmetric ciphers
by altering them using the agile development approach. Two agile approaches the
eXtreme Programming (XP) and the closely related Test-Driven Development (TDD)
are mentioned or discussed. To facilitate this development we experiment with
an approach that is based on refactoring, with JUnit serves as the automatic
testing framework. In this work we exemplify our learning approach by
test-infecting the Vernam cipher, an aged but still widely used stream cipher.
One can replace the cipher with another symmetric cipher with the same
behavior. Software testing is briefly described. Just-in-time introduction to
Object-oriented programming (OOP), exemplified by using JavaTM, is advocated.
Refactoring exercises, as argued, are kept strategically simple so that they do
not become intensive class redesign exercises. The use of free or open-source
tools and frameworks is mentioned.
