Questo libro del Prof. Lorenzo Robbiano, pubblicato da Springer,  affronta con un linguaggio chiaro e semplice ma soprattutto in modo divertente, un argomento che, pur essendo basilare fra gli strumenti della matematica, ha una sua complessità intrinseca: l’Algebra Lineare.

Anche se il libro si rivolge (come dice il titolo) a tutti, la lettura richiede attenzione, per fortuna la parte teorica è affiancata da numero esempi “pratici” e addirittura viene consigliato l’utilizzo di uno strumento free (il sistema di calcolo simbolico CoCoA sviluppato da un gruppo di ricercatori del Dipartimento di Matematica  dell’Università di Genova) per svolgere le esercitazioni contenute nel libro.


Functional Programming

From Wikipedia, the free encyclopedia:

In computer science, functional programming is a programming paradigm, a style of building the structure and elements of computer programs, that treats computation as the evaluation of mathematical functions and avoids state and mutable data. Functional programming emphasizes functions that produce results that depend only on their inputs and not on the program state – i.e. pure mathematical functions. It is a declarative programming paradigm, which means programming is done with expressions. In functional code, the output value of a function depends only on the arguments that are input to the function, so calling a function f twice with the same value for an argument x will produce the same result f(x) both times. Eliminating side effects, i.e. changes in state that do not depend on the function inputs, can make it much easier to understand and predict the behavior of a program, which is one of the key motivations for the development of functional programming.

Functional programming has its roots in lambda calculus, a formal system developed in the 1930s to investigate computability, the Entscheidungsproblem, function definition, function application, and recursion. Many functional programming languages can be viewed as elaborations on the lambda calculus, where computation is treated as the evaluation of mathematical functions and avoids state and mutable data. In the other well known declarative programming paradigm, logic programming, relations are at the base of respective languages.[1]

In contrast, imperative programming changes state with commands in the source language, the most simple example is the assignment. Functions do exist, not in the mathematical sense, but the sense of subroutine. They can have side effects that may change the value of program state. Functions without return value therefore make sense. Because of this, they lack referential transparency, i.e. the same language expression can result in different values at different times depending on the state of the executing program.[1]

Functional programming languages, especially purely functional ones such as Hope and Rex, have largely been emphasized in academia rather than in commercial software development. However, prominent functional programming languages such as Common Lisp, Scheme,[2][3][4][5] Clojure, Racket,[6] Erlang,[7][8][9] OCaml,[10][11] Haskell,[12][13] Scala[14] and F#[15][16] have been used in industrial and commercial applications by a wide variety of organizations. Functional programming is also supported in some domain-specific programming languages like R (statistics),[17][18] Mathematica (symbolic and numeric math),[19] J, K and Q from Kx Systems (financial analysis), XQuery/XSLT (XML),[20][21] and Opal.[22] Widespread domain-specific declarative languages like SQL and Lex/Yacc use some elements of functional programming, especially in eschewing mutable values.[23]

Programming in a functional style can also be accomplished in languages that aren’t specifically designed for functional programming. For example, the imperative Perl programming language has been the subject of a book describing how to apply functional programming concepts.[24] C# 3.0 and Java 8 added constructs to facilitate the functional style.

Clever Algorithms: Nature-Inspired Programming Recipes


Questa opera di Jason Brownlee è una miniera d’oro: vi sono contenuti decine di algoritmi, suddivisi tra:

Per ognuno dei quali sono descritti: nome, tassonomia, ispirazione, metafora, stragegia, procedura, euristiche e ovviamente una implementazione (in Ruby, what else?)

Clever Algorithms


Internet of Things

The Internet of Things (or IoT for short) refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. The term Internet of Things was proposed by Kevin Ashton in 1999.[1] The concept of the Internet of Things first became popular through the Auto-ID Center at MIT and related market analysis publications.[2] Radio-frequency identification (RFID) was seen as a prerequisite for the Internet of Things in the early days. If all objects and people in daily life were equipped with identifiers, they could be managed and inventoried by computers.[3][4] Besides using RFID, the tagging of things may be achieved through such technologies as near field communication, barcodes, QR codes and digital watermarking.[5][6]

Equipping all objects in the world with minuscule identifying devices or machine-readable identifiers could transform daily life.[7][8] For instance, business may no longer run out of stock or generate waste products, as involved parties would know which products are required and consumed.[8] A person’s ability to interact with objects could be altered remotely based on immediate or present needs, in accordance with existing end-user agreements.[3]

According to ABI Research more than 30 billion devices will be wirelessly connected to the Internet of Things (Internet of Everything) by 2020.[9] Cisco created a dynamic “connections counter” to track the estimated number of connected things from July 2013 until July 2020 (methodology included).[10] This concept, where devices connect to the internet/web via low power radio is the most active research area in IoT.

From Wikipedia, the free encyclopedia

Real-time WEB

The real-time web is a set of technologies and practices that enable users to receive information as soon as it is published by its authors, rather than requiring that they or their software check a source periodically for updates.

From Wikipedia, the free encyclopedia

Dynamic programming language

From Wikipedia, the free encyclopedia


Dynamic programming language is a term used broadly in computer science to describe a class of high-level programming languages that, at runtime, execute many common behaviors that other languages might perform during compilation. These behaviors could include extension of the program, by adding new code, by extending objects and definitions, or by modifying the type system, all during program execution. These behaviors can be emulated in nearly any language of sufficient complexity, but dynamic languages provide direct tools to make use of them. Many of these features were first implemented as native features in the Lisp programming language.

Most dynamic languages are also dynamically typed, but not all are. Dynamic languages can be (but not always) frequently referred to as “scripting languages“, though that article narrowly refers to languages specific to a given environment.

Let code flow