Servizi per la didattica
PORTALE DELLA DIDATTICA

Algoritmi e programmazione

05MNONX

A.A. 2020/21

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Ingegneria Elettronica - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 62
Esercitazioni in laboratorio 18
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Benso Alfredo Professore Associato ING-INF/05 38 0 0 0 1
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05
ING-INF/05
2
6
F - Altre (art. 10, comma 1, lettera f)
B - Caratterizzanti
Abilità informatiche e telematiche
Ingegneria informatica
2020/21
L’insegnamento, obbligatorio per tutti gli studenti, ha un duplice obiettivo: - introdurre gli studenti alla programmazione con il linguaggio C, fino alla trattazione di aspetti avanzati, quali puntatori, allocazione dinamica della memoria, modularità e realizzazione di Tipi di Dato Astratti; - insegnare l’utilizzo di algoritmi, strutture dati avanzate, paradigmi risolutivi, e loro implementazione in C, per la risoluzione di problemi complessi
This course, mandatory for all the students, has a twofold objective: - to introduce the student to C programming, including advanced topics as pointers, dynamic memory allocation, modularity, and Abstract Data Types; - to teach how to use algorithms, complex data structures, problem solving paradigms, and their C implementation, to solve complex problems.
Lo studente deve acquisire due tipologie fondamentali di conoscenze: (i) la capacità di risolvere problemi concreti mediante programmi da implementare in linguaggio C ed eseguire su un calcolatore; (ii) la capacità di pianificare e quantificare la complessità della soluzione di un problema attraverso la conoscenza di algoritmi, strutture dati complesse e paradigmi computazionali. Queste capacità vengono applicate alla soluzione di problemi complessi di rilevanza pratica.
The student must acquire two fundamental types of knowledge: (i) the ability to solve concrete problems through programs implemented using the C programming language and executed on a computer; (ii) the ability to design and quantify the solution to a complex problem using algorithms, abstract data structures, and computational paradigms. These skills will be applied to the solution of practical complex problems.
Vista la natura incrementale di questo corso rispetto a quello di “Informatica” del I semestre del I anno, vi sono prerequisiti stringenti in termini di abilità di programmazione, in particolare: • Architettura elementare dei sistemi di elaborazione • Capacità di sviluppare semplici algoritmi con flow-chart o pseudo-codice, utilizzando costrutti condizionali e iterativi, dati scalari a aggregati, I/O standard, file testo e funzioni
Given the incremental nature of this course w.r.t. the “Computer Science” course of the 1st semester of the 1st year, there are strict requirements in terms of programming skills; in particular: • Basic knowledge of computers’ architecture • Ability to develop simple algorithms with flow-charts or pseudo-code, using conditional and iterative control flow structures, scalar and aggregated data, I/O, files, and functions.
o Costrutti fondamentali del linguaggio C e problem-solving elementare o Concetti base di programmazione sicura o Algoritmi di ordinamento o Strutture dati statiche e dinamiche e loro realizzazione in C o Modularità e realizzazione modulare di algoritmi e strutture dati o Ricorsione e programmi ricorsivi o Liste o Oggetti astratti, collezioni di oggetti e ADT o Paradigmi algoritmici o Problem solving avanzato: strategie di analisi e di definizione di strutture dati e algoritmi o Alberi binari o Funzioni di hash o Teoria e algoritmi dei grafi
o C programming basics and simple problem-solving o Secure Programming o Sorting Algorithms o Static and dynamic data structures and their C implementation o Modularity in algorithms and data structures o Recursion o Lists o Abstract objects, collections, and ADT o Computational paradigms o Advanced Problem solving: strategies to analyze and define data structures and algorithms o Binary trees o Hash functions o Graph theory and algorithms
Il corso prevede circa 20 ore di esercitazione in laboratorio, nelle quali gli argomenti discussi in aula verranno tradotti in programmi C.
The course includes about 20 hours of lab, in which the topics covered in the classes will be implemented as C programs.
Il corso si svilupperà attraverso lezioni in aula, esercitazioni in laboratorio, ed approfondimenti da svolgere in autonomia
This course includes traditional lectures, lab exercises, as well as sections to be autonomously completed by the students.
Testi di riferimento: • Deitel & Deitel, ‘Corso completo di programmazione C’, Apogeo, 2010 Materiale didattico a disposizione su Web: • trasparenze proiettate in aula • esercizi e soluzioni
Textbooks: • Deitel & Deitel, ‘Corso completo di programmazione C’, Apogeo, 2010 Learning material on the web: • course slides • suggested exercises and solutions
Modalità di esame: Prova orale facoltativa; Prova scritta a risposta aperta o chiusa tramite PC con l'utilizzo della piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus);
L'esame consistera' di una parte di teoria e una di programmazione ed in particolare: - 3 domande di teoria - 2/3 esercizi di programmazione in cui verra' richiesto di svolgere altrettanti programmi (o frammenti di programma) in C, ciascuno di dimensione piu' contenuta rispetto allo scritto tradizionale, preservando la difficolta' complessiva. La durata dell'esame verra' comunicata prima dell’esame ma non sarà superiore a 2 ore L’orale è a discrezione del docente ed esclusivamente per voti >= 18.
Exam: Optional oral exam; Computer-based written test with open-ended questions or multiple-choice questions using the Exam platform and proctoring tools (Respondus);
L'esame consistera' di una parte di teoria e una di programmazione ed in particolare: - 3 domande di teoria - 2/3 esercizi di programmazione in cui verra' richiesto di svolgere altrettanti programmi (o frammenti di programma) in C, ciascuno di dimensione piu' contenuta rispetto allo scritto tradizionale, preservando la difficolta' complessiva. La durata dell'esame verra' comunicata prima dell’esame ma non sarà superiore a 2 ore L’orale è a discrezione del docente ed esclusivamente per voti >= 18.
Modalità di esame: Prova orale facoltativa; Prova scritta a risposta aperta o chiusa tramite PC con l'utilizzo della piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus);
L'esame consistera' di una parte di teoria e una di programmazione ed in particolare: - 3 domande di teoria - 2/3 esercizi di programmazione in cui verra' richiesto di svolgere altrettanti programmi (o frammenti di programma) in C, ciascuno di dimensione piu' contenuta rispetto allo scritto tradizionale, preservando la difficolta' complessiva. La durata dell'esame verra' comunicata prima dell’esame ma non sarà superiore a 2 ore L’orale è a discrezione del docente ed esclusivamente per voti >= 18.
Exam: Optional oral exam; Computer-based written test with open-ended questions or multiple-choice questions using the Exam platform and proctoring tools (Respondus);
L'esame consistera' di una parte di teoria e una di programmazione ed in particolare: - 3 domande di teoria - 2/3 esercizi di programmazione in cui verra' richiesto di svolgere altrettanti programmi (o frammenti di programma) in C, ciascuno di dimensione piu' contenuta rispetto allo scritto tradizionale, preservando la difficolta' complessiva. La durata dell'esame verra' comunicata prima dell’esame ma non sarà superiore a 2 ore L’orale è a discrezione del docente ed esclusivamente per voti >= 18.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
Contatti