Bill MacKenty

  Home     Computing     Teaching     Bushcraft     Games     Writing     About  

The future of high school computing

Posted in Computer Science Teaching Diary Writing on 03 - July 2023 at 11:00 AM (2 months ago). 385 views.

Large language models like ChatGPT mandate we change the way we approach high school computing.

This article will discuss the importance of differentiation between software engineering and computer science in secondary (high school) educational settings and the impact of large language models on the former. Without correct understanding of computing, we can't fully appreciate how LLM's change it.

In the 2020 Computing Curricula recommendation, the Association for Computing Machinery (ACM) states that within the domain of computing, there are five primary disciplines. The reason it is important to understand this is because while there are some shared characteristics between these disciplines, they are different enough to be taught as distinct disciplines.

  1. Computer Engineering (CE)
  2. Computer Science (CS)
  3. Information Systems (IS)
  4. Information Technology (IT)
  5. Software Engineering (SE)

To acquire a deeper comprehension and appreciation of these disciplines' distinctions and interconnections, please refer to the following documents:

  1. Overview of Computing Fields
  2. Field Characteristics
  3. ACM 2020 Computing Curricula Recommendations

For some more serious approachesThere is a lot of noise and hype around AI in education - I tried to find respected institutional research to help frame LLM's within education. to AI in education research, please refer to the articles below:

  1. Artificial Intelligence and the Future of Teaching and Learning
  2. Artificial intelligence and the Futures of Learning
  3. The Position of Artificial Intelligence in the Future of Education: An Overview

High schools (and even some universities) often blur the lines between software engineering and computer science, using these terms interchangeably and without recognizing their essential distinctions When your students are applying to university please - I'm begging you - insist they read the actual courses they will be taking. . This conflation creates an ambiguous academic journey for students entering the computing field. While there is some overlap between the disciplines, clearly defined tracks are important in guiding students along the right trajectory.

In numerous educational institutions, students are exposed to programming (akin to software engineering), robotics (related to computer engineering), and occasionally resource management and abstract data structures (pertaining to computer science). Often, the overarching terms used for this education are "computer science", "technology" or "computers".

To make the distinction clearer and prepare students for the evolving world of computing, it is essential to design two distinct tracks within high school computing:

Track 1: Software Engineering

The significance of this track stems from the transformative impact large language models (LLMs) like ChatGPT have on problem-solving through programming. Students should be taught the fundamental coding concepts such as variables, control structures, and data structures. However, they must also learn to harness the power of LLMs in solving problems. By integrating LLMs, students can explore innovative ways to create solutions. Essentially, software engineering should focus on basic programming, computational thinking, and the astute utilization of LLMs. I include tools like co-pilot, tabnine, and YouCompleteMe, which use LLM-like technology to vastly improve programming output.

Track 2: Computer Science

The second track should concentrate on the foundational aspects of computer science. This encompasses theoretical data structures, advanced mathematics, and computing theories. The core areas of study within Computer Science include artificial intelligence, computer systems and networks, security, database systems, human-computer interaction, vision and graphics, numerical analysis, programming languages, software engineering, bioinformatics, and the theory of computing.


With the advent of LLMs, it is imperative for the education system to adapt and prepare students for the dynamic computing landscape. While LLMs present extensive possibilities for problem-solving, it is also crucial to nurture the next generation of computer scientists who will forge cutting-edge tools. Equipping students with the right skills and knowledge will be an important differentiator for students entering college and universities.

This article was supported with the use of chatGPT. I used the prompt "please provide your opinion on this article" and then I pasted in the article.