I know there is a vast bibliography on the subject but I just wanted to write something intuitive and easy to read on such essential and extensive topic for a computer scientist.

The notes are written in italian and follow professor P. Degano lectures at B.Sc. Computer Science University of Pisa. The source code can be compiled using R with Rmarkdown package, just use these teeny-tiny Rscript:

#! /usr/bin/env Rscript
require(rmarkdown)
render(commandArgs(trailingOnly=TRUE))

You can take a look and download the notes here or in the window below. Unfortunately there won’t be any updates soon, anyhow it was quite fun to play with \(\LaTeX\) templates and the Rmarkdown package.


No PDF support, click clack and download the thing.

To tell the the all truth, this little project had a second purpose too: create a \(\LaTeX\) template to write reports/articles in markdown (so to be humanly readable even just through the source code), where I could easily edit every single chapter separately while maintaining the code neat and clean.

But there’s more: I find literate programming very useful and I’ve played with tools like Wolfram Mathematica, Jupyter Notebook and the magnificent Emacs mode Org Mode; needless to say I wanted to have something like this in my new template. Lucky me R has the Knitr package that enables integration of R code into \(\LaTeX\), HTML and Markdown. Long story short, every block of code (no matter the language) is evalueted in the order it appears in the document and the shell output is printed just below each block.

One great advantage of this, is the possibility to display graphs and diagrams inside the document just by writing chunks of code that can output them.