Programmazione 2. Introduzione al corso

Похожие документы
Introduzione al Python

Fondamenti di Programmazione

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Python. Valerio Perticone

Fondamenti di Programmazione

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Corso di Fondamenti di Informatica e Laboratorio ato o T-AB

Il calcolatore. Architettura di un calcolatore (Hardware)

orario ricevimento via orario ufficio risposta entro 3 giorni

Introduzione al corso di Programmazione e Laboratorio

Corso di Sistemi Informativi Geografici. Presentazione del corso Maria Luisa Damiani A.A

Elementi di Informatica e Programmazione

FONDAMENTI DI INFORMATICA

AE RZT QSO RKPT SQZC

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Cosa è importante: pom.xml Goal Plug-in Repository

Programmazione Orientata agli Oggetti in Linguaggio Java

JOE ROSS - TRADING EDUCATORS Esempi di trade con la tecniche DAYTRADING in diversi mercati e intervalli temporali

INDAGINE SUI BISOGNI FORMATIVI ANNO 2009

SARA DHANA. RELAZIONE NEGOZIO A.BASSI a.s.2013/2014

Java Native Interface Appunti

Gestione di files Motivazioni

Ingegneria del Software

La programmazione nel linguaggio C

Laboratorio di Basi di Dati

Prof. Pagani Corrado HTML

Sorgenti, Binari e Pacchetti (Compilazione e pacchettizzazione per GNU/Linux)

Centro Formazione Sanitaria Sicilia CORSO di CRIMINOLOGIA

Programmazione ad Oggetti

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -

PROGRAMMAZIONE DIDATTICA DI MATEMATICA

GUIDA AI TEST DI ACCESSO / VERIFICA CONOSCENZA ALL INGRESSO INFORMATIZZATI. Anno accademico 2013/14

2011 Politecnico di Torino 1

Corso di Fondamenti di Informatica T-1

FONDAMENTI DI RETI DI TELECOMUNICAZIONI

PG5 Starter Training Applicazione File System Daniel Ernst EN Stefano Peracchi IT

L area pubblica è costituita da un portale informativo attraverso il quale è possibile effettuare la diffusione dell informazione.

Liceo Scientifico " C. CATTANEO " PIANO DI LAVORO DI INFORMATICA. CLASSE 3 LSA SEZ. B e D

Rudimenti di Python. senza rodimenti di Python

CORSO DI STUDIO Laurea Triennale in Scienze Motorie L-22 Gestione e progettazione delle attività motorie

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Marketing Internazionale

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

32 Laurea magistrale in Informatica Scienze

L esame di Lingua inglese 1 livello al Politecnico di Torino

Usare Python in Linux

Files in C++ Fondamenti di Informatica. R. Basili. a.a

Marketing - Corso progredito Marketing Research & Consumer Behavior. Gaetano Nino Miceli Maria Antonietta Raimondo

LE CLASSI DALLA PRIMA ALLA QUINTA

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15

ZERO CONNESSIONE ZERO REGISTRAZIONE. sfogliabile e interattivo integrato con contenuti digitali personalizzabile

Business Community Confindustria

Corso di Economia e Gestione delle Imprese e Marketing a.a Prof. Elena Cedrola

Laboratorio di Informatica

Milano, 5 6 giugno 2014

PATTO DI ACCOGLIENZA FINALITA

Perché programmare? Capitolo 1. Python for Informatics: Exploring Information

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Anagrafe Nazionale Studenti aggiornamento sincronizzato. Guida Operativa

A cura di Valeria Valecchi. Libro di testo: «Cloud» Gallo e Sirsi

INFORMATICA. Prof. MARCO CASTIGLIONE. Istituto Tecnico Statale Tito Acerbo - PESCARA

Corso di Diploma in Economia e Gestione dei Servizi izi Turistici (cofinanziato dal Fondo Sociale Europeo)

Servizi Sociali. La gestione delle determine e degli atti di liquidazione;

UNIWEB- GUIDA STUDENTE INSERIMENTO PIANO DEGLI STUDI ON LINE

Procedura tecnica di accreditamento dei Registrar

Symantec IT Management Suite 8.0 powered by Altiris technology

Nomi e Ambiente. Nicola Fanizzi. Linguaggi di Programmazione [010194] 20 apr, Dipartimento di Informatica Università degli Studi di Bari

Laboratorio di Reti Locali e Geografiche

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

CORSO DI FORMAZIONE. INTERNAL AUDITOR secondo la norma UNI EN ISO 9001: ª EDIZIONE 25 ore Anno Accademico 2014/2015 FORM099

Javascript e CSS nelle pagine WEB

ANAGRAFE NAZIONALE CREDITI FORMATIVI. Manuale utente

Edmondo Giovannozzi Introduzione a Python.

Introduzione a Visual Basic Lezione 2 Cicli e anomalie

Ingegneria del Software 1: Eclipse

Software PhD ITalents GUIDA ALLA PIATTAFORMA DI CANDIDATURA DA PARTE DEI DOTTORI DI RICERCA

Sistema azienda. Sistema azienda (o sistema della organizzazione) uno o più obiettivi, o fini istituzionali

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

FORMAZIONE ADDETTI ANTINCENDIO

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Procedura operativa per la gestione della funzione di formazione classi prime

Gestione delle eccezioni in Java

Video Editing. prof. Luca VALERIO prof. Andrea LIBERATI.

I database. Introduzione alla teoria delle basi di dati

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Salvatore Tau Via Roma, Collepasso (LE) Università del Salento

Транскрипт:

Programmazione 2 Introduzione al corso

Informazioni generali Sito del corso http://matematica.unipv.it/gualandi/programmazione2/ Orario lezioni: Martedi 9h00/11h00 Aula C8 o Lab. Mate Giovedi 14h00/15h00 Aula C8 o Lab. Mate (non sempre) Breve ciclo di seminari tenuti da aziende Esami: Idoneità ( no voto!) Laboratori valutati Modalità prova d esame ANCORA da stabilire Ricevimento: Quando volete, ma richiedere via email (con domande precise!)

Testo di riferimento

Obiettivi del corso 1. Offrire una panoramica su diversi concetti fondamentali di programmazione 2. Insegnare ad usare la programmazione come supporto alla risoluzione di problemi 3. Insegnare un linguaggio di programmazione multiparadigma (Python) 4. Stimolare la vostra curiosità e fantasia 5. Stimolare la vostra curiosità e fantasia 6. Stimolare la vostra curiosità e fantasia 7. Coding is fun!

Titanic

http://movielens.org

Paradigmi di programmazione Conoscenza dichiarativa vs. conoscenza imperativa Programmazione funzionale Programmazione ad oggetti Programmazione concorrente

Risoluzione di problemi Formalismo per rappresentare un problema (e.g. grafi) Definizione formale del problema e degli obiettivi (e.g., quale funzione obiettivo?) Soluzione ammissibile, soluzione ottima Problema risolvibile/non risolvibile al calcolatore (complessità computazionale) Tempo di esecuzione vs. tempo di sviluppo

Classificazione linguaggi programmazione Basso livello vs. Alto livello Livello di astrazione a cui si riferiscono le primitive del linguaggio General vs. Application domain Linguaggio pensato per uno specific dominio applicativo (e.g., SQL o VHDL) o per un uso general purpose Interpretato vs. Compilato Se il codice sorgente viene eseguito direttamente o viene prima compilato il linguaggio macchina

Linguaggi di progammazione Perchè Python? Semplice e divertente! Alternative: C++ - http://en.cppreference.com Julia - http://julialang.org/ Haskell - http://www.haskell.org/ R - http://www.r-project.org/ C# - google-it-yourself Java - http://www.java.com

Perchè Python? PRO: È semplice (no gestione diretta della memoria) È interattivo (interpretato, non compilato) È semplice programmare delle visualizzazioni È un linguaggio multiparadigma Ha un elevato numero di librerie semplici da installare CONTRO: Non é efficiente come un linguaggio compilato L'identazione del codice fa parte della semantica L'identazione del codice fa parte della semantica L'identazione del codice fa parte della semantica

Ambiente di lavoro Python A lezione e in laboratorio si farà riferimento a Python >= 3.5 (attenzione a non scaricare la versione 2.7) Ambiente di riferimento (Python 3.6): https://www.continuum.io/downloads Utilizzo di notebooks (vedi demo) Editors: Spyder (installato in automatico con Anaconda) Vim o Emacs Visual Studio (windows) o Visual Code Sublime Text - http://www.sublimetext.com/ Rodeo - http://www.yhat.com/products/rodeo

SymPy: Symbolic Mathematics

Altre risorse utili 1/2 GitHub Education Pack: http://education.github.com/pack

Altre risorse utili 2/2 Amazon Web Services educate: http://aws.amazon.com/education/awseducate/

Competizioni http://www.kaggle.com http://www.crowdanalytix.com

Corsi online Coursera: http://www.coursera.org/learn/python Udacity: http://www.udacity.com/course/programmingfoundations-with-python--ud036 EDX: http://www.edx.org/course/learn-program-using-pythonutarlingtonx-cse1309x Learn to code the hard way: http://learncodethehardway.org/python/

Python - Introduzione Python é un linguaggio di programmazione dinamico e interpretato Non ha un type system statico per dichiarare variabili, parametri e funzioni nel codice (lo ha dinamico, eseguito a runtime) Non si perde tempo in compilazione...... ma gli errori si manifestano in fase di esecuzione

Elementi principali Programma o script: sequenza di definizioni e comandi Shell: interpreti di script o comandi; Shell prompt >>> Comandi o statement : istruzioni per l interprete Oggetti scalari (int, float, bool, None) e non scalari (e.g., stringhe); type di un oggetto Oggetti e operatori vengono usati per scrivere espressioni che vengono valutati in altri oggetti

Operatori per int e float Operatori aritmetici: i+j, i-j, i*j, i/j i // j divisione intera i % j resto della divisione intera i**j i elevato alla j Operatori di confronto == > >= <= <!= diverso

Variabili e assegnamenti Variabile: offre un modo per associare un nome a ad un oggetto >>> pi = 3.1415 >>> msg = ritenta, sarai più fortunato >>> flag = (13 < 11) Assegnamento: assegnazione di un nome ad un oggetto. Lo stesso oggetto può avere diversi nomi. Assegnamento multiplo: >>> a, b = 2, 3 >>> a, b = b, a

Parole riservate o Keywords >>> import keyword >>> print(keyword.kwlist) ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] >>> keyword.iskeyword( bella li )

Tipi di errori ValueError: invalid literal for int() with base 10: '3.0' AttributeError: readonly attribute (z.real = 3) NameError: name 'x' is not defined (dopo del x) TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int TypeError: 'int' object is not iterable