Getting Started

Jon Reades - j.reades@ucl.ac.uk

1st October 2025

jreades.github.io/fsds/

Key information to get you started…

Module Lead Contact
Jon Reades Email, Slack
Lecturers
Ollie Ballinger, Sukankana Chakraborty Slack
PGTAs
Leo Gao, Adam Zhou, Maria Wood Slack

Who is this Guy?

A few fun facts about your module lead…

Useful Information

Foundations is distributed across two web sites:

  1. The micro-site: jreades.github.io/fsds/ – lectures, practicals, readings, and information about the assessments. This will remain accessible to you after graduation.
  2. Moodle: moodle…?id=54436 – recorded sessions, booking drop-in hours, group messaging, ‘answer sheets’, and submission of assessments, as well as other formal components. This is tied to your enrolment at UCL.

And don’t forget about this quick introduction to Python: jreades.github.io/code-camp/!

Where Does FSDS Fit?

Geographic Information Systems (GIS)

  • Foundations of spatial analysis
  • Working with geo-data

Quantitative Methods (QM)

  • Foundations of statistical analysis
  • Working with data

Foundations of Spatial Data Science (FSDS)

  • Foundations of applied spatial and statistical analysis
  • Integrating and applying concepts from GIS & QM to a problem
  • Developing programming and practical analysis skills
  • Seeing the ‘data science’ pipeline from end to end

What Are We Trying to Do?

This class hopes to achieve four things:

  1. To teach you the basics of how to code.
  2. To teach you the basics of how to think through code.
  3. To teach you how to engage with data critically.
  4. To help you integrate concepts taught across Term 1 and prepare you to apply them in Term 2.

These skills are intended to be transferrable to post-degree employment or research.

The Challenges

  • To learn a bit of programming and to connect it to the bigger picture.
  • To be ok with learning to walk before you run.
  • To learn not to rely (too much) on ChatGPT.
  • To communicate your thoughts through code and text.

The Rewards

  • Skills that are highly transferrable and highly sought-after professionally.
  • Problem-solving and practical skills that are valued by the private and public sectors.
  • A whole new way of seeing the world and interacting with it.
  • Lots of support along the way… if you remember to ask for it!

See this thread on moving from academia to data science.

Structure

Narrative ‘Arc’

  • Part 1: Foundations: Weeks 1–5 to cover the ‘basics’ and set out a data science workflow.
  • Part 2: Data: Weeks 6–10 look at the same data through three lenses.
  • Part 3: Bonus: Weeks 11–12 additional content if you want it.

Week-to-Week

The specific activities for each week can be found on the microsite. These include:

  • Preparation: readings, pre-recorded lectures, identifying areas for feedback.
  • In-Person: discussing readings and lectures; discussing issues arising from the previous week’s practical, responding to assessment requirements, and some ‘live coding’.
  • Practicals: working through a weekly ‘programming notebook’ with support from your PGTAs.

Bring Your Computer

Please remember to bring your own computer to the practical sessions! The tools we use are not installed on cluster systems.

Assessments

  • Timed, Open Book Exam (30% of module grade): A quiz requiring a mix of numeric and textual answers to short data analysis questions for which you must write the code.
  • Reproducible Analysis (25% of module grade): A small-group submission of a ‘tangled’ document that demonstrates reproducibility through an exploratory analysis of the assigned data set.
  • Structured Report (35% of module grade): A structured, small-group submission which responds to set questions and develops an exploratory analysis of the assigned data set.
  • Self- and Peer-Evaluation (10% of module grade): A short individual reflection combined with numerical scoring by peers on their contribution to the group’s outcomes.

Formats & Due Dates

  • Timed, Open Book Exam: is a Moodule quiz due Friday, 21 November 2025 (after Reading Week) and it will focus on content from the first five weeks of class.
  • Reproducible Analysis: is a Quarto document due Tuesday, 16 December 2025 and written in small groups to demonstrate reproducibility through an exploratory analysis of the assigned data set.
  • Structured Report: is a PDF (output from Quarto) due Tuesday, 16 December 2025 written in small groups which responds to set questions and develops an exploratory analysis of the assigned data set.
  • Self- and Peer-Evaluation: is a Moodle ‘IPAC’ assessment due Tuesday, 16 December 2025 combining short individual reflection combined with numerical scoring by peers on their contribution to the group’s outcomes.

How to ‘Ace’ the Assessments?

Study like you’re learning a new language. Do the readings. Talk to other students (especially in your group). Ask for help when you need it!

Don’t take my word for it, Prat et al. (2020) in Nature link language learning to programming language learning!

Actual Feedback…

I was really struggling with the concepts of lists, dictionaries and iterations (I basically could not do any of Practical 3 without panicking) and I was telling that it felt like Workshop 3 was all in a foreign language - I was so lost. 

 But both yesterday and today, I have been over all the content, recordings and even code camp again and I’ve just had a penny drop moment, I could cry woohooo!!!!!! 

I really appreciate all the effort you’ve put into recording the concepts ahead of lectures and the way you’ve structured the module, although it is very fast-moving you have provided all the resources for us to do well.

More Feedback

I just wanted to update you on my progress. Since flipping the content round following your advice, I have been feeling much much better. I followed what you were doing in the workshop and also have completed the practical in about half the time than I usually do. Thanks so much for responding and for your effort with this module.

Last Year 1

In the first 3 weeks we were thrown a lot of information about different concepts (Git, Jupiter, Docker, Python) and it was very overwhelming. I think, the amount of information we were supposed to learn within the first month was too much.

… and

In FSDS, I’ve tried my best to review and catch up but I don’t know why I still struggle a lot figuring the whole picture. Suddenly the script went from simple into complex really quick.

… vs.

The technical content is very slow, and we don’t write a lot of code in the practicals, so I feel like I’m not learning and remembering it very well.

Last Year 2

The discussion in the lecture is just a very low-level recap of the readings… I think it might be better for Jon to give mini lectures (e.g. on ethics, data quality etc.) which tie the points together.

vs. 

I think it’s not necessary to spend too much time discussing reading materials at class. Instead, we can ask some questions on slack after class.

Last Year 3

These courses need clearer guidance to help students set learning goals and show them what they need to do in each class. For example the tasks and assignments for each class are clearly stated before the reading material is presented.

I’m quite confused about The content of practical 1-5. I know python has so many package’s and data types. Maybe combining the real data analysis with detailed data learning (objects, function) is better to understand.

The slides can be a little clearer and write more words.

Getting Help

Lots of Help ‘Out There’

When you need an answer right now:

When you want to learn more:

When to Ask for Help

  • When you get warning messages from your computer’s Operating System.
  • When you cannot get the coding environment to run at all.
  • When even simple commands return line after line of error code.
  • When you have no clue what is going on or why.
  • When you have been wrestling with a coding question for more than 20 minutes (but see: How to Ask for Help!)

Before You Ask for Help

From the Computer Science Wiki:

  • Draw a picture of the problem
  • Explain the problem out loud to a friend, teddy bear or whatever (really!)
  • Forget about a computer; how would you solve this with a pencil and paper?

To which we would add:

  • Use print(variable) statements liberally in your code!
  • icecream is nice, but a little overwhelming.

How to Ask for Help

In addition to what we have provided, we like the “How to ask programming questions” page provided by ProPublica:

  1. Do some research first.
  2. Be specific.
  3. Repeat.
  4. Document and share.

If you find yourself wanting to ask a question on Stack Exchange then they also have a guide, and there are plenty of checklists.

Where to Ask for Help

There is no shame in asking for help. None. We are here to support your learning and we have chosen a range of tools to support that:

  • Slack: use the #fsds channel for help with coding, practical, and related course questions.
  • Drop-in Hours: use Booking Form
  • Out-of-Hours: use email to raise personal circumstances and related issues for focussed support.
  • Emergencies: contact Bartlett.Postgraduate (CASA)1 for support as-needed and/or to preserve privacy.

Learn from Your Mistakes

One More Thing…

You will get things wrong. We will get things wrong. We have tried to offer suggestions for how to read, how to think about what you’re learning, and how to manage distractions. But if you need help we are here for you!

The Academic Communication Centre also offers lots of support, including drop-in sessions, tutorials, and writing workshops.

We will assume that you are trying your best. Please assume the same about us!

And Finally…

Auto-Updates

Do not allow your computer to auto-update during term. Inevitably, major upgrades will break developer tools. Do this by choice only when you have time. MacOS Tahoe was released 15 September; if you haven’t already updated, please do not install it!

Additional Resources

ACC QR Code

ACC QR Code
  • See the GIS&T Body of Knowledge (BoK) for quick overviews of concepts, techniques, and tools.
  • Investigate UCL’s ACC and sign up to access resources and 1:1s through Moodle using the QR code.

Thank You

References

Prat, Chantel S, Tara M Madhyastha, Malayka J Mottarella, and Chu-Hsuan Kuo. 2020. “Relating Natural Language Aptitude to Individual Differences in Learning Programming Languages.” Scientific Reports 10 (1). Nature Publishing Group UK London:3817.