Programming is often perceived as a difficult and boring science. Programs are written by hand, each line is carefully checked, a general structure is formed step by step, until finally the result begins to meet expectations. However,