FUNDAMENTALS OF PROGRAMMING
Learning outcomes of the course unit
The aim is to provide students with skills in the context of design and analysis of computer algorithms, and in particular:
- Fundamentals of static and dynamic data structures
- Sorting and searching algorithms
- Generic programming
Applying knowledge and understanding:
- Design and development of algorithms in C++ language
- Use of basic data structures for problem solving
- Analyze and describe the complexity of algorithms
• Give to the student the basic principles and tools for advanced programming in C.
Adequate knowledge of C++ is recommended.
o Fondamenti di Informatica
Course contents summary
This course introduces the fundamental concepts about algorithms and data structures in C++
Advanced C programming, data structures, and algorithms
Introduction to C++ language.
Array and pointers.
Symbol tables and binary trees.
Priority queues and heap.
Binary search trees.
Introduction to Standard Template Library (STL) in C++
* Introduction to processing systems and their history
* data representations in computrers
* C programming vs C++ and C fundamentals
* Complexity and flow charts
* Sorting algorithms
* complex algorithms
Robert Sedgewick, Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition.
Clifford A. Shaffer, Data Structures and Algorithm Analysis Edition 3.2 (C++ Version)
• C Didattica e programmazione - quarta edizione, Pearson Ed.
• Algorithms, by Robert Sedgewick, Addison-Wesley
* course slides
Classroom lectures (34 hours).
Classroom exercises (18 hours).
Laboratory lectures (20 hours).
Lessons and exercises
Assessment methods and criteria
The exam consists of a laboratory examination in C++ (3 hours).
There will be two midterm examinations only for students at the first year:
Midterm 1) topics: part A.
Incidence on the final vote: 50%.
Midterm 2) topics: part B, only after sufficient evaluation of the first Midterm exam. Incidence on the final vote: 50%
The laboratory examinations consist on exercises and quizzes.
The exam is based ona a C programming test in laboratory.