Curriculum, Teaching and Learning, and Assessments For Introductory Programming Course
Curriculum, Teaching and Learning, and Assessments For Introductory Programming Course
21, 2020.
Digital Object Identifier 10.1109/ACCESS.2020.3008321
ABSTRACT Learning to program involves acquisition of various skills including problem solving,
fundamental design techniques as well as critical thinking. Generally, most of the novice programmers
struggle to develop all these important skill. The research community has addressed the problem in many
different ways while involving improvisations in curriculum, pedagogical methods, cognitive aspects,
supporting tools, and in designing assessments. This research aims to analyze and synthesize the existing
literature in the aforementioned areas. Research articles pertaining to the area of Introductory Programming
Courses (IPC) have been found using appropriate search queries, while nearly 60 research articles, published
in last ten years, have been carefully selected by employing a systematic filtering process. The scope of this
work only covers the research conducted for IPC in higher education. Main findings of this study show
that ‘‘solution proposal’’ and ‘‘evaluation research’’ have been reported as two main research types adopted
by these studies. Moreover, pedagogy, language choice and students’ performance analysis are the most
frequently addressed aspects of IPC; whereas, curriculum contents, assessment design, and teaching/learning
through tools have appeared as less addressed aspects of IPC. Furthermore, a taxonomy of IPC has been
presented based on the studied literature. Lastly, general considerations and future research directions have
been presented for the practitioners and researchers in this area.
This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/
VOLUME 8, 2020 125961
E. Mehmood et al.: Curriculum, Teaching and Learning, and Assessments for Introductory Programming Course
and workshops) in our study as more matured research gets standards and language choice as IPC, and focus more
published in journals. This comparison help us build the need on teaching methods and tools than on student problems.
of this survey. A more recent systematic review on challenges faced by
This systematic literature review (SLR) provides a detailed novice programmers in learning introductory programming
examination of problems faced by novice programmers in course evaluated studies till year 2016 conducted by [3].
learning introductory programming education and research Authors focus on analyzing three stages of computational
trends in IPC while covering all five major perspectives thinking (problem formulation, solution expression and
shown in Table 1. Based on the systematic review criteria, solution execution and evaluation). This is the only other
60 research papers have been finalized for further review survey to our knowledge that thoroughly presents key issues
and analysis. The selected papers are empirically and for the research road map on introductory programming
qualitatively evaluated through multiple aspects. The novelty learning and teaching in higher education. However, this
of our systematic literature review is that it provides a new study does not focus on other factors playing important role in
classification criteria, IPC research targeting channels, IPC learning IPC such as: curricula standards and language choice
curricula [2], [49], programming language choice [4], [24], as IPC.
teaching and learning approaches [29], [45], assessment Another SLR presented by [5] investigates the effective-
design [19], [21] and tools [23], [57], and approaches ness of using robots as teaching tools for IPC. Authors
to address challenges faced by novice students after val- discuss different technologies appearing helpful for learners
idating programming studies empirically. This SLR will to overcome existing barriers in this context. This SLR
help educators in development of standardized IPC learning discovers that most frequently adopted programming by
environment together with curricula, teaching and learning educators is JAVA for those who use robots as a teaching
tools, and effective assessment tools and design. tool. According to this study, high quality and large scale
This article is arranged as follows: Section II discusses research is still required in order to discover true efficacy
about existing relevant surveys, and provides a motivation of robots as tool for teaching programming. However, other
for this SLR. Section III presents adopted methodology to tools and methodologies of learning IPC are not discussed in
conduct this survey together with objectives and research this survey.
questions. Answers to these research questions have been Models of learning styles for IPC are recently reviewed
described and analyzed in Section IV. Section V presents by [6]. Total of five learning approaches appeared in this
synthesis of reviewed literature by describing a taxonomy review: online self-paced, face-to-face instructor, online col-
in this domain. Lastly, the article has been concluded laboration, face-to-face collaboration and online instructor-
in Section VI. led. Effectiveness of various learning approaches have been
evaluated on basis of students’ performance when blended
II. LITERATURE REVIEW together. Impact of five blended learning models on the
Most of the surveys and systematic reviews on introductory learning experience of novice programmers have been
programming do not cover publication channels, curricula reviewed in this survey which are: flipped, mixed, flex,
B. REVIEW CONDUCT
The process of conducting this review has been articulated
in four steps presented below. In first step, relevant primary
studies have been searched from most commonly used
digital libraries. Selection of studies based on pre-defined
inclusion/exclusion criteria has been performed during sec-
ond step. We have designed quality assessment criteria to
further enhance quality of our review described in third step.
Backward snowballing is then performed to extract important
candidate papers during final fourth step.
FIGURE 1. Research strategy.
our SLR too, therefore considered. In addition google scholar, • Central and Eastern European Online Library (https://
that covers other such venues which are not directly explored, www.ceeol.com/)
also included in our survey. Therefore, following eleven • Google Scholar(https://scholar.google.com/)
digital venues possibly covering almost all relevant research The objective of manual search is to collect more literature
have been selected as primary search sources for automatic relevant to introductory programming education curriculum
search: and approaches domain. Extracted information can be
• ACM Digital Library (http://dl.acm.org) more relevant for limited search terms therefore following
• IEEE eXplore (http://ieeexplore.ieee.org) conditions were applied to limit our search terms:
• PLOS ONE (https://journals.plos.org/plosone/) • Based on formulated RQs, determine primary keywords.
• ScienceDirect (https://www.sciencedirect.com) • Identification of secondary keywords and synonyms for
• SpringerLink (https://link.springer.com/) additional keywords.
• WileyOnlineLibrary (https://onlinelibrary.wiley.com/) • ‘AND’ and ‘OR’ Boolean operators have been incorpo-
• arXiv (https://arxiv.org/search/cs) rated with keywords to develop a search string.
• AIS eLibrary (https://aisel.aisnet.org/) Possible arrangements of search string used can be noted
• IGI Global (https://www.igi-global.com/search/) from Figure 3, while a sample query has been presented
FIGURE 3. Search strings used to describe work included in our knowledge base.
QA in our review. In order to enhance our study, we have ranking lists [14] into account. Possible scores for
carried out QA by designing a questionnaire to assess the publications from recognized and stable sources are
quality of selected papers. The QA of our study was carried shown in Table 4.
out by three authors and each study is scored based on the A final score has been calculated for each study after adding
following criteria: scores of above questions: (a number between 0 to 8). Articles
a) The study has awarded score (1) if it contributes towards achieving scores 4 or more have been included in finalized
three identified aspects in IPC, otherwise scored (0). results.
b) If clear solutions for identified challenges in IPC have
been provided by the study: ‘‘Yes (2)’’, ‘‘Limited (1)’’, 4) SELECTION BASED ON SNOWBALLING
and ‘‘No (0)’’ were the possible scores. After performing quality assessment, we conducted back-
c) Score (1) is awarded to studies which presents empirical ward snowballing [15] through reference list of each finalized
results otherwise scored (0). study to extract papers. Only those important candidate
d) The studies were rated by taking computer science papers are selected which passed through inclusion/exclusion
conference rankings [13], and the journal and country criteria. Once the paper is found, inclusion/exclusion of that
paper has been decided after reading its abstract and then number of papers while filtering/inspection phases helped
other parts of paper. After having examined selected papers reduce this number to 60 articles.
thoroughly we identified five more studies [16]–[19], [20]
and totally added up to 60 primary studies. IV. ASSESSMENT AND DISCUSSION
OF RESEARCH QUESTIONS
C. REVIEW REPORT In this section, we analyzed the finalized 60 primary studies
Overview of selected studies is provided in this section. based on our research questions.
TABLE 6. Classification.
based on multiple criterion. Both Java and Python have language in data science with strong supportive libraries.
been well regarded first programming languages. Whereby, However, it is clear from the Table 10 that it is hard to
dominance of Java language can be clearly noticed where clearly rate any programming language as the unanimous
institutions select programming language based on industry choice for first programming language. On the other hand,
relevance. the most comprehensive and reasonably generic criteria for
Whereas Python initially appeared as the first choice the selection of appropriate first programming language has
based on pedagogical benefits, but now it is a popular been presented by [4].
Languages’’ topics (P31). Some courses use functional pro- Results from these studies highlight significance to measure
gramming while others adopt object-oriented programming the effect of curricular changes.
or platform-based development. Findings and evaluation
methods of other studies reviewing curriculum presented 2) LEARNING
in Table 10 indicating there are only few studies present at the Existing studies investigated learning requirements and
moment addressing standards for programming objectives for pointed out need of basic reasoning and mental skills for
majors and non-majors, topic level comparison and program learning IPC. Surveys/literature targeting learning an IPC
by design curriculum. According to the reviewed studies it through methods/models, notional machine and games are
is concluded that ACM/IEEE CS Curriculum considered as evaluated as follows:
widely accepted standard.
i) Methods/Models: Different types and models of learn-
C. ASSESSMENT OF RQ3: WHICH TEACHING AND ing styles have been reviewed in an SLR [37] conclud-
LEARNING APPROACHES HAVE BEEN REPORTED TO ing learning style can not be used as an instrument to
ADDRESS PROBLEMS FOR NOVICE STUDENTS? predict student success. Students have been introduced
This systematic study aims to examine the existing knowl- to programming using different introductory program-
edge in IPC from finalized 60 papers. In order to gain the ming languages in another study [29] and performance
overview, we investigate teachers’ and students’ perspective has been analyzed statistically. Another analysis of
of IPC trends and approaches to address novice problems. programming language education has been conducted
Teaching/pedagogy an IPC refers to the techniques, tools, by a study [34] for a pre-introductory CS course.
approaches and methods developed for teaching program- According to the results of this survey, students rec-
ming in an effective way. These developments in teaching ognized that education programming language based
methodologies contributed in finding solutions for a lot of course framework helped their understanding of basic
challenges related to the nature of programming. Whereas, programming concepts and algorithm design. Objec-
learning/cognition requirements is the students’ ability to tive of both of these studies is to possibly improve the
think and act in their academic life which help them acquire selection of suitable programming language for novice
programming skills and overcome difficulties in learning by programmers. Another recent study [70], explores the
adopting any specific model, notional machine or games. effect of incremental mindsets in individuals and found
Teaching and learning an IPC by applying pedagogical an increases in effort during programming activities but
skills or through tools are summarized and discussed in this not in performance.
section. Pedagogy enables instructors to impart knowledge ii) Notional Machine:
and skills in such ways where students understand, remember An informal literature review to examine knowledge
and apply these skills. In our SLR, pedagogy is divided into bodies in conceptual relation to a ‘‘notional machine’’
two sub-levels i.e, teaching and learning. Existing surveys has been presented in study [39]. Notional machine
targeting teaching and learning IPC are evaluated in the serves as an abstract computer for the execution of
following sub-sections: particular kind of programs and fulfills the purpose
of understanding program execution stages. One or
1) TEACHING more programming languages/paradigms with one
Impact of various teaching approaches on students’ perfor- specific programming environment are possibly asso-
mance for IPC has been surveyed by several studies [16], [20], ciated with notional machine. several aspects on the
[27], [31], [38], [42], [45], [47], [64], [65], [70]. Different functionality of notional machines in introductory
pedagogical approaches are compared in terms of passing programming education (IPE) have been discussed
rate percentages by [27] where as some pedagogical and together in this study that concludes notional machines
motivational strategies have been surveyed in [31], [38], [65] as a prominent challenge in IPE.
to promote students’ motivation. Significant factors to predict iii) Games/Robots:
students’ attitude towards computer programming have been A game-based learning (GBL) model is presented by
identified as three variables i.e, (performance in program- [41] and [68] developed a robot-based programming
ming courses, perceived learning and programming self- tool. Major contributions and approaches used for
efficacy) by [20]. ‘‘Action research insights and outcomes the developments in domain of IPC are presented
ADRI approach’’, ‘‘active learning technique’’, ‘‘innovative in Table 9.
programming environment approach’’, ‘‘models for teaching Table 11 elaborates the criterion, evaluation methods,
programming’’ and ‘‘program by design approach’’ are participant details and findings of selected studies addressing
various approaches discussed, compared and validated in IPC teaching and learning methods and techniques. Four
studies [16], [42], [45], [47], [64]. Another study [71] evaluation criterion were identified for teaching aspect during
proposed agile process for teaching an IPC and concluded review that includes seven studies. These studies looked
positive impact on students’ learning. These studies examined at factors effecting students’ learning, pedagogical and
various factors that contribute to students’ failure in IPC. motivational strategies, use of active learning techniques and
application based teaching techniques. Approaches devel- D. ASSESSMENT OF RQ4: HOW EFFECTIVE IS TEACHING
oped considering pedagogical and motivational strategies IPC THROUGH TOOLS IN IMPROVING THE LEARNING
appeared to be more effective towards students’ learning and EXPERIENCE OF NOVICE PROGRAMMERS?
programming behaviour. On the other hand, active learning Teaching and learning an IPC through tools is divided into
and application-based teaching techniques showed promising following categories:
results when used during an IPC. It is important to note
that four studies contributed in students’ cognitive level 1) IMPLEMENTED TOOLS
meeting two evaluation criterion. Findings of these studies GUI based tools have been developed for teaching and
suggesting adoption of such learning models that consider the learning an IPC and empirically validated in studies [22],
characteristics of the learners. [58], [63] with the aim of improving problem solving ability
of novice programmers. These tools allow the programmers the course. Repeaters favor fixed programming aptitude and
to interactively develop executable flow charts. Introduction have lower programming efficacy which increases further
of abstract programming concepts visually allow students possibility of failure.
to make transition itno a complex programming language
easier, concluding visual tools are relevant in attaining better
2) ASSESSMENT TOOL
results.
A web-based students’ response platform has been developed
2) FRAMEWORK
in study [57] for instructors to ask free-form short response
questions to students, while impact of different teaching
A development framework has been designed by [54], called
approaches and languages on students’ learning an IPC
Splashkit, for motivating and engaging students in introduc-
has been assessed by study [26] using an assessment tool.
tory programming for tertiary education. This is an open-
objective of both of the studies is to assess teaching
source, cross-platform development and language-agnostic
and learning an IPC. Programming language learning is
framework that supports a wide range of programming
assessed in another study [23] based on peer code review
education approaches. Objects-first/ objects-later curriculum
model EduPCR2. The EduPCR system and its PCR-based
design, a range of fully-featured game engines like pro-
assessment process have significantly improved student
gramming tools, databases, programming language choices,
learning outcomes in many areas including programming
and web-servers together with easy API design tech-
skills.
niques are the basic programming education approaches
Custom-based assessment tools, self-assessment tools and
included in this framework. Objective of this study to
tools on giving student feedback have been reviewed in
empower students for developments of important software
another recent SLR [38]. This includes ProgTest, UML
engineering skill that is reading API documentation. Stu-
testing, industrial based testing suite, Bluefix, NoobLab and
dents were able to design games when taught using this
PRAISE. Another recent study [72] build a comprehensive
framework.
automated programming assessment system named: Edgar,
As can be seen in Table 11 four studies have been
that deals with various programming languages and can be
categorized addressing learning of an IPC using tools based
deployed on all major operating systems.
on two evaluation criterion. Proposed approaches proved to
be effective compared to traditional learning styles as these
helped students for problem solving improvement and to 3) ASSESSMENT DESIGN
develop a wide range of applications. It is concluded that Various factors have been reviewed in studies [17] [55] to
teaching with SplashKit considered as more beneficial as improve student academic self-efficacy and problem solving
this framework is empirically evaluated on large scale of and in learning programming by applying Spearmans’ rank
participants for several years. correlation coefficient technique. It was identified in [55]
that performance in formative assessment and problem-
E. ASSESSMENT OF RQ5: WHICH METHODOLOGIES HAVE solving-skill are weakly correlated. These studies aim to
BEEN ADOPTED TO ANALYZE AND VALIDATE discover correlation between various assessment method,
PERFORMANCE OF NOVICE PROGRAMMERS? student’s participation and their final performance.
Surveys performed to assess teaching and learning process of Table 12 further elaborates findings and evaluation
IPC are categorized into following sub-levels. methods of each reviewed study which are evaluated on
criterion like: students’ learning and programming behaviour,
1) STUDENTS’ PERFORMANCE ANALYSIS auto recognition of required features in students’ code,
Several methodologies have been adopted to analyze and students’ course performance, students’ programming errors
validate students’ performance in IPC by various studies investigation and correlation among perceived and academic
[19], [21], [28], [32], [33], [40], [43], [44], [48], [61], [62], performance.
[66]. Objective of these studies is to predict factors effecting First most addressed evaluation criteria was students’
students’ performance in an IPC by observing programming course performance, which was used to evaluate nine studies.
errors made by students using multiple testing techniques: Most of these studies gather data through assessment which
ADRI model based on six categories of Blooms’ Taxonomy, is then statistically analyzed. These studies attempt to
regression and t-tests, formative and summative approach, predict students’ pass rates as well as evaluated different
and bayesian network classifier. Few studies suggested that factors effecting students’ performance. It is concluded that
for many low-performance students learning fails due to such assessment tasks/tools considered more effective which
cognitive overload, while others identified students’ main tend to assess students’ problem solving skills and logical
problem was to divide activity into functions and classes errors in their code. Moreover, considering factors such
and to find errors in ones’ own programs. One survey as: structural design of assessment, time management, auto
observed that implicit theories of programming-aptitude feature detection and balanced weights of labs, quizzes and,
and programming-efficacy are interrelated and positively midterm/final exams may significantly improve methodolo-
correlated with effort, performance, and previous failures in gies for assessing students’ performance in an IPC.
this search and around 60 articles appeared to contribute even [13] (2018). CORE Conference Portal. Accessed: Jan. 6, 2020. [Online].
better students’ performance out of 500k searched articles. Available: http://portal.core.edu.au/conf-ranks/
[14] (2018). Scimago Journal & Country Rank. Accessed: Jan. 6, 2020.
The results show that more than half of the selected [Online]. Available: https://www.scimagojr.com/
studies appeared in recognized journals and only a few had [15] C. Wohlin, ‘‘Guidelines for snowballing in systematic literature studies
published in workshops or as reports. ‘‘Solution proposal’’ and a replication in software engineering,’’ in Proc. 18th Int. Conf. Eval.
Assessment Softw. Eng. EASE, 2014, p. 38.
and ‘‘evaluation research’’ have been reported as two main [16] V. Aleksić and M. Ivanović, ‘‘Introductory programming subject in
research types adopted by these studies. Majority of selected European higher education,’’ Informat. Edu., vol. 15, no. 2, pp. 163–182,
studies were evidence based and possibly helping the 2016.
[17] R. A. Alturki, ‘‘Measuring and improving student performance in an
instructors to gain maximum benefits of IPC teaching and introductory programming course,’’ Informat. Edu., vol. 15, no. 2,
learning. Pedagogy, language choice and students’ perfor- pp. 183–204, Nov. 2016.
mance analysis were found as most frequently addressed [18] J. Q. Dawson, M. Allen, A. Campbell, and A. Valair, ‘‘Designing an
introductory programming course to improve non-Majors’ experiences,’’
aspects of IPC, whereas curricula contents, assessment in Proc. 49th ACM Tech. Symp. Comput. Sci. Edu., Feb. 2018, pp. 26–31.
tool/design and teaching/learning through tools have been [19] E. D. Canedo, G. A. Santos, and L. L. Leite, ‘‘An assessment of the
appeared as less addressed aspects of IPC. teaching-learning methodologies used in the introductory programming
courses at a brazilian university,’’ Informat. Edu., vol. 17, no. 1, pp. 45–59,
Limitations of any SLR are mainly related to search strat- Apr. 2018.
egy, inaccurate extracted data or misclassification. However, [20] M. D. Gurer, I. Cetin, and E. Top, ‘‘Factors affecting students’ attitudes
our search strategy reduced the risk of selection bias by con- toward computer programming,’’ Informat. Edu., vol. 18, no. 2, p. 281,
2019.
ducting this study with different keywords from all common [21] U. Nikula, O. Gotel, and J. Kasurinen, ‘‘A motivation guided holistic
digital repositories. By applying rigorous inclusion/exclusion rehabilitation of the first programming course,’’ ACM Trans. Comput. Edu.,
criteria and asking two independent reviewers for assessment vol. 11, no. 4, p. 24, 2011.
[22] D. Hooshyar, R. B. Ahmad, M. Yousefi, F. D. Yusop, and S.-J. Horng,
of all extractions, other two risks were addressed. ‘‘A flowchart-based intelligent tutoring system for improving problem-
For future research on IPC, more attention should be paid solving skills of novice programmers,’’ J. Comput. Assist. Learn., vol. 31,
to curricula design for non-majors, tools design; particularly no. 4, pp. 345–361, Aug. 2015.
[23] Y. Wang, H. Li, Y. Feng, Y. Jiang, and Y. Liu, ‘‘Assessment of programming
serious games, and web-based assessment design with rubric. language learning based on peer code review model: Implementation and
More evaluation research should be carried out in order to experience report,’’ Comput. Edu., vol. 59, no. 2, pp. 412–422, Sep. 2012.
evaluate existing IPC curriculum contents. [24] A. Stefik and S. Siebert, ‘‘An empirical investigation into programming
language syntax,’’ ACM Trans. Comput. Edu., vol. 13, no. 4, p. 19, 2013.
[25] T. Koulouri, S. Lauria, and R. D. Macredie, ‘‘Teaching introductory
REFERENCES programming: A quantitative evaluation of different approaches,’’ ACM
[1] H. Topi, J. S. Valacich, R. T. Wright, K. M. Kaiser, J. Nunamaker Jr, Trans. Comput. Edu., vol. 14, no. 4, p. 26, 2015.
J. C. Sipior, and G. De Vreede, ‘‘Curriculum guidelines for undergraduate [26] W. M. Kunkle and R. B. Allen, ‘‘The impact of different teaching
degree programs in information systems,’’ in Proc. ACM/AIS Task Force, approaches and languages on student learning of introductory program-
2010, pp. 56–57. ming concepts,’’ ACM Trans. Comput. Edu., vol. 16, no. 1, pp. 1–26,
[2] M. Sahami et al., Computer Science Curricula 2013: Curriculum Feb. 2016.
Guidelines for Undergraduate Degree Programs in Computer Science. [27] G. Silva-Maceda, P. D. Arjona-Villicana, and F. E. Castillo-Barrera, ‘‘More
New York, NY, USA: Association for Computing Machinery, 2013. time or better tools? A large-scale retrospective comparison of pedagogical
[3] R. P. Medeiros, G. L. Ramalho, and T. P. Falc ao, ‘‘A systematic literature approaches to teach programming,’’ IEEE Trans. Educ., vol. 59, no. 4,
review on teaching and learning introductory programming in higher pp. 274–281, Nov. 2016.
education,’’ IEEE Trans. Educ., vol. 62, no. 2, pp. 77–90, May 2019. [28] M. J. Scott and G. Ghinea, ‘‘On the domain-specificity of mindsets: The
[4] M. S. Farooq, S. A. Khan, F. Ahmad, S. Islam, and A. Abid, ‘‘An evaluation relationship between aptitude beliefs and programming practice,’’ IEEE
framework and comparative analysis of the widely used first programming Trans. Educ., vol. 57, no. 3, pp. 169–174, Aug. 2014.
languages,’’ PLoS ONE, vol. 9, no. 2, Feb. 2014, Art. no. e88941. [29] S. Xinogalos, T. Pitner, M. Ivanović, and M. Savić, ‘‘Students’ perspective
[5] L. Major, T. Kyriacou, and O. P. Brereton, ‘‘Systematic literature review: on the first programming language: C-like or pascal-like languages?’’ Edu.
Teaching novices programming using robots,’’ IET Softw., vol. 6, no. 6, Inf. Technol., vol. 23, no. 1, pp. 287–302, Jan. 2018.
pp. 502–513, 2012. [30] S. Nanz and C. A. Furia, ‘‘A comparative study of programming languages
[6] A. Alammary, ‘‘Blended learning models for introductory programming in rosetta code,’’ in Proc. IEEE/ACM 37th IEEE Int. Conf. Softw. Eng.,
courses: A systematic review,’’ PLoS ONE, vol. 14, no. 9, Sep. 2019, May 2015, pp. 778–788.
Art. no. e0221765. [31] A. Gomes and A. Mendes, ‘‘A teacher’s view about introductory program-
[7] Y. Qian and J. Lehman, ‘‘Students’ misconceptions and other difficulties ming teaching and learning: Difficulties, strategies and motivations,’’ in
in introductory programming: A literature review,’’ ACM Trans. Comput. Proc. IEEE Frontiers Edu. Conf. (FIE) Proc., Oct. 2014, pp. 1–8.
Edu., vol. 18, no. 1, pp. 1–24, Dec. 2017. [32] D. McCall and M. Kolling, ‘‘Meaningful categorisation of novice
[8] J. Sorva, V. Karavirta, and L. Malmi, ‘‘A review of generic program programmer errors,’’ in Proc. IEEE Frontiers Edu. Conf. (FIE), Oct. 2014,
visualization systems for introductory programming education,’’ ACM pp. 1–8.
Trans. Comput. Edu., vol. 13, no. 4, p. 15, 2013. [33] F. B. Tek, K. S. Benli, and E. Deveci, ‘‘Implicit theories and self-efficacy in
[9] P. Brereton, B. A. Kitchenham, D. Budgen, M. Turner, and M. Khalil, an introductory programming course,’’ IEEE Trans. Educ., vol. 61, no. 3,
‘‘Lessons from applying the systematic literature review process within the pp. 218–225, Aug. 2018.
software engineering domain,’’ J. Syst. Softw., vol. 80, no. 4, pp. 571–583, [34] I. Yoon, J. Kim, and W. Lee, ‘‘The analysis and application of an
Apr. 2007. educational programming language (RUR-PLE) for a pre-introductory
[10] B. Kitchenham, Procedures for Performing Systematic Reviews, vol. 33. computer science course,’’ Cluster Comput., vol. 19, no. 1, pp. 529–546,
Keele, U.K.: Keele Univ., 2004, pp. 1–26. Mar. 2016.
[11] A. Fernandez, E. Insfran, and S. Abrahāo, ‘‘Usability evaluation methods [35] O. Ezenwoye, ‘‘What language?—The choice of an introductory program-
for the Web: A systematic mapping study,’’ Inf. Softw. Technol., vol. 53, ming language,’’ in Proc. IEEE Frontiers Edu. Conf. (FIE), Oct. 2018,
no. 8, pp. 789–817, Aug. 2011. pp. 1–8.
[12] S. Ouhbi, A. Idri, J. L. Fernández-Alemán, and A. Toval, ‘‘Requirements [36] P. Bhattacharya and I. Neamtiu, ‘‘Assessing programming language impact
engineering education: A systematic mapping study,’’ Requirements Eng., on development and maintenance: A study on c and c++,’’ in Proc. 33rd
vol. 20, no. 2, pp. 119–138, Jun. 2015. Int. Conf. Softw. Eng. ICSE, 2011, pp. 171–180.
[37] M. Carelli Oliveira Maia, D. Serey, and J. Figueiredo, ‘‘Learning styles [59] M. Ateeq, H. Habib, A. Umer, and M. U. Rehman, ‘‘C++ or Python? Which
in programming education: A systematic mapping study,’’ in Proc. IEEE one to begin with: A Learner’s perspective,’’ in Proc. Int. Conf. Teach.
Frontiers Edu. Conf. (FIE), Oct. 2017, pp. 1–7. Learn. Comput. Eng., Apr. 2014, pp. 64–69.
[38] A. Luxton-Reilly, J. Sheard, C. Szabo, Simon, I. Albluwi, B. A. Becker, [60] D. Krpan and I. Bilobrk, ‘‘Introductory programming languages in higher
M. Giannakos, A. N. Kumar, L. Ott, J. Paterson, and M. J. Scott, education,’’ in Proc. 34th Int. Conv. MIPRO, May 2011, pp. 1331–1336.
‘‘Introductory programming: A systematic literature review,’’ in Proc. [61] M. Corney, R. Lister, and D. Teague, ‘‘Early relational reasoning and the
Companion 23rd Annu. ACM Conf. Innov. Technol. Comput. Sci. Edu. novice programmer: Swapping as the hello world of relational reasoning,’’
ITiCSE Companion, 2018, pp. 55–106. in Proc. 13th Australas. Comput. Edu. Conf., Darlinghurst, Australia:
[39] J. Sorva, ‘‘Notional machines and introductory programming education,’’ Australian Computer Society, vol. 114, 2011, pp. 95–104.
ACM Trans. Comput. Edu., vol. 13, no. 2, pp. 1–31, Jun. 2013. [62] R. Mason and G. Cooper, ‘‘Why the bottom 10% just can’t do it: Mental
[40] K. Benda, A. Bruckman, and M. Guzdial, ‘‘When life and learning do not effort measures and implication for introductory programming courses,’’ in
fit: Challenges of workload and communication in introductory computer Proc. 14th Austral. Comput. Edu. Conf. (ACE), Melbourne, VIC, Australia,
science online,’’ ACM Trans. Comput. Edu., vol. 12, no. 4, p. 15, 2012. vol. 123, 2012, pp. 187–196.
[41] C. Kazimoglu, M. Kiernan, L. Bacon, and L. MacKinnon, ‘‘Understanding [63] E. de Jesus, ‘‘Teaching computer programming with structured program-
computational thinking before programming: Developing guidelines for ming language and flowcharts,’’ in Proc. Workshop Open Source Design
the design of games to learn introductory programming through game- Commun. OSDOC, 2011, pp. 45–48.
play,’’ Int. J. Game-Based Learn., vol. 1, no. 3, pp. 30–52, 2011. [64] V. K. Proulx, ‘‘Introductory computing: The design discipline,’’ in Proc.
[42] S. I. Malik, ‘‘Improvements in introductory programming course: Action Int. Conf. Informat. Schools, Situation, Evol., Perspect. Springer, 2011,
research insights and outcomes,’’ Syst. Pract. Action Res., vol. 31, no. 6, pp. 177–188.
pp. 637–656, Dec. 2018. [65] G. Venugopal-Wairagade, ‘‘Study of a pedagogy adopted to generate
[43] N. C. C. Brown and A. Altadmri, ‘‘Investigating novice programming interest in students taking a programming course,’’ in Proc. Int. Conf.
mistakes: Educator beliefs vs. Student data,’’ in Proc. 10th Annu. Conf. Learn. Teach. Comput. Eng. (LaTICE), Mar. 2016, pp. 141–146.
Int. Comput. Edu. Res. ICER, 2014, pp. 43–50. [66] Á. Matthíasdóttir and H. J. Geirsson, ‘‘The novice problem in computer
[44] A. Vihavainen, ‘‘Predicting Students’ performance in an introductory science,’’ in Proc. 12th Int. Conf. Comput. Syst. Technol. CompSysTech,
programming course using data from Students’ own programming 2011, pp. 570–576.
process,’’ in Proc. IEEE 13th Int. Conf. Adv. Learn. Technol., Jul. 2013, [67] E. Murphy, T. Crick, and J. H. Davenport, ‘‘An analysis of introductory
pp. 498–499. programming courses at UK universities,’’ 2016, arXiv:1609.06622.
[45] S. Dasuki and A. Quaye, ‘‘Undergraduate Students’ failure in program- [Online]. Available: http://arxiv.org/abs/1609.06622
ming courses in institutions of higher education in developing countries: A [68] P. Bachiller-Burgos, I. Barbecho, L. V. Calderita, P. Bustos, and
nigerian perspective,’’ Electron. J. Inf. Syst. Developing Countries, vol. 76, L. J. Manso, ‘‘LearnBlock: A robot-agnostic educational programming
no. 1, pp. 1–18, Sep. 2016. tool,’’ IEEE Access, vol. 8, pp. 30012–30026, 2020.
[46] T. Crow, A. Luxton-Reilly, and B. Wuensche, ‘‘Intelligent tutoring systems [69] M. S. Farooq, S. A. Khan, and A. Abid, ‘‘A framework for the assessment
for programming education: A systematic review,’’ in Proc. 20th Australas. of a first programming language,’’ J. Basic Appl. Sci. Res., vol. 2, no. 8,
Comput. Edu. Conf. ACE, 2018, pp. 53–62. pp. 8144–8149, 2012.
[47] J. L. Duffany, ‘‘Application of active learning techniques to the teaching of [70] J. G. C. Rangel, M. King, and K. Muldner, ‘‘An incremental mindset
introductory programming,’’ IEEE Revista Iberoamericana de Tecnologias intervention increases effort during programming activities but not
del Aprendizaje, vol. 12, no. 1, pp. 62–69, Feb. 2017. performance,’’ ACM Trans. Comput. Edu., vol. 20, no. 2, pp. 1–18,
[48] S. I. Malik, ‘‘Assessing the teaching and learning process of an introductory May 2020.
programming course with Bloom’s taxonomy and assurance of learning [71] B. Isong, ‘‘A methodology for teaching computer programming: First year
(AOL),’’ Int. J. Inf. Commun. Technol. Edu., vol. 15, no. 2, pp. 130–145, students’ perspective,’’ Int. J. Modern Edu. Comput. Sci., vol. 6, no. 9,
Apr. 2019. p. 15, 2014.
[49] M. Sabin et al., Information Technology Curricula 2017: Curriculum [72] I. Mekterovic, L. Brkic, B. Milasinovic, and M. Baranovic, ‘‘Building
Guidelines for Baccalaureate Degree Programs in Information Technol- a comprehensive automated programming assessment system,’’ IEEE
ogy. New York, NY, USA: Association for Computing Machinery, 2017. Access, vol. 8, pp. 81154–81172, 2020.
[50] J. Polack-Wahl, S. Davies, and K. Anewalt, ‘‘A snapshot of current
languages used in industry,’’ in Proc. Frontiers Edu. Conf. Proc., Oct. 2012,
pp. 1–6.
[51] W. Farag, S. Ali, and D. Deb, ‘‘Does language choice influence the
effectiveness of online introductory programming courses?’’ in Proc. 13th
Annu. ACM SIGITE Conf. Inf. Technol. Edu. - SIGITE, 2013, pp. 165–170.
[52] R. Mason, G. Cooper, and M. de Raadt, ‘‘Trends in introductory
programming courses in australian universities: Languages, environments
and pedagogy,’’ in Proc. 14th Australas. Comput. Edu. Conf., Darlinghurst,
Australia, Australian Computer Society, vol. 123, 2012, pp. 33–42.
[53] L. Marshall, ‘‘A topic-level comparison of the ACM/IEEE CS curriculum
volumes,’’ in Proc. Annu. Conf. Southern Afr. Comput. Lecturers’ Assoc.
Springer, 2017, pp. 309–324.
[54] J. Renzella, A. Cummaudo, A. Cain, J. Grundy, and J. Meyers,
‘‘SplashKit: A development framework for motivating and engaging
students in introductory programming,’’ in Proc. IEEE Int. Conf. Teaching,
Assessment, Learn. Eng. (TALE), Dec. 2018, pp. 40–47. ERUM MEHMOOD was born in Pakistan. She
[55] A. K. Veerasamy, D. D’Souza, R. Lindén, and M.-J. Laakso, ‘‘Relationship received the M.Phil. degree in computer science
between perceived problem-solving skills and academic performance of from NCBA&E, Lahore, Pakistan, in 2017. She
novice learners in introductory programming courses,’’ J. Comput. Assist.
is currently pursuing the Ph.D. degree with
Learn., vol. 35, no. 2, pp. 246–255, Apr. 2019.
the University of Management and Technology,
[56] J. Heliotis and R. Zanibbi, ‘‘Moving away from programming and towards
Lahore.
computer science in the cs first year,’’ J. Comput. Sci. Colleges, vol. 26,
no. 3, pp. 115–125, 2011. She is also working as a Lecturer of computer
[57] C. Heiner, ‘‘Mining student responses to learn answer models: A case study science with the Government Degree College
using data from an introductory programming course,’’ J. Comput. Sci. Lahore, Pakistan. Her research interests include
Colleges, vol. 29, no. 2, pp. 17–25, 2013. programming language education and design, big
[58] D. Gudmundsen, L. Olivieri, and N. Sarawagi, ‘‘Reducing the learning data analytics, stream processing, and ETL and real-time data warehousing.
curve in an introductory programming course using visual logic,’’ J. Her M.Phil. dissertation is in the area of stream processing for real-time data
Comput. Sci. Colleges, vol. 27, no. 6, pp. 10–12, 2012. warehousing.
ADNAN ABID (Member, IEEE) was born in NAEEM A. NAWAZ received the B.Sc. degree
Gujranwala, Pakistan, in 1979. He received the from the University of Punjab, Pakistan, in 1997,
B.S. degree from the National University of Com- the M.Sc. degree in computer sciences from
puter and Emerging Science, Pakistan, in 2001, Hamdard University, Pakistan, in 2000, the M.S.
the M.S. degree in information technology from degree in computer engineering from Mid Sweden
the National University of Science and Technol- University, Sweden, in 2008, and the Ph.D. degree
ogy, Pakistan, in 2007, and the Ph.D. degree from International Islamic University Malaysia,
in computer science from the Politecnico Di in 2018. He received different diploma (DCS) and
Milano, Italy, in 2012. He spent one year in certifications. He is currently a Lecturer with the
EPFL, Switzerland, to complete his M.S. thesis. Department of Computer Science (CFY), Umm
He is currently an Associate Professor with the Department of Computer Al-Qura University, Mecca. He has published research articles in renowned
Science, University of Management and Technology, Pakistan. He has almost journals and conferences. He is also serving as a reviewer for many journals,
70 publications in different international journals and conferences. He has conferences, and books. His teaching and research interests include WSN,
served as a reviewer in many international conferences and journals. His the IoT, crowd management, computer networks, and programing language.
research interests include computer science education, information retrieval,
and data management. He is a member of the IEEE Education Society and
the IEEE Education Society. He is also an Associate Editor of IEEE ACCESS
journal.