# Syllabus

The course is divided into a set of interactive lectures and labs. Lectures are meant to provide students with concepts and theories. Labs are self-directed for practising programming in Python. Use this time to complete assignments in class with ample support from TAs.

## An overview of all course sessions

|     Week     	|       Lecture       	|                 Topic                	|            Learning Goals           	|         Python Libraries        	| Labs [^1] 	| Assessment [^2][^3] 	|
|:------------:	|:-------------------:	|:------------------------------------:	|:-----------------------------------:	|:-------------------------------:	|:---------:	|:-------------------:	|
|      W1      	|          L1         	| Introduction to Spatial Data Science 	|                                     	|   Anaconda and Jupyter, Numpy   	| Lab 0 + 1 	|                     	|
|              	|          L2         	|        Spatial and Urban Data        	|                                     	|                                 	|     "     	|                     	|
|      W2      	|          L3         	|             Data Grammar             	|           Obtain, Discuss           	|         Pandas, Seaborn         	|   Lab 2   	|                     	|
|              	|          L4         	|           Data Engineering           	|       Manipulate, consolidate       	|              Pandas             	|     "     	|                     	|
|      W3      	|          L5         	|         EDA and Visualisation        	| Discuss, manipulate and Consolidate 	| Geopandas, Matplotlib, Rasterio 	|   Lab 3   	|     Assignment 1    	|
|              	|          L6         	|           Geo-Visualisation          	|              Interpret              	|                                 	|     "     	|                     	|
|      W4      	|          L7         	|     Networks and Spatial Weights     	|          Describe, Analyse          	|      Networkx, Osmnx, Pysal     	|   Lab 4   	|                     	|
|              	|          L8         	|   Exploratory Spatial Data Analysis  	|          Describe, Analyze          	|                                 	|     "     	|                     	|
|      W5      	|          L9         	|     Machine Learning for Everyone    	|                Apply                	|   Sklearn, Scipy, Statsmodels   	|   Lab 5   	|     Assignment 2    	|
|              	|         L10         	|    Anatomy of a Learning Algorithm   	|                Infer                	|                                 	|     "     	|                     	|
|      W6      	|         L11         	|              Clustering              	|                Apply                	|      Pysal, Sklearn-Cluster     	|   Lab 6   	|                     	|
|              	|         L12         	|       Dimensionality Reduction       	|                Apply                	|                                 	|     "     	|                     	|
| Winter Break 	|                     	|                                      	|                                     	|                                 	|           	|                     	|
|      W7      	|         L13         	|      Spatial Density Estimation      	|                Infer                	|           More Sklearn          	|   Lab 7   	|     Assignment 3    	|
|              	|         L14         	|       Responsible Data Science       	|                Create               	|                                 	|     "     	|                     	|
|      W8      	| Project Preparation 	|                                      	|                                     	|                                 	|           	|                     	|
|      W10     	|                     	|                                      	|                                     	|                                 	|           	|  Final Project [^4] 	|

[^1]: Labs are interactive Jupyter notebooks for practicing programming. Each lab is accompanied by homework exercises for practice. Homeworks are not graded, but your peers could give you feedback and they are meant to be done in the lab sessions. We will provide some tips to facilitate this. Constructive feedback from other people is an excellent way to learn.
[^2]: Graded Assignments are individual activities. Assignments are due on Tuesdays at 1800 of the specified week above.
[^3]: Grades and feedback released a week after submission on Fridays at 1800.
[^4]: Final Project is a group activity.

## Format

Seven weeks of:

- **At-home Prep. Materials**: videos, podcasts, articles... 1h. approx. (most recommended!)
- **2x 1h. Lectures**: concepts, methods, examples, crtiical discussions
- **2x 2h. Labs**: hands-on, application of concepts, Python
  (highly *employable*)
- **Further readings (optional!)**: how to go beyond this course

## Content

- **Weeks 1-4**: "big picture" lectures + introduction to
    computational tools (learning curve) + lots and lots of data + lots of visualisation
- **Weeks 5-7**: lots of spatial, network and machine learning concepts + responsibility
- **Weeks 8-10**: wrap up + prepare an awesome final project in groups

## Logistics

- **Course Material**: This website only!
- **Recordings of Lectures**: Lectures are not recorded.
- **Announcements, Submission + Feedback, Group Formation + Peer Review and Grading**: Brightspace

## Self-directed learning

- **Prepare** for the lectures and labs
- **I won't** be leading/lecturing at the computer labs. TAs will be present for abundant help and feedback
- **Go over the notebooks** before the lecture and the lab
- If the first time you see a notebook is at the lab, you may struggle to catch up. The best thing to do is to go over the notebooks at home and prepare a set of questions to ask the TAs.
- **Bring** questions, comments, feedback, (informed) rants to class/labs. The more you bring, the more we all learn.
- **Collaborate** (it's **NOT** a zero-sum game!!!)

## Assessment

The **summative** [assessments](../assessment_index.md) are `graded` components and contribute to the final mark for the course as follows:

* Assignment 1 (15%)
* Assignment 2 (15%)
* Assignment 3 (20%)
* Final Project (50%)

## A note on exams

Time-constrained exams do not measure any learning. Putting students under high-stakes environments only benefit those who can recall knowledge under pressure and is a filtering mechanism. In my opinion, that is a uselesss life-skill. This course **does not have any exams**.

## More help!!!

This course is much more about **"learning to learn"** and **problem
solving** rather than acquiring specific programming tricks or stats wizardry.

- Learn to **ask** questions (but don't expect exact answers all the time!!!)
- **Help** others as much as you can (the best way to learn is to teach)
- **Search** heavily on your favorite browser, search engine, large language model + stack overflow (be mindful that chatGPT is a [stochastic parrot](https://dl.acm.org/doi/10.1145/3442188.3445922) and cannot replace humans in critical thinking, learning and inference)
