This course introduces computational thinking and applied data science practice related to urban domain. Students learn principles, tools, and techniques of using data for urban problem-solving through hands-on exercises in Python. The course also introduces unique aspects of urban data computing, such as heterogeneous data typology, real-world applications in cities, and socio-technical considerations involving ethics, fairness, and privacy. Students learn how to use data computation for public good by building applied data science projects relevant to urban problem solving or/and computational social science.