Software Construction in Java for HSE Moscow Tom Verhoe