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. 2017/18

Informazioni valide per gli studenti immatricolati nell'A.A. 2015/16

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea in
SCIENZE PSICOLOGICHE COGNITIVE E PSICOBIOLOGICHE
PS1082, ordinamento 2015/16, A.A. 2017/18
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 BARBARA DI CAMILLO ING-INF/06

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

Modalità di erogazione
Periodo di erogazione Primo semestre
Anno di corso III Anno
Modalità di erogazione frontale

Organizzazione della didattica
Tipo ore Crediti Ore di
Corso
Ore Studio
Individuale
Turni
LEZIONE 9.0 63 162.0 Nessun turno

Calendario
Inizio attività didattiche 02/10/2017
Fine attività didattiche 19/01/2018

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: Ogni appello d'esame viene 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. Cenni al linguaggio C e compilazione di un programma.

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.
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, 2012.