SlideShare a Scribd company logo
1 of 27
Download to read offline
Introduzione al corso
Tecniche di Programmazione – A.A. 2014/2015
Dati essenziali…
A.A. 2014/2015Tecniche di programmazione2
 Tecniche di programmazione
 Ing. Gestionale (L8), terzo anno, secondo semestre
 Codice 03FYZPL, 10 crediti
 Sito di riferimento: http://bit.ly/tecn-progr
 http://elite.polito.it/index.php/teaching/current-courses/164-
03fyz-tecn-progr
 Docenti
 Fulvio Corno
 Giovanni Squillero
 Marco Gaudesi
Sommario
A.A. 2014/2015Tecniche di programmazione3
1. Obiettivi e contenuti
2. Organizzazione didattica
3. Materiali e strumenti
4. Esame
Obiettivi e contenuti
Introduzione al corso
Obiettivo formativo
A.A. 2014/2015Tecniche di programmazione5
 Acquisire la capacità di affrontare (e risolvere) problemi
ricorrendo all’informatica come strumento di analisi,
simulazione, ricerca, ottimizzazione
 «Problem Solving»
 Acquisire alcune competenze tecniche ed operative per la
realizzazione di applicazioni software interattive,
moderne, efficienti, integrate
 «Real-world software»
 Applicare tali capacità a problemi di tipo organizzativo,
gestionale, logistico, ...
 «Real-world problems»
Contenuti principali
A.A. 2014/2015Tecniche di programmazione6
• Astrazione, complessità
• Strutture dati avanzate (liste, hash, grafi, code)
• Algoritmi ed efficienza (ricorsione, sort, enumerate, search)
• Simulazione, ricerca (event-driven, branch&bound)
Problem Solving
• Interfacce grafiche (JavaFX, CSS)
• Utilizzo di database (MySQL e JDBC)
• Utilizzo di librerie Java per strutture dati
• Open source
Real-world software
• Esempi e casi di studio basati su problami ed applicazioni reali
• Analisi, progettazione, realizzazione, valutazione (efficacia/efficienza)
• Data-set reali e significativi
Real-world problems
Questo corso…
A.A. 2014/2015Tecniche di programmazione7
 Vuole insegnare ad
affrontare i problemi
attraverso approcci
algoritmici
 Utilizza i meccanismi di
astrazione offerti dalla
programmazione ad
oggetti
 Punta a realizzare
applicazioni anche
gradevoli
 Insiste sull’efficienza
delle strutture dati e degli
algoritmi utilizzati
 Utilizza esempi reali o
realistici (suggerimenti
benvenuti…)
 Non è uguale al corso di
Algoritmi e
Programmazione degli
informatici
Organizzazione didattica
Introduzione al corso
Orario
A.A. 2014/2015Tecniche di programmazione9
Lunedì Martedì Mercoledì Giovedì Venerdì
08:30-10:00 Lab (sq.1)
LEP
10:00-11:30 Lab (sq.1)
LEP
11:30-13:00
13:00-14:30 Lab (sq.2)
LEP
Lez/Ese
Aula 1I
14:30-16:00 Lez/Ese
Aula 1I
Lab (sq.2)
LEP
Lez/Ese
Aula 1I
16:00-17:30
Tipologie di lezioni
A.A. 2014/2015Tecniche di programmazione10
 Lezione ed Esercitazione (4,5 ore/settimana)
 Nessuna distinzione formale: le esercitazioni sono mescolate
ed intercalate alle lezioni
 Lezioni teoriche
 Svolgimento di esercizi in aula
 Suggerito: portare il proprio PC
 Saranno disponibili gli Screencast
 Laboratorio (3 ore/settimana per 2 squadre)
 Svolgimento di esercizi proposti
 Testo pubblicato in anticipo
 Soluzioni pubblicate dopo ≥2 settimane
 NO elaborati da consegnare
Squadre di laboratorio
A.A. 2014/2015Tecniche di programmazione11
 Copiamo la divisione che avete negli altri corsi?
 Squadra 1 (mercoledì 08:30-11:30):
 Studenti da AAAA fino a ????
 Squadra 2 (mercoledì 13:00-16:00):
 Studenti da ????+1 fino a ZZZZ
 Per eventuali scambi di squadra, rispettare la capienza ed il
regolamento del laboratorio LEP
Screencast
A.A. 2014/2015Tecniche di programmazione12
 Le lezioni ed esercitazioni saranno registrate e messe a
disposizione
 Audio + video PC
 Sul sito del corso, immediatamente (e youtube, in ritardo)
 Salvo problemi tecnici (a Murphy piacendo…)
Sito del corso
A.A. 2014/2015Tecniche di programmazione13
 Punto di riferimento per tutto il materiale
 http://bit.ly/tecn-progr
Materiali e strumenti
Introduzione al corso
Prerequisiti
A.A. 2014/2015Tecniche di programmazione15
 Programmazione ad oggetti
 Verrà utilizzato il 98% di quanto avete appreso
 Si raccomanda una buona preparazione sulla programmazione
Java
 Alcuni argomenti chiave verranno ripresi e approfonditi
 Basi di dati
 Verranno viste applicazioni pratiche: DBMS usato come
“strumento” di lavoro
 Richiesta la capacità di costruire (semplici) basi di dati e di
impostare (semplici) interrogazioni
Materiali di studio
A.A. 2014/2015Tecniche di programmazione16
+
Materiali di studio
A.A. 2014/2015Tecniche di programmazione17
+
…e anche
Materiale relativo alle lezioni
A.A. 2014/2015Tecniche di programmazione18
 Lucidi delle lezioni
 In inglese
 Progetti elaborati in aula (file sorgente)
 Zip
 GitHub
 Screencast
 AVI
 YouTube
Libri di testo
A.A. 2014/2015Tecniche di programmazione19
…
Strumenti
A.A. 2014/2015Tecniche di programmazione20
 Java 8
 JDK 1.8 (with JavaFX 8.0)
 JavaFX Scene Builder (2.0)
 Eclipse Luna
 e(fx)clipse
 git, subversion
 MySQL or MariaDB
 Server, JDBC driver
 Workbench or HeidiSQL
 Librerie Java
 Esclusivamente open
source
 Cross platform
(Windows-Linux-
MacOSX)
Esame
Introduzione al corso
Modalità d’esame
A.A. 2014/2015Tecniche di programmazione22
 Esercizio di programmazione
 Sarà già fornito un progetto Eclipse su cui lavorare ed un
database contenente i dati necessari all’algoritmo
 Da svolgersi su Personal Computer (LEP)
 Con accesso a Internet ed a tutto il materiale
 Due esercizi:
 Punto 1, valore 18/30, valutato direttamente in laboratorio al
termine della prova.Valutazione ON/OFF brutale.
 Punto 2, valore 12/30 (colma la differenza tra il 18 ed il 30),
valutato NEL MERITO dai docenti.
 Regole d’esame disponibili sul sito
Svolgimento esame
A.A. 2014/2015Tecniche di programmazione23
Statistiche esame
A.A. 2014/2015Tecniche di programmazione24
Superamento
entro il primo
anno: 64.6%
Superamento
globale: 64.1%
Statistiche esame
A.A. 2014/2015Tecniche di programmazione25
42%
complessivo
15%, quasi tutti
al primo anno
Contatti
A.A. 2014/2015Tecniche di programmazione26
 Fulvio Corno
 Dipartimento di Automatica e Informatica (3o piano)
 fulvio.corno@polito.it
 Orario ricevimento (secondo semestre):
 ????????????? (gradita e-mail entro il giorno prima)
 Giovanni Squillero
 Dipartimento di Automatica e Informatica (4o piano)
 giovanni.squillero@polito.it
 Marco Gaudesi
 Dipartimento di Automatica e Informatica (2o piano)
 marco.gaudesi@polito.it
Licenza d’uso
A.A. 2014/2015Tecniche di programmazione27
 Queste diapositive sono distribuite con licenza Creative Commons
“Attribuzione - Non commerciale - Condividi allo stesso modo (CC
BY-NC-SA)”
 Sei libero:
 di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico,
rappresentare, eseguire e recitare quest'opera
 di modificare quest'opera
 Alle seguenti condizioni:
 Attribuzione — Devi attribuire la paternità dell'opera agli autori
originali e in modo tale da non suggerire che essi avallino te o il modo in
cui tu usi l'opera.
 Non commerciale — Non puoi usare quest'opera per fini
commerciali.
 Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se
la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una
licenza identica o equivalente a questa.
 http://creativecommons.org/licenses/by-nc-sa/3.0/

More Related Content

Viewers also liked

Ingegneri e disabilità: abbattere il muro
Ingegneri e disabilità: abbattere il muroIngegneri e disabilità: abbattere il muro
Ingegneri e disabilità: abbattere il muroFulvio Corno
 
Accessibilità dei siti web
Accessibilità dei siti webAccessibilità dei siti web
Accessibilità dei siti webFulvio Corno
 
Dates and Times in Java 7 and Java 8
Dates and Times in Java 7 and Java 8Dates and Times in Java 7 and Java 8
Dates and Times in Java 7 and Java 8Fulvio Corno
 
Indicatori quantitativi per la valutazione dei processi
Indicatori quantitativi per la valutazione dei processiIndicatori quantitativi per la valutazione dei processi
Indicatori quantitativi per la valutazione dei processiFulvio Corno
 
AmI 2015 - Design Process
AmI 2015 - Design ProcessAmI 2015 - Design Process
AmI 2015 - Design ProcessFulvio Corno
 
Ambient Intelligence: Theme of the Year 2016
Ambient Intelligence: Theme of the Year 2016Ambient Intelligence: Theme of the Year 2016
Ambient Intelligence: Theme of the Year 2016Fulvio Corno
 
Ausili: definizioni e normative - Tecnologie per la Disabilità 2014/2015
Ausili: definizioni e normative - Tecnologie per la Disabilità 2014/2015Ausili: definizioni e normative - Tecnologie per la Disabilità 2014/2015
Ausili: definizioni e normative - Tecnologie per la Disabilità 2014/2015Fulvio Corno
 
AmI 2015 - Databases in Python
AmI 2015 - Databases in PythonAmI 2015 - Databases in Python
AmI 2015 - Databases in PythonFulvio Corno
 
Internet of Things - Cos'è e cosa ci posso fare?
Internet of Things - Cos'è e cosa ci posso fare?Internet of Things - Cos'è e cosa ci posso fare?
Internet of Things - Cos'è e cosa ci posso fare?Fulvio Corno
 

Viewers also liked (9)

Ingegneri e disabilità: abbattere il muro
Ingegneri e disabilità: abbattere il muroIngegneri e disabilità: abbattere il muro
Ingegneri e disabilità: abbattere il muro
 
Accessibilità dei siti web
Accessibilità dei siti webAccessibilità dei siti web
Accessibilità dei siti web
 
Dates and Times in Java 7 and Java 8
Dates and Times in Java 7 and Java 8Dates and Times in Java 7 and Java 8
Dates and Times in Java 7 and Java 8
 
Indicatori quantitativi per la valutazione dei processi
Indicatori quantitativi per la valutazione dei processiIndicatori quantitativi per la valutazione dei processi
Indicatori quantitativi per la valutazione dei processi
 
AmI 2015 - Design Process
AmI 2015 - Design ProcessAmI 2015 - Design Process
AmI 2015 - Design Process
 
Ambient Intelligence: Theme of the Year 2016
Ambient Intelligence: Theme of the Year 2016Ambient Intelligence: Theme of the Year 2016
Ambient Intelligence: Theme of the Year 2016
 
Ausili: definizioni e normative - Tecnologie per la Disabilità 2014/2015
Ausili: definizioni e normative - Tecnologie per la Disabilità 2014/2015Ausili: definizioni e normative - Tecnologie per la Disabilità 2014/2015
Ausili: definizioni e normative - Tecnologie per la Disabilità 2014/2015
 
AmI 2015 - Databases in Python
AmI 2015 - Databases in PythonAmI 2015 - Databases in Python
AmI 2015 - Databases in Python
 
Internet of Things - Cos'è e cosa ci posso fare?
Internet of Things - Cos'è e cosa ci posso fare?Internet of Things - Cos'è e cosa ci posso fare?
Internet of Things - Cos'è e cosa ci posso fare?
 

Similar to Introduzione al Corso - Tecniche di Programmazione 2015

12BHD Informatica - Introduzione alla Programmazione in C
12BHD Informatica - Introduzione alla Programmazione in C12BHD Informatica - Introduzione alla Programmazione in C
12BHD Informatica - Introduzione alla Programmazione in CFulvio Corno
 
Erasmus+KA1 Piùeuropaascuola_CLIL_A_TSANOS
Erasmus+KA1 Piùeuropaascuola_CLIL_A_TSANOSErasmus+KA1 Piùeuropaascuola_CLIL_A_TSANOS
Erasmus+KA1 Piùeuropaascuola_CLIL_A_TSANOSclaudiadistefano
 
22. Conclusioni del corso
22. Conclusioni del corso22. Conclusioni del corso
22. Conclusioni del corsoRoberto Polillo
 
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...GiulioPic
 
Presentazione progetto
Presentazione progettoPresentazione progetto
Presentazione progettocricla04
 
Erasmus+KA1 Piùeuropaascuola_CLIL2_A_TSANOS
Erasmus+KA1 Piùeuropaascuola_CLIL2_A_TSANOSErasmus+KA1 Piùeuropaascuola_CLIL2_A_TSANOS
Erasmus+KA1 Piùeuropaascuola_CLIL2_A_TSANOSclaudiadistefano
 
Come motivare i nativi digitali all'uso della linea di comando
Come motivare i nativi digitali all'uso della linea di comandoCome motivare i nativi digitali all'uso della linea di comando
Come motivare i nativi digitali all'uso della linea di comandoGabriella Dodero
 
"Un MOOC a scuola": approcci e prospettive
"Un MOOC a scuola": approcci e prospettive"Un MOOC a scuola": approcci e prospettive
"Un MOOC a scuola": approcci e prospettiveFrancesca Ravanelli
 
Strumenti e metodi per la preparazione dei contenuti in e-learning
 Strumenti e metodi per la preparazione dei contenuti in e-learning Strumenti e metodi per la preparazione dei contenuti in e-learning
Strumenti e metodi per la preparazione dei contenuti in e-learningFulvio Corno
 
22. Conclusioni del corso
22. Conclusioni del corso22. Conclusioni del corso
22. Conclusioni del corsoRoberto Polillo
 
Presentazione percorso base Didatec
Presentazione percorso base DidatecPresentazione percorso base Didatec
Presentazione percorso base DidatecLorena Preite
 
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue apiBetter Software
 
Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso
Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corsoAlgoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso
Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corsoPier Luca Lanzi
 

Similar to Introduzione al Corso - Tecniche di Programmazione 2015 (20)

12BHD Informatica - Introduzione alla Programmazione in C
12BHD Informatica - Introduzione alla Programmazione in C12BHD Informatica - Introduzione alla Programmazione in C
12BHD Informatica - Introduzione alla Programmazione in C
 
Erasmus+KA1 Piùeuropaascuola_CLIL_A_TSANOS
Erasmus+KA1 Piùeuropaascuola_CLIL_A_TSANOSErasmus+KA1 Piùeuropaascuola_CLIL_A_TSANOS
Erasmus+KA1 Piùeuropaascuola_CLIL_A_TSANOS
 
UniCam Informatica
UniCam InformaticaUniCam Informatica
UniCam Informatica
 
22. Conclusioni del corso
22. Conclusioni del corso22. Conclusioni del corso
22. Conclusioni del corso
 
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
 
Presentazione progetto
Presentazione progettoPresentazione progetto
Presentazione progetto
 
Presentazione progetto
Presentazione progettoPresentazione progetto
Presentazione progetto
 
Erasmus+KA1 Piùeuropaascuola_CLIL2_A_TSANOS
Erasmus+KA1 Piùeuropaascuola_CLIL2_A_TSANOSErasmus+KA1 Piùeuropaascuola_CLIL2_A_TSANOS
Erasmus+KA1 Piùeuropaascuola_CLIL2_A_TSANOS
 
3. Il progetto di esame
3. Il progetto di esame3. Il progetto di esame
3. Il progetto di esame
 
Come motivare i nativi digitali all'uso della linea di comando
Come motivare i nativi digitali all'uso della linea di comandoCome motivare i nativi digitali all'uso della linea di comando
Come motivare i nativi digitali all'uso della linea di comando
 
"Un MOOC a scuola": approcci e prospettive
"Un MOOC a scuola": approcci e prospettive"Un MOOC a scuola": approcci e prospettive
"Un MOOC a scuola": approcci e prospettive
 
LucianoZu_CV
LucianoZu_CVLucianoZu_CV
LucianoZu_CV
 
Strumenti e metodi per la preparazione dei contenuti in e-learning
 Strumenti e metodi per la preparazione dei contenuti in e-learning Strumenti e metodi per la preparazione dei contenuti in e-learning
Strumenti e metodi per la preparazione dei contenuti in e-learning
 
22. Conclusioni del corso
22. Conclusioni del corso22. Conclusioni del corso
22. Conclusioni del corso
 
Presentazione percorso base Didatec
Presentazione percorso base DidatecPresentazione percorso base Didatec
Presentazione percorso base Didatec
 
Lms erudio
Lms erudioLms erudio
Lms erudio
 
Erudio 2 service plus
Erudio 2 service plusErudio 2 service plus
Erudio 2 service plus
 
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue api
 
Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso
Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corsoAlgoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso
Algoritmi e Calcolo Parallelo 2012/2013 - Introduzione al corso
 
Progettazione di strumenti sostenibili per la comunicazione: il caso dell'Uni...
Progettazione di strumenti sostenibili per la comunicazione: il caso dell'Uni...Progettazione di strumenti sostenibili per la comunicazione: il caso dell'Uni...
Progettazione di strumenti sostenibili per la comunicazione: il caso dell'Uni...
 

Recently uploaded

XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 

Recently uploaded (8)

XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 

Introduzione al Corso - Tecniche di Programmazione 2015

  • 1. Introduzione al corso Tecniche di Programmazione – A.A. 2014/2015
  • 2. Dati essenziali… A.A. 2014/2015Tecniche di programmazione2  Tecniche di programmazione  Ing. Gestionale (L8), terzo anno, secondo semestre  Codice 03FYZPL, 10 crediti  Sito di riferimento: http://bit.ly/tecn-progr  http://elite.polito.it/index.php/teaching/current-courses/164- 03fyz-tecn-progr  Docenti  Fulvio Corno  Giovanni Squillero  Marco Gaudesi
  • 3. Sommario A.A. 2014/2015Tecniche di programmazione3 1. Obiettivi e contenuti 2. Organizzazione didattica 3. Materiali e strumenti 4. Esame
  • 5. Obiettivo formativo A.A. 2014/2015Tecniche di programmazione5  Acquisire la capacità di affrontare (e risolvere) problemi ricorrendo all’informatica come strumento di analisi, simulazione, ricerca, ottimizzazione  «Problem Solving»  Acquisire alcune competenze tecniche ed operative per la realizzazione di applicazioni software interattive, moderne, efficienti, integrate  «Real-world software»  Applicare tali capacità a problemi di tipo organizzativo, gestionale, logistico, ...  «Real-world problems»
  • 6. Contenuti principali A.A. 2014/2015Tecniche di programmazione6 • Astrazione, complessità • Strutture dati avanzate (liste, hash, grafi, code) • Algoritmi ed efficienza (ricorsione, sort, enumerate, search) • Simulazione, ricerca (event-driven, branch&bound) Problem Solving • Interfacce grafiche (JavaFX, CSS) • Utilizzo di database (MySQL e JDBC) • Utilizzo di librerie Java per strutture dati • Open source Real-world software • Esempi e casi di studio basati su problami ed applicazioni reali • Analisi, progettazione, realizzazione, valutazione (efficacia/efficienza) • Data-set reali e significativi Real-world problems
  • 7. Questo corso… A.A. 2014/2015Tecniche di programmazione7  Vuole insegnare ad affrontare i problemi attraverso approcci algoritmici  Utilizza i meccanismi di astrazione offerti dalla programmazione ad oggetti  Punta a realizzare applicazioni anche gradevoli  Insiste sull’efficienza delle strutture dati e degli algoritmi utilizzati  Utilizza esempi reali o realistici (suggerimenti benvenuti…)  Non è uguale al corso di Algoritmi e Programmazione degli informatici
  • 9. Orario A.A. 2014/2015Tecniche di programmazione9 Lunedì Martedì Mercoledì Giovedì Venerdì 08:30-10:00 Lab (sq.1) LEP 10:00-11:30 Lab (sq.1) LEP 11:30-13:00 13:00-14:30 Lab (sq.2) LEP Lez/Ese Aula 1I 14:30-16:00 Lez/Ese Aula 1I Lab (sq.2) LEP Lez/Ese Aula 1I 16:00-17:30
  • 10. Tipologie di lezioni A.A. 2014/2015Tecniche di programmazione10  Lezione ed Esercitazione (4,5 ore/settimana)  Nessuna distinzione formale: le esercitazioni sono mescolate ed intercalate alle lezioni  Lezioni teoriche  Svolgimento di esercizi in aula  Suggerito: portare il proprio PC  Saranno disponibili gli Screencast  Laboratorio (3 ore/settimana per 2 squadre)  Svolgimento di esercizi proposti  Testo pubblicato in anticipo  Soluzioni pubblicate dopo ≥2 settimane  NO elaborati da consegnare
  • 11. Squadre di laboratorio A.A. 2014/2015Tecniche di programmazione11  Copiamo la divisione che avete negli altri corsi?  Squadra 1 (mercoledì 08:30-11:30):  Studenti da AAAA fino a ????  Squadra 2 (mercoledì 13:00-16:00):  Studenti da ????+1 fino a ZZZZ  Per eventuali scambi di squadra, rispettare la capienza ed il regolamento del laboratorio LEP
  • 12. Screencast A.A. 2014/2015Tecniche di programmazione12  Le lezioni ed esercitazioni saranno registrate e messe a disposizione  Audio + video PC  Sul sito del corso, immediatamente (e youtube, in ritardo)  Salvo problemi tecnici (a Murphy piacendo…)
  • 13. Sito del corso A.A. 2014/2015Tecniche di programmazione13  Punto di riferimento per tutto il materiale  http://bit.ly/tecn-progr
  • 15. Prerequisiti A.A. 2014/2015Tecniche di programmazione15  Programmazione ad oggetti  Verrà utilizzato il 98% di quanto avete appreso  Si raccomanda una buona preparazione sulla programmazione Java  Alcuni argomenti chiave verranno ripresi e approfonditi  Basi di dati  Verranno viste applicazioni pratiche: DBMS usato come “strumento” di lavoro  Richiesta la capacità di costruire (semplici) basi di dati e di impostare (semplici) interrogazioni
  • 16. Materiali di studio A.A. 2014/2015Tecniche di programmazione16 +
  • 17. Materiali di studio A.A. 2014/2015Tecniche di programmazione17 + …e anche
  • 18. Materiale relativo alle lezioni A.A. 2014/2015Tecniche di programmazione18  Lucidi delle lezioni  In inglese  Progetti elaborati in aula (file sorgente)  Zip  GitHub  Screencast  AVI  YouTube
  • 19. Libri di testo A.A. 2014/2015Tecniche di programmazione19 …
  • 20. Strumenti A.A. 2014/2015Tecniche di programmazione20  Java 8  JDK 1.8 (with JavaFX 8.0)  JavaFX Scene Builder (2.0)  Eclipse Luna  e(fx)clipse  git, subversion  MySQL or MariaDB  Server, JDBC driver  Workbench or HeidiSQL  Librerie Java  Esclusivamente open source  Cross platform (Windows-Linux- MacOSX)
  • 22. Modalità d’esame A.A. 2014/2015Tecniche di programmazione22  Esercizio di programmazione  Sarà già fornito un progetto Eclipse su cui lavorare ed un database contenente i dati necessari all’algoritmo  Da svolgersi su Personal Computer (LEP)  Con accesso a Internet ed a tutto il materiale  Due esercizi:  Punto 1, valore 18/30, valutato direttamente in laboratorio al termine della prova.Valutazione ON/OFF brutale.  Punto 2, valore 12/30 (colma la differenza tra il 18 ed il 30), valutato NEL MERITO dai docenti.  Regole d’esame disponibili sul sito
  • 24. Statistiche esame A.A. 2014/2015Tecniche di programmazione24 Superamento entro il primo anno: 64.6% Superamento globale: 64.1%
  • 25. Statistiche esame A.A. 2014/2015Tecniche di programmazione25 42% complessivo 15%, quasi tutti al primo anno
  • 26. Contatti A.A. 2014/2015Tecniche di programmazione26  Fulvio Corno  Dipartimento di Automatica e Informatica (3o piano)  fulvio.corno@polito.it  Orario ricevimento (secondo semestre):  ????????????? (gradita e-mail entro il giorno prima)  Giovanni Squillero  Dipartimento di Automatica e Informatica (4o piano)  giovanni.squillero@polito.it  Marco Gaudesi  Dipartimento di Automatica e Informatica (2o piano)  marco.gaudesi@polito.it
  • 27. Licenza d’uso A.A. 2014/2015Tecniche di programmazione27  Queste diapositive sono distribuite con licenza Creative Commons “Attribuzione - Non commerciale - Condividi allo stesso modo (CC BY-NC-SA)”  Sei libero:  di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera  di modificare quest'opera  Alle seguenti condizioni:  Attribuzione — Devi attribuire la paternità dell'opera agli autori originali e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l'opera.  Non commerciale — Non puoi usare quest'opera per fini commerciali.  Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa.  http://creativecommons.org/licenses/by-nc-sa/3.0/