ID:
LABA01
Tipo Insegnamento:
Obbligatorio
Durata (ore):
48
CFU:
6
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Url:
BUSINESS ADMINISTRATION/BASE Anno: 1
Anno:
2023
Dati Generali
Periodo di attività
Primo Semestre (11/09/2023 - 02/12/2023)
Syllabus
Obiettivi Formativi
Il corso ambisce a fornire una comprensione del cosiddetto "pensiero computazionale" e un insieme di abilità di programmazione strumentali all'elaborazione e all'analisi dei dati. Gli studenti impareranno prima come utilizzare la shell per dare istruzioni da riga di comando. Apprenderanno quindi le basi della programmazione, scoprendo come concetti comuni a tutti i linguaggi sono implementati in Python. Python è un linguaggio semplice da imparare ma estremamente flessibile e potente. Attraverso un metodo di insegnamento innovativo, gli studenti impareranno come affrontare un problema di programmazione senza che una persona esperta spieghi loro come risolverlo. Impareranno a lavorare in completa autonomia e a collaborare con altri pari.
Prerequisiti
Nessuno
Metodi didattici
Il corso sarà organizzato in collaborazione con la scuola di programmazione "42 Roma Luiss" ed utilizzerà principalmente i suoi metodi di insegnamento innovativi.
L'insegnamento in presenza sarà sostituito da un programma basato sulla risoluzione dei problemi. Gli studenti dovranno realizzare progetti da soli o in gruppo e discuterli con l'insegnante e con altri studenti, che non hanno necessariamente progredito allo stesso ritmo. Gli studenti dovranno motivare le loro scelte, spiegando perché hanno deciso di risolvere il progetto in un modo specifico. Questi momenti aiutano a consolidare l'apprendimento personale e a condividere le conoscenze con la comunità. L'intelligenza collettiva, che consente alle buone pratiche di emergere e ai gruppi di avanzare, gioca un ruolo importante in questo metodo di insegnamento.
Agli studenti viene chiesto di pensare da soli davanti a un computer. In tale circostanza, sbagliare non sarà penalizzato, ma considerato parte di un percorso di apprendimento. Il personale pedagogico sarà a disposizione per aiutare gli studenti a trovare le proprie soluzioni.
L'insegnamento in presenza sarà sostituito da un programma basato sulla risoluzione dei problemi. Gli studenti dovranno realizzare progetti da soli o in gruppo e discuterli con l'insegnante e con altri studenti, che non hanno necessariamente progredito allo stesso ritmo. Gli studenti dovranno motivare le loro scelte, spiegando perché hanno deciso di risolvere il progetto in un modo specifico. Questi momenti aiutano a consolidare l'apprendimento personale e a condividere le conoscenze con la comunità. L'intelligenza collettiva, che consente alle buone pratiche di emergere e ai gruppi di avanzare, gioca un ruolo importante in questo metodo di insegnamento.
Agli studenti viene chiesto di pensare da soli davanti a un computer. In tale circostanza, sbagliare non sarà penalizzato, ma considerato parte di un percorso di apprendimento. Il personale pedagogico sarà a disposizione per aiutare gli studenti a trovare le proprie soluzioni.
Verifica Apprendimento
Durante il corso, agli studenti verrà fornito un set di progetti che devono completare per poter progredire nel corso e superare con successo l'esame. Questi progetti valgono il 70% del voto finale. Il rimanente 30% è assegnato in base al risultato di un quiz a risposta multipla.
Testi
Allen B. Downey, “Think Python: How to Think Like a Computer Scientist (2nd Edition)”, O’Reilly, ISBN-13: 978-1491939369
Contenuti
Il corso tratterà i seguenti aspetti della programmazione informatica:
• Introduzione alla programmazione: architetture informatiche; memoria e dati; CPU e programmi; linguaggi di programmazione; problemi, algoritmi e programmi.
• Le basi delle interfacce da riga di comando e del linguaggio di scripting bash.
• Come utilizzare l'interprete Python: richiamare l'interprete; passaggio di argomenti; modalità interattiva; i notebook; piattaforme di codifica online.
• Concetti base della programmazione Python: variabili e assegnamenti; espressioni ed istruzioni; operazioni; stampa; commenti; debugging; tipi di dati; numeri e stringhe; input.
• Funzioni: funzioni builtin; chiamate di funzione; importazione di moduli e funzioni; funzioni matematiche; composizione di funzioni; definire nuove funzioni; parametri e argomenti; argomenti obbligatori e facoltativi; ordine degli argomenti e assegnazione delle parole chiave; ambito di una variabile.
• Prendere decisioni: espressioni booleane e operatori logici; esecuzione condizionale e alternativa; costrutto if-elif-else; condizionali concatenati e annidati.
• Iterazioni: riassegnazione e aggiornamento delle variabili; costrutto while; istruzione break; sequenze e cicli; l'operatore in; costrutto for.
• Strutture dati (stringhe, liste, tuple, dizionari): definizione, proprietà, operazioni e metodi; indicizzazione vs assegnazione; mutabilità e immutabilità; map, flter e reduce; referenziazione e aliasing; impacchettamento spacchettamento; ricerca e ricerca inversa; argomenti di lunghezza variabile.
• File: persistenza; apertura e chiusura e costrutto with; lettura e scrittura; operatore format; nomi di file e percorsi; catturare le eccezioni; pickling.
• Moduli e pacchetti: definizione di un modulo; definire un pacchetto; importazione di un pacchetto vs. importazione di un modulo vs. importazione di una funzione; installazione di pacchetti.
• Introduzione alla programmazione: architetture informatiche; memoria e dati; CPU e programmi; linguaggi di programmazione; problemi, algoritmi e programmi.
• Le basi delle interfacce da riga di comando e del linguaggio di scripting bash.
• Come utilizzare l'interprete Python: richiamare l'interprete; passaggio di argomenti; modalità interattiva; i notebook; piattaforme di codifica online.
• Concetti base della programmazione Python: variabili e assegnamenti; espressioni ed istruzioni; operazioni; stampa; commenti; debugging; tipi di dati; numeri e stringhe; input.
• Funzioni: funzioni builtin; chiamate di funzione; importazione di moduli e funzioni; funzioni matematiche; composizione di funzioni; definire nuove funzioni; parametri e argomenti; argomenti obbligatori e facoltativi; ordine degli argomenti e assegnazione delle parole chiave; ambito di una variabile.
• Prendere decisioni: espressioni booleane e operatori logici; esecuzione condizionale e alternativa; costrutto if-elif-else; condizionali concatenati e annidati.
• Iterazioni: riassegnazione e aggiornamento delle variabili; costrutto while; istruzione break; sequenze e cicli; l'operatore in; costrutto for.
• Strutture dati (stringhe, liste, tuple, dizionari): definizione, proprietà, operazioni e metodi; indicizzazione vs assegnazione; mutabilità e immutabilità; map, flter e reduce; referenziazione e aliasing; impacchettamento spacchettamento; ricerca e ricerca inversa; argomenti di lunghezza variabile.
• File: persistenza; apertura e chiusura e costrutto with; lettura e scrittura; operatore format; nomi di file e percorsi; catturare le eccezioni; pickling.
• Moduli e pacchetti: definizione di un modulo; definire un pacchetto; importazione di un pacchetto vs. importazione di un modulo vs. importazione di una funzione; installazione di pacchetti.
Risultati di Apprendimento Attesi
Conoscenza e comprensione:
Il corso introdurrà gli studenti a bash, un linguaggio di scripting specifico della shell, rendendoli familiari con i comandi e la loro sintassi di chiamata. Fornirà agli studenti una comprensione delle principali strutture dati e dei flussi di controllo, per poi affrontare alcuni problemi comuni che includono la lettura di dati, l'importazione di pacchetti, la scrittura di funzioni e il debug.
Entro la fine di questo corso, gli studenti acquisiranno una solida comprensione di come utilizzare la libreria standard Python per scrivere programmi, creare funzioni e classi, scrivere e accedere a moduli esterni.
Oltre agli aspetti tecnici, le particolari modalità di apprendimento forniranno agli studenti importanti strumenti per capire come i problemi sono risolti in un ambiente professionale: come gestire un progetto, trovare le risorse necessarie per completarlo, lavorare in gruppo, chiedere aiuto o fornirlo ad altri.
Applicare conoscenza e comprensione:
Questo corso insegnerà agli studenti come:
• Utilizzare un'interfaccia da riga di comando per esplorare un file system e accedere ai dati
• Utilizzare i principali tipi di dati (stringhe, liste, dizionari e altro)
• Implementare i flussi di controllo (istruzioni if-then, cicli while e for)
• Organizzare codice (funzioni, moduli, pacchetti)
• Leggere e scrivere dati da file locali (.txt, .csv, .json, ecc.)
Esprimere giudizi:
Al termine del percorso formativo gli studenti saranno in grado di:
• Scomporre un problema in sottoproblemi più facili da risolvere
• Cooperare con altri studenti per risolvere un problema di programmazione suddividendosi i compiti
• Progettare semplici algoritmi per risolvere problemi di programmazione comuni
• Identificare la struttura dati più adatta per l'attività in corso
Capacità di comunicazione:
Per completare il corso, gli studenti dovranno lavorare in gruppo, collaborare con la comunità per superare le sfide e condividere la loro esperienza con i loro pari. Ciò stimolerà le loro capacità comunicative in relazione a tutti gli aspetti della programmazione: descrivere un problema, discutere delle criticità, chiedere aiuto, spiegare un algoritmo, commentare il codice.
Capacità di apprendimento:
Il metodo di insegnamento innovativo costringerà gli studenti a trovare le risposte da soli o a chiedere agli altri studenti. A loro volta, sarà spesso chiesto loro di trasmettere nozioni a qualcun altro. Questo metodo consente agli studenti di affinare le proprie competenze attraverso la ricerca, la sperimentazione e la difesa del proprio approccio personale a un determinato problema.
Il corso introdurrà gli studenti a bash, un linguaggio di scripting specifico della shell, rendendoli familiari con i comandi e la loro sintassi di chiamata. Fornirà agli studenti una comprensione delle principali strutture dati e dei flussi di controllo, per poi affrontare alcuni problemi comuni che includono la lettura di dati, l'importazione di pacchetti, la scrittura di funzioni e il debug.
Entro la fine di questo corso, gli studenti acquisiranno una solida comprensione di come utilizzare la libreria standard Python per scrivere programmi, creare funzioni e classi, scrivere e accedere a moduli esterni.
Oltre agli aspetti tecnici, le particolari modalità di apprendimento forniranno agli studenti importanti strumenti per capire come i problemi sono risolti in un ambiente professionale: come gestire un progetto, trovare le risorse necessarie per completarlo, lavorare in gruppo, chiedere aiuto o fornirlo ad altri.
Applicare conoscenza e comprensione:
Questo corso insegnerà agli studenti come:
• Utilizzare un'interfaccia da riga di comando per esplorare un file system e accedere ai dati
• Utilizzare i principali tipi di dati (stringhe, liste, dizionari e altro)
• Implementare i flussi di controllo (istruzioni if-then, cicli while e for)
• Organizzare codice (funzioni, moduli, pacchetti)
• Leggere e scrivere dati da file locali (.txt, .csv, .json, ecc.)
Esprimere giudizi:
Al termine del percorso formativo gli studenti saranno in grado di:
• Scomporre un problema in sottoproblemi più facili da risolvere
• Cooperare con altri studenti per risolvere un problema di programmazione suddividendosi i compiti
• Progettare semplici algoritmi per risolvere problemi di programmazione comuni
• Identificare la struttura dati più adatta per l'attività in corso
Capacità di comunicazione:
Per completare il corso, gli studenti dovranno lavorare in gruppo, collaborare con la comunità per superare le sfide e condividere la loro esperienza con i loro pari. Ciò stimolerà le loro capacità comunicative in relazione a tutti gli aspetti della programmazione: descrivere un problema, discutere delle criticità, chiedere aiuto, spiegare un algoritmo, commentare il codice.
Capacità di apprendimento:
Il metodo di insegnamento innovativo costringerà gli studenti a trovare le risposte da soli o a chiedere agli altri studenti. A loro volta, sarà spesso chiesto loro di trasmettere nozioni a qualcun altro. Questo metodo consente agli studenti di affinare le proprie competenze attraverso la ricerca, la sperimentazione e la difesa del proprio approccio personale a un determinato problema.
Criteri Necessari per l'Assegnazione del Lavoro Finale
Non è previsto l'assegnamento di un elaborato finale
Corsi
Corsi
BUSINESS ADMINISTRATION
Laurea
3 anni
No Results Found
Persone
Persone
Altro personale docente
No Results Found