We implement a finite state machine by representing state, transition rules and input symbols with DNA components. Transitions between states are triggered by a clock signal which allows synchronized, parallel operation of two (or more) state machines. The state machine can be re-programmed by changing the input symbols.