PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Algoritmi e programmazione

05MNONX

A.A. 2024/25

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Ingegneria Elettronica - Torino

Mutua

01UQKNX

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
Cannavo' Alberto   Ricercatore L240/10 IINF-05/A 31,5 0 0 0 1
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05
ING-INF/05
2
6
F - Altre attività (art. 10)
B - Caratterizzanti
Abilità informatiche e telematiche
Ingegneria informatica
2024/25
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 Calcolo della complessità computazionale 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 Funzioni di hash o Alberi e alberi binari di ricerca 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 • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, & Clifford Stein, ‘Introduction to Algorithms (Fourth Edition), 2022 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
Slides; Esercizi risolti; Esercitazioni di laboratorio;
Lecture slides; Exercise with solutions ; Lab exercises;
Modalità di esame: Test informatizzato in laboratorio; Prova scritta (in aula);
Exam: Computer lab-based test; Written test;
... L’esame consiste in una prova scritta (possibilmente da svolgere al computer) mirata ad accertare le conoscenze dello studente sia sugli aspetti teorici della materia (tramite esercizi numerici o quiz a risposta aperta o chiusa), sia sulla parte di programmazione (tramite la realizzazione di uno o più programmi in linguaggio C che implementino la soluzione di problemi pratici). Il conseguimento di almeno il 50% dei punti assegnati all'esercizio (o agli esercizi) di programmazione in C è condizione necessaria (e non sufficiente) al passaggio dell'esame. La durata della prova scritta è di 2 ore e non prevede l'uso di materiale didattico da parte degli studenti. La prova scritta prevede un voto massimo di 30 e lode.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Computer lab-based test; Written test;
The exam consists of a written test (possibly on the computer) that aims at assessing the students’ knowledge of the theoretical aspects of the course (through numerical exercises or open/close-answer questions) and the programming skills (through the writing on paper of a C program that implements the solution of a practical problem). The duration of the written test is 3 hours and it is a closed book test. The maximum score for the written test is 30 cum laude.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word