.. _tutorial-list:

*******************
A List of Tutorials
*******************

Introduction to Agda
====================

- Ulf Norell and James Chapman.
   - `Dependently Typed Programming in Agda <http://www.cse.chalmers.se/~ulfn/papers/afp08/tutorial.pdf>`__.
     This is aimed at functional programmers.
- Ana Bove and Peter Dybjer.
   - `Dependent Types at Work <http://www.cse.chalmers.se/~peterd/papers/DependentTypesAtWork.pdf>`__.
     A gentle introduction including logic and proofs of programs.
- Ana Bove, Peter Dybjer, and Ulf Norell.
   - `A Brief Overview of Agda - A Functional Language with Dependent Types <http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.Documentation?action=download&upname=AgdaOverview2009.pdf>`__
     (in TPHOLs 2009) with an example of reflection.
     `Code <http://www.cse.chalmers.se/~ulfn/code/tphols09/>`__
- Yoshiki Kinoshita.
   - `On the Agda Language (in Japanese) <http://ocvs.cfv.jp/tr-data/PS2008-014.pdf>`__
   - `Slides (English) <http://staff.aist.go.jp/yoriyuki.yamagata/AgdaTutorial20090312.ppt>`__
   - `Slides (Japanese) <http://staff.aist.go.jp/yoriyuki.yamagata/AgdaTutorial20080908.ppt>`__
- Anton Setzer.
   - `Lecture notes on Interactive Theorem Proving <http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/interactiveTheoremProvingForAgdaUsers.html>`__.
     Swansea University. These lecture notes are based on Agda and contain an
     introduction of Agda for students with a very basic background in logic
     and functional programming.
- Daniel Peebles.
   - `Introduction to Agda <http://www.youtube.com/playlist?p=B7F836675DCE009C>`__.
     Video of talk from the January 2011 Boston Haskell session at MIT.
- Conor McBride.
   - `Introduction to Dependently Typed Programming using Agda <http://www.youtube.com/playlist?list=PL44F162A8B8CB7C87>`__.
     (videos of lectures).
     `Associated source files, with exercises <http://personal.cis.strath.ac.uk/~conor/pub/dtp/>`__.
- Andreas Abel.
   - `Agda lecture notes <http://www2.tcs.ifi.lmu.de/~abel/projects.html>`__.
     Lecture notes used in teaching functional programming: basic
     introduction to Agda, Curry-Howard, equality, and verification
     of optimizations like fusion.
- Jan Malakhovski.
   - `Brutal [Meta]Introduction to Dependent Types in Agda <http://oxij.org/note/BrutalDepTypes/>`__
- Thorsten Altenkirch.
   - `Computer Aided Formal Reasoning <http://www.cs.nott.ac.uk/~txa/g53cfr/>`__
     \- online lecture notes
- Daniel Licata.
   - `Dependently Typed Programming in Agda <https://www.cs.uoregon.edu/research/summerschool/summer13/curriculum.html>`__
     (OPLSS 2013).
- Tesla Ice Zhang.
   - `Some books about Formal Verification in Agda (in Chinese) <https://github.com/ice1000/Books>`__
   - `A blog created with Literate Agda (in Chinese) <https://ice1000.org/lagda/>`__
- Phil Wadler.
   - `Programming Languages Foundations in Agda <https://plfa.github.io/>`__
- Aaron Stump.
   - `Verified Functional Programming in Agda <https://dl.acm.org/citation.cfm?id=2841316>`__
- Diviánszky Péter.
   - `Agda Tutorial <https://people.inf.elte.hu/divip/AgdaTutorial/Index.html>`__

Courses using Agda
==================

- `Computer Aided Reasoning <http://www.cs.nott.ac.uk/~txa/g53cfr/>`__
  Material for a 3rd / 4th year course (g53cfr, g54 cfr) at the university of Nottingham 2010 by Thorsten Altenkirch
- `Type Theory in Rosario <http://www.cs.nott.ac.uk/~txa/rosario/>`__
  Material for an Agda course in Rosario, Argentina in 2011 by  Thorsten Altenkirch
- `Software System Design and Implementation <http://www.cse.unsw.edu.au/~cs3141/>`__
  , undergrad(?) course at the University of New South Wales by Manuel Chakravarty.
- `Seminar on Dependently Typed Programming <http://www.cs.uu.nl/wiki/DTP>`__
  , course at Utrecht University by Andres Löh.
- `Tüübiteooria / Type Theory <http://courses.cs.ut.ee/2011/typet/Main/HomePage>`__
  , graduate course at the University of Tartu by Varmo Vene and James Chapman.
- `Advanced Topics in Programming Languages: Dependent Type Systems <http://www.seas.upenn.edu/~sweirich/cis670/09/>`__
  , course at the University of Pennsylvania by Stephanie Weirich.
- `Categorical Logic <http://www.cl.cam.ac.uk/teaching/0910/L20/>`__
  , course at the University of Cambridge by Samuel Staton.
  - `More info and feedback <http://permalink.gmane.org/gmane.comp.lang.agda/1579>`__
- `Dependently typed functional languages <http://www1.eafit.edu.co/asr/courses/dependently-typed-functional-languages/>`_
  , master level course at EAFIT University by Andrés Sicard-Ramírez.
- `Introduction to Dependently Typed Programming using Agda <http://homepages.inf.ed.ac.uk/s0894694/agda-course/>`__
  , research level course at the University of Edinburgh by Conor McBride.
- `Agda <http://people.inf.elte.hu/divip/AgdaTutorial/Index.html>`__
  , introductory course for master students at ELTE Eötvös Collegium in Budapest by Péter Diviánszky and Ambrus Kaposi.
- `Types for Programs and Proofs <http://www.cse.chalmers.se/edu/course/DAT140__Types/>`__
  , course at Chalmers University of Technology.
- `Advanced Functional Programming <http://www.tcs.ifi.lmu.de/lehre/ss-2012/fun>`__
  (in German), course at Ludwig-Maximilians-University Munich.
- `Dependently typed metaprogramming (in Agda) <http://www.cl.cam.ac.uk/~ok259/agda-course-13/>`__
  , Summer (2013) course at the University of Cambridge by Conor McBride.
- `Computer-Checked Programs and Proofs <http://dlicata.web.wesleyan.edu/teaching/ccpp-f13/>`__
  (COMP 360-1), Dan Licata, Wesleyan, Fall 2013.
- `Advanced Functional Programming&#65279; <https://github.com/pigworker/CS410-13>`__
  (CS410), Conor McBride, Strathclyde, Fall 2013.
- `Interactive Theorem proving <http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/>`__
  (CS__336), Anton Setzer, Swansea University, Lent 2008.
- `Inductive and inductive-recursive definitions in Intuitionistic Type Theory <https://www.cs.uoregon.edu/research/summerschool/summer15/curriculum.html>`__
  , lectures by Peter Dybjer at the Oregon Programming Languages Summer School 2015.

Miscellaneous
=============

- Agda has a `Wikipedia page
  <https://en.wikipedia.org/wiki/Agda__(programming__language)>`__
