I formalize the problem of care in the mathematical language of sequential decision-making. Drawing upon insights from developmental psychology, robotics, and computational cognitive modeling, I conceptualize care as a dynamic interplay between the caregiver ('one-caring') and the care recipient ('cared-for'). Caring actions maximize the utility of the cared-for at a future point when they are required to act autonomously. Since this quantity cannot be directly optimized, the focus is on enabling increasing levels of autonomy through environmental shaping, risk reduction, and safe exploration. I distinguish caregiving from helping and teaching by care's focus on exploration and autonomy that increase capacity over time. In the context of elderly care, the emphasis shifts towards preserving rather than enhancing capacity. Finally, I consider the role of caregiving in the development of moral values and the possibility of artificially intelligent agents that might someday care for us.