Covers the 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. Covers training strategies, transfer learning, domain adaptation, meta-learning, self-supervised learning, knowledge-guided learning, spatial-aware learning, etc. Recent advances such as large foundation models, with discussions on both general-purpose and geospatial-focused foundation models, and ethics aspects such as fairness. The techniques will be discussed in the context of spatial and spatio-temporal data. The implementation side will be based on Python. Students will do projects based on research topics or interests, with applications (domain-driven) or technically innovative (general methodology-driven).