Initially codes were studied over the binary field and then over finite fields in general. Following the understanding that certain families of codes were the images of line codes over Z4 codes over rings started to be studied. Codes are now studied over a variety of rings with numerous interesting questions arising from their study.
Self-Dual codes are codes that are equal to their orthogonal. They have interesting connections to unimodular lattices and symmetric designs. One of the most fascinating aspects of their study is the use of invariant theory to determine all possible weight enumerators for self-dual codes over a given ring.
MDR and MDS codes are codes meeting the algebraic and combinatorial generalizations of the Singleton bound. They have numerous applications to finite geometry.
Weight enumerators are polynomials which describe the weight distribution of the vectors in a code. The weight enumerator for the orthogonal can be determined by using the MacWilliams relations. These relations apply for codes over Frobenius rings.
Latin squares were first defined by Euler in his landmark 1782 paper. Most of the fundamental questions involving mutually orthogonal latin squares remain open centuries after they were first posed. Nets are the geometric equivalent of a self of mutually orthogonal Latin squares.
Finite affine and projective planes are designs that satisfy the classical axioms of finite geometry. Fundamental questions about their existence remain open.
My coauthors and I have defined combinatorial games on the finite planes and on Japanese ladders. These games can be found on my publication page.
Japanese ladders are a visual way of representing permutations. They are related to the braid group which is group which arises in topology and relates to knot theory.