Elementary Synchronous Programming: in C++ and Java via algorithms (De Gruyter STEM)