The current rate of growth of energy consumption for AI computation is unsustainable. In-memory computation (IMC) shows promise to upend this trajectory by providing a new, energy-efficient concept that breaks the von-Neumann bottleneck of traditional computation. In this tutorial, I overview the principles of IMC with specific focus on using phase-change memory (PCM). In addition to covering the potential of analog IMC, challenges with using PCM at a device and materials level will be reviewed, and recent opportunities to address those challenges will be highlighted. In addition, the importance of co-optimizing algorithms and architectures will be discussed.