Emerging paradigms for CS education and their implications for visual languages (Invited Keynote)


Most of today’s approaches to introductory computer science education reflect a 1970s view of computer science: students typically create single-threaded programs that do local IO. Some of the technologies used within these educational experiences include post-70s visual language elements like blocks to assist with the syntax of programming, but the semantics of the programming have generally remained frozen in time. Yet, the field of computer science has progressed enormously since the 1970s: multi-core computing, distributed systems, and machine learning are now ubiquitous, and have deep philosophical and practical ramifications for computer science education, including our definitions of what computational thinking is, and for how we design new programming languages, including visual languages. I will compare the current state of the art of novice programming tools and theories to the current state of computer science, and describe how new conceptual frameworks and visual programming tools could support contemporary computer science education.