Italiano
Italian
Non sono richieste conoscenze preliminari
none
Lezioni frontali sugli argomenti in programma, esercitazioni di programmazione in C svolte in classe. Gli studenti dovranno possedere un computer personale sul quale eseguire gli esercizi pratici di programmazione. Il corso sarà suddiviso in lezioni (48h) ed esercitazioni (24h)
Lectures on the topics that are part of the course curricula, C programming exercises carried out in class. Students will have to own a personal computer to complete practical programming assignments. Lectures will be divided in frontal lectures (48h) and exercises (24h).
L'insegnamento mira a dare le basi concettuali dell'Informatica e della programmazione di un elaboratore elettronico digitale. Esso si pone due obiettivi:
1. introdurre consapevolmente lo studente alla rappresentazione digitale dell’informazione ed all’architettura funzionale di un calcolatore
2. spiegando come quest’ultimo elabori quell'informazione digitale, fornendo cioè i concetti fondamentali della “programmazione” di un elaboratore digitale: dal “linguaggio macchina” del processore al più diffuso linguaggio di programmazione evoluto, cioè il C/C++, utilizzando sia i concetti base della “programmazione imperativa” (C) che quelli della “programmazione ad oggetti” (C++).
L’apprendimento dei contenuti teorici viene verificato in aula tramite esercizi online ed approfondito mediante scrittura, compilazione ed esecuzione di programmi in C/C++ direttamente sui propri dispositivi. Alla conclusione del corso gli studenti sono quindi in grado di formulare semplici problemi computazionali in forma di algoritmi e tradurli in programmi usando la sintassi del C/C++
L’acquisita capacità di pianificare i passi da svolgere per risolvere un dato problema, arrivando a concepire per esso un algoritmo risolutivo, contribuisce a sviluppare la capacità di “problem solving” dello studente. Questa capacità è il fulcro delle competenze e delle abilità che deve possedere un progettista in qualunque settore dell’attività umana, dai campi prettamente tecnici a quelli più umanistici.
The aim of the course is to provide the conceptual basis for computer science and the programming of a digital computer. It has two objectives:
1. consciously introduce the student to the digital representation of information and the functional architecture of a computer
2. explaining how the latter processes that digital information, that is, providing the fundamental concepts of the "programming" of a digital processor: from the "machine language" of the processor to the most widespread evolved programming language, that is the C/C++, using both the basic concepts of "imperative programming" (C) and those of "object programming" (C++)
The learning of theoretical contents is verified in the classroom through online exercises and deepened directly on your devices by
writing, compiling and executing programs in C/C++. At the end of the course, students are then able to formulate simple
computational problems in the form of algorithms and translate them into programs using the syntax of C/C++
The acquired ability to plan the steps to be taken to solve a given problem, going so far as to devise a solution algorithm for it, helps to develop the student's problem solving ability. This ability is at the heart of the skills and abilities that a designer must possess in any area of human activity, from the purely technical fields to the more humanistic ones.
1. Introduzione al corso e concetti di base dell'informatica.
2. Elaboratori elettronici e sistemi operativi: concetti generali e architettura di alto livello.
3. Rappresentazione e codifica dell’informazione: caratteri, numeri, immagini e suoni.
4. Ambiente di programmazione: compilatori, editor, IDE, debugging
5. Elementi di programmazione: espressioni, variabili, istruzioni, tipi di dato, strutture di controllo, funzioni, ricorsione
6. Cenni alla complessità computazionale e sua applicazione nei metodi di ricerca e ordinamento (selection sort, bubble sort, insertion sort)
7. Input/output e gestione dei file
8. Puntatori, liste concatenate singole, pile e code
9. Cenni alle strutture dati più complesse (alberi e grafi)
1. Introduction to the course and basic concepts of computer science.
2. Electronic computers and operating systems: general concepts and high-level architecture.
3. Representation and coding of information: characters, numbers, images and sounds.
4. Programming environment: compilers, editors, IDEs, debugging
5. Programming elements: expressions, variables, instructions, data types, control structures, functions, recursion
6. Notes on computational complexity and its application in search and sorting methods (selection sort, bubble sort, insertion sort)
7. Input / output and file management
8. Pointers, single linked lists, stacks and queues
9. Outline of more complex data structures (trees and graphs)
L'apprendimento viene valutato sulla base di due prove. La prima (scritta) di programmazione in C e la seconda di esercizi sulla teoria della rappresentazione delle informazioni e della programmazione in C++ (orale).
Viene valutata la capacità di programmare, cioè quella di concepire algoritmi per risolvere problemi ed implementarli in C.
Si deve ottenere almeno una votazione di 15/30 per accedere alla prova orale.
per la valutazione finale si effettua la media dei voti riportati nelle due prove. La lode potrà essere data allo studente che dimostri una piena padronanza delle tematiche.
Learning is assessed on the basis of two tests. The first is programming in C and the second is an oral examination on the entire curricula.
The ability to program is evaluated, that is to conceive algorithms to solve problems and implement them in C
You must obtain at least a score of 15/30 to access the oral exam.
for the final evaluation, the marks obtained in the two tests will be averaged. Laude could be assigned to students with excellent profile demonstrated during the development of the exam.
Materiale didattico disponibile sul sito https://learn.univpm.it/
A. Bellini, A. Guidi, Linguaggio C, Edizione 6, Ed. McGraw-Hill, ISBN-10. 8838699275 ; ISBN-13. 978-8838699276
P. Deitel, H. Deitel : Il linguaggio C. Fondamenti e tecniche di programmazione, EAN: 9788891901651
Slides and other supporting materials will be available at: https://learn.univpm.it/
A. Bellini, A. Guidi, Linguaggio C, Edizione 6, Ed. McGraw-Hill, ISBN-10. 8838699275 ; ISBN-13. 978-8838699276
P. Deitel, H. Deitel : Il linguaggio C. Fondamenti e tecniche di programmazione, EAN: 9788891901651
NO
NO
Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427