Picturing Programs. an Introduction to Computer Programming