1 of 10

Teaching programming as a computational tool in an introductory data science course

SERVEH SHARIFI - STUART KING

SCHOOL OF MATHEMATICS – EDINBURGH FUTURES INSTITUTE

JANUARY 2024

2 of 10

Insights Through Data

  • 10 credit core course for all students in the EFI MSc programmes (an option between two courses)
  • Fusion format of teaching (online and onsite students)
  • 90 Students (75 onsite- 15 online), 2 lecturers and 2 TAs
  • Covered topics: �- Introduction to programming in Python�- Introduction to Statistical modelling (linear regression)�- Introduction to Machine Learning (classification, clustering)
  • Assessment:�Individual Programming Practical Tasks (40%)�Group Critical Data Analysing Project (60%)

3 of 10

Students’ prior experience

4 of 10

Covered topics

Week 1 - 2 - 3

Getting started with working with data and Python

Week 4 – 5 – 6

Statistics (summary statistics, normal linear regression model, logistic regression model, assessment of models)

Week 7 – 8

Machine Learning (classification, clustering)

Week 9

Limitations, bias, ethics

Week 10 – 11

Working on the group project

5 of 10

Jupyter notebooks on Noteable

6 of 10

Help with programming

  • Programming workshops on even weeks
  • Pair-programming
  • Rubber ducks
  • Optional drop-in Q&A sessions on odd weeks
  • Q&A channel on Teams
  • Introduced online books
  • Practice on CodeRunner

https://pairprogramming.ed.ac.uk/

https://en.wikipedia.org/wiki/Rubber_duck_debugging

7 of 10

CodeRunner on STACK

8 of 10

Nbgrader on Noteable

  • 3 Assessments: Individual Programming Practical Tasks (40%)
  • In Jupyter notebooks and familiar to students
  • Combination of auto-marking and manual-marking�

9 of 10

Challenges

  • Effectively communicating the importance of learning some programming to work with data
  • Assuming no programming background from students and spending enough time on building up confidence
  • Ensuring that the course content is useful for all levels:�- Statistics�- Machine Learning�- Python programming�- The 60% final project on multidisciplinary topics (educational, environmental, health data)

10 of 10

Challenges

  • Programming workshops on Teams for online students: �- The need for at least one lecturer/TA for supervising and helping�- Extra time for forming groups and starting calls�- Different experience of pair-programming by sharing screens�- Pair-programming often turned into group-programming