mail unicampaniaunicampania webcerca

    Mauro IACONO

    Insegnamento di PROGRAMMING FOR DATA SCIENCE

    Corso di laurea magistrale in DATA SCIENCE

    SSD: ING-INF/05

    CFU: 9,00

    ORE PER UNITÀ DIDATTICA: 72,00

    Periodo di Erogazione: Secondo Semestre

    Italiano

    Lingua di insegnamento

    INGLESE

    Contenuti

    Il corso si propone di fornire agli studenti gli strumenti metodologici e tecnologici per comprendere la programmazione, il suo ruolo nei processi di sviluppo software e l’algoritmica, e di presentare le metodologie e le tecniche che riguardano le architetture dei sistemi informativi e i temi collegati.
    INTRODUZIONE

    ALGORITMI E PROGRAMMAZIONE

    ALGORITMI E STRUTTURE DATI NOTEVOLI

    FONDAMENTI DI PROCESSI DI SVILUPPO SOFTWARE

    INTRODUZIONE AL PYTHON
    SISTEMI INFORMATIVI
    DATAWAREHOUSING
    SISTEMI ERP
    SISTEMI BIG DATA

    Testi di riferimento

    Allen Downey, "Think Python, how to think like a computer scientist", 2nd edition, Green Tea Press (freely downloadable from the web)
    Ian Sommerville, Software engineering, 10th edition, Pearson
    Ralph Kimball, Margy Ross, The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition, Wiley

    Obiettivi formativi

    L’obiettivo del corso è permettere agli studenti di imparare la programmazione dei sistemi informatici, fornire una introduzione all’algoritmica e al progetto del software e presentare gli aspetti generali dei sistemi informativi e del loro impiego. Gli studenti saranno in grado di progettare e implementare semplici programmi in Python e di usare Python in maniera interattiva, per lo scripting e per la programmazione, e di comprendere le implicazioni in riferimento ai sistemi informativi.

    Prerequisiti

    Nessuno

    Metodologie didattiche

    Lezioni, esercitazioni di laboratorio

    Metodi di valutazione

    Prova scritta propedeutica sulla programmazione e su Python con esercizi, esami orali sugli argomenti teorici comprendente anche la discussione della prova scritta

    Altre informazioni

    Nessuno

    Programma del corso

    INTRODUZIONE

    ALGORITMI E PROGRAMMAZIONE
    Definizioni e proprietà. Esecuzione ed esecutore. Variabili, operazioni elementari. Analisi e sintesi di algoritmi. Rappresentazioni e diagrammi di flusso. Primitive della programmazione strutturata. Sottoprogrammi. Classificazione dei linguaggi di programmazione: paradigmi (procedurale, funzionale, dichiarativo, orientato agli oggetti) e generazioni. Interpreti e compilatori. Astrazioni e macchine virtuali.
    ALGORITMI E STRUTTURE DATI NOTEVOLI
    Algoritmi di ricerca: lineare, in vettori ordinati, binaria. Algoritmi di ordinamento: inserimento in ordine, per fusione, bubble sort, quick sort. Introduzione alla complessità computazionale. Introduzione alle strutture dati: liste, alberi, grafi.
    FONDAMENTI DI PROCESSI DI SVILUPPO SOFTWARE
    Introduzione all’ingegneria del software e ai cicli di sviluppo del software. Riuso e librerie.
    INTRODUZIONE AL PYTHON
    Introduzione al Python. Eseguire codice Python: modalità interattiva e programmi. Tipi predefiniti di Python. Regole di indentazione. Variabili: assegnamento e espressioni. Istruzione condizionale if. While e cicli. Elementi fondamentali sulle stringhe di caratteri. Tipi complessi: liste, tuple e dizionari. Funzioni. Comprensione delle liste e ricorsione. Libreria standard di Python. File. Python per la data science.
    SISTEMI INFORMATIVI
    I sistemi informativi: caratteristiche, classificazione, architetture, principali tecnologie
    DATA WAREHOUSING
    Data warehousing: caratteristiche, modelli, elementi di progettazione
    SISTEMI ERP
    Sistemi ERP: funzione, modelli di riferimento
    SISTEMI BIG DATA
    Sistemi Big Data: caratteristiche, architetture, principali tecnologie

    English

    Teaching language

    English

    Contents

    The course aims at providing the students the methodological and technological tools for understanding programming, its role in software development processes, and algorithmics, and to present the methodologies and techniques of information systems architectures and related issues.
    INTRODUCTION

    ALGORITHMS AND PROGRAMMING

    REMARKABLE ALGORITHMS AND DATA STRUCTURES

    FUNDAMENTALS OF SOFTWARE DEVELOPMENT PROCESSES

    INTRODUCTION TO PYTHON
    INFORMATION SYSTEMS
    DATAWAREHOUSING
    ERP SYSTEMS
    BIG DATA SYSTEMS

    Textbook and course materials

    Allen Downey, "Think Python, how to think like a computer scientist", 2nd edition, Green Tea Press (freely downloadable from the web)
    Ian Sommerville, Software engineering, 10th edition, Pearson
    Ralph Kimball, Margy Ross, The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition, Wiley

    Course objectives

    The goal of the course is to introduce students to computer programming, fundamentals of algorithmics and simple software design, and to information systems organization and operations. Students will apply theory by means of Python. Students will be able to design and implement simple Python programs and to use Python in interactive, scripting and programming modes, and to understand related issues with references to information systems.

    Prerequisites

    None

    Teaching methods

    Lectures, laboratory sessions

    Evaluation methods

    Propedeutic written test about programming and Python with exercises, oral exams about theoretical topics with discussion of the written test

    Other information

    None

    Course Syllabus

    INTRODUCTION

    ALGORITHMS AND PROGRAMMING
    Definition and properties. Execution and executor. Variables, elementary operations. Analysis and synthesis of an algorithm. Representations and flowcharts. Structured programming primitives. Subroutines. Classification of programming languages: paradigms (procedural, functional, declarative, object oriented) and generations. Interpreters and compilers. Abstractions and virtual machines.

    REMARKABLE ALGORITHMS AND DATA STRUCTURES
    Search algorithms: linear search, search in ordered arrays, binary search. Sorting algorithms: ordered insertion, fusion, bubble sort, quick sort. Introduction to computational complexity. Introduction to data structures: lists, trees, graphs.

    FUNDAMENTALS OF SOFTWARE DEVELOPMENT PROCESSES
    Introduction to software engineering and software development cycles. Software reuse and libraries.

    INTRODUCTION TO PYTHON
    Introduction to Python. Running Python code: interactive mode and programs. Python built-in types. Python indentation rules. Variables: assignment and expressions. Conditional if statement. While and for loops. String fundamentals. Complex types: lists, tuples and dictionaries. Functions. List comprehensions and recursion. Python standard library. Files. Python for data science.
    INFORMATION SYSTEMS
    Information systems: features, classification, organization, main technologies
    DATA WAREHOUSING
    Data warehousing: features, models, elements of design
    ERP SYSTEMS
    ERP systems: role, reference models
    BIG DATA SYSTEMS
    Big Data systems: features, organization, main technologies

    facebook logoinstagram buttonyoutube logotype