Training session for COFUND Fellows

As part of COFUND training activities for fellows currently based in Italy, there will be a session on:

1 and 2 July 2013 at INdAM premises, in Rome

composed by three courses of lectures, whose abstracts can be find below, on the following topics:

  • Computer-assisted theorem proving
  • An overview of high level paradigms and programming languages
  • Java and JavaScript (ECMAScript - 262): similarities and differences

The courses are aimed to an audience of mathematicians; computer programming skills are not a prerequisite.

The courses are open to external participants, at no cost for INdAM; registration is required and is free of charge.
To register, please write cofund@altamatematica.it, specifying your contact details (e. g. organisation).

For information, please e-mail cofund@altamatematica.it or phone (+39)06490320.

Course: Computer-assisted theorem proving

(Dr. Marco Maggesi)

Brief course on computer-assisted theorem proving. The course will include an introduction to mechanized mathematics in general and an overview of some recently developed tools for computer theorem proving.

Some recent research results in this area will be illustrated and discussed. A practical demonstration or a tutorial will be part of the course to illustrate some live examples.

Course: An overview of high level paradigms and programming languages

(Dr. Gianni Ciolli)

This is a transversal course that will touch several computer languages, which differ in characteristics, popularity and scope, such as Haskell, OCaml, Macaulay2, Scheme and SQL.

We will illustrate certain aspects of computer programming which a professional mathematician can find interesting, using real world examples such as: use cases coming from the software development industry; computations applied to scientific research; actual computer models of mathematical notions; practical applications of functional purity.

The course assumes no specific experience with computer programming, and will be structured as a sequence of examples, each dedicated to a particular aspect. Test files will be provided for participants that wish to carry out a practical session.

Course: Java and JavaScript (ECMAScript - 262): similarities and differences

(Dr. Alberto Mancini)

Java is a strongly-typed, class-based, object-oriented (in the classical way) language; JavaScript is an un-typed, interpreted (even if JIT compilers make the difference between compiled and interpreted languages minimal), mostly functional, prototype-based language.

Nowadays these two programming languages, similar by name but indeed deeply different, are pervasively used in many unexpected scenarios.

Java, the "Write once, run anywhere" language that has been the reference choice, at least, in many enterprises, crossed boundaries and is now the language you must use to develop applications for Android mobile devices.

JavaScript, the toy-language born as the form-validation language in Netscape Navigator and lately standardized as ECMA-262, has become the world's most used language (count the users of gmail and, if it's not enough, all the social networks that more-or-less are forced to have their UIs written in javascript), and with frameworks like Angular-JS, Backbone, and many others is vastly used to develop real applications.

In this course we want to discuss, with a few examples, how much our code should embrace the different nature of the two languages to be efficient and maintainable.