Getting Oriented

Jon Reades & Fulvio Lopane

jreades.github.io/fsds/

Key information to get you started…

Module Lead Contact
Prof. Jon Reades Dr. Fulvio Lopane j.reades[at]ucl.ac.uk f.lopane[at]ucl.ac.uk Slack
PGTAs
Leo Gao, Adam Zhou, Francesco Terenzi Slack

Who We Are?

A few fun facts about your module leads…

Information

Foundations is distributed across two web sites:

  1. The micro-site: jreades.github.io/fsds/ – lectures, practicals, readings, and information about the assessments.
  2. Moodle: moodle.ucl.ac.uk/course/view.php?id=44186 – recorded sessions, booking drop-in hours, group messaging, ‘answer sheets’, and submission of assessments, as well as other formal components.

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 in Python.
  2. To teach you the basics of how to think in Python.
  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.

Overall Structure

  • 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: jreades.github.io/fsds/. These include:

  • Preparation: readings, pre-recorded lectures, quizzes/feedback.
  • In-Person: discussing readings and lectures; responding to assessment requirements; discussing issues arising from the previous week’s practical, 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.
  • Group Report (60% of module grade; 2,500 words max): A structured, small-group submission in which students respond to set questions and develop an exploratory analysis of the assigned data set.
  • Self-Evaluation (10% of module grade): A structured individual reflection combined with numerical scoring of 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!

Consequences…

So…

  • If you only code during the practical session then you will not learn how to code.
  • If you cram the night before then you will not learn how to code.
  • If you practice for 45 minutes a day then you will learn how to code.

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.

The (Old) Challenges

  • Different style of learning from what you might be used to (“I didn’t anticipate, or rather factor into my schedule, the amount of out-of-hours practice that was required to stay up to date.”).
  • Doing stats and programming at the same time and connecting this all back to the bigger picture.
  • Delayed gratification (you have to walk before you can run).
  • Easy to fall behind, but hard to catch up (“the pace is relentless”).

The (New) Challenges

  • ChatGPT (you’re going to learn when not to trust it)
  • Close reading 101 (you’re going to be asked to really read)
  • Public speaking (yes, you’re going to have do a bit of this too)

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.

Getting Help

Lots of Help ‘Out There’

You will learn cope best if you treat this like learning a new language:

  • Start simple and work up.
  • Google is your friend (really).
  • Talk with your friends (i.e. in-person or on Slack).
  • Immerse yourself and practice regularly.
  • Print out the readings and annotate them.
  • Subscribe to a ‘magazine’ or two (e.g. Medium or Pocket).
  • Learn how to ask questions (i.e. Search Stack Overflow).

Study Aids

When you need an answer right now:

When you want to learn more:

Before You Ask for Help

From the Computer Science Wiki:

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

To which we would add:

  • Use print(variable) statements liberally in your code!

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 public #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 Professional Services for support as-needed to preserve privacy.

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!)

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.

Learn from Your Mistakes

One More Thing…

You will get things wrong. We will get things wrong.

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

It’s going to be messy, but we’re really excited about it!

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 Sonoma is out 26 September, do not install it!

Additional Resources

  • See the GIS&T Body of Knowledge (BoK) for quick overview of concepts, techniques, and tools: gistbok.ucgis.org.
  • A degree of ‘plagiarism’ is acceptable in code since that’s how we learn; however, mindless copy+pasting of Stack Overflow code leads to sphagetti and, often, incorrect results or difficult-to-squash bugs. Think of it like paraphrasing.
  • To distinguish between plagiarism and paraphrasing here’s a nice tutorial that you can also use to help you with your ‘regular’ writing.

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.