programmazione 1informazioni generali •esame: •prova di programmazione in aula informatica...
TRANSCRIPT
![Page 1: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/1.jpg)
Programmazione 1Introduzione al corso
Stefano Gualandi, @famo2spaghi
Studio E14, Dipartimento di Matematica
Blog: http://stegua.github.io
![Page 2: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/2.jpg)
Due questionari
1. Raccolta dati anagrafici per creazione account neilaboratori di ingegneria
2. Questionario conoscitivo perchè capire le vostreconoscenze in ambito informatico
3. Andare all’indrizzo:
http://mate.unipv.it/gualandi/programming/
![Page 3: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/3.jpg)
Informazioni generali
• Siti del corsohttp://matematica.unipv.it/gualandi/programming
https://github.com/mathcoding/programming
• Orario lezioni:• Martedi 11h00/12h00 – Aula Beltrami, Dip. Matematica
• Givoedi 11h00/13h00 – Aula B3, Ingegneria
• Venerdi 11h00/13h00 – Aula C2, Ingegneria
• Tutorato: sarà attivato a partire da metà ottobre
![Page 4: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/4.jpg)
Informazioni generali
• Esame: • Prova di programmazione in aula informatica
• Durata 2h30m
• A breve, saranno online i testi degli esercizi d’esamedell’anno precedente (2017/18, 2018/19) per un totale di 12 appelli
• Ricevimento:• In qualsiasi momento potete richiedere ricevimento
via email (usate l’email @universitadipavia.it!)
![Page 5: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/5.jpg)
Comunicazioni con il docente
• Usare sempre l’email di ateneo
• Cercare di essere precisi nel fare le domande
• Non avere timore di venire a ricevimento
![Page 6: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/6.jpg)
Testi di riferimento1. Slides e script usati a lezione (in italiano), reperibili sul sito
2. Testo di riferimento (in inglese)
3. Libro in italiano:PENSARE DA INFORMATIVO – IN PYTHONhttps://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm
![Page 7: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/7.jpg)
Metodi di Insegnamento: Active Learning
https://www.insidehighered.com/news/2019/09/09/study-how-smooth-talking-professors-can-lull-students-thinking-theyve-learned-more
![Page 8: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/8.jpg)
Obiettivi del corso
1. Introdurre i concetti fondamentali di programmazione
2. Insegnare ad usare la programmazione come supporto alla risoluzione di problemi
3. Insegnare un linguaggio di programmazionemultiparadigma
![Page 9: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/9.jpg)
Obiettivi del corso
1. Introdurre i concetti fondamentali di programmazione
2. Insegnare ad usare la programmazione come supporto alla risoluzione di problemi
3. Insegnare un linguaggio di programmazionemultiparadigma
4. Stimolare la vostra curiosità e fantasia
![Page 10: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/10.jpg)
Obiettivi del corso
1. Introdurre i concetti fondamentali di programmazione
2. Insegnare ad usare la programmazione come supporto alla risoluzione di problemi
3. Insegnare un linguaggio di programmazionemultiparadigma
4. Stimolare la vostra curiosità e fantasia
5. Stimolare la vostra curiosità e fantasia
![Page 11: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/11.jpg)
Obiettivi del corso
1. Introdurre i concetti fondamentali di programmazione
2. Insegnare ad usare la programmazione come supporto alla risoluzione di problemi
3. Insegnare un linguaggio di programmazionemultiparadigma
4. Stimolare la vostra curiosità e fantasia
5. Stimolare la vostra curiosità e fantasia
6. Stimolare la vostra curiosità e fantasia
![Page 12: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/12.jpg)
Obiettivi del corso
1. Introdurre i concetti fondamentali di programmazione
2. Insegnare ad usare la programmazione come supporto alla risoluzione di problemi
3. Insegnare un linguaggio di programmazionemultiparadigma
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!
![Page 15: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/15.jpg)
Machine Learning (at Google)
![Page 16: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/16.jpg)
Machine Learning (at Google)
![Page 17: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/17.jpg)
Programma del corso
• Introduzione ai linguaggi di programmazione
• Elementi di Programmazione funzionale
• Elementi di Programmazione procedurale
• Elementi di Programmazione orientata agli oggetti
• Cenni di complessità algoritmica
• Algoritmi di ricerca e di ordinamento
• Algoritmi di programmazione dinamica
NOTA: Python è usato come esempio di linguaggio di programmazione, non è il vero obiettivo del corso.
![Page 18: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/18.jpg)
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
![Page 19: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/19.jpg)
Linguaggi di progammazione
• Perchè Python?• Semplice e divertente!
• Alternative:• Julia - http://julialang.org/
• R - http://www.r-project.org/
• C/C++ - http://en.cppreference.com
• Haskell - http://www.haskell.org/
• C# - google-it-yourself
• Java - http://www.java.com
![Page 20: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/20.jpg)
import antigravity
![Page 21: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/21.jpg)
![Page 22: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/22.jpg)
Perchè Python?
PRO:• È interattivo (interpretato, non compilato)• È semplice (no gestione diretta della memoria)• È semplice programmare delle visualizzazioni• È un linguaggio multiparadigma• Ha un elevato numero di librerie semplici da installare
CONTRO:1. Non é efficiente come un linguaggio compilato2. L'identazione del codice fa parte della semantica3. L'identazione del codice fa parte della semantica4. L'identazione del codice fa parte della semantica
![Page 23: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/23.jpg)
Linguaggio Interpretato vs. Compilato
![Page 24: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/24.jpg)
![Page 25: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/25.jpg)
Ambiente di lavoro Python• A lezione e in laboratorio si farà riferimento a Python
>= 3.4 (attenzione a non scaricare o usare la versione di Python 2.7)
• Ambiente di riferimento Anaconda/Python >= 3.4:https://www.continuum.io/downloads
• Editors:• CONSIGLIATO: Spyder3 (installato con Anaconda)
• Sublime Text - http://www.sublimetext.com/
• Vim o Emacs
• Visual Code o Visual Studio (windows)
![Page 26: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/26.jpg)
![Page 27: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/27.jpg)
“E' l'istess...“ Spyder3 1/2
![Page 28: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/28.jpg)
“E' l'istess...“ 1/2
![Page 29: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/29.jpg)
Corsi online (self-paced)
• Coursera:http://www.coursera.org/learn/python
• Udacity:http://www.udacity.com/course/programming-foundations-with-python--ud036
• EDX:http://www.edx.org/course/learn-program-using-python-utarlingtonx-cse1309x
• Learn to code the hard way:http://learncodethehardway.org/python/
![Page 30: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/30.jpg)
Altre risorse utili 1/2
GitHub Education Pack:http://education.github.com/pack
![Page 31: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/31.jpg)
Altre risorse utili 2/2
Amazon Web Services educate:http://aws.amazon.com/education/awseducate/
![Page 32: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/32.jpg)
Competizioni• http://www.kaggle.com• http://www.crowdanalytix.com
![Page 33: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/33.jpg)
SymPy: Symbolic Mathematics
![Page 34: Programmazione 1Informazioni generali •Esame: •Prova di programmazione in aula informatica •Durata 2h30m •A breve, saranno online i testi degli esercizi d’esame dell’annoprecedente](https://reader035.vdocuments.site/reader035/viewer/2022062303/5f1862c41e23f540c152a4d4/html5/thumbnails/34.jpg)
SymPy: Symbolic Mathematics