Jeremy Singer

Jeremy Singer

I am a lecturer in Computing Science at the University of Glasgow. I am fluent in the following languages: Haskell, Java, C, Scouse and New Testament Greek.


Location Glasgow, Scotland


  • well, a map will generate a new list with the same structure as the old list, but with each element of the old list transformed in some way - is that what you mean?

  • This is a scheduled activity, since there are distinct phases.
    Phase 1 is ‘write and upload your own code’ - this phase ends on 25 October 2022
    Phase 2 is ‘come back and look at other people’s code’ - this phase runs 25 Oct - 30 Nov 2022.
    After that, this exercise step will be closed.

  • now fixed … my fault - sorry everyone

  • fixed … apologies for this bug

  • that’s a bit annoying … I think the dataset is the same as

  • hi @JulietChristopher you are very good at finding bugs! I hope this scipy problem is fixed now - please try again if you like…

  • hi @GarrettOHanlon this sounds great. Feel free to drop me a line on email if you want any help or advice!

  • you could use Jupyter notebooks - check out the link above for how to install Jupyter. Then you can download the notebooks in each exercise step.

  • hi @JulietChristopher I am very sorry - you are finding all the bugs in our course! Please try again - it should be fixed up now. Thanks for alerting me to the problem.

  • e.g. do richer households live in more urbanised areas?

  • hi @ShonaMcAlpine I confirm the graph you report is correct. Can you think of any reasons why this is not what we might expect?

  • it sounds like you were mildly adventurous :-)

    I agree with you that minor syntax errors (misspelling -> doom) are very annoying. There are block-based languages (like Scratch) that do data analytics … these might be more convenient for school-age learners since they also run in browsers and they remove some of the syntax error risk.

  • should all be fixed now - sorry about this hiccup

  • sorry @JulietChristopher please try this practical activity again

  • sorry @NikeLo I think it is fixed now

  • please try again

  • @LucaCampobasso it is now! Sorry for delay. The way this works is in two phases: first phase - you submit some code. 2nd phase - you review other people's submissions.

  • hi @EvgenyLeviant this activity is time-dependent (I know, a bit messy in a MOOC ... sorry). It will 'go live' next week.

  • oh dear ... sorry to hear about this problem. Which browser and OS are you using?

  • @IacopoMeladoro

    > nice if Markdown were enabled for comments

    I fully agree. Please submit this feature request at

  • hi @ChloeLewis precedence rules often make brackets unnecessary, but many people don't carry round the precedence table in their heads ... see table in so maybe brackets are helpful. $ is a Haskell-specific thing ... can reduce ()s but only makes sense to people familiar with Haskell -...

  • I think the Haskell syntax is more concise, which might make it quicker to write sequences of code. But developers must bear in mind the need for code readability.

  • @FleurHardman well done for being persistent. I am guessing you have done the appropriate initialization code:

    import pandas as pd
    sunshine = pd.read_csv('sunshinehours.csv')

    Then you can extract the Year and WIN columns with something like:


    Note the double square brackets - we are supplying a list of interesting...

  • @FleurHardman sorry - the constraints of our system have limited your data analysis :-(

  • hi @FleurHardman if you stick with our online Python environment then you can only use the hardcoded data sets. However if you are feeling adventurous then download the Notebook ipynb file (see first attachment above) and then load it at

  • this looks like a fantastic resource! I just generated a sample dataset - the questions are brilliant - ideal for high school engagement.

  • love this idea!

  • yes the NumPy and Pandas libraries in Python are fairly similar to the R style of programming

  • hi @MrEvans great to hear about NPA Data Science takeup. Peter and I played a (small) part in the curriculum scoping of this award - hopefully it's a nice engaging set of learning activities with valuable outcomes.

  • and do you think they would be suitable for school-age learners in your educational setting?

  • good - this is exactly the kind of graph you might see in Strava or other sports/fitness apps. Probably with week number on x axis, distance on y axis. Because the data is a time series, a line graph might also be appropriate.

  • thanks! you have uncovered a bug in the exercise ... I have fixed it now :-)

  • thanks for this detailed and engaging description of a practical classroom activity

  • thanks @RosemaryMcGuinness pandas is a common library used in the 'real world' by professional data scientists so it is good to get an insight into how it works ... e.g. see

  • hi @kelvinGokumkitgak it should work ok on phones - what problem are you seeing with the code?

  • I strongly endorse this ambition of yours to introduce data science in schools across Scotland. Feel free to get in touch (via email?) if we can support you at the University of Glasgow

  • classical languages! You should get on just fine!

  • @NicolaTrafford hi and thanks for getting involved! I hope the coding exercises work ok on iPad devices. Note that there are simpler, more graphical data science tools suitable for primary age learners

  • hi @FavourNnagbo please can you be more specific? We want to help you, if we can understand the problem.

  • do feel free to change the code! You can always click the 'reset' button to put it back to the original code.

  • hi @JessicaGalliver please can you try again - sorry for earlier problem

  • hi @MaryMora this sounds interesting. Do you have links to any more info?

  • hi @MarcRodriguez 'import qualified' allows you to use names from the module, but you need to refer to them with their fully qualified name (including the module prefix). Sometimes this helps if there are name clashes. See the very complicated table at for full details :-)

  • @AlastairLeith sorry to hear this. I guess brew doesn't work for M1 mac yet either?

  • hi @BurakUslu you might need to install the random library - are you using Stack?