Skip to content

smkirby/SimLang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Copyright (c) 2009-2019 Simon Kirby, with contributions from Kenny Smith, Jennifer Culbertson, Andrew Smith

This is a collection of interactive notebooks for a course taught in the Centre for Language Evolution at Edinburgh showing how to model the evolution of language at all timescales - from individual utterances, through individual learning, cultural transmission, and biological evolution. This course covers many of the major research breakthroughs over the past two decades, and shows how easy it is to build simulations of language evolution. It is suitable for anyone, even without any background in coding, and uses only a very basic subset of the programming language, Python, throughout.

Although this course is taught in Edinburgh, you're welcome to try it at home if you're not a student using Binder. I've also taught intensive versions of this course as week-long summer/winter schools, so please do get in touch if you're interested in this!

Please note that these documents are very much under construction and the text in particular is likely to be full of typos for some months yet!

Course organisation, 2019

The course meets on Tuesdays, Thursdays, and Fridays throughout semester 2. When there is a lecture, the whole class meets together 14:00 - 15:00. When there is a lab, the class will split into three groups and meet either 14:00 - 15:00, 15:00 - 16:00, or 16:00 - 17:00.

Students should read the lecture notes (by following the links above or below on the schedule, or on the notebook server for the course). These contain links to the papers we'll be reading as part of the course.

Schedule (subject to change)

  1. Lecture: why simulate language? (15/01) (slides)
  2. Lab: python intro (17/01) (plus Introduction to notebooks)
  3. Lab: python intro continued (18/01) (plus Answers and Walkthrough)
  4. Lecture: modelling innate signalling (22/01) (slides)
  5. Lab: signalling (24/01) (plus some Answers and Walkthrough)
  6. Lecture: evolving signalling (25/01) (slides)
  7. Lab: signalling in populations (29/01) (some Answers)
  8. Lab: evolving signalling (31/01) (some Answers)
  9. Lecture: evolving optimal signalling (01/02) (slides)
  10. Lecture: from evolution to learning (05/02) (slides)
  11. Lab: learned signalling (07/02) (some Answers)
  12. Lecture: cultural evolution (08/02) (slides)
  13. Lab: iterated learning (12/02) (some Answers)

Break

  1. Lecture: from individual to population (26/02) (slides)
  2. Lecture: Bayesian learning (28/02) (slides)
  3. Lecture: iterated Bayesian learning (01/03) (slides)
  4. Lab: iterated Bayesian learning (05/03) (some Answers)
  5. Lecture: Greenbergian universals (07/03) (slides)
  6. Lab: Greenbergian universals (08/03) (some Answers)
  7. Lecture: compositionality (12/03) (slides)
  8. Lab: compositionality from iterated learning (14/03) (some Answers)
  9. Lecture: culture and innateness (15/03) (slides)
  10. Lab: extending iterated Bayesian learning (19/03) (some Answers)
  11. Lecture: evolution of learning bias (21/03) (slides)
  12. Lecture: summary, and feedback on assignment 1 (22/03) (slides)

Assessment

There are two assessments, in the form of two take-home exams with short-answer questions. Some questions will require running some simulations and presenting the results as a graph or set of graphs.

  1. Assessment one, handed out Thursday 21st February, submission deadline Thursday 7th March noon (via Learn), marks returned Thursday 28th March.
  2. Assessment two, handed out Thursday 28th March, submission deadline Thursday 11th April noon (via Learn), marks returned Thursday 2nd May.

For undergraduate students, the two assessments are weighted equally. For postgraduate students, the second assessment will count for 70% of the final mark.

Using the interactive notebooks

The interactive Python notebooks work using a "Jupyter Server". The University of Edinburgh provides one that you can log into here: https://noteable.edina.ac.uk/login

Alternatively, if you're not a student at the University of Edinburgh, you can use Binder to interact with the notebooks on a temporary free server: Binder

If you're using the noteable service rather than Binder, you'll need to download the files onto the server. Once you've logged on to the noteable service you may have to either "reconnect" or "start" your server. Once you've done that you'll be given an interface that will let you upload notebooks and navigate the files you'll be creating. First, we need to upload the notebooks from this github site. To do that, you need to open a new notebook that you'll use to update the files regularly (whenever a new notebook is posted for example). Follow these steps:

  • Click on the "new" menu.
  • Select "Python 3". This will open a brand new notebook.
  • In the first "cell" of the notebook, you need to enter some code that will handle the transfer from the github site.

Copy and paste the following code into the cell:

!rm -rf simlang
!git clone https://github.com/smkirby/simlang
!mkdir -p simlang_local
!cp -nr simlang/* simlang_local
  • Run this code by pressing SHIFT + ENTER. This will transfer all the current simlang content into your notebook server. It also makes a "local" copy of the code in a folder called "simlang_local". This is the one you should do your work in, safe in the knowledge any changed you make won't get overwritten.
  • Rename your notebook something like "Update Course" by clicking on the "file" menu and then "rename"
  • Save the notebook by clicking "file" and then "save and checkpoint".

Now you're done. You can close that browser tab. Next time you want to add new notebooks from the course website, just open the notebook "Update Course.ipynb" in the file list in the first noteable window and run that first cell again by pressing SHIFT + ENTER.

You can now click on the "simlang_local" folder in the file list in the noteable window and open any of the notebook files that are there. If you mess anything up, you can delete the notebook you're working on, run the update course notebook again and you'll have a fresh file to work from. (But be careful, you won't be able to undo this!)

Simon Kirby, University of Edinburgh, 2019

All aspects of this work aside from the Software itself is licensed under a Creative Commons Attribution 4.0 International License. For Software license, see LICENSE file.

About

Simulating Language Course

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published