Course Syllabus
Obiettivi
Coerentemente con gli obiettivi formativi del Corso di Studio, l'insegnamento si propone di fornire allo studente le conoscenze di base riguardanti l' architettura dei sistemi informatici e delle reti di calcolatori, come pure i possibili paradigmi di programmazione. Verranno altresì fornite le competenze necessarie a identificare algoritmi risolutivi a semplici problemi e codificarli in linguaggio di programmazione Java, secondo il paradigma della programmazione imperativa.
Contenuti sintetici
Architettura di Von Neumann. Componenti e funzionalità di
un sistema operativo. Cenni alle reti di calcolatori. Linguaggi di
Programmazione. Programmazione strutturata in Java.
Programma esteso
Programma: Architettura dei sistemi informatici
- Cenni di architettura dei calcolatori e codifica dell'informazione
- Cenni
di sistemi operativi
- Cenni
di reti di telecomunicazioni
Programmazione strutturata in Java
- Gerarchia dei linguaggi di programmazione, compilatori e interpreti
- La
Java Virtual Machine
- Algoritmi
e programmi
- Tipi
di dati primitivi.
- Strutture di controllo selettive e iterative
- Array
di tipi primitivi
- Metodi,
definizione ed invocazione
- Ricorsione
Prerequisiti
Nessuno
Modalità didattica
- Lezione
frontale, 4 cfu
- Laboratorio frontale 2 cfu
Materiale didattico
Tutte le informazioni sul corso, le slide presentate a lezione e le esercitazioni da svolgere in laboratorio verranno fornite tramite la piattaforma elearning di ateneo all’indirizzo
elearning.unimib.it.
Testo di riferimento:
W. Savitch: "Programmazione di base e avanzata con Java", a cura di Daniela Micucci, 2° edizione, Pearson
Periodo di erogazione dell'insegnamento
Secondo semestre
Modalità di verifica del profitto e valutazione
Modalità dell’esame
Prova scritta e prova orale facoltativa (a richiesta dello studente). Valutazione con voto in trentesimi 18-30/30. La prova orale, che può riguardare sia domande teoriche che svolgimento di esercizi pratici di programmazione, ha peso inferiore alla prova scritta, determinando un incremento massimo di 4 punti rispetto al risultato della prova scritta ed è necessaria per l'ottenimento della lode.
Nel periodo di emergenza Covid-19 gli esami orali saranno solo telematici. Verranno svolti utilizzando la piattaforma WebEx e nella pagina e-learning dell'insegnamento verrà riportato un link pubblico per l'accesso all'esame di possibili spettatori virtuali.
Le modalità di svolgimento della prova scritta verranno precisate in seguito.
La prova scritta è divisa in due parti: nella prima si valutano, attraverso una serie di domande a risposta chiusa, le conoscenze dei fondamenti teorici della programmazione strutturata; nella seconda, si valuta, attraverso l'implementazione di un semplice programma software, la capacità di realizzare in pratica un programma in grado di risolvere correttamente un semplice problema applicativo, rispondendo alle specifiche del problema da risolvere e rispettando i principi della programmazione presentati a lezione, senza generare errori (di compilazione, a runtime o logici).
La media aritmetica (eventualmente pesata) dei voti conseguiti nelle due parti definisce il voto proposto allo studente, che, se sufficiente, ha la facoltà di accettarlo o modificarlo attraverso lo svolgimento di un orale integrativo (eventualmente peggiorandolo nel caso la prova orale non sia soddisfacente). La prova orale può essere sostenuta solo in caso di sufficienza piena. Il docente si riserva la facoltà di richiedere un supplemento di indagine, attraverso una prova orale obbligatoria, nei casi in cui la prova scritta, pur essendo valutata sufficiente, presenti delle criticità: ad esempio, insufficienza nella parte teorica e parte pratica molto soddisfacente, o viceversa.
Nel corso dell’anno sono previsti 5 appelli d’esame nei seguenti periodi: uno nel mese di giugno, uno a luglio, uno a settembre, uno a novembre e uno a gennaio. Durante il periodo del corso si tengono due prove scritte parziali che, in caso di esito complessivo positivo, permetteranno di verbalizzare il voto o sostenere la prova orale integrativa nel mese di giugno.
Orario di ricevimento
Giovedì, dalle 11 alle 12 o su appuntamento
Nel periodo di emergenza Covid-19 il ricevimento sarà solo telematico. Verrà svolto utilizzando la piattaforma WebEx su richiesta dello studente o su proposta del docente.
Aims
This course aims at
introducing the basic knowledge of computer systems architecture and networks, as well as different programming pardigms. Moreover, the course will provide competencies to identify algorithms to solve simple problems and implementing
them into the Java Programming Language, according to the imperative programming paradigm.
Contents
Von Neumann’s Model of
Calculators. Components and functionalities of operating systems.
Introduction to Computer Neworks. Programming Languages. Structured Programming
in Java.
Detailed program
Architecture of Calculators
- The
Von Neumann model and basic notions on information representation
- Introduction
to Operating Sytstems
- Basic
notions of Computer Networks
Structured Programming in Java
- Programming
languages and translators taxonomy
- The
Java Virtual Machine
- Algorithms
and programs
- Primitive
Data types in Java.
- Flow Control in Java
- Arrays of Primitiva Data Types
- Methods in Java: definition and invocation
- Introduction to recursive algorithm design and implementation
Prerequisites
Nothing
Teaching form
- Lessons, 4 credits
- Laboratory, 2 credits
During the COVID-19 pandemic emergency, lessons will be delivered according to a blended learning approach, exploiting both synchronous and asynchronous recorded lessons. Face to face lessons will be recorded too and shared at distance.
Textbook and teaching resource
All the information about
the course as well as the lessons slides and practical exercises will be available through the learning platform of the University,
at the elearning.unimib.it link.
The suggested texdtbook will be:
W. Savitch: "Programmazione di base e avanzata con Java", a cura di Daniela Micucci, 2nd edition, Pearson
Semester
Second semester
Assessment method
Examination type
Written and Oral examination; the oral examination is not mandatory, but necessary to obtain a "cum laude" merit. The mark range is 18-30/30. The oral examination is about both theoretical questions and practical exercises and can increase the result of written examination by at most 4 points.
During COVID-19 pandemic emergency, oral examinations will only be at distance. They will be accomplished through WebEx platform, and a link to the public session will be posted on the course e-learning page.
Detailed information about written examinations will follow.
The written examination is divided into two parts: the first one is devoted to evaluate theoretical skills aobut structured programming, by means of a collection of close-ended questions; the second one concerns the design and implementation of a simple software program, with the aim to demonstrate the student's capability to solve correctly a simple practical problem, on the basis of programming principles considered during the course, without generating any kind of error (i.e. compile time, runtime, logical errors).
The arithmetic mean (possibly weighted) of the two marks defines the final mark proposed to the student: in case it is sufficient, the student can accept it as is or modify it by means of an oral examination (possibly decreasing the final mark). Oral examination is possible if and only if written examination is sufficient. The teacher has the faculty to establish mandatory oral examinations for those students whose written examinations, although sufficient, present some criticalities: for example, in case of not sufficient theoretical questions whereas pratical exercises are good, or viceversa.
Five exam sessions are stated: June, July, September, November and January; moreover two partial examinations are proposed to studets during the course.
Office hours
Thursday, between 11 a.m. and 12 a.m., or by appointment.
During COVID-19 pandemic emergency, students will be received at distance, through WebEx platform, on students' request as well as teacher's proposal.