Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Psicologia
SCIENZE PSICOLOGICHE COGNITIVE E PSICOBIOLOGICHE
Insegnamento
FONDAMENTI DI INFORMATICA
PSP3049230, A.A. 2019/20

Informazioni valide per gli studenti immatricolati nell'A.A. 2017/18

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea in
SCIENZE PSICOLOGICHE COGNITIVE E PSICOBIOLOGICHE
PS1082, ordinamento 2015/16, A.A. 2019/20
N0
porta questa
pagina con te
Crediti formativi 9.0
Tipo di valutazione Voto
Denominazione inglese INTRODUCTORY COMPUTER SCIENCE
Dipartimento di riferimento Dipartimento di Psicologia Generale
Obbligo di frequenza No
Lingua di erogazione ITALIANO
Sede PADOVA
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile FEDERICO FILIRA 000000000000

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
AFFINE/INTEGRATIVA Attività formative affini o integrative ING-INF/05 9.0

Organizzazione dell'insegnamento
Periodo di erogazione Secondo semestre
Anno di corso III Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LEZIONE 9.0 63 162.0

Calendario
Inizio attività didattiche 02/03/2020
Fine attività didattiche 12/06/2020
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2015

Syllabus
Prerequisiti: Non è necessario alcun prerequisito
Conoscenze e abilita' da acquisire: 1. Conoscere i concetti di base relativi a:
• organizzazione logica e funzionamento dei calcolatori;
• codifica binaria dell'informazione;
• approcci elementari alla soluzione di problemi (algoritmi) e al progetto di strutture dati;
• linguaggi di programmazione di alto livello;
2. Saper applicare tali concetti alla risoluzione di problemi riguardanti: la codifica binaria dell'informazione, la formulazione di algoritmi per la risoluzione di semplici problemi di elaborazione dati;
3. Maturare le competenze necessarie per lo sviluppo di semplici applicazioni in linguaggio Python.
Modalita' di esame: due prove intermedie scritte;
appello d'esame articolato in due prove scritte:
- prova di teoria tramite domande a risposta chiusa;
- prova di programmazione.
Criteri di valutazione: Le conoscenze acquisite verranno valutate tramite l'abilità di applicare le metodologie studiate in modo autonomo e consapevole e di implementare in linguaggio Python la soluzione di problemi.
Contenuti: Architettura dei calcolatori
Cenni storici. I calcolatori come esecutori automatici di algoritmi. Organizzazione logica e principi di funzionamento dei calcolatori: l'architettura di von Neumann. Unità centrale di elaborazione, memoria centrale, dispositivi di memoria di massa, dispositivi di ingresso e uscita, Gerarchia di memorie (memoria cache, principale, secondaria e terziaria); cenni al pipelining, architetture CISC e RISC, multiprocessore e multi-core.
Il sistema operativo
Funzioni e organizzazione dei sistemi operativi. Gestione dei processi, della memoria principale, della memoria secondaria, delle periferiche. L'interfaccia utente.
Codifica binaria dell'informazione
Il concetto di codifica dell'informazione. Codifica di informazioni numeriche: richiami sui sistemi di numerazione posizionali e sulle basi di numerazione; codifica dei numeri interi (senza segno, segno e valore, complemento a due) e dei numeri frazionari (virgola fissa e virgola mobile). Cenni alla codifica di informazioni non numeriche: testi, suoni e immagini.
Algoritmi e strutture dati
Concetto di algoritmo, Proprietà degli algoritmi: correttezza ed efficienza. Introduzione all'analisi degli algoritmi, esemplari di un problema e loro taglie. Algoritmi di ricerca sequenziale e binaria. Algoritmi di ordinamento (selection sort, bubble sort, insertion sort). Implementazione di algoritmi di ricerca e ordinamento in Python. Misura della complessità : nel caso peggiore e nel caso medio. Notazione asintotica O-grande. Ricorsione, eliminazione della ricorsione. Strutture di dati. Array, liste, pile e code.
Linguaggi di programmazione
Linguaggi di basso livello (linguaggio macchina) e di alto livello. Linguaggi tradotti e interpretati. Esecuzione di un programma tramite compilazione e interpretazione. Paradigmi di programmazione: procedurale, orientato agli oggetti, funzionale, dichiarativo.
Il linguaggio Python
I principali tipi di dato: numeri interi, reali, stringhe, valori Booleani. Operatori matematici e logici. Espressioni. Accesso agli elementi di una sequenza: stringhe di caratteri, liste e dizionari.
Le istruzioni principali: assegnamento, ingresso e uscita (input(), raw_input(), print), condizionale (if, if...else), iterativa (while, for). Le istruzioni break e continue. La libreria standard di Python. Le librerie math e random. L'istruzione from... import... Definizione di nuove funzioni, parametri, chiamata, argomenti, visibilità locale dei parametri e delle variabili di una funzione. Passaggio degli argomenti per riferimento.
Tipi di file, operazioni sui file, modalità di accesso, apertura e chiusura. Le funzioni open, close, read, readline, readlines, write.
Il framework PsychoPy
Introduzione al modulo Python "PsychoPy", progetto open source sviluppato dall'Università di Nottingham, appositamente studiato per realizzare esperimenti di psicologia e neuroscienze.
Protezione dei dati personali
Cenni sul Codice in materia di protezione dei dati personali D.Lgs. 196/2003 e s.m.i., armonizzato al regolamento europeo (GDPR) n. 2016/679 del Parlamento europeo e del Consiglio, del 27 aprile 2016, relativo alla protezione delle persone fisiche con riguardo al trattamento dei dati personali, nonché alla libera circolazione di tali dati.
Attivita' di apprendimento previste e metodologie di insegnamento: • Lezioni frontali in aula
• Lezioni frontali in laboratorio in cui si applica la teoria vista a lezione sui dati reali
• Implementazione in linguaggio Python degli algoritmi visti a lezione e degli script utili all'analisi dei dati
• Attività di analisi dei dati in cui viene richiesto allo studente di prendere autonomamente decisioni sul tipo di analisi da eseguire e di valutare la bontà dei risultati.
Eventuali indicazioni sui materiali di studio: Si consiglia di utilizzare i testi di riferimento del corso e i lucidi delle lezioni.
In aggiunta vengono segnalati i seguenti testi per consultazione:
• Donatella Sciuto, Giacomo Buonanno, Luca Mari, "Introduzione ai sistemi informatici", McGraw-Hill.
• Jeffrey Elkner, Allen B. Downey, and Chris Meyers “How to Think Like a Computer Scientist: Learning with Python”: http://www.greenteapress.com/thinkpython/thinkCSpy.pdf.
2nd Edition documentation: (http://www.openbookproject.net/thinkcs/python/english2e/index.html)
• Stefano Ceri, Dino Mandrioli, Licia Sbattella: “Informatica: Programmazione”, Mc-Graw-Hill.
Testi di riferimento:
  • Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi e Gianpaolo Cugola, Informatica: arte e mestiere. Milano [etc.]: McGraw-Hill education, 2014.
  • Kenneth A. Lambert, Programmazione in Python. --: Apogeo Education, 2018. II edizione Cerca nel catalogo

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Laboratory
  • Problem solving
  • Files e pagine caricati online (pagine web, Moodle, ...)

Didattica innovativa: Software o applicazioni utilizzati
  • Moodle (files, quiz, workshop, ...)

Obiettivi Agenda 2030 per lo sviluppo sostenibile
Istruzione di qualita'