Instructional strategies and tactics for the design of introductory computer programming courses in high school