Jump to content

Computing education

From Wikipedia, the free encyclopedia
(Redirected from Programming education)

Elementary school children coding in a robotics programme

Computer science education or computing education is the field of teaching and learning the discipline of computer science,[1][2][3][4][5][6] and computational thinking.[7][8][9] 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.[10]

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.[11]

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

[edit]

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.[12] 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.[12]

In comparison to science education and mathematics education, computer science (CS) education is a much younger field.[13] 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.[14]

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.[6][15] 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.[16][17][18] According to a 2021 report, only 51% of high schools in the US offer computer science.[19] 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.[16] 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.[16][17]

Curriculum

[edit]

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.[20] 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.[21] 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

[edit]

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.[22] 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.[22] 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.[20] 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.[23] 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

[edit]

Computing education research (CER) or Computer science education research is an interdisciplinary field that focuses on studying the teaching and learning of computer science.[5][24] 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.[citation needed]

Background

[edit]

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.[citation needed]

Topics of study

[edit]

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

[edit]

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.[citation needed]

Assessment

[edit]

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.[citation needed]

Pedagogy

[edit]

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.[citation needed]

Diversity and inclusion

[edit]

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.[citation needed]

Research communities

[edit]
Top 50 computer science universities in North America[25]

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.[26] An outcome of computing education research are Parsons problems.[citation needed]

Gender perspectives in computer science education

[edit]

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%.[27] The number of female PhD recipients in the US was 19.3% in 2018.[28] In almost everywhere in the world, less than 20% of the computer science graduates are female.[29]

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.[30]

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.[30] 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.[29]

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.[31] In 2001, 55 percent of computer science graduates in Guyana were women.[32]

[edit]

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. [33] [34]

Challenges

[edit]

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.[35] 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.[36] 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.[36]

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.[35] 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.[22]

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.[22] 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.[22]

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.

See also

[edit]

References

[edit]
  1. ^ Fincher, Sally; Petre, Marian (2004). Computer Science Education Research. London: Taylor & Francis. ISBN 90-265-1969-9. OCLC 54455019.
  2. ^ Sentance, Sue; Barendsen, Erik; Schulte, Carsten (2018). Computer science education : perspectives on teaching and learning in school. London: Bloomsbury. ISBN 978-1-350-05711-1. OCLC 999588195.
  3. ^ Bruckman, Amy; Biggers, Maureen; Ericson, Barbara; McKlin, Tom; Dimond, Jill; DiSalvo, Betsy; Hewner, Mike; Ni, Lijun; Yardi, Sarita (2009). "Georgia computes! Improving the computing education pipeline". ACM SIGCSE Bulletin. 41 (1): 86. doi:10.1145/1539024.1508899. ISSN 0097-8418.
  4. ^ Anon (2017). "Computing education". royalsociety.org.
  5. ^ a b Fincher, Sally A.; Robins, Anthony V. (2019). The Cambridge Handbook of Computing Education Research (PDF). Cambridge University Press. doi:10.1017/9781108654555. ISBN 9781108654555. OCLC 1090781199. S2CID 243000064.
  6. ^ a b Furber, Steve (2017). After the reboot: computing education in UK schools (PDF). London: Royal Society. ISBN 9781782522973.
  7. ^ Guzdial, Mark (2008). "Education: Paving the way for computational thinking". Communications of the ACM. 51 (8): 25–27. doi:10.1145/1378704.1378713. ISSN 0001-0782. S2CID 35737830.
  8. ^ Wing, Jeanette M. (2006). "Computational thinking" (PDF). Communications of the ACM. 49 (3): 33–35. doi:10.1145/1118178.1118215. hdl:10818/29866. S2CID 1693513.
  9. ^ Wing, Jeanette M. (2008). "Computational thinking and thinking about computing". Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences. 366 (1881): 3717–3725. Bibcode:2008RSPTA.366.3717W. doi:10.1098/rsta.2008.0118. PMC 2696102. PMID 18672462.
  10. ^ Fincher, Sally; Petre, Marian, eds. (26 September 2005). Computer Science Education Research. Taylor & Francis. doi:10.1201/9781482287325. ISBN 978-1-4822-8732-5.
  11. ^ "Computer and Information Research Scientists : Occupational Outlook Handbook: : U.S. Bureau of Labor Statistics". www.bls.gov. Retrieved 13 April 2023.
  12. ^ a b Tedre, M., Simon, & Malmi, L. [fi] (2018). Changing aims of computing education: a historical survey. Computer Science Education, 28(2), 158–186.
  13. ^ Tedre, Matti; Simon, Simon; Malmi, Lauri (2018). "Changing aims of computing education: a historical survey". Computer Science Education. 28 (2): 158–186. Bibcode:2018CSEd...28..158T. doi:10.1080/08993408.2018.1486624. S2CID 52884221.
  14. ^ Tedre, Matti (2015). The science of computing : shaping a discipline. Boca Raton. ISBN 978-1-4822-1769-8. OCLC 870289913.{{cite book}}: CS1 maint: location missing publisher (link)
  15. ^ Rogers, Yvonne; Shum, Venus; Marquardt, Nic; Lechelt, Susan; Johnson, Rose; Baker, Howard; Davies, Matt (2017). "From the BBC micro to micro:bit and beyond". Interactions. 24 (2): 74–77. doi:10.1145/3029601. ISSN 1072-5520. S2CID 24258819.
  16. ^ a b c Schwarzhaupt, Robert; Liu, Feng; Wilson, Joseph; Lee, Fanny; Rasberry, Melissa (8 October 2021). "Teachers' Engagement and Self-Efficacy in a PK–12 Computer Science Teacher Virtual Community of Practice". Journal of Computer Science Integration. 4 (1): 1. doi:10.26716/jcsi.2021.10.8.34. ISSN 2574-108X. S2CID 240864514.
  17. ^ a b Kelley, Todd R.; Knowles, J. Geoffery; Holland, Jeffrey D.; Han, Jung (16 April 2020). "Increasing high school teachers self-efficacy for integrated STEM instruction through a collaborative community of practice". International Journal of STEM Education. 7 (1): 14. doi:10.1186/s40594-020-00211-w. ISSN 2196-7822. S2CID 216034569.
  18. ^ Yadav, Aman; Gretter, Sarah; Hambrusch, Susanne; Sands, Phil (8 December 2016). "Expanding computer science education in schools: understanding teacher experiences and challenges". Computer Science Education. 26 (4): 235–254. Bibcode:2016CSEd...26..235Y. doi:10.1080/08993408.2016.1257418. ISSN 0899-3408. S2CID 33792019.
  19. ^ "2021 State of computer science education: Accelerating action through advocacy" (PDF). Code.org, CSTA, & ECEP Alliance. 2021.
  20. ^ a b Garneli, V., Giannakos, M. N., & Chorianopoulos, K. (March 2015). Computing education in K-12 schools: A review of the literature. In 2015 IEEE Global Engineering Education Conference (EDUCON) (pp. 543–551). IEEE.
  21. ^ summertj@ufl.edu (28 September 2015). "The Languages of Computer Science". University of Florida Online. Retrieved 2024-08-04.
  22. ^ a b c d e Cheah, C. S. (2020). Factors contributing to the difficulties in teaching and learning of computer programming: A literature review. Contemporary Educational Technology, 12(2), ep272.
  23. ^ Wilson, G. (2017). Building a new mythology: The coding boot-camp phenomenon. ACM Inroads, 8(4), 66–71.
  24. ^ Cooper, Steve; Grover, Shuchi; Guzdial, Mark; Simon, Beth (2014). "A future for computing education research". Communications of the ACM. 57 (11): 34–36. doi:10.1145/2668899. ISSN 0001-0782. S2CID 34034556.
  25. ^ "North America's best Computer Science universities [Rankings]". 11 August 2021.
  26. ^ Morrison, Briana; Settle, Amber (2018). "Celebrating SIGCSE's 50th anniversary!". ACM SIGCSE Bulletin. 50 (1): 2–3. doi:10.1145/3183559.3183560. ISSN 0097-8418. S2CID 19169248.
  27. ^ "The Mixed News on Diversity and the Enrollment Surge". CRA. 10 February 2017. Retrieved 5 May 2020.
  28. ^ 2018 Taulbee Survey, Computing Research Association. https://cra.org/wp-content/uploads/2019/05/2018_Taulbee_Survey.pdf
  29. ^ a b Happe, Lucia; Buhnova, Barbora; Koziolek, Anne; Wagner, Ingo (1 May 2021). "Effective measures to foster girls' interest in secondary computer science education". Education and Information Technologies. 26 (3): 2811–2829. doi:10.1007/s10639-020-10379-x. ISSN 1573-7608. S2CID 228817008.
  30. ^ a b Vitores, Anna; Gil-Juárez, Adriana (1 November 2016). "The trouble with 'women in computing': a critical examination of the deployment of research on the gender gap in computer science". Journal of Gender Studies. 25 (6): 666–680. doi:10.1080/09589236.2015.1087309. ISSN 0958-9236. S2CID 146570525.
  31. ^ "what gender is science" (PDF). Archived (PDF) from the original on 24 September 2015. Retrieved 24 October 2024.
  32. ^ James, Justin (19 September 2023). "IT gender gap: Where are the female programmers?". TechRepublic.
  33. ^ Code Studio Activity (2012). "About Us". code.org.
  34. ^ Brahimi, T., & Sarirete (2015). "Learning outside the classroom through MOOCs". Computers in Human Behavior. Computing for Human Learning, Behaviour and Collaboration in the Social and Mobile Networks Era. 51: 604–609. doi:10.1016/j.chb.2015.03.013.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  35. ^ a b Morreale, P., & Joiner, D. (2011). Changing perceptions of computer science and computational thinking among high school teachers. Journal of Computing Sciences in Colleges, 26(6), 71–77.
  36. ^ a b Goode, J., & Margolis, J. (2011). Exploring computer science: A case study of school reform. ACM Transactions on Computing Education (TOCE), 11(2), 1–16.