Computing education
Computer science education or computing education is the field of teaching and learning the discipline of computer science and computational thinking. The field of computer science education encompasses a wide range of topics, from basic programming skills to advanced algorithm design and data analysis. It is a rapidly growing field that is essential to preparing students for careers in the technology industry as well as other fields that require computational skills.
Computer science education is essential to preparing students for the 21st century workforce. As technology becomes increasingly integrated into all aspects of society, the demand for skilled computer scientists is growing. According to the Bureau of Labor Statistics, employment of computer and information technology occupations is projected to "grow 21 percent from 2021 to 2031", much faster than the average for all occupations.
In addition to preparing students for careers in the technology industry, computer science education also promotes computational thinking skills, which are valuable in many fields, including business, healthcare, and education. By learning to think algorithmically and solve problems systematically, students can become more effective problem solvers and critical thinkers.
Background
In the early days of computer programming, there wasn't really a need for setting up any kind of education system, as the only people working with computers at the time were early scientists and mathematicians. Computer programming wasn’t popular enough to be widely taught, nor was it developed enough for non-experts to benefit from it. It was soon realized however, that mathematicians were not a good fit for computer science work and that there would be a need for people fully focused around the subject. As time went on, there was a greater need for those who were specifically trained in computer programming to match the demands of a world becoming more and more dependent on the use of computers. Initially, only colleges and universities offered computer programming courses, but as time went on, high schools and even middle schools implemented computer science programs.In comparison to science education and mathematics education, computer science education is a much younger field. In the history of computing, digital computers were only built from around the 1940s – although computation has been around for centuries since the invention of analog computers.
Another differentiator of computer science education is that it has primarily only been taught at university level until recently, with some notable exceptions in Israel, Poland and the United Kingdom with the BBC Micro in the 1980s as part of Computer science education in the United Kingdom. Computer science has been a part of the school curricula from age 14 or age 16 in a few countries for a few decades, but has typically as an elective subject.
Primary and secondary computer science education is relatively new in the United States, with many K-12 CS teachers facing obstacles such as professional isolation, limited professional development resources, and low teaching self-efficacy. According to a 2021 report, only 51% of high schools in the US offer computer science.
Elementary CS teachers in particular have lower CS teaching efficacy and have fewer chances to implement CS into their instruction than their middle and high school peers. Connecting CS teachers to resources and peers using methods such as Virtual communities of practice has been shown to help CS and STEM teachers improve their teaching self-efficacy and implement CS topics into student instruction.
Generative AI and Computing Education
is becoming more popular and widespread in the public sector. Both teachers and students have reported believing that it is a useful educational tool, while expressing concerns about over-reliance during learning. GAI has been known to hallucinate information, causing concerns for the trustworthiness of the information it provides. More work on how to use these tools needs to occur for effective teaching.Curriculum
As with most disciplines, computer science benefits from using different tools and strategies at different points in a student's development to ensure they get the most out of the teaching. Visual programming languages like Scratch and MIT App Inventor are effective in elementary and middle schools as a good introduction to how programming languages function with a simple and easy to understand block-based programming structure. Once students have gotten a grasp for the very basics of programming through these languages, usually teachers will move on to an easy to use text-based programming language, such as Python, where syntax is much simpler compared to more complex languages. Generally, students are taught with languages that are popular among professional businesses and programmers so that they can become familiar with languages actually used in the workforce. Thus, in high school and college, classes tend to focus on more complex uses of Python as well as other languages such as Java, C++, and HTML. Despite this, it isn't completely necessary to focus on the most popular or used coding languages as much of computer science is built off of learning good coding practices that can be applied to any language in some form.Teaching methods
Effective teaching methods in computer science often differ from that of other subjects as the standard slideshow and textbook format often used in schools has been found to be less effective compared to standard academic subjects. Due to the problem-solving nature of computer science, a kind of problem focused curriculum has been found to be the most effective, giving students puzzles, games, or small programs to interact with and create. Rather than applying techniques or strategies learned to tests or quizzes, students must use material learned in class to complete the programs and show they are following the class. On top of this, it has been found that developing teaching methods that seek to improve and guide students problem-solving and creative abilities tend to help them succeed in computer science and other classes. The problem-solving aspect of computer science education is often the hardest part to deal with as many students can struggle with the concept, especially when it is likely they have not had to apply in such a way before this point.Another recent development is the rise of online coding courses and coding bootcamps. Due to the nature of computer science as a discipline, there are many who realize there interest for it only later in life, or maybe it wasn't widely available when they attend high school or college. These opportunities often involve rigorous courses that are more geared to getting people ready for the workforce rather than a more academic focus. Coding bootcamps have become a great way for people to break out into the computer science market without having to go to school all over again.
Algorithm Visualization
It can be difficult to effectively teach the interactive components of computing or the way an algorithm works with static text and images that are popular in textbooks and lectures. Instructors often utilize document cameras or classroom boards to draw out the processes and supplement the verbal explanation. The drawings are subject to frequent changes throughout the walkthrough of the process, causing challenges for students to grasp the concepts. To combat this problem, an interest in Algorithm Visualization has developed to demonstrate dynamic systems.Algorithm Visualization dates back to the early 1980’s with Baecker's Sorting Out Sorting. If used effectively, it can graphically demonstrate different states of algorithms in engaging ways. This helps students focus on the conceptual aspects of a process without worrying about the implementation such as memory addresses and specific function calls. Increased use of algorithm visualization engagement by students typically results in better learning for the students.
Algorithm Visualization can be used for a myriad of different topics. Data structures, graph algorithms, and sorting algorithms are all examples of computation based concepts where students can benefit from learning about with the aid of an algorithm visualization.