Introduction to deep learning and its uses in spatio-temporal problems and applications. The course will cover basics of deep learning and expand to a variety of network architectures widely used for spatio-temporal data including convolutional networks, recurrent networks, transformers, generative adversarial networks, diffusion models, etc. with tasks on classification, segmentation, estimation, forecasting, generation, clustering and more. We will also cover important training strategies, including transfer learning, domain adaptation, meta-learning, self-supervised learning, knowledge-guided learning, spatial-aware learning, and more. The topics will include recent advances such as large foundation models, with discussion on bothgeneral-purpose and geospatial-focused foundation models, as well aesthetics aspects such as fairness. The techniques will be discussed inthe context of spatial and spatio-temporal data and applications (e.g., Earth observation, smart city and agriculture, transportation, climate change). The introduction on the implementation side will be based on Python. Students will carry out projects based on their own research topics or interests, and the projects can be either applied (domain-driven) or technically innovative (general methodology-driven).