Functional Programming Constructs in Java 8 and Their Integration into Lessons of Object Oriented Architecture Rudolf Pecinovský University of Economics, Prague, 4 Winston Churchill sq., 130 67 Prague 3 rudolf@pecinovsky.cz Abstract. In contemporary programming the significance of parallelizability of wide range of human activities is increasing. The development of various teaching tools is so quick that it is difficult to even watch it. Concurrently a natural endeavor is arising to install such programming constructs which would enable to transfer the main burden to the used libraries and frameworks and leave only a care for the best programming of the required business logic to programmers. A significant place among these constructs belongs to functional programming, above all the lambda expressions and data streams. This paper presents their basic characteristics and how these constructs can be included into the lessons on the object oriented architecture. 1 Introduction The performance efficiency of computers increases at present above all due to the increased number of cores as well as the number of processors in the system. Of course, this efficiency is still increasing according to the well-known Moor’s Law, but the efficiency of running programs does not follow the Moor’s curve for a long time. With regards to the above mentioned growth of computer effectiveness the effectiveness of programs is subjected to the Amdahl’s Law which says that the T(n) time needed for carrying out of the algorithm at n processors can be derived from the T(1) time needed for using one processor with the help of the following formula ([1], [3]): where B presents the proportional representation of that part of the program that cannot be parallelized. If B=0, i.e. when the program cannot be parallelized at all, it would run with the same speed any time independently of how many processors would be at its disposal. If B=1, i.e. when the program will be parallelized by 100 per cent, the program would run quicker as many times as many processors would be at its disposal. To provide the highest parallelizability of the program is usually not simple and mostly it requires a very good knowledge of not only processed issues but also of the