The course presents fundamentals of programming computers by adopting C ++ as the reference language. In particular, basic concepts of structured programming and the OOP (Object-Oriented Programming) are introduced. Furthermore, encoding of fundamental algorithms and some OOP software design techniques are discussed.
Knowledge and understanding the primary objective of the course is the students' acquisition of the "philosophy" of the structured programming and of the OOP, as well as the detailed knowledge of the syntax and the semantics of the C++ programmig language.
The course pays particular attention to the development of well-written and well-structured code using the basic techniques for software development in the Object-Oriented paradigm.
Applying knowledge and understanding the goal of the course is to provide the tools to achieve the following skills: - Translate algorithmic ideas into code; - Design, describe and implement programs in C++; - Debug C++ programs with professional tools; - Understand simple recursive algorithms; - Analyze and describe Object-Oriented solutions using UML (Unified Language Modeling) class diagrams; - Design, implement and correctly use hierarchies of polymorphic classes and generic code; - Read, understand and analyze third-party C++ code also in terms of efficiency; - Orient yourself in the documentation of the libraries.
Making judgments: through the examination of a large number of examples of Object-Oriented programs and various practical programming sessions, the student will be able, both independently and in a cooperative form, to analyze problems and design and implement related software solutions.
Communication skills the student will acquire the necessary communication skills and expressive appropriateness in the use of technical verbal language and UML visual language in computer programming.
Learning skills the course aims to provide to the student the theoretical and practical methodologies needed in professional contexts and, in particular, the ability to formulate ad-hoc algorithms for problem solving and the opportunity to learn quickly the C++ programming language.
The course presents fundamentals of programming computers by adopting C ++ as the reference language. In particular, basic concepts of structured programming and the OOP (Object-Oriented Programming) are introduced. Furthermore, encoding of fundamental algorithms and some OOP software design techniques are discussed.
Knowledge and understanding the primary objective of the course is the students' acquisition of the "philosophy" of the structured programming and of the OOP, as well as the detailed knowledge of the syntax and the semantics of the C++ programmig language.
The course pays particular attention to the development of well-written and well-structured code using the basic techniques for software development in the Object-Oriented paradigm.
Applying knowledge and understanding the goal of the course is to provide the tools to achieve the following skills: - Translate algorithmic ideas into code; - Design, describe and implement programs in C++; - Debug C++ programs with professional tools; - Understand simple recursive algorithms; - Analyze and describe Object-Oriented solutions using UML (Unified Language Modeling) class diagrams; - Design, implement and correctly use hierarchies of polymorphic classes and generic code; - Read, understand and analyze third-party C++ code also in terms of efficiency; - Orient yourself in the documentation of the libraries.
Making judgments: through the examination of a large number of examples of Object-Oriented programs and various practical programming sessions, the student will be able, both independently and in a cooperative form, to analyze problems and design and implement related software solutions.
Communication skills the student will acquire the necessary communication skills and expressive appropriateness in the use of technical verbal language and UML visual language in computer programming.
Learning skills the course aims to provide to the student the theoretical and practical methodologies needed in professional contexts and, in particular, the ability to formulate ad-hoc algorithms for problem solving and the opportunity to learn quickly the C++ programming language.
Classrooms lessons with slides and blackboard.
Classrooms lessons with live coding.
None
None.
Strongly Suggested
TBA
Part A - Fundamental of Imperative and Object Oriented Programming (3CFU)
Part B - Advanced features of the C ++ language (3 CFU)
Module C - Object-oriented software design (3CFU)
Basic Concepts
C++ Language
Constructs of the language C++
Object Oriented Programming in C++
Arrays and character strings in C++
Class definition in C++
Pointers and Arrays in C++
Advanced elements of the language C++
Inheritance, Polymorphism and abstract classes in C++
Overloading of operators in C++
P. Deitel, H. Deitel, C++ How to Program, 10th Edition
Eckel, Thinking in C++, Vol. I, 2°Ed. (anche online ed in italiano)
Horstmann, C++ for everyone, 2°Ed. – Wiley (anche online)
Pohl, Object-Oriented Programming Using C++, 2° Ed. – Addison Wesley
Stroustrup, The C++ programming language, 3°Ed, Addison Wesley
H.M. Deitel, P. J. Deitel, C++ Fondamenti di programmazione – Maggioli Editore (2014).
Eckel, Thinking in C++, Vol. I, 2°Ed. (disponibile gratuitamente online)
Horstmann, C++ for everyone, 2°Ed. – Wiley
Stroustrup, Programming: Principles and Practice Using C++. (Addison-Wesley ISBN 978-0321-992789, http://www.stroustrup.com/programming.html).
Stroustrup, The C++ Programming Language - 4th Edition ( Addison-Wesley ISBN 978-0321563842, http://www.stroustrup.com/4th.html )
Available on http://www.dmi.unict.it/farinella/Prog1/
www.dmi.unict.it/~messina/teaching.html
PROGRAMMING 1 | ||
Argomenti | Riferimenti testi | |
1 | Basic Concepts | 1-5 |
2 | C++ Language | 1-5 |
3 | Constructs of the language C++ | 1-5 |
4 | Object Oriented Programming in C++ | 1-5 |
5 | Arrays and character strings in C++ | 1-5 |
6 | Class definition in C++ | 1-5 |
7 | Pointers and Arrays in C++ | 1-5 |
8 | Advanced elements of the language C++ | 1-5 |
9 | Inheritance, Polymorphism and abstract classes in C++ | 1-5 |
10 | Overloading of operators in C++ | 1-5 |
11 | Class Template and Functions Template in C++ | 1-5 |
LABORATORY | ||
Argomenti | Riferimenti testi | |
1 | Basic Concepts | 1-5 |
2 | The C++ Language | 1-5 |
3 | Constructs of the language C++ | 1-5 |
4 | Object Oriented Programming in C++ | 1-5 |
5 | Arrays and character strings in C++ | 1-5 |
6 | Class definition in C++ | 1-5 |
7 | Pointers and Arrays in C++ | 1-5 |
8 | Advanced elements of the language C++ | 1-5 |
9 | Inheritance, Polymorphism and abstract classes in C++ | 1-5 |
10 | Overloading of operators in C++ | 1-5 |
11 | Class Template and Functions Template in C++ | 1-5 |
Written and Laboratory Examinations
Written and Laboratory Examinations
Code a method which takes an Array of dimention K x n x n of integer and a double w and returns true id there exist a value related to the first dimention such that in the corresonding matrix n x n the mean between the min and max value of the principal diagonal is minor or equal to w.
Code a method which takes an Array of dimention K x n x n of integer and a double w and returns true id there exist a value related to the first dimention such that in the corresponding matrix n x n the mean between the min and max value of the principal diagonal is minor or equal to w.