Developing Computational Thinking Skills of High School Students: Design-Based Learning Activities and Programming Tasks