How We Do It

Here you can find a bunch of resources that we’ve either created or found helpful in the past. This is mostly intended as a repository of tips, tricks and resources for our students, but we think it might be handy more generally. This page is still under development so stay tuned and hopefully we’ll be adding to it as we go!


Cognitive Science Resources

  • The Jacobs' lab at Rochester maintain a really nice set of Computational cognitive science cheat sheets, covering a broad range of topics.
  • Tom Griffiths' Bayesian reading list provides extensive background on Bayesian inference. If you're interested in nonparametric Bayesian methods, you might also want to look at Sharon Goldwater's reading list.
  • While at Adelaide I taught a computational cognitive science course with my colleague Dani Navarro, now at Sydney. The course is now defunct but the content is (we think) still broadly useful for people with some (not extensive) programming background who want an introduction to some of the topics that we study. It is archived here.

Statistical Tools

  • Although it's not without flaws, R is a great language for statistical analysis, and is also a common choice for implementing cognitive models. Using Rstudio instead of the default GUIs is generally a good idea. The R website contains links to a lot of good introductory resources for R, including some very handy mailing lists. R seek provides a R-specific search engine. My colleague Dani Navarro has written an excellent (free) introductory textbook to statistics and R intended for psychology students, which I used when I was teaching statistics to undergrads.
  • For building Bayesian models, we've started to switch to Martyn Plummer's JAGS (Just Another Gibbs Sampler) software. JAGS is a platform-independent tool that is almost identical to WinBUGS in syntax. John Kruschke maintains a good blog on the use of BUGS/JAGS models for doing Bayesian data analysis. We hear he has a book too...
  • Almost every experiment we've ever run has involved taking more than one measurement of each person in the study. In some cases it's possible to handle this kind of data using repeated measured ANOVA, but it's not a very good solution to the problem except in very limited cases. Mixed models provide a more general solution. It's easy to build Bayesian mixed models using JAGS (see above), but there are a variety of tools out there. This page provides a good comparison of statistical tools available for fitting mixed models.

Programming More Generally

  • While much of our programming is done in R (see above) Matlab and the open source equivalent Octave are also widely used for building models in cognitive science, and are used a lot in our lab. Matlab is also commonly used for designing custom GUIs for running experiments. Beginners are often advised to start with Matlab/Octave since they're pretty simple to learn, and most of the other people in the lab will be familiar with it.
  • Although it's not as common in cognitive science applications, many people swear by Mathematica for more mathematical work. A free open source alternative is Sage. Neither one is being used much in the lab right now.
  • Other languages currently in use around the lab are Python, JavaScript (and JQuery) for web programming, and when speed is important (rarely nowadays), C++.

Document Preparation

  • Most our our papers are written in LaTeX rather than a word processor. Windows users will need to install ghostscript first, then install a LaTeX distribution like MiKTeX. On a Mac, MacTeX does all the hard work, and TeXShop provides a nice user interface. For Linux, Kile is a fairly hassle-free editor. To learn how to use LaTeX, the wikibook on the topic looks pretty good.
  • If you're using LaTeX for document preparation, then you'll need a BiBTeX-friendly reference manager. You can either maintain your own .bib file, or you could look into something like Zotero, a free reference manager that is nicely integrated with most browsers (it began as a Firefox extension).

Scientific Writing

  • A lot has been said about scientific writing. Too much. Scientific writing is not special. Good scientific writing is good everyday writing, plus one or two additional constraints. If you can write a clean and simple document in everyday language, then you can write a good scientific paper. A good first guide is George Orwell's classic essay Politics and the English language. Every Ph.D. student should read this essay. We are especially fond of his short list of rules. In particular, Rule 2 advises that you should never use a long word where a short one will do, and Rule 3 tells us that if it is possible to cut a word out, always cut it out. These rules are almost always correct. The few exceptions to these rules are covered nicely by Rule 6: Break any of these rules sooner than say anything outright barbarous. In our experience, the overwhelming majority of student writing errors are covered by one of Orwell's six rules. Read them. Follow them.

Useful Organisations