Evolution is an on-going process. Therefore, it can be studied experimentally in organisms with suitably rapid generations. When coupled with the ability to freeze and revive organisms, one can also travel back in time. My laboratory has propagated 12 populations of Escherichia coli in a simple environment for 25 years and over 50,000 generations. Two goals of this long-term experiment are to examine the repeatability of evolution and to characterize the dynamics of evolution. We have quantified the extent of adaptation by natural selection, identified many examples of parallel evolution, and observed the origin of a novel function that transcends the usual definition of E. coli as a species. We have used new technologies to sequence whole genomes to find all of the mutations present in temporal series of clones from these populations. These genomic data provide new insights into the coupling of phenotypic and genetic evolution, and into the role of complex mutations in the emergence of key innovations.