1) Introduction to the construction of a mathematical model. Some specific examples for Engineering, through differential equations concerning: Consolidation; Filtration; Conductive and convective heat exchange; Fluid dynamics 1D and outline of 2D and 3D fluid dynamics; Oscillations.
2) Transformation of the mathematical model in numerical models. Integration of the mathematical models described in point 1) through Finite Element Method (F.E.M.) and Finite Volume Method (F.E.M.). Newmark method for the solution of Oscillation Equation.
3) Notes on the methods of Interpolation and Fourier Analysis.
4) Architecture of computer systems. Processes and processors. Problems, algorithms and programs. Programming languages. Computer architecture. Von Neumann model. Fixed positional numerical systems. Basic conversions. Representation of negative numbers in form and sign and in two's complement. Representation of real numbers in normalized floating point. ASCII code. Boolean algebra and main logic functions.
5) Programming environments -C ++, Fortran 90, Matlab.
6) Programming elements. Algorithm development. Concept of variable. Elementary operations: reading, writing (IO) assignment and comparison. File Opening.
7) Flow diagrams. Pseudo-code. Control structure IF, THEN, ELSE, Cycles with pre-condition and post-condition.
8) Control structures. Algorithm design with cycles. Control on input data.
9) Basic C ++, Fortran and Matlab constructs.
10) Structure of a program. Statements and part of instructions. Declaration of variables. Type classification. Simple types, internal representation and operations. Numerical and conditional expressions. Assignment instruction. Compound education. Binary selection. Standard input / output functions. Cyclic instructions (WHILE, DOWHILE, FOR). Construction of nested cycles.
11) Programming with structured types. Array type: definition and memory representation. Type declarations with typedef. Programs on vectors. Two-dimensional arrays. Programs on matrices. Type string Type struct. File type. Primitives for sequential file management.
12) Programming with functions. Subroutines. Top-down design. Parametrics. Declaration of functions. Global variables. Local variables. Formal and current parameters. Passing parameters by reference and by value. Memory usage. Life cycle of variables. Visibility of the variables. Masking of variables. Recursion.
13. Fundamental algorithms. Sequential search. Binary search. Insertion and deletion in an ordered array.
14. Programming with pointers. Static management and dynamic memory management. Pointer type. Operations with pointers: assignment, new, delete, reference, dereferencing. Null constant. Use of pointers. Dynamic array creation. Similarity between arrays and pointers. Dynamic creation of matrices. Connected structures in dynamic memory. Linked lists with pointers.
15. Software development in C ++, Fortran and Matlab of the numerical models of points 1), 2) and 3) and their comparison, through the CodeBlocks and Matlab Compilers.