Algorithms and Data Structures

Mario VENTO Algorithms and Data Structures

0612700006
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
EQF6
COMPUTER ENGINEERING
2020/2021



OBBLIGATORIO
YEAR OF COURSE 2
YEAR OF DIDACTIC SYSTEM 2017
PRIMO SEMESTRE
CFUHOURSACTIVITY
432LESSONS
324EXERCISES
216LAB


Objectives
THE COURSE HAS THE GOAL TO PRESENT IN DETAIL THE ISSUES OF DESIGN AND IMPLEMENTATION OF ALGORITHMS, USING BOTH ITERATIVE AND RECURSIVE TECHNIQUES, AND EVALUATING THE EFFICIENCY OF THE OBTAINED PROGRAMS; THE COURSE ALSO PRESENTS THE FUNDAMENTAL DATA STRUCTURES, SHOWING THEIR IMPLEMENTATION IN THE C LANGUAGE.

KNOWLEDGE AND UNDERSTANDING
KNOWLEDGE OF THE FUNDAMENTAL ALGORITHMS AND DATA STRUCTURES. KNOWLEDGE OF THE ITERATIVE AND RECURSIVE PROGRAMMING PARADIGMS. COMPARISON OF ALGORITHMS WITH RESPECT TO THEIR MEMORY AND EXECUTION TIME.

APPLIED KNOWLEDGE AND UNDERSTANDING
ANALYSIS OF TYPICAL PROBLEMS AND IMPLEMENTATION OF APPLICATIONS USING STANDARD ALGORITHMS AND DATA STRUCTURES IN THE C LANGUAGE, WITH AN EVALUATION OF THEIR EFFICIENCY. IMPLEMENTATION OF SMALL-SCALE SOFTWARE PROJECTS USING BOTH INTEGRATED ENVIRONMENTS AND SEPARATE COMPILATION.
Prerequisites
THE COURSE REQUIRES PREVIOUS KNOWLEDGE ABOUT THE C PROGRAMMING LANGUAGE.
Contents
COMPLEMENTS OF C LANGUAGE: POINTERS, ARRAYS AND POINTER ARITHMETIC. STRUCTURES.

RECURSION: GENERAL DEFINITIONS. MATHEMATICAL INDUCTION. DIVIDE ET IMPERA. NOTEWORTHY RECURSIVE ALGORITHMS: HANOI TOWER, QUICKSORT, MERGESORT.

COMPUTATIONAL COMPLEXITY: DEFINITIONS; THE RAM MODEL; NOTATIONS (BIG O, OMEGA, THETA); COMPLEXITY EVALUATION; RECURENCE RELATIONS, NOTABLE CASES AND THEIR SOLUTIONS; AMORTIZED ANALYSIS.

DYNAMIC LISTS: GENERAL ASPECTS, DATA STRUCTURE, BASIC ALGORITHMS (BOTH ITERATIVE AND RECURSIVE): CREATION,
INSERTION, SEARCH, DELETION, VISIT, OTHER ALGORITHMS.

BINARY TREES: GENERAL ASPECTS, DATA STRUCTURE, BASIC ALGORITHMS (BOTH ITERATIVE AND RECURSIVE): CREATION,
INSERTION, SEARCH, DELETION, VISIT, OTHER ALGORITHMS.

HASHTABLES: GENERAL ASPECTS, DATA STRUCTURE, BASIC ALGORITHMS (BOTH ITERATIVE AND RECURSIVE): CREATION,
INSERTION, SEARCH, DELETION, VISIT, OTHER ALGORITHMS.

CASE TOOLS: INTEGRATED DEVELOPMENT ENVIRONMENT; DEBUGGING AND TESTING; SEPARATE COMPILATION; LIBRARIES; MAKEFILES.

RUN-TIME SUPPORT: GENERAL ASPECTS ON MEMORY ALLOCATION; STATIC AND DYNAMIC ALLOCATION, PROGRAM STACK AND ACTIVATION RECORDS.
Teaching Methods
THE COURSE INCLUDES THEORY LESSONS, EXERCISES AND LABORATORY ACTIVITIES. IN THE EXERCISES, THE TEACHER WILL PROPOSE AND DESCRIBE ALGORITHMIC PROBLEMS AND THEIR SOLUTION USING THE C LANGUAGE. IN THE LABORATORY ACTIVITIES, THE STUDENTS WILL DEVELOP THE SOLUTION TO A PROBLEM SPECIFIED BY THE TEACHER.
Verification of learning
THE EXAM AIMS AT EVALUATING: THE KNOWLEDGE AND UNDERSTANDING OF THE CONCEPTS PRESENTED IN THE COURSE; THE ABILITY TO APPLY THIS KNOWLEDGE FOR SOLVING PROBLEMS INVOLVING FUNDAMENTAL ALGORITHMS AND DATA STRUCTURES, EVALUATING THEIR EFFICIENCY; THE JUDGEMENT AUTONOMY; THE COMMUNICATION SKILLS; THE LEARNING ABILITY.
THE EXAM CONSISTS OF A PRACTICAL TEST AND AN THEORETICAL TEST. THE PRACTICAL TEST IS MADE USING A COMPUTER. IN ORDER TO PASS THE TEST, THE STUDENT MUST SHOW THE ABILITY TO SOLVE AN ASSIGNED PROBLEM WITHOUT SIGNIFICANT ERRORS. ONLY STUDENTS PASSING THE PRACTICAL TEST ARE ADMITTED TO THE THEORETICAL TEST THAT WILL INVOLVE ALL THE ARGUMENTS PRESENTED IN THE COURSE, AND WILL EVALUATE THE KNOWLEDGE OF THE STUDENT AND THE COMMUNICATION SKILLS.
THE FINAL SCORING WILL BE ASSIGNED BY WEIGHTING 60% THE PRACTICAL TEST AND 40% THE THEORETICAL TEST. THE "CUM LAUDE" SCORE CAN BE ASSIGNED TO STUDENTS THAT DEMONSTRATE AN EXCELLENT ABILITY TO ANALYZE AND DESIGN THE ALGORITHMS AND DATA STRUCTURES.
Texts
P. FOGGIA, M. VENTO, “ALGORITMI E STRUTTURE DATI: ASTRAZIONE, PROGETTO E REALIZZAZIONE”, MCGRAW-HILL.
More Information
THE COURSE WILL BE HELD IN ITALIAN.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-05-23]