Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[3I084] - FONDAMENTI DI INFORMATICAFUNDAMENTALS OF COMPUTER SCIENCE [Cognomi A-L]
PAOLO SERNANI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea - [IT04] INGEGNERIA INFORMATICA E DELL'AUTOMAZIONE First Cycle Degree (3 years) - [IT04] COMPUTER AND AUTOMATION ENGINEERING
Anno di corsoDegree programme year : 1 - Secondo Semestre
Anno offertaAcademic year: 2018-2019
Anno regolamentoAnno regolamento: 2018-2019
Obbligatorio
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: B - Caratterizzante
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

I contenuti teorici sono affidati principalmente alle lezioni videoregistrate disponibili sul sito di e_learning e ai testi consigliati. In aula vengono sinteticamente richiamati i contenuti teorici, dopodiché viene effettuata una sessione di domande e risposte. La maggior parte del tempo è spesa con esercitazioni pratiche di programmazione in C++ utilizzando il Laptop oppure lo Smartphone.

The theoretical content is mainly based on video lessons available on the e_learning site and recommended texts. The theoretical contents are briefly recalled in the classroom, after which a question and answer session is carried out. Most of the time you spend practical programming exercises in C++ using your Laptop or Smartphone.


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L'insegnamento mira a dare le basi dell'Informatica e della programmazione di un elaboratore elettronico digitale. Esso si pone due obiettivi: 1. introdurre consapevolmente lo studente ai concetti base dell'architettura di un calcolatore e della rappresentazione binaria dell'informazione. 2. spiegare come si elabora l'informazione digitale, cioè fornire i rudimenti della programmazione di un elaboratore digitale e dei linguaggi di programmazione utilizzando il paradigma imperativo e introducendo gli elementi di quello ad oggetti e del linguaggio Assembly.


Capacità di applicare conoscenze e comprensione.

Alla conclusione del corso gli studenti saranno in grado di codificare correttamente l'informazione in formato digitale e formulare semplici problemi computazionali in forma di algoritmi e tradurli in programmi usando correttamente la sintassi di un linguaggio di programmazione


Competenze trasversali.

La capacità di pianificare i passi da svolgere per risolvere un problema contribuiranno a sviluppare l'autonomia di giudizio e il pensiero
comutazionale degli studenti.


Knowledge and Understanding.

The course aims to give the basics of Computer Science and digital electronic computer programming. It has two objectives: 1.consciously introduce students to the basic concepts of computer architecture and binary encoding. 2. explain how to process digital information, that is, provide the elements of digital computer programming and of programming languages using the imperative paradigm and introducing the elements of object oriented and Assembly.


Capacity to apply Knowledge and Understanding.

At the end of the course, students will be able to properly encode the information into digital format and making simple computational problems in the form of algorithms and translate them into programs using correct syntax of a programming language.


Transversal Skills.

The ability to plan the steps to be done to solve a problem will help to develop the autonomy of judgment and computational thinking skills of students.



PROGRAMMA PROGRAM

Codifica binaria dei testi: ASCII, ISO_8859/1-15, UNICODE, UTF-8. Codifica binaria dei suoni, delle immagini e dei video. Codifica dei numeri Naturali, Interi e Reali. Principali operazioni aritmetiche. Architettura di Von Neumann. Architettura funzionale di un microprocessore (IA-32). Memorie di Massa. Programmazione in Assembly: operandi, istruzioni, direttive dati, etichette, sottoprogrammi, Stack, "call" e "ret", programmazione modulare, I/O, compilazione. Evoluzione dei Linguaggi Imperativi e Programmazione strutturata. Software, copyright e copyleft. Tipi di dato fondamentali. Conversioni di tipo. Funzioni di libreria. Assegnamento. Operatori aritmetici, logici e relazionali. Il concetto di I/O-stream e file-stream. Istruzioni condizionali. Istruzioni ripetitive. Istruzioni di salto. Teorema di Bohm-Jacopini. Il concetto di funzione. Funzioni ricorsive. Puntatori e riferimenti. Passaggio argomenti per valore e per riferimento. Array. Stringhe. Array come argomenti di funzioni. Il tipo struct. Memoria dinamica: new e delete. Liste semplici e principali operazioni con le liste. Alberi. Nozioni basilari di Programmazione Orientata agli Oggetti

Binary encoding of sounds (WAW, MP3), images (BMP, GIF, JPEG) and videos (MPEG2, MPEG4, DIVx, XVID). Unsigned, Integers and Real Numbers (IEEE754). Arithmetic Operations in binary.Von Neumann Architecture. Functional Architecture of a microprocessor (IA-32). Storage: magnetic and optical. CD-ROM, CD-R, CD-RW, DVDAssembly programming: operands, instructions, directives, labels, subroutines, Stack, "call" and "ret", modular programming, I/O, compilation. Imperative languages evolution and structured programming. Software, copyright and copyleft. Foundamentals of data Structure. Casting. Library functions. Assignment. Arithmentic, logical and relational operators. I/O-stream and file-stream. Conditional Instructions. Cyclic instructions. Jumping. Theorem of Bohm-Jacopini. Functions. Recursive functions. Pointers and references. Parameettrss pasinghrough values and through references. Array. Strings. Array as parameters to functions. Struct. Dynamic memory: new and delete. Lists, trees. Notions of Object Oriented Programming


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

L'apprendimento viene valutato sulla base di due prove. La prima di programmazione in C++ e la seconda di esercizi sulla teoria della rappresentazione delle informazioni e della programmazione in C++.


Criteri di valutazione dell'apprendimento.

Viene valutata la capacità di programmare, cioè quella di concepire algoritmi per risolvere problemi ed implementarli in C++.


Criteri di misurazione dell'apprendimento.

Normalmente la prova di programmazione vale 18/30 e quella di teoria vale 12/30.


Criteri di attribuzione del voto finale.

per la valutazione finale si sommano i voti riportati nelle due prove


Learning Evaluation Methods.

Learning is assessed on the basis of two tests. The first is programming in C++ and the second is exercises on the theory of information representation and programming in C++.


Learning Evaluation Criteria.

The ability to program is evaluated, that is to conceive algorithms to solve problems and implement them in C++.


Learning Measurement Criteria.

Normally the programming test is worth 18/30 and the theory test is worth 12/30.


Final Mark Allocation Criteria.

for the final evaluation, the marks obtained in the two tests will be added together



TESTI CONSIGLIATI RECOMMENDED READING

https://learn.univpm.it/course/view.php?id=7094

Luis Joyanes Aguilar, "Fondamenti di programmazione in C++", The McGraw-Hill Companies.

John R. Hubbard, "Programmare in C++, seconda edizione, (470 esercizi svolti)", The McGraw-Hill Companies

https://learn.univpm.it/course/view.php?id=7094

Luis Joyanes Aguilar, "Fondamenti di programmazione in C++", The McGraw-Hill Companies.

John R. Hubbard, "Programmare in C++, seconda edizione, (470 esercizi svolti)", The McGraw-Hill Companies


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

 


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