From a8b1f9d46ad44ebc83ada21fd704651fc0bd6e62 Mon Sep 17 00:00:00 2001 From: wadler Date: Mon, 26 Nov 2018 18:57:39 -0300 Subject: [PATCH] added instructions --- README.md | 74 ++++++++++++++++++++++++++ tspl/instructions.pdf | Bin 0 -> 51170 bytes tspl/instructions.tex | 121 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 195 insertions(+) create mode 100644 tspl/instructions.pdf create mode 100644 tspl/instructions.tex diff --git a/README.md b/README.md index ef3120ce..15e891b6 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,80 @@ permalink: /about/ [![Build Status](https://travis-ci.org/plfa/plfa.github.io.svg?branch=dev)](https://travis-ci.org/plfa/plfa.github.io) + +Download the latest version of Programming Language Foundations in Agda from Github: + +``` bash +git clone https://github.com/plfa/plfa.github.io ~/plfa.github.io +``` + +Download the version of the Agda standard library that works with the textbook: + +``` bash +git clone https://github.com/plfa/agda-stdlib ~/agda-stdlib +``` + +We need to tell Agda to use the standard library, and the material +from Programming Language Foundations in Agda by default. Create a +directory called `.agda` inside of your home directory: + +``` bash +mkdir ~/.agda +``` + +Agda expects `~/.agda` to contain two files: + + 1. `~/.agda/libraries`, a list of all the libraries we want Agda to + know about; and + 2. `~/.agda/defaults`, a list of the libraries we want Agda to load + by default. + +Create `~/.agda/libraries`. It should contain: + +``` +~/agda-stdlib/standard-library.agda-lib +~/plfa.github.io/plfa.agda-lib +``` + +Next, create `~/.agda/defaults` and edit its contents to be: + +``` +standard-library +plfa +``` + +Finally, we need to enable the Emacs mode for Agda. To do so, run: + +``` bash +agda-mode setup +``` + +If all goes well, when you open a file ending in `.agda` or `.lagda` +with Emacs, the buffer for that file should have the Agda major mode +enabled by default. + +## Fonts in Emacs + +It is reccommended that you add the following to the end of your emacs +configuration file at `~/.emacs`, if you have the named fonts available. + +``` elisp +;; Setting up Fonts for use with Agda/PLFA +;; +;; default to DejaVu Sans Mono, +(set-face-attribute 'default nil + :family "DejaVu Sans Mono" + :height 120 + :weight 'normal + :width 'normal) + +;; fix \: +(set-fontset-font "fontset-default" + (cons (decode-char 'ucs #x2982) + (decode-char 'ucs #x2982)) + "STIX") +``` + ## How to build the book There are several tools you need to build a local copy of the book: diff --git a/tspl/instructions.pdf b/tspl/instructions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0b22bd9f944e36bd4c530f75adf3a15d678a740b GIT binary patch literal 51170 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 literal 0 HcmV?d00001 diff --git a/tspl/instructions.tex b/tspl/instructions.tex new file mode 100644 index 00000000..7bc875a5 --- /dev/null +++ b/tspl/instructions.tex @@ -0,0 +1,121 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Instructions for TSPL Exam +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[12pt]{article} +\usepackage{a4,amssymb} +% \setlength{\oddsidemargin}{-1.5cm} +% \addtolength{\textwidth}{2cm} +% \addtolength{\textheight}{3cm} + +\begin{document} +\pagestyle{empty} +\setcounter{page}{1} + +\begin{center} +\large Types and Semantics for Programming Languages +\end{center} + +\section*{Instructions} + +\begin{enumerate} + +\item The exam lasts two hours. + +\item Place your student identity card face-up on the desk in + front of you. The invigilator may come to check your identity, and + in this case you may be asked to allow the invigilator to briefly + use your computer. The exam time has been calculated to allow time + for such interruptions. + +\item You may log into your computer as soon as you are ready to do so. + +\item To download the exam paper, open a terminal window and +type the following: +\begin{center} + \texttt{getpapers} +\end{center} +This will create a subdirectory \texttt{tspl-pe} in your home directory, +containing the following files. +\begin{center} +\begin{tabular}{ll} +\texttt{tspl-pe/papers/exam.pdf} & the exam \\ +\texttt{tspl-pe/papers/instructions.pdf} & these instructions \\ +\texttt{tspl-pe/templates/Exam.lagda} & exam template to edit \\ +\texttt{tspl-pe/original\_templates/Exam.lagda} & backup of exam template +\end{tabular} +\end{center} +The directories \texttt{tspl-pe/papers}, \texttt{tspl-pe/original\_templates} are +read only, but you may read and write \texttt{tspl-pe/templates}. + +\item The textbook \emph{Programming Language Foundations in Agda} is available +by pointing your browser at: +\begin{center} +\texttt{file:///group/examreadonly/full/plfa/} +\end{center} +\item The Agda standard library is available by pointing your browser at: +\begin{center} +\texttt{file:///group/examreadonly/full/agda-stdlib/} +\end{center} +\item The Agda user manual is available by pointing your browser at: +\begin{center} +\texttt{file:///group/examreadonly/full/agda-docs/} +\end{center} +{\it (Note that internet access has been disabled.)} + +\begin{center} + \textbf{Do nothing further until the start of the exam is announced!} +\end{center} + +\hfill \textit{Please Turn Over} +\newpage + +\item When the start of the exam is announced, open the exam paper +\begin{center} + \texttt{tspl-pe/papers/exam.pdf} +\end{center} +with the standard PDF viewer. + +\item Change to the template directory +\begin{center} + \texttt{cd tspl-pe/templates} +\end{center} +and edit the file +\begin{center} + \texttt{Exam.lagda} +\end{center} +to include your answers, using Emacs or anything else suitable. +You are recommended to save your work on a regular basis. + +\item Before submitting, make sure your file is processed by Agda + correctly. Code which prevents the file from compiling should be + made into comments. If you fail to solve part of a problem, you + may get more credit if you indicate clearly which part you have + not solved. + +\item \emph{Please ensure before submission that the file} + \texttt{Exam.lagda} \emph{contains your solutions to the exam.} Submit + your file using the command: + \begin{center} + \texttt{examsubmit Exam.lagda} + \end{center} + If you get an error, please check carefully that your file is called + \texttt{Exam.lagda} and that you are in the same directory as this + file. If you continue to have problems, please contact one of the + invigilators. + +Repeated submit commands are allowed, and will overwrite previous +submissions. The last file submitted will be the one marked. + +\item When the invigilators announce the end of the exam, you must + submit and log out immediately. + +\end{enumerate} + +\end{document} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: