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 and 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 nearly popular enough to warrant being taught, nor was it at a point where anyone who wasn't an expert could get anything out of 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 (CS) 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 to integrating CS instruction such as professional isolation, limited CS professional development resources, and low levels of CS 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.
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.
Something else that has become popular in more recent times are 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.
Computing education research
Computing education research (CER) or Computer science education research is an interdisciplinary field that focuses on studying the teaching and learning of computer science. It is a subfield of both computer science and education research, and is concerned with understanding how computer science is taught, learned, and assessed in a variety of settings, such as K-12 schools, colleges and universities, and online learning environments.
Background
Computer science education research emerged as a field of study in the 1970s, when researchers began to explore the effectiveness of different approaches to teaching computer programming. Since then, the field has grown to encompass a wide range of topics related to computer science education, including curriculum design, assessment, pedagogy, and diversity and inclusion.
Topics of study
One of the primary goals of computer science education research is to improve the teaching and learning of computer science. To this end, researchers study a variety of topics, including:
Curriculum design
Researchers in computer science education seek to design curricula that are effective and engaging for students. This may involve studying the effectiveness of different programming languages, or developing new pedagogical approaches that promote active learning.
Assessment
Computer science education researchers are interested in developing effective ways to assess student learning outcomes. This may involve developing new measures of student knowledge or skills, or evaluating the effectiveness of different assessment methods.
Pedagogy
Researchers in computer science education are interested in exploring different teaching methods and instructional strategies. This may involve studying the effectiveness of lectures, online tutorials, or peer-to-peer learning.
Diversity and inclusion
Computer science education researchers are interested in promoting diversity and inclusion in computer science education. This may involve studying the factors that contribute to under representation of certain groups in computer science, and developing interventions to promote inclusivity and equity.
Research communities
The Association for Computing Machinery (ACM) runs a Special Interest Group (SIG) on Computer science education known as SIGCSE which celebrated its 50th anniversary in 2018, making it one of the oldest and longest running ACM Special Interest Groups. An outcome of computing education research are Parsons problems.
Gender perspectives in computer science education
In many countries, there is a significant gender gap in computer science education. In 2015, 15.3% of computer science students graduating from non-doctoral granting institutions in the US were women while at doctoral granting institutions, the figure was 16.6%. The number of female PhD recipients in the US was 19.3% in 2018. In almost everywhere in the world, less than 20% of the computer science graduates are female.
This problem mainly arises due to the lack of interests of girls in computing starting from the primary level. Despite numerous efforts by programs specifically designed to increase the ratio of women in this field, no significant improvement has been observed. Furthermore, a declining trend has been noticed in the involvement of women in past decades.
The main reason for the failure of these programs is because almost all of them focused on girls in high school or higher levels of education. Researchers argue that by then women have already made up their mind and stereotypes start to form about computer scientists. Computer Science is perceived as a male dominated field, pursued by people who are nerdy and lack social skills. All these characteristics seem to be more damaging for a woman as compared to a man. Therefore, to break these stereotypes and to engage more women in computer science, it is crucial that there are special outreach programs designed to develop interest in girls starting at the middle school level and prepare them for an academic track towards the hard sciences.
Evidently, there are a few countries in Asia and Africa where these stereotypes do not exist and women are encouraged for a career in science starting at the primary level, thus resulting in a gender gap that is virtually nonexistent. In 2011, women earned half of the computer science degrees in Malaysia. In 2001, 55 percent of computer science graduates in Guyana were women.
Recent Trends and Developments
Recently, computational education has had an increased emphasis on incorporating computational knowledge into education on all levels. This is due to the world becoming more and more technologically driven. Organizations like Code.org and initiatives like the Hour of Code, and massive open online courses (MOOCs) have played a significant role in promoting computer science education and making coding accessible to students worldwide; especially making a difference for women, underprivileged and underrepresented communities. These online learning platforms have also made computing education more accessible, allowing individuals to learn coding remotely. Additionally, we see technology increasingly being found in numerous fields like health, business and technology.
Challenges
Over the years, computing education has faced many various issues that have in one way or another contributed to its unpopularity. One of the most impactful of these issues is the equipment cost of effectively teaching the discipline. In the past, there were not many affordable options for providing computers for each and every student that wanted to learn the discipline. Due to this, computing education suffered in many areas with little to no funding left over to adequately teach the subject. This is the main reason why computing education is either extremely lackluster or non-existent in many schools across the United States and UK. The subject's unpopularity for many years mostly stems from it being reserved for those who could afford the necessary equipment and software to effectively teach it.
There have also been issues with finding and training good teachers for the subject. Many schools in the past didn't see the value in paying for training for teachers to be able to teach computer science or get the licenses required. This has led to many schools in disadvantaged areas, or simply areas with not a lot of people, to struggle to hire the teachers necessary to provide a good computer science curriculum. Another issue with the teacher side of the discipline is the nature of computer science itself, and that a standard teaching structure using slides and textbooks has often been found to be ineffective. Computer science is a very problem solving oriented subject and it has often been found that teaching can be more effective when approaching it from this perspective rather than the standard lecture format.
Computer science is also notorious for being a very difficult subject in schools, with high failure and dropout rates over the years it has been taught. This is usually attributed to the fact that computer science as a subject is very problem-solving heavy and a lot of students can struggle with this aspect. This is especially true for high-school, where few other subjects demand as high caliber of problem-solving ability as computer science. This is compounded by the fact that computer science is a very different discipline from most other subjects, meaning that many students who encounter it for the first time can struggle a lot.
Despite the challenges faced by the discipline, computer science continues to grow in popularity as a subject as technology grows and computers become more and more important in the classroom as well as in everyday life.