Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[3I084] - FONDAMENTI DI INFORMATICAFUNDAMENTALS OF COMPUTER SCIENCE
Francesco CAUTERUCCIO
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea - [IT09] INGEGNERIA GESTIONALE First Cycle Degree (3 years) - [IT09] MANAGEMENT ENGINEERING
Dipartimento: [040004] Dipartimento Ingegneria Industriale e Scienze MatematicheDepartment: [040004] Dipartimento Ingegneria Industriale e Scienze Matematiche
Anno di corsoDegree programme year : 1 - Primo Semestre
Anno offertaAcademic year: 2022-2023
Anno regolamentoAnno regolamento: 2022-2023
Obbligatorio
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: A - Base
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

Italiano

Italian


PREREQUISITI PREREQUISITES

Nessuno

None


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

Il corso sarà suddiviso in lezioni (42) ed esercitazioni (30).

Lezioni frontali sugli argomenti in programma, esercitazioni di programmazione C++ svolte in aula. Gli studenti avranno bisogno di un notebook per svolgere, in modo pratico, gli esercizi.

Lectures will be divided in frontal lectures (42) and workshops (30).

Lectures on topics scheduled, C++ programming exercises carried out in classroom. Students will have to own a personal computer to complete practical programming assignments.


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

Il corso si propone di fornire allo studente le seguenti conoscenze:
1) Archiettura di alto livello e funzionamento di un calcolatore elettronico
2) Concetti di base della codifica delle informazioni, con particolare riferimento alle codifiche binarie di
grandezze numeriche e alle codifiche di file di testo di livello zero (ASCII, UNICODE)
3) Concetti base e principali costrutti logici dei linguaggi di programmazione imperativa
4) Linguaggio di programmazione C++: espressioni, istruzioni di controllo, strutture dati primitive e derivate, puntatori, liste collegate
5) I principali algoritmi di ordinamento, le loro caratteristiche e la loro implementazione in C++.


Capacità di applicare conoscenze e comprensione.

Lo studente dovrà sviluppare la capacità di:
1) Risolvere problemi ed implementare semplici algoritmi utilizzando il linguaggio C++
2) Analizzare la correttezza di un programma C++ ed essere in grado compilare, eseguire ed effettuare il debug di programmi C++
3) Acquisire dimestichezza con la terminologia di dominio.


Competenze trasversali.

Le competenze acquisite in questo corso mirano a fornire allo studente gli strumenti necessari per:
1) Approfondire la conoscenza dell'hardware di un calcolatore
2) Acquisire dimestichezza ed approfondire la semantica e la sintassi di altri linguaggi di programmazione di alto livello


Knowledge and Understanding.

This course aims to provide students with the following knowledge:
1) High-level architecture and functioning of a computer
2) Basic concepts of information coding, with particular reference to binary encodings of numerical values and to low level text encodings (ASCII,
UNICODE)
3) Basic concepts and main constructs of imperative programming languages
4) C++ programming language: expressions, control statements, primitive and derived data structures, pointers, linked lists
5) The main sorting algorithms, their characteristics and their implementation in C++


Capacity to apply Knowledge and Understanding.

The student will develop the ability to:
1) Solve problems and implement simple algorithms using the C++ language
2) Analyze the correctness of a C++ program and be able to compile, run, and debug a C++ program
3) Become familiar with domain terminology


Transversal Skills.

The skills gained in this course aims to provide students with the tools needed to:
1) Deepen the knowledge of the hardware of a computer
2) Become familiar and deepen the semantics and syntax of other high-level programming languages



PROGRAMMA PROGRAM

1. Introduzione all’informatica: panoramica generale dell’informatica, necessità dell’informatica
2. Struttura generale di un calcolatore e di un sistema informativo, macchina di von Neumann
3. La rappresentazione dell’informazione: numeri interi e reali, caratteri, cenni alle codifiche per immagini e audio
4. Logica proposizionale, operatori logici, algebra booleana e leggi di De Morgan
5. Aspetti fondamentali della programmazione: il linguaggio di programmazione e le esigenze di astrazione, sintassi e semantica, il linguaggio macchina, linguaggio di altro livello, compilazione e interpretazione
6. Il linguaggio C++: anatomia di un programma, compilazione ed esecuzione, utilizzo di un code editor; tipi di dato, variabili; operatori; blocchi di istruzioni; decisioni e cicli; puntatori e memoria; array e array n-dimensionali; stringhe; funzioni e ricorsione.
7. Topic avanzati: algoritmi semplici di ricerca e ordinamento; metodi di I/O; struct; liste; cenni ad ulteriori tecnologie e linguaggi di programmazione.

1. Introduction the computer science, general concepts
2. General architecture of a computer and of an information systems, von Neumann machine
3. Data representation: numbers, text, images and sound (basic notions)
4. Propositional logic, logical operators, Boolean algebra and De Morgan’s laws
5. Fundamental aspects of computer programming: programming languages and the process of abstraction, syntax and semantic, low and high level languages, compilers and interpreters
6. The C++ language: anatomy of a program, compiling and executing a program, usage of a code editor; data types, variables; operators; block statements; decisions and loops; pointers and memory; arrays and n-dimensional arrays; strings; functions and recursion.
7. Advanced topics: simple search and sort algorithms; I/O methods; structs; lists; hints to advanced technologies and other programming languages.


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

La valutazione del livello di apprendimento degli studenti consiste in due prove:
- una prova scritta, consistente nella soluzione di esercizi proposti su argomenti trattati nel corso, da completare in almeno due ore;
- una prova orale, consistente in domande di approfondimento sugli esercizi della prova scritta e sugli argomenti trattati nel corso.

La prova scritta è propedeutica alla prova orale, per accedere alla quale lo studente deve aver ottenuto almeno la sufficienza (18/30). La prova orale deve essere sostenuta nello stesso appello della prova scritta. Nel caso di esito negativo della prova orale, lo studente dovrà ripetere anche la prova scritta.


Criteri di valutazione dell'apprendimento.

Per superare con esito positivo la prova scritta, lo studente dovrà dimostrare di possedere una complessiva conoscenza dei contenuti dell’insegnamento e di aver sviluppato un senso critico verso la risoluzione di problemi, sia dal punto di vista del ragionamento che dell’implementazione.

Per superare con esito positivo la prova orale, lo studente dovrà dimostrare di possedere una complessiva conoscenza dei topic del corso e di saperli esporre in maniera sufficientemente corretta anche grazie ad un utilizzo di una adeguata terminologia tecnica. Inoltre, lo studente dovrà dimostrare di saper approcciare i problemi tramite uno sguardo critico che sfrutti il pensiero computazionale.

Per superare con esito positivo l’esame, lo studente deve dimostrare, attraverso le prove poc’anzi descritte, di aver compreso i concetti fondamentali dell’informatica e della programmazione. La valutazione dell’apprendimento tiene conto delle conoscenze acquisite su tutti gli argomenti del corso.


Criteri di misurazione dell'apprendimento.

Viene attribuito un voto in trentesimi, con eventuale lode.
Il voto minimo per il superamento dell’esame è 18/30.


Criteri di attribuzione del voto finale.

Il punteggio complessivo è dato dalla somma dei punteggi della prova scritta e orale. L'esame è valutato positivamente nel caso di una somma uguale o superiore a 18.

La prova scritta permette di conseguire al più 22 punti. Essa è insufficiente quando lo studente consegue un punteggio inferiore a 10: in questo caso, lo studente non può sostenere la prova orale.

La prova orale permette ad uno studente di conseguire al più 8 punti. Una prova orale insufficiente può decrementare il punteggio della prova pratica. Entrambe le prove sono obbligatorie.

Se il punteggio totale è pari a 30, lo studente ha la possibilità di conseguire la lode a fronte della dimostrazione saper schematizzare e implementare programmi per risolvere problemi e di correlare tra loro diversi argomenti del corso.


Learning Evaluation Methods.

The assessment of student’s learning consists of two parts:
- a written test, consisting in the solution of exercises on topics covered during the course, to be completed in at least two hours;
- an oral exam, consisting of in-depth questions on the written test exercises and any other topic covered during the course.

The written test is in preparation for the oral exam. A student can undergo the oral exam only if she/he obtained a pass in the written test, that is the student obtained a mark equal or higher than 18/30. The oral exam must be taken in the same session of the written test. In case of failure of the oral exam, the student must also repeat the written test.


Learning Evaluation Criteria.

To successfully pass the written test, the student will be expected to own an overall knowledge of the topics covered during the course, as well as a correct approach to reason and implement her/his ideas.

To successfully pass the oral exam, the student will be expected to own an overall knowledge of the topics covered during the course and to be proficient with the according terminology. She/he must also prove to be able to approach problems from a computational point of view.

To successfully pass the overall exams both the written test and oral exam must have been evaluated positively in terms of completeness, exposition and appropriateness.

The highest evaluation is attributed to the students able to prove their knowledge of fundamentals of computer science and simple program design. This evaluation considers the achieved knowledge over all topics discussed during the course.


Learning Measurement Criteria.

A mark in thirtieth is awarded, with possible praise.
The minimum mark for passing the exam is 18/30.


Final Mark Allocation Criteria.

The overall result is given by the sum of the marks obtained in the written test and oral exam. The overall exam is evaluated positively whether the sum is equal or greater than 18.

The maximum achievable mark for the written test is 22. The written test is evaluated as inadequate if the achieved mark is lower than 10: in such case, the student cannot take the oral exam.

The maximum achievable mark for the oral exam is 8. The oral exam can determine a decrease of the mark of the written test. Both the written test and the oral exam must be taken.

In case of an overall result equal to 30, the student can pursue the praise by proving to be able to design and implement programs and to have acquired a general knowledge of all the topics discussed in the course.



TESTI CONSIGLIATI RECOMMENDED READING

Libro di testo:
- H. M. Deitel, P. J. Deitel, “C++ How to program” - Pearson (ultima ed disponibile)
- oppure H. M. Deitel, P. J. Deitel, “C++ fondamenti di programmazione” - APOGEO (ultima ed disponibile)
Libri consigliati:
- S. B. Lippman, J. Lajoie, B. E. Moo, “C++ Primer” – Addison-Weasley (ultima ed disponibile)
- D. P. Curtin et al, "Informatica di base" - McGrawHill (ultima ed disponibile)

Il materiale didattico addizionale tra cui le slide utilizzate a lezione, gli esercizi svolti e le prove di esame saranno rese disponibili sul portale https://learn.univpm.it

Si raccomanda di fare riferimento alla pagina del corso relativa all'anno accademico in corso.

Selected book:
- H. M. Deitel, P. J. Deitel, “C++ How to program” - Pearson (latest available edition)
- or H. M. Deitel, P. J. Deitel, “C++ fondamenti di programmazione” - APOGEO (latest available edition)
Suggested books:
- S. B. Lippman, J. Lajoie, B. E. Moo, “C++ Primer” – Addison-Weasley (latest available edition)
- D. P. Curtin et al, "Informatica di base" - McGrawHill (latest available edition)

All teaching materials, including lectures slides, exercises and assignments will be available on the portal https://learn.univpm.it

Please be sure to refer to the course web page of the current academic year.


Scheda insegnamento erogato nell’A.A. 2022-2023
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2022-2023

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427