A Global Survey of Introductory Programming Courses

We present results of an in-depth survey of nearly 100 introductory programming (CS1) instructors in 18 countries spanning six continents. Although CS1 is well studied, relatively few broadly-scoped studies have been conducted, and none prior have exceeded regional scale. In addition, CS1 is a notoriously fickle and often changing course, and many might find it beneficial to know what other instructors are doing across the globe; perhaps more so as we continue to understand the impact of the COVID-19 pandemic on computing education and as the effects of Generative AI take hold. Expanding upon several surveys conducted in Australasia, the UK, and Ireland, this survey facilitates a direct comparison of global trends in CS1. The survey goes beyond environmental factors such as languages used, and examines why CS1 instructors teach what they do, in the ways they do. In total the survey spans 84 institutions and 91 courses in which a total of over 40,000 students are enrolled.


INTRODUCTION
The introductory programming sequence is the foundation of most computing degrees and has been studied extensively [7,35].The many variants of this course, often called CS1, almost always focus on learning the basics of programming and most often introduce students to one or more specific programming languages [50].The term 'CS1' was introduced in Curriculum '78: Recommendations for the Undergraduate Program in Computer Science (A Report of the ACM Curriculum Committee on Computer Science) [1].Curriculum '78 specified eight core courses, with short names CS1-CS8.CS1 and CS2 remain in common use as shorthand for the first programming course and the first data structures & algorithms course, respectively.Hertz [32] notes that "while there is wide agreement on the connotation of CS1 and CS2, there is little agreement as to the denotation of these terms".A recent random sampling of 500 US undergraduate degree programs in computer science found that 100% of both ABET-accredited and non-accredited programs had a CS1 course, with perfect inter-rater reliability (using three techniques) [8].Thus it is safe to say that CS1 courses are ubiquitous in the CS curriculum.It is also well known that students face many struggles in these courses [46].This gives them a reputation of being "hard to learn" [39] although this notion has been disputed and has led to an unhealthy reputation [3,55].It has also been argued that educators' expectations of CS1 students are unrealistic [34], and some research has explored what exactly is expected of CS1 students by analyzing hundreds of syllabi [6].CS1 has also changed over the decades, and is continuing to evolve [21], in terms of approach and languages [7], changes that have been reflected in model curricula [44,45,58], country-specific national policy interventions [9,22,63], as well as broader critical analysis of the foundational programming knowledge, skills and experience required for developing sustainable software and systems [61,62], including an increasing focus on the craft aspect of learning programming (e.g."software carpentry" and "codemanship" [13,14]).The increased focus on CS1 might also have been driven in part by extensive developments in K-12 computing education across various countries and jurisdictions -with significant focus on coding and programming -including new statutory national curricula and pre-university level qualifications (e.g.[10,27,41,49,51]).

RELATED WORK
CS1 research is often considered particularly challenging, one reason being that it sits in an ecosystem that is undergoing constant change.A very non-exhaustive list of examples include: • Programming languages change and evolve, as do first programming environments; • The use of programming languages in the outside world changes, for example the increased visibility of data science and machine learning, which are often programmed in Python in modern times; • Students' backgrounds change: several educational systems now insist (with varying degrees of success) that programming be taught in schools, which changes what might be expected of CS1 students in universities; • Curiously, parents (and students) have views about the first programming language in a way that they do not seem to have in other subjects (a professor of Russian would be astounded if a parent asked "what is the first author studied?").
Although much research has been conducted on CS1 [7,35] until recent years there were relatively few broadly scoped surveys, reviews, and meta-analyses -although two early papers were presented at the ACM SIGCSE Technical Symposium.In 2002 Vasiga presented historical data on introductory programming papers [60], and in 2004 Valentine conducted a review of introductory programming papers, organizing them into somewhat idiosyncratic groups based either on their approach or on their content: experimental, 'John Henry', 'Marco Polo', 'Nifty', philosophy, and tools [59].
A 2018 ITiCSE working group led by Luxton-Reilly and Simon produced a 52-page literature review of introductory programming research, processing thousands of papers and citing 761.Other similar and recent work processed 777 SIGCSE Technical Symposium papers focusing on CS1, identifying several trends in the first 50 years of research on these courses [7].
A longitudinal study of programming languages and environments in CS1 courses in Australasia was conducted by de Raadt et al. in 2001 [23] and continued by various authors in 2003 [24], 2010 [37], and 2013 [36].This study received scant attention outside Australasia, with one paper in 2014 reporting on a short survey in the USA and noting that "we need to get a better picture of how programming languages are used in academia internationally" [57].
Following a 2016 iteration of the Australasian study [38], the survey was taken up by Murphy, Crick, and Davenport in the UK [43] and by Becker in Ireland [2], with both studies using the same instrument provided by the original authors.For the work reported in this paper, several of these authors joined forces, using the same instrument to survey a global audience with the same questions and to look for commonalities and differences.

Research Questions
Our research questions are closely related to the survey questions, as taken from the regional studies already mentioned.
RQ1 What programming languages are used in introductory programming courses, with what relative frequencies, and why are they chosen?RQ2 What programming environments are used with the selected programming languages and why are they chosen?RQ3 What paradigm is being taught -regardless of what paradigm(s) the language may support?RQ4 How prevalent is online delivery of courses?RQ5 What resources are commonly provided to students?

METHOD AND CONTEXT
All project members received appropriate IRB/HREC/ethics approval from their institutions prior to collecting data.In geographic terms, we set out to conduct a survey based on the earlier ones [2,38,43], but with global reach.In temporal terms, the context of our survey has two features of particular interest, neither of which was part of our research design.We discuss these in Sections 3.1 and 3.2 Invitations to take part in the survey were circulated on a number of mailing lists: principally SIGCSE-members, but also lists of computing educators in various countries and regions that might not be directly reached by SIGCSE-members, for language or other reasons.Those who were teaching one or more introductory programming courses were invited to complete the survey for one or more of those courses; others were asked to forward the email, if practical, to somebody who was teaching such a course at their institution or in their region.The survey questions can be accessed at dx.doi.org/10.5281/zenodo.10171742.

Impact of the COVID-19 Pandemic
The survey was conducted in late 2021 and early 2022.This led to the first of our unintended temporal features: many universities and colleges around the world [31,40,52,65] had faced rapid transitions from face-to-face to 'emergency remote teaching' and then to more planned online learning, teaching, and assessment [17,18,64].They were now contemplating when and how, and perhaps even whether, to return to face-to-face teaching [12,67].During our survey, some institutions would have still been teaching and assessing online only, while others had already returned to campus, wholly or partly, with widespread impacts on students [19,20,42], faculty [15,16], and institutions [33,66].ITiCSE working groups in 2021 and 2022 have looked at these issues specifically for the discipline of computing [53,54].
Addition to the Survey Instrument.The survey instrument was the same as used in three distinct regional surveys [2,38,43], but with one additional question explicitly referring to the COVID-19 pandemic: "How do you think the COVID-19 pandemic has impacted on the teaching of introductory programming?"

Generative AI
The second unintended temporal feature of our work is that this is the last snapshot of introductory programming as it was before code-generating AI tools became prevalent.Conferences sponsored by or in cooperation with ACM SIGCSE1 saw their first publications involving generative AI in early 2022.The majority of this work to date has focused on CS1, as noted recently at the SIGCSE Technical Symposium by Becker et al. [5].Our snapshot is therefore important as generative AI is widely expected to significantly and permanently alter the landscape of CS1 [4,11,28] and beyond [29] -and indeed society more broadly [25,26].Evidence of the impact of Generative AI on CS1 is apparent in practice [48] and in the emergence of teaching materials such as a new textbook that advocates learning AI-assisted programming in CS1 courses (using GitHub Copilot and ChatGPT) from day one [47].

Demographics
There were a total of 153 respondents to the survey, but many of these abandoned the survey after the opening questions about country and institution.Respondents were next asked to identify the course about which they were responding, so that we could identify and remove duplicates.When the incomplete responses and duplicates were removed, a total of 91 responses were identified that had at least the programming language question completed.These responses became our data set.

3.3.1
Countries.The responses were dominated by those from the USA, followed by Australia, Ireland, England, and Canada.The number of responses per country can be seen in Table 1.The 'Other' entry represents one response each from Brazil, Denmark, Finland, Italy, Kenya, Portugal, Scotland, and Slovenia.For further analysis (as in Figure 1), these responses were grouped into 'Americas' (Canada, Brazil, USA: 53 responses), 'British Isles' (UK and Ireland: 12), 'Europe' (10), 'Oceania' (Australia and New Zealand: 11), and 'Other' (5).

Class Sizes.
Respondents were asked "approximately how many students are undertaking this course this year (across all cohorts, locations, and modes)?"The 89 responses to this question ranged from 20 to 6,000 students, with a total of 40,362.Table 2 shows the number of courses for each range of class sizes.Guzdial remarked that "On many campuses, teaching introductory courses typically falls to less-experienced instructors" and that "this can have negative consequences" [30].In contrast 66% of the instructors answering this question have at least 10 years of experience (Table 3).This likely indicates that CS1 instructor experience is appreciated.There is the possibility of survey bias, however.For instance it is possible that less experienced teachers did not complete the survey with the same frequency as those with more experience.

RESULTS
Here we summarize our findings to each research question.

Programming Languages
RQ1 asked what programming languages are used in CS1 courses, with what relative frequencies, and why they are chosen.
4.1.1Languages Being Used.Table 4 shows the number of institutions and courses using each language.The total numbers of institutions and courses are greater than the number of respondents, as some courses/institutions use more than one language.Of those using a single language, 30 used Java, 29 used Python, six used C, four used C++, two each used Scala and Processing, and one used Racket.Seventeen courses used multiple languages.It makes very little difference whether we count these languages fractionally or as complete counts -although the choice does affect the relative positions of Python and Java, vs C++ and C, as both pairs are quite close in prevalence.Go and Bash are used only in multi-language courses.While not surprising for Bash, it is perhaps more surprising for Go, which was used only in a course that also used C and Java.Racket occurred once by itself and once jointly with Java.
There are some variations by geographical region (see Figure 1), such as the relative prevalence of C and C++.However, these must be considered with caution.For example, the prevalence of C in 'Other' is remarkably high, but this whole group comprises just seven languages in five courses from India (2), Jordan (2), and Kenya (1), making it unwise to draw conclusions from these results.

Reasons for Choice of Language. As with the most recent
Australasian survey [56], the most common reason selected for choice of programming language was pedagogical benefits (Figure 2).In the UK survey [43], this was equal first with relevance to industry, and in the Irish survey [2] the most common reason was relevance to industry, which is ranked fourth in our survey.In view of the increasing industry use of Python in such areas as machine learning and data analysis, it is perhaps surprising that this reason ranks lower than platform independence and availability and cost to students.Several reasons for this may exist, such as a difference between a department's actual reasons and the ones it might give to students and parents.Respondents were asked what reasons might prompt them to consider changing the programming language they were using.Responses are shown in Figure 3. Whilst pedagogical benefits is also the top reason to change, this is followed strongly by industry relevance, possibly indicating a tension between these reasons for choice.

Programming Environments
RQ2 asked what programming environments are used with the selected programming languages and why they are chosen.A quarter of the respondents reported not using a programming environment as such (Table 5), instead relying on text editors and command-line compilers.The table also shows a substantial number of courses using more than one environment, with one using five different environments.Of the environments that are being used, Figure 4 shows a remarkably uniform spread, with just a few, led by Eclipse and Visual Studio, standing clear of the crowd.In contrast with the reasons for choice of programming language, pedagogical benefits ranks only seventh among the reasons for choice of programming environment.However, it is clear from Figure 5 that the higherranked reasons are all student-centric.Asked whether the same environment is used in other courses in the degree, around twothirds of respondents said that it was.6 shows that 43 courses taught procedural followed by 32 object-oriented, with only a handful taught using functional (3) or other (4).This result contrasts with the 2016 UK survey [43], where objectoriented was a clear leader.In the 2017 Australasian survey, the procedural paradigm had a clear majority [38].While there are similarities between the latest Australasian data and this survey, note that this data may not be reliable: Mason and Simon [38], noted that some respondents claimed to teach functional programming using C, prompting them to wonder whether they and the respondents had the same understanding of functional programming.

Online Offerings
RQ4 asked about the prevalence of completely online delivery of courses.When asked "Do you have options for your course where students are not required to attend any regular lectures, workshops, labs, or tutorials, but can complete their study online?"38 respondents said yes and 43 said no.
Of the 38 'yes' respondents, 17 reported that this was the case prior to the COVID-19 pandemic and 20 said that it was not.When those who offered online options during COVID-19 were asked if they intend to keep offering online delivery post-pandemic, 20 answered affirmatively, six said no, and 12 were still considering whether they would continue online offerings (Table 7).
Table 7: Online delivery before, during, and after COVID-19, of respondents who were currently teaching online.One respondent did not answer the 'before' question.The 43 respondents who did not offer online options during COVID-19 are not reflected in this table (denoted by 'X').These results show that of those who did offer an online option during COVID-19 (38) about half were already offering online options prior to the pandemic.It also shows that the number intending to continue online offerings after COVID-19 was only slightly greater than the number who had been using them before the pandemic (17 before, 20 intending to after).Interestingly, only six intended to not offer any online options after COVID-19, while nearly a third (12/33) of those that did offer online options during COVID-19 were undecided about continuing with online offerings.It is likely that the timing of our survey is the reason for this -the COVID-19 pandemic was still ongoing (to various degrees) when respondents completed the survey.Thus, the decision whether to continue offering online options after the worst of the COVID-19 restrictions, had likely not yet been resolved for these 12 respondents.It is also possible that the advent of Generative AI (discussed in Section 3.2) may have influenced survey responses for those responding late in the survey timeframe.

Resources Provided to Students
Respondents provided a wide range of resources to students (Figure 6).Over 50% of instructors provided lecture slides or notes, worked examples, discussion boards or forums, recorded lectures (possibly a COVID-19 artifact), assignment hints, and/or specified a textbook.Least popular were glossaries of keywords, topic summaries, and publisher-supplied slides or notes.Respondents also provided other resources, including automatic feedback systems, peer mentors, additional workshops for specific skills development, extensive screencasts (or other videos including animations or YouTube videos), a repository of code developed in class, and/or peer code presentations.We did not include 'office hours' as one of the choices provided in this question, but perhaps we should have done so, considering that not all courses may provide this resource.

LIMITATIONS
One significant limitation of this study is that responses were very US-dominated, and even beyond the US, most respondents were from English-speaking regions.We also did not ask any genderrelated questions.A well-defined question would be "what is the gender of the respondent?"; however to ask the "gender of the instructor" is less well-defined.In a large class (and most CS1 classes are large: see Table 2) there will be many teaching assistants, and the student will have much more interaction with those than with the primary professor(s).So in terms of the influence of the gender of the instructors, the teaching assistant is possibly more important.Indeed, we asked nothing about teaching assistants, a vital part of large course delivery.This could well be a survey in its own right.

CONCLUSION AND FUTURE WORK
Ten years since Stefik and Hanenberg [57] noted the absence of an international picture of the programming languages used in introductory programming courses, we have provided that picture and more besides.We have established that Java and Python are in a clear joint lead; that the difference is not so stark among programming environments; and that most instructors consider pedagogical benefits to be a prime factor in the choice of programming language.
We have collected a wealth of data, and future work will include deeper analysis of that, including qualitative analysis of the freeresponse questions in the survey.It is instructive to compare our global (but US-dominated) findings with those of the earlier surveys in Australasia, the UK, and Ireland.For example, Figure 1 shows that Python just beats Java in the British Isles, whereas the 2016 UK survey [43,Figure 2] had Java with a 4:1 lead over Python.This could be a sign of the times.
Most importantly, this or a similar survey should be conducted a few years from now, when the world of (computing) education has hopefully come to terms with the end of the pandemic, and the impacts of Generative AI.

Figure 1 :
Figure 1: Percentage of language in each region

Figure 2 :
Figure 2: Reasons for choice of language

Figure 3 :
Figure 3: Reasons to consider change of language

Figure 5 :
Figure 5: Reason for choice of environment

Figure 6 :
Figure 6: Percentage of courses using each resource.

Table 1 :
Number of respondent courses per country

Table 3 :
Experience teaching programming

Table 4 :
Language use -institutions and courses