In this talk, I will discuss new topics in information theory for data storage in flash memories. The applications of flash memories have expanded widely in recent years, and flash memories have become the dominating member in the family of non-volatile memories. Like magnetic recording and optical recording, flash memories have their own distinct properties, including recursive programming, block erasure, etc. These distinct properties introduce very interesting coding problems that address many aspects of a successful storage system. which include efficient data modification, error correction, high density storage, and more. In this talk, I will introduce some newly developed codes - such as floating codes and rank modulation codes - and also introduce the computation of the storage capacity. A major theme is understanding how to store information in a medium where the storage elements have different features when it transits between its different states.