tutorial-list.rst 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. .. _tutorial-list:
  2. *******************
  3. A List of Tutorials
  4. *******************
  5. .. note::
  6. Some of the materials linked on this page have been created for
  7. older versions of Agda and might no longer apply directly to the
  8. latest release.
  9. Books on Agda
  10. =============
  11. - Phil Wadler, Wen Kokke, and Jeremy G. Siek (2019). `Programming
  12. Languages Foundations in Agda <https://plfa.github.io/>`__
  13. - Aaron Stump (2016). `Verified Functional Programming in Agda
  14. <https://dl.acm.org/doi/book/10.1145/2841316>`__
  15. Tutorials and lecture notes
  16. ===========================
  17. - Jesper Cockx (2021). `Programming and Proving in Agda
  18. <https://github.com/jespercockx/agda-lecture-notes/blob/master/agda.pdf>`__.
  19. An introduction to Agda for a general audience of functional
  20. programmers. It starts from basic knowledge of Haskell and builds up
  21. to using equational reasoning to formally prove correctness of
  22. functional programs.
  23. - Musa Al-hassy (2019). `A slow-paced introduction to reflection in Agda <https://github.com/alhassy/gentle-intro-to-reflection>`__.
  24. - Jesper Cockx (2019). `Formalize all the things (in Agda) <https://jesper.sikanda.be/posts/formalize-all-the-things.html>`__.
  25. - Jan Malakhovski (2013). `Brutal [Meta]Introduction to Dependent
  26. Types in Agda <https://oxij.org/note/BrutalDepTypes/>`__.
  27. - Diviánszky Péter (2012). `Agda Tutorial
  28. <https://people.inf.elte.hu/divip/AgdaTutorial/Index.html>`__.
  29. - Ana Bove, Peter Dybjer, and Ulf Norell (2009). `A Brief Overview of
  30. Agda - A Functional Language with Dependent Types
  31. <https://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.Documentation?action=download&upname=AgdaOverview2009.pdf>`__
  32. (in TPHOLs 2009) with an example of reflection. `Code
  33. <http://www.cse.chalmers.se/~ulfn/code/tphols09/>`__.
  34. - Andreas Abel (2009). `An Introduction to Dependent Types and Agda
  35. <http://www2.tcs.ifi.lmu.de/~abel/DepTypes.pdf>`__. Lecture notes
  36. used in teaching functional programming: basic introduction to Agda,
  37. Curry-Howard, equality, and verification of optimizations like
  38. fusion.
  39. - Ulf Norell and James Chapman (2008). `Dependently Typed Programming
  40. in Agda
  41. <http://www.cse.chalmers.se/~ulfn/papers/afp08/tutorial.pdf>`__.
  42. This is aimed at functional programmers.
  43. - Ana Bove and Peter Dybjer (2008). `Dependent Types at Work
  44. <http://www.cse.chalmers.se/~peterd/papers/DependentTypesAtWork.pdf>`__.
  45. A gentle introduction including logic and proofs of programs.
  46. - Anton Setzer (2008). `Lecture notes on Interactive Theorem Proving
  47. <http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/interactiveTheoremProvingForAgdaUsers.html>`__. Swansea
  48. University. These lecture notes are based on Agda and contain an
  49. introduction of Agda for students with a very basic background in
  50. logic and functional programming.
  51. Videos on Agda
  52. ==============
  53. - Conor McBride (2014). `Introduction to Dependently Typed Programming
  54. using Agda
  55. <https://www.youtube.com/playlist?list=PL44F162A8B8CB7C87>`__.
  56. (videos of lectures). `Associated source files, with exercises
  57. <https://personal.cis.strath.ac.uk/conor.mcbride/pub/dtp/>`__.
  58. - Daniel Licata (2013). `Dependently Typed Programming in Agda
  59. <https://www.cs.uoregon.edu/research/summerschool/summer13/curriculum.html>`__
  60. (at OPLSS 2013).
  61. - Daniel Peebles (2011). `Introduction to Agda
  62. <https://www.youtube.com/playlist?p=B7F836675DCE009C>`__. Video of
  63. talk from the January 2011 Boston Haskell session at MIT.
  64. Courses using Agda
  65. ==================
  66. - `Computer Aided Reasoning <http://www.cs.nott.ac.uk/~psztxa/g53cfr/>`__
  67. Material for a 3rd / 4th year course (g53cfr, g54 cfr) at the university of Nottingham 2010 by Thorsten Altenkirch
  68. - `Type Theory in Rosario <http://www.cs.nott.ac.uk/~psztxa/rosario/>`__
  69. Material for an Agda course in Rosario, Argentina in 2011 by Thorsten Altenkirch
  70. - `Software System Design and Implementation <http://www.cse.unsw.edu.au/~cs3141/>`__,
  71. undergrad(?) course at the University of New South Wales by Manuel Chakravarty.
  72. - `Tüübiteooria / Type Theory <https://courses.cs.ut.ee/2011/typet/Main/HomePage>`__,
  73. graduate course at the University of Tartu by Varmo Vene and James Chapman.
  74. - `Advanced Topics in Programming Languages: Dependent Type Systems <https://www.seas.upenn.edu/~sweirich/cis670/09/>`__,
  75. course at the University of Pennsylvania by Stephanie Weirich.
  76. - `Categorical Logic <https://www.cl.cam.ac.uk/teaching/0910/L20/>`__,
  77. course at the University of Cambridge by Samuel Staton.
  78. - `Dependently typed functional languages <http://www1.eafit.edu.co/asr/courses/dependently-typed-functional-languages/>`_,
  79. master level course at EAFIT University by Andrés Sicard-Ramírez.
  80. - `Introduction to Dependently Typed Programming using Agda <https://github.com/mietek/agda-intro>`__,
  81. research level course at the University of Edinburgh by Conor McBride.
  82. - `Agda <https://people.inf.elte.hu/divip/AgdaTutorial/Index.html>`__,
  83. introductory course for master students at ELTE Eötvös Collegium in Budapest by Péter Diviánszky and Ambrus Kaposi.
  84. - `Types for Programs and Proofs <http://www.cse.chalmers.se/edu/course/DAT140/>`__,
  85. course at Chalmers University of Technology.
  86. - `Advanced Functional Programming <https://www.tcs.ifi.lmu.de/lehre/ss-2012/fun>`__
  87. (in German), course at Ludwig-Maximilians-University Munich.
  88. - `Dependently typed metaprogramming (in Agda) <https://danel.ahman.ee/agda-course-13/>`__,
  89. Summer (2013) course at the University of Cambridge by Conor McBride.
  90. - `Computer-Checked Programs and Proofs <http://dlicata.web.wesleyan.edu/teaching/ccpp-f13/>`__
  91. (COMP 360-1), Dan Licata, Wesleyan, Fall 2013.
  92. - `Advanced Functional Programming Fall 2013 <https://github.com/pigworker/CS410-13>`__
  93. (CS410), Conor McBride, Strathclyde, `notes from 2015 <https://github.com/pigworker/CS410-15/blob/master/CS410-notes.pdf>`__, `videos from 2017 <https://github.com/pigworker/CS410-17/>`__.
  94. - `Interactive Theorem proving <http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/>`__
  95. (CS__336), Anton Setzer, Swansea University, Lent 2008.
  96. - `Inductive and inductive-recursive definitions in Intuitionistic Type Theory <https://www.cs.uoregon.edu/research/summerschool/summer15/curriculum.html>`__,
  97. lectures by Peter Dybjer at the Oregon Programming Languages Summer School 2015.
  98. - `Introduction to Univalent Foundations of Mathematics with Agda <https://www.cs.bham.ac.uk/~mhe/HoTT-UF-in-Agda-Lecture-Notes/index.html>`__ ,
  99. MGS 2019 Martín Hötzel Escardó
  100. - `Higher-Dimensional Type Theory <https://favonia.org/courses/hdtt2020/>`__ (CSCI 8980), courses on homotopy type theory and cubical type theory, Favonia, the University of Minnesota, Spring 2020
  101. - `Correct-by-construction Programming in Agda
  102. <https://github.com/jespercockx/ohrid19-agda>`__, a course at the
  103. EUTYPES Summer School '19 in Ohrid.
  104. - `Lectures on Agda <https://www.mathstat.dal.ca/~selinger/agda-lectures/>`__,
  105. a course by Peter Selinger at Dalhousie University, Winter 2021.
  106. Miscellaneous
  107. =============
  108. - Agda has a `Wikipedia page
  109. <https://en.wikipedia.org/wiki/Agda_(programming_language)>`__