Genost: A System for Introductory Computer Science Education with a Focus on Computational Thinking