Conference Paper

Innovative Approaches in Teaching Programming: A Systematic Literature Review

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

One of the main challenges of computing education is the teaching of computer programming. Technical skills related to algorithm logic, programming language syntax, and computational platforms are required to program. In addition, several non-technical skills are required, enabling the student to understand and to interpret real problems, to work in groups, and to strive for effective and efficient solutions. To meet these challenges, innovative teaching methodologies have been applied in teaching programming, building learning environments that are more conducive to the development of these skills. In order to understand how these methodologies are being used, this work presents the result of a systematic literature review, motivated by the following research question: "What are the innovative teaching and learning approaches to programming, how are they applied and what are the main results of their application? In this study, we considered three digital libraries and found 24 primary studies, following the Kitchenham methodology. These studies were categorized into 6 groups and highlighted challenges related to the problems addressed, teaching environment, content, human capital involved, and assessment process. The studies also showed evidence of success cases, as well as open paths for new research.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... For instance, in web programming courses, the rapid pace of technological change and the diversity of tools and topics demand that educators frequently revise their course content and adapt their teaching methods (López-Pimentel, et al., 2021). The challenges are further complicated due to the need to address technical skills, such as algorithmic logic and programming language syntax, and nontechnical skills, such as problem-solving and teamwork (Santos, et al., 2020). The diversity of students, ranging from those with no programming experience to those with extensive development backgrounds, exacerbates the difficulty of tailoring instruction to meet all learners' needs. ...
... In order to tackle these problems, novel pedagogical approaches, such as problem-based learning and the incorporation of programming challenges, have demonstrated the potential to enhance student engagement and improve learning results by fostering a collaborative and competitive atmosphere (Santos, et al., 2020; Martins, et al., 2020). However, these methods require careful implementation and continuous assessment to ensure effectiveness (Santos, et al., 2020). ...
... In order to tackle these problems, novel pedagogical approaches, such as problem-based learning and the incorporation of programming challenges, have demonstrated the potential to enhance student engagement and improve learning results by fostering a collaborative and competitive atmosphere (Santos, et al., 2020; Martins, et al., 2020). However, these methods require careful implementation and continuous assessment to ensure effectiveness (Santos, et al., 2020). One practical approach is gamification, which has been shown to significantly enhance student motivation and engagement (Papadakis and Kalogiannakis, 2019). ...
Article
Full-text available
Educators face multiple challenges when teaching programming, such as the intricate nature of programming knowledge, the choice of effective teaching methods, and the diverse abilities of learners. Traditional teaching methods often fail to address these challenges, leading to higher dropout rates and lower student grades. This paper explores a study on the effectiveness of the flipped classroom model as a strategy to enhance student engagement in a practical programming course. In addition, learning data was analyzed to examine the relationship between pre-class preparation and in-class learning outcomes. The study's results indicate that the flipped classroom model significantly enhances student engagement and performance. Students who diligently completed pre-class assignments and dedicated more time to study demonstrated improved performance in subsequent in-class exercises. The results emphasize the potential of the flipped classroom model as a successful teaching method for increasing student involvement, encouraging self-directed learning, and ultimately improving the overall educational experience in programming courses.
... The papers aimed at students relate to a specific audience: blind [84] and novice [85,86], for the generality of students [72] or directed to the anxiety of students [87]. There are five articles that are general in scope [74,[88][89][90][91] and two that are aimed at teachers and teaching methodologies [73,92]. ...
... None of the articles have an interrogative or declarative title. Eight of the articles use the designation "Introductory Programming" [72][73][74][75]85,[88][89][90], five use "Programming Education" [72,77,78,86,91], two just the word "Programming" [81,86] while the rest use teaching programming [80,84,92], learning programming [82,87] or both [76]. The articles referred to that have a special purpose, have the designation of the purpose in the title. ...
... The articles referred to that have a special purpose, have the designation of the purpose in the title. Others use words like "evolution" [88], "analysis" [85] or even "innovative approaches" [92]. ...
Article
Full-text available
Introductory programming courses in science, technology, engineering, and mathematics (STEM) degrees are critical to student success throughout the students’ academic and professional route but have traditional failure and dropout rates. The number of publications and reviews on the subject is growing, so we realize the need to prepare an umbrella review, or review of reviews, to group previous studies and extract more comprehensive and ambitious results. Based on the databases ACM, Google Scholar, IEEE, SCOPUS and Web of Science libraries, a formal search was created that resulted in 21 reviews on programming fundamentals in higher education context. Results include bibliometric information on the CS1 reviews, in the context of higher education (namely annual evolution, number and information on authors, types and sources of information, countries of affiliation, languages, keywords and most cited articles), the purpose of the reviews and research questions, methods (namely search strategy, databases used, eligibility criteria) and results (number of records and tables or divisions were made to catalog the articles). We present a taxonomy with four different types of purpose: general, specific, student group and teacher directed. We found very interesting catalogs that can serve as a tool for future work, whether by researchers in the field or by authors who intend to carry out reviews related to introduction to programming, especially in the context of higher education.
... Java is one of the most frequently used languages to teach programming [1], [2], and teaching materials and self-study materials are abundantly available. However, independently of the maturity of these materials, students may struggle in their attempts to produce functioning programs. ...
... While Java is still one of the most used languages to learn programming [1], [2], similar positive feedback is absent, which may limit the learning effects of automated tools like ArTEMiS [15]. To address this problem, we introduce code perfumes to this domain such that holistic feedback combining positive and negative aspects can be generated automatically. ...
Preprint
Full-text available
Java remains one of the most popular programming languages in education. Although Java programming education is well supported by study materials, learners also need more immediate support on the problems they face in their own code. When this support cannot be offered by educators personally, learners can resort to automated program analysis tools such as linters, which provide feedback on potential bugs or code issues. This is constructive feedback, but it may nevertheless feel like criticism. This paper introduces code perfumes for Java, a simple program analysis technique similar to linting, but commending the correct application of good programming practices. We present a catalogue of 20 Java code perfumes related to common Java language constructs for beginner to immediate learners. Our evaluation shows that these code perfumes occur frequently in learners' code, and programs with more code perfume instances tend to have better functionality and readability. Moreover, students who incorporate more code perfumes tend to achieve higher grades. Thus, code perfumes serve as a valuable tool to acknowledge learners' successes, and as a means to inform instructors about their learners' progress.
... • The lack of an effective approach for providing programming education to students (Santos et al., 2020). ...
... For many higher education institutions, programming education continued to be online during the Covid-19 pandemic, until a blended-learning approach was adopted (Santos et al., 2020). A key challenge in the online environment is that instructors have little control over students' learning (Tufekci and Demirel, 2009). ...
Article
During the outbreak of the COVID-19 pandemic, the majority of higher education institutions were faced with the challenge of adopting various online platforms as a means for teaching and learning. This added an additional level of complexity in teaching modules such as programming, which are difficult to teach even in traditional classroom environments. Teaching and learning programming is difficult since the teaching does not only focus on programming, but should also show the students how to solve complex programming problems. Also, many programming students struggle to understand programming since they would typically not put their programming knowledge into practice outside of the learning environment. Online learning adds additional challenges, since the teacher is not available to provide immediate feedback which is one of the critical aspects in programming education. This paper reports on a case which considers brain-compatible principles when creating online programming content for learning programming. Furthermore, it reflects on the use of the Cultural-Historical Activity Theory (CHAT) to delineate the various elements required for teaching and learning programming.
... The literature relating to teaching and learning programming is extensive and complex (eg. [16], [17]). Research comes originally from computer science studies in Higher Education where students are to become professional programmers and are expected to understand program development at large, which is not the case for schoolteachers learning programming. ...
... Twelve teachers agreed to provide input to this investigation during the Autumn term of 2021. They were all in-service teachers with several years of experience (11)(12)(13)(14)(15)(16)(17)(18)(19)(20)(21)(22) teaching mathematics in secondary education. The teachers had all applied for a training course in computer programming and programming for education and could choose between visual programming or text programming. ...
Conference Paper
Full-text available
As computer programming is widely being introduced in school curricula around the world, many teacher training initiatives are being put into practice to address the competence needs linked to that endeavor. The imperative digitalization catalyzed by governments’ response to the Covid-19 emergency brought about an unexpected plot twist largely affecting most professional development efforts. After rapidly reprioritizing resources toward urgent matters of online teaching, some teachers also embraced the new opportunities that distance courses offered for their own education. Findings from these experiences are here synthesized to examine how teacher training in computer programming could be improved to better suit the affordances and constraints of online courses. The principal themes, problems, approaches, and solutions that emerged from this small-scale qualitative study are contrasted with the prevalent ideas identified in the literature, such that in blended and hybrid learning. Among the common characteristics with these earlier paradigms, issues of idle time, asynchronousity, and unreliable tools were highlighted but also similar advantages regarding autonomy and equity. A particular factor that distinguished the case of online programming training for educators was the gap between the learning that teachers themselves experienced during the programming course and the learning facilitation that they were expected to provide for their pupils in a school environment. This gap was not only related to the different visions and purposes for their education but also and to a larger extent due to different contexts, including assessment traditions and subject separation. This work provides hindsight towards an understanding of the significance and nature of learning programming for teaching and the challenges and benefits associated with adapting to online settings.
... The literature relating to teaching and learning programming is extensive and complex (eg. [16], [17]). Research comes originally from computer science studies in Higher Education where students are to become professional programmers and are expected to understand program development at large, which is not the case for school teachers learning programming. ...
... Twelve teachers agreed to provide input to this investigation during the Autumn term of 2021. They were all in-service teachers with several years of experience (11)(12)(13)(14)(15)(16)(17)(18)(19)(20)(21)(22) teaching mathematics in secondary education. The teachers had all applied for a training course in computer programming and programming for education and could choose between visual programming or text programming. ...
... Over the past two decades, the internet and mobile technologies have catalyzed remarkable advancements in various domains of computer science. The responsibilities of computer science, such as automating processes, facilitating communication, providing better products and services, and contributing to global productivity, have led to an increased dependence on computer software by human beings [2]. Due to these adaptations, there is a demand for individuals proficient in software development globally. ...
Preprint
Full-text available
Computer programming represents a rapidly evolving and sought-after career path in the 21st century. Nevertheless, novice learners may find the process intimidating for several reasons, such as limited and highly competitive career opportunities, peer and parental pressure for academic success, and course difficulties. These factors frequently contribute to anxiety and eventual dropout as a result of fear. Furthermore, research has demonstrated that beginners are significantly deterred by the fear of failure, which results in programming anxiety and and a sense of being overwhelmed by intricate topics, ultimately leading to dropping out. This project undertakes an exploration beyond the scope of conventional code learning platforms by identifying and utilising effective and personalised strategies of learning. The proposed solution incorporates features such as AI-generated challenging questions, mindfulness quotes, and tips to motivate users, along with an AI chatbot that functions as a motivational aid. In addition, the suggested solution integrates personalized roadmaps and gamification elements to maintain user involvement. The project aims to systematically monitor the progress of novice programmers and enhance their knowledge of coding with a personalised, revised curriculum to help mitigate the fear of coding and boost confidence.
... These challenges have not only been attributed to insufficient prior conceptual understanding (Zwickl et al., 2015), but also to limited programming skills (Vieira et al., 2016a(Vieira et al., , 2016b. Students may experience difficulties regarding algorithmic logic, the use of multiple computational platforms to program, and the lack of non-technical skills, such as group work (Santos et al., 2020). ...
Article
Full-text available
Background This study posits that scaffolded team-based computational modeling and simulation projects can support model-based learning that can result in evidence of representational competence and regulatory skills. The study involved 116 students from a second-year thermodynamics undergraduate course organized into 24 teams, who worked on three two-week-long team-based computational modeling and simulation projects and reflected upon their experience. Results Results characterized different levels of engagement with computational model-based learning in the form of problem formulation and model planning, implementation and use of the computational model, evaluation, and interpretation of the outputs of the model, as well as reflection on the process. Results report on students’ levels of representational competence as related to the computational model, meaning-making of the underlying code of the computational model, graphical representations generated by the model, and explanations and interpretations of the output representations. Results also described regulatory skills as challenges and strategies related to programming skills, challenges and strategies related to meaning-making skills for understanding and connecting the science to the code and the results, and challenges and strategies related to process management mainly focused on project management skills. Conclusion Characterizing dimensions of computational model-based reasoning provides insights that showcase students’ learning, benefits, and challenges when engaging in team-based computational modeling and simulation projects. This study also contributes to evidence-based scaffolding strategies that can support undergraduate students' engagement in the context of computational modeling and simulation.
... Sampling Strategy: Utilize stratified random sampling to ensure representation from diverse demographics, including different programming proficiency levels, age groups, and educational backgrounds [28]. Participants' Socioeconomics: Collect data on participants' age, gender, educational background, and previous programming experiences. ...
Article
Full-text available
Advancements in technology are currently expediting the learning process for students, prompting an investigation into the integration of technology into student education. This study explores the impact of technological evolution on education. E-learning, a method of education that delivers information to students through modern communication platforms such as computers, networks, and multimedia audio components, is being examined. Whether utilized remotely or in traditional classroom settings, this revolution has made the world increasingly dependent on electronic screens in an era marked by the convergence of media technologies, information, culture, and technology. This paper outlines the development of an e-learning system customized for mobile devices, aimed at improving learning within the university environment. With mobile phones now ubiquitous among students, e-learning has become a potent tool for advancing educational objectives. Furthermore, e-learning aids in elevating student proficiency levels. The research conducted involved implementing and evaluating an application, which produced satisfactory results. As this application becomes integrated into university curricula to support learning, it is anticipated to substantially enhance students’ learning processes and performance, as evidenced by survey results following its implementation.
... A autora também apresenta e avalia um conjunto de metodologias e ferramentas que podem ser adotadas nesse processo. De modo similar, o trabalho de Santos et al. (2020) apresenta o estado da arte sobre o ensino de programação. ...
Article
Full-text available
Atividades para o incentivo do ensino, como monitorias, bootcamps e minicursos são importantes para o enriquecimento do ambiente acadêmico. Tendo isso em vista, o grupo PET desenvolveu atividades para auxiliar os alunos na programação web e na introdução do curso. O presente artigo tem como objetivo descrever e analisar os resultados das atividades: Bootcamp Web e Minicurso para Calouros. O projeto do Bootcamp Web tem como objetivo ensinar os aspectos básicos de programação web, área que não é tão explorada no curso de Ciência da Computação. A atividade foi aberta para todos os alunos do curso, e teve retornos positivos evidenciados pelo envio de formulários e questionários com fins avaliativos e de diagnósticos. O Minicurso para Calouros é o projeto que visa introduzir os novos ingressantes do curso de Ciência da computação à programação, foi ministrado de forma online, e tem como objetivo preparar os novos alunos que ainda não possuem uma base sólida em algoritmos. O principal software utilizado foi o Portugol, pois se assemelha mais à linguagem nativa e cotidiana. Os retornos dados ao projeto foram positivos, indicados pelos questionários e formulários enviados.
... This process entailed an adaptation of the three stages of the selection process by Kitchenham and Charters (2007): (a) study search, (b) study selection, and (c) quality assessment, culminating in the documents included for analysis in the systematic review. It is recognized that this methodology establishes a flexible selection process that has allowed each systematic review to be customized to address specific research objectives and unique contexts, thereby ensuring the relevance and applicability of the results obtained (Kitchenham et al., 2010;Ramírez-Montoya and Lugo-Ocando, 2020;Santos et al., 2020;Pizard et al., 2021;Baig and Yadegaridehkordi, 2023;Fariani et al., 2023) (see Figure 5). ...
Article
Full-text available
The digital transformation has profoundly affected every facet of human life, with technological advancements potentially reshaping the economy, society, and our daily living and working modalities. Artificial Intelligence (AI), particularly Generative AI (GAI), has emerged as a pivotal disruption in education, showcasing the capability to produce diverse and context-relevant content. Generative Artificial Intelligence (GAI) has revolutionized natural language processing, computer vision, and creative arts. Large language models (LLMs) like GPT-4 and Open Assistant and tools like DALL-E and Midjourney for the visual and creative domain are increasingly used for various tasks by students and others with critical information needs. AI presents novel avenues for crafting effective learning activities and developing enhanced technology-driven learning applications in the educational sector. However, integrating AI with a pedagogical focus pose challenge. Education 4.0, which integrates emerging technologies and innovative strategies, aims to prepare new generations for a technologically fluid world. This systematic literature review aims to analyze the use of LLMs in higher education within the context of Education 4.0’s pedagogical approaches, identifying trends and challenges from a selection of 83 relevant articles out of an initial set of 841 papers. The findings underscore the significant potential of LLMs to enrich higher education, aligning with Education 4.0 by fostering more autonomous, collaborative, and interactive learning. It highlights the necessity for human oversight to ensure the quality and accuracy of AI-generated content. It addresses ethical and legal challenges to ensure equitable implementation, suggesting an exploration of LLM integration that complements human interaction while maintaining academic integrity and pedagogical foundation.
... In the paper Yunus et al, (2020) suggests Incorporating Design Thinking principles into the teaching of programming to gifted students can enhance their problem-solving abilities, creativity, and overall programming skills. It also helps them apply their programming Santos et al., (2020) knowledge to real-world scenarios, preparing them for future challenges in technology and innovation. The paper Hegade et al., (2021) exposes how courses provide students with real-world exposure and practical experience while benefiting industries through fresh perspectives and potential talent recruitment. ...
Article
System Software is a fundamental core course for undergraduate students of Computer Science and Engineering. The traditional approach to teaching the System Software course within the School of Computer Science and Engineering lacked a meaningful connection to real-world machine architectures, leading to disinterest and reduced engagement among undergraduate students. This paper introduces an innovative teaching method designed to empower students to grasp the system programs of real systems effectively. Our approach involves effortlessly integrating the delivery of system software content with the Atmel AVR ATmega32 real-time machine, which students have previously encountered in a prior semester. Moreover, this paper provides a detailed examination of the use of a hypothetical machine in traditional teaching methodologies. While this method allowed for a more in-depth exploration of system software concepts, it struggled to establish a practical link to real machine. The novel teaching approach employed in this study adopts a unique method that links all the system software concepts with the practical system program of a real-time machine. This paper also explains how the advances in Technology has played a crucial role in considering real-time machines as examples. And it also discusses the limitations of teaching concepts using only hypothetical machine and concise overview of the chosen real-time machine is provided, followed by the observation of enhanced knowledge of system software concepts through its integration. To measure the effectiveness of the proposed methodology, we also gathered valuable feedback from the students. The course result analysis shows substantial improvement in understanding the concepts, performance and lifelong learning of the students. Keywords—System Software, Atmel AVR ATmega32, Hypothetical machine. Design thinking, Problem solving
... (1) In educational contexts, knowing the learner's profile, in particular their learning style, cognitive traits and prior abilities, could be used by designers of instructional materials and programming learning software systems to create resources tailored to the different profiles of the learner (Altun and Mazman 2015;Kim et al. 2013;Peng, Ma, and Spector 2019;Santos et al. 2020). ...
... Although a systematic literature review regarding innovative education program has been present in areas like spoken skills (Santhanasamy & Yunus, 2022), programming language training (Santos et al., 2020), no such kind of literature were found that attempted to look into this matter from the entrepreneurial education's point of view. Most entrepreneurship research focused on social psychology considering only attitudes, actions, beliefs, and behaviours, but less attention has been given to developing a framework. ...
Chapter
The aim of the systematic literature review (SLR) is to comprehensively examine previously published articles on entrepreneurship education (EE) by utilizing innovative teaching techniques (ITTs) to find out the key innovative teaching techniques (KITTs) contributing to entrepreneurship education. Besides, this research is to contribute to the field of entrepreneurship by developing key innovative teaching techniques (KITTs) for entrepreneurship education to foster higher education institutions. In this study, the researchers have used antecedents, decisions and outcomes (ADO), a framework-based review. Moreover, 36 articles were selected for final review using the PRISMA protocol. The 13 most relevant (KITTs) are identified for entrepreneurship education. However, 3 of those (innovative teaching, innovative toolkit, learning environment) are the antecedents, 4 (active learning, trainer competency, efficient and effective pedagogy and experimental learning) are the decisions, and 6 of those (creativity, knowledge transfer, self-efficacy, cognitive flexibility, entrepreneurial intention, and value creation) are the outcomes of innovative teaching techniques for entrepreneurship education. The actual ramifications of this review paper will benefit educational institutions of higher learning worldwide that intend to implement key innovative teaching techniques for entrepreneurship education.
... More recently, a literature review on innovative approaches to teaching programming found that programming was taught through specific scenarios, environments or conditions. Problem-based learning and cognitive apprenticeship were the most common categories [17]. Learning linguistics can form a symbiotic relationship with learning programming, the latter being a kind of linguistic system, where design problems assume a large variety of valid solutions [18], which may be evaluated and contrasted against each other. ...
... Filling up a software engineering vacancy is a challenging task for everyone involved in the process. Beyond professional knowledge and experience, companies are looking for a set of non-technical skills and capabilities, often referred to as soft skills (Groeneveld et al., 2020;Santos et al., 2020). However, recent literature reviews show an evident gap in graduates' preparedness to deal with real-world organizational environments (Groeneveld et al., 2021). ...
Article
Full-text available
Despite the apparent demand of the industry, recent studies reveal gaps in graduates' preparedness to work in a real-world organizational environment. Beyond professional knowledge and experience, companies are looking for a set of soft skills. While there is a consensus among scholars that teamwork skills can be learned, many researchers emphasize the challenges of teaching real-world processes, dynamics, and the nature of teamwork. A practical learning course that mimics the industrial settings was developed and taught to overcome these challenges and better prepare students for the industry. This ongoing study explores the specific characteristics of students' teamwork in a practical course delivered in an industrial setting. A qualitative study using semi-structured interviews with 12 course graduates. Based on the initial data analysis, specific characteristics reported by the interviewees were coordination, synchronization, mutual dependency and responsibility for results, and a unique teamwork atmosphere. These findings can be explained by the practical course settings such as the combination of project and industry-based learning, team formation strategy, mentoring support, communication tools, and grading strategy. The intermediate results show the apparent benefits of project-based and industry-based combined learning for improving software engineering students' soft skills. Abstract
... With the development of the internet and mobile technologies in the last two decades, breakthroughs have been experienced in many fields of computer science such as big data, artificial intelligence, blockchain, bioinformatics, wearable technologies, cloud computing, 3D printers, robotics, and virtual reality. Responsibilities of computer science such as automating the processes, facilitating communication, providing better products and services, assisting the world to be more productive have caused human beings to be more dependent on software (Santos, Tedesco, Borba, & Brito, 2020). As a result, all developed and developing countries are required to raise qualified individuals who can maintain the software used and produce practical solutions to new problems encountered in the future (Demirer & Sak, 2016). ...
Article
The main goal of the current study is to develop a reliable instrument to measure programming anxiety in university students. A pool of 33 items based on extensive literature review and experts' opinions were created by researchers. The draft scale comprised three factors applied to 392 university students from two different universities in Turkey for exploratory factor analysis. The number and character of the underlying components in the scale were determined using exploratory factor analysis. After exploratory factor analysis, confirmatory factor analysis was conducted on the draft scale using a sample of 295 university students. Confirmatory factor analysis was carried out to ensure that the data fit the retrieved factor structure. The internal consistency coefficient (Cronbach's alpha) was calculated for the full scale and each dimension for reliability analysis. For convergent validity, the factor loading of the indicator, the average variance extracted, composite reliability, and maximum share variance values were calculated. Additionally, convergent validity was tested through (1) comparison of mean values of factors and total programming anxiety depending on gender and (2) correlation analysis of factors, total programming anxiety, and course grade of students. The Fornell & Larcker criterion and the Heterotrait-Monotrait correlation ratio were utilized to assess discriminant validity. According to analysis results, the Programing Anxiety Scale (PAS) comprised 11 items in two factors: classmates and self-confidence. Similarly, results revealed that The PAS has good psychometric properties and can be used to assess the programming anxiety of university students.
... In their systematic literature review Santos et al. [10] identified four approaches to set up innovative approaches in teaching programming, one being project-based teaching practices. They found that students are better motivated when collaborative learning and continuous monitoring are used. ...
Conference Paper
Full-text available
In software engineering and other technology related teaching educators increasingly integrate de-facto online tools into coursework. However, the impact of using these tools is not clearly understood. To this end, this research project will provide a visual dashboard with extensive and stakeholder-specific visualizations to serve the diverse needs of different stakeholders, e.g., teachers, teaching assistants, administrative personnel and students. This paper reports the results of our initial analysis of what kind of views teachers want to take to their courses and what kind of information teachers see as valuable visualizations on learners' progress. We conducted 17 semi-structured interviews in two universities. The interviews were thematically analysed, giving as results three key themes. The results give a good starting point to create a visual course dashboard. Our study takes a step towards supporting various stakeholders in learning environments through visual means. While the input data, metrics and visualizations are based on the tools used in software engineering courses, we see that several results can be applied to other contexts.
... Drawing on the research literature (Kotsopoulos, et al., 2019;Lee, & Malyn-Smith, 2019;Romero, Lepage, & Lille, 2017;Santos et al., 2020;Weintrop, et al. 2016), the paper proposes a three-step approach to connect mathematical problem-solving to CT by means of programming languages. Firstly, students should have a good mathematical background to benefit from CT and programming languages. ...
Conference Paper
Full-text available
This paper aims at exploring students’ experiences when engaging in mathematical problem-solving through computational thinking and programming by a combination of theoretically derived insights and task-based activities. The main method used is a semi-structured interview with two undergraduate students who were presented with a mathematical task to solve while responding to questions about the mathematical solving process. The results reveal two students’ opposite experiences. While one struggled to get acquainted with the task and the associated programming activity, the other was able to handle and solve the task using computational thinking (CT) and programming skills very easily. Conclusions are drawn from the students’ experiences to promote mathematical problem-solving through computational thinking and programming in mathematics education at the undergraduate level.
Chapter
This chapter aims to provide computer science stakeholders with a perspective on teaching programming through metaphors. The chapter emphasises that the difficulties encountered in learning programming stem from the structure of programming as a learning task, individual traits, and many factors, including curriculum and teaching approaches as interactional setting variables. First, the need for pedagogical approach to teaching programming is emphasized, briefly introducing the teaching approaches used in programming. Teaching programming through metaphor is introduced as an alternative approach to teaching programming concepts. It explains metaphor as a concept, conceptual metaphor theory, and the use of metaphor in teaching programming concepts. Then, the need to reveal the pattern of the teaching process through in-depth qualitative studies is highlighted as a future research direction. Finally, it is argued that using metaphor is not limited to teaching of concepts, but can also improve thinking skills, differentiate teaching and support teachers' professional development.
Article
Full-text available
Implementing the K12 program in the Philippines introduced senior high school, bringing about significant changes in the education system, especially after the COVID-19 pandemic. This reform aimed to align the Philippine educational system with international standards, enhance the quality of education, and prepare students for higher education. This study investigated the challenges senior high school teachers face during in-person learning in a specific school in Victoria City for the Academic Year 2022-2023. Data for this descriptive study was collected from 72 teachers using a self-made questionnaire that passed the rigorous validity and reliability test. The following areas were considered to have many problems: workload, teaching and learning resources, training and support, curriculum implementation, and student attitude. The results showed a significant difference in workload when grouped according to sex. For track handled student attitude has a significant difference, for length of service student attitude has a significant difference. For track-handled student attitude, there is a considerable difference. For length of service, student attitude has a significant difference. The result of the study calls for targeted interventions such as streamlining administrative tasks, specialized training programs, positive reinforcement initiatives, increased funding for resources, mentorship programs, and age-specific professional development, aiming to alleviate burdens, enhance teaching effectiveness, and foster a collaborative learning environment for sustainable improvements in senior high school education. Keywords: Education, problems encountered, Senior High School, in-person learning modality
Chapter
Full-text available
In this article, an initial framework on programming pedagogy is suggested which attempts to conceptualise pedagogy along the two dimensions, namely, programming knowledge and programming representation. For the dimension of programming knowledge, the two poles are programming syntax and programming concept, which correspond to the developmental change in learning programming. For the dimension of programming representation, the two poles are textual representation and visual representation, which reflects the advancement of technology in programming presentation. Structured programming is traditionally learned with focus on programming syntax in textual representation. As a result, it is considered as a more syntax-oriented and textual-based (i.e., syntax-textual pedagogy). Problem Solving, Software Development, Language Learning, and Learning Theory approaches are regarded as more concept-oriented and textual-based (i.e., concept-textual pedagogy) since they emphasise the mastery of problem solving skills. Mini-language and Sub-language approaches usually make use of visual metaphor to help beginners to start programming. In this sense, they focus more on concepts building through a visual programming representation (i.e., concept-visual pedagogy). However, we could not find any approach which is under syntax-visual pedagogy. With a trend towards user-friendliness and technology development, it is anticipated that there will be a gradual shift from the concept-textual pedagogy to concept-visual pedagogy in the future.
Article
Full-text available
This study examines the methodological dimensions of programming education articles published in educational sciences journals indexed in SSCI by exploring their general trends. To do this, 162 articles published between January 2012 and February 2020 in 30 international journals indexed in SSCI were analyzed with a systematic review method using the "Educational Technology Publication Classification Form" as a data collection tool. The results revealed that most of the studies in this field were conducted in the USA and Turkey. The number of these studies has increased since 2015, and those studies were carried out using quantitative research methodology. Mostly questionnaires and achievement tests were used as a data collection tool, a convenience sampling method was used, and descriptive analyses were adopted to analyze the data. As a result, the articles examined in this study showed that programming education positively contributes to learners' learning and success levels and the development of their computational thinking skills. We believe that these results will shed light on future studies related to programming education.
Article
Teaching programming is a topic that has generated a high level of interest among researchers in recent decades. In particular, multiple approaches to teaching visual programming have been explored, from the use of tools such as Scratch, robots, unplugged programming or activities for the development of computational thinking. Despite the wide range of resources used, students generally tend to perform poorly academically and perceive learning visual programming as a complex and demotivating task. In this article, the TutoApp system is proposed together with a new methodology based on “Learning by Teaching”, where students create tutorials in their mobile devices to explain programming concepts to their peers. The hypothesis of this paper is that the use of this tool improves learning outcomes and the level of student satisfaction. An experiment with a pre-post-test design has been carried out with 57 university students in an introductory programming course, 30 belonging to a control group (did not use TutoApp) and 27 belonging to the experimental group (used TutoApp). The findings indicate that the creation of tutorials with TutoApp significantly improved students' academic performance over those who did not use it, specifically in learning the loops and conditional control structures. However, it was observed that anxiety increased in all students while learning visual programming. The results of this study open the door to the validation of the use of systems and methodologies for creating tutorials for teaching visual programming to university students.</p
Article
Full-text available
Approaches, methods, and techniques of teaching Christian Religious Education (CRE) in Kenya have changed over time. Improved teaching strategies such as a five-stage lesson plan framework enhance students' performance. Despite the novelty of the framework, there is limited information on its spread and utilization among CRE teachers in Kenya. Therefore, this study assessed the determinants of awareness and implementation of the novel five-stage lesson plan framework in Meru County, Kenya. The study sampled 226 CRE teachers using a semi-structured questionnaire. The study employed an Ordered Probit Model to assess the determinants of the number of five-stage lesson plan stages awareness and implemented by the CRE teachers. The Ordered Probit analysis revealed that gender, academic qualification, working experience, and challenges were crucial determinants of awareness and implementation of the five-stage lesson plan framework. The findings implied that policymakers and relevant stakeholders in education should consider pre-service and in-service training, workshops, and seminars in upscaling or promoting the awareness and implementation of the five-stage lesson plan framework. Educational policies targeting improved teaching methods should enhance recognition and operation of the five-stage lesson plan framework.
Chapter
In this article, we propose the development of a context-sensitive tool for providing personalized 3I (informative, interactive and iterative) feedback to novice programmers during the programming problem solving process. To achieve this aim, we have carried out different research stages, where the first is to understand the provision of feedback for novice programmers, investing in carrying out a study in two perspectives, theoretical and experimental. Thus, this study was divided into three stages: systematic literature mapping, systematic literature review and an experiment. As one result of this study we organize the acquired knowledge and elaborate a Context-Aware Taxonomy for Feedback (TaFe). In addition, we designed a Conceptual Architecture Based on Multi-Agents and Computational Context, considering functional requirements identified in the knowledge represented in TaFe. For the next steps, we plan to validate TaFe and the architecture using appropriate methodological instruments. Finally, we intend to develop and validate a feedback solution based on a real problem identified in an experiment.
Chapter
Gestures and speech modalities play potent roles in social learning, especially in educational settings. Enabling artificial learning companions (i.e., humanoid robots) to perform human-like gestures and speech will facilitate interactive social learning in classrooms. In this paper, we present the implementation of human-generated gestures and speech on the Pepper robot to build a robotic teacher. To this end, we transferred a human teacher gesture to a humanoid robot using a web and a kinect cameras and applied a video-based markerless motion capture technology and an observation-based motion mirroring method. To evaluate the retargeting methods, we presented different types of a humanoid robotic teacher to six teachers and collect their impressions on the practical usage of a robotic teacher in the classroom. Our results show that the presented AI-based open-source gesture retargeting technology was found attractive, as it gives the teachers an agency to design and employ the Pepper robot in their classes. Future work entails the evaluation of our solution to the stakeholders (i.e. teachers) for its usability.
Article
Full-text available
Estudar as concepções e práticas dos docentes no que concerne aos objetivos na disciplina de Programação Introdutória (PI) constitui um tema relevante no contexto do Ensino Superior, uma vez que os objetivos deveriam orientar o processo de ensino e de aprendizagem de uma disciplina considerada difícil de ensinar pela exigência de diversas habilidades dos estudantes. Este trabalho baseia-se em um projeto de investigação mais alargado, cujos dados foram coletados de entrevistas semiestruturadas com 29 docentes de uma universidade brasileira sobre seus planejamentos e práticas em sala de aula, sendo submetidos à análise de conteúdo com o auxílio do software NVivo. As concepções que os professores possuem sobre os objetivos da PI são, essencialmente, programar e desenvolver a lógica de programação na resolução de problemas, alinhando-se às atividades com a prática de exercícios que os professores acreditam que levam ao desenvolvimento de competências cognitivas. Os objetivos dos programas das disciplinas e dos planos dos professores também foram analisados, concluindo que, embora a maioria dos objetivos seja centrada no estudante, todos apresentaram problemas na clareza e suscitaram dúvidas no nível cognitivo a ser trabalhado. Os resultados apresentados são uma oportunidade para promover reflexões na comunidade acadêmica acerca do que os objetivos que emergiram das entrevistas realmente significam, além de discutir a exequibilidade dos objetivos ao nível do desenvolvimento e da experiência dos estudantes. É fundamental questionar a racionalidade subjacente à formulação de objetivos e seus modos de operacionalização, uma vez que a minoria dos professores possui formação pedagógica.
Article
Full-text available
An engaging first programming class (CS1) often inspires students’ passion for computer science (CS). However, the evidence in the literature suggests that the average CS1 classes are anything but engaging for many students. The performance of CS compared to other science, technology, engineering, and mathematics (STEM) courses in international student engagement surveys seems to substantiate CS1 failure, attrition rates, and lack of diversity in most CS classes. Meanwhile, for its simplicity in introducing programming to beginners, primary and secondary schools use Scratch, an educational programming environment developed by the Massachusetts Institute of Technology, USA. For the same reason, higher institutions now include some forms of Scratch instruction in CS1.The question remains, to what extent is Scratch engaging, especially for students in higher education? This study addressed this gap by observing college computer science students exposed to a constructionist Scratch programming pedagogy. We adopted a descriptive design based on quantitative observations. To observe the class during a weekly 2-hour session, we employed five CS educators, one observer per week. Each observer, employing a 20-item observation protocol, rated the extent of affective, behavioral, and cognitive engagement of first-year CS students in a polytechnic in North Central Nigeria. Most of the students were learning to program for the first time. Analysis of the data showed a significant agreement in the ratings of the five observers for overall student engagement, although the impact was moderate. However, while agreement in their ratings for affective engagement was significant, with a large effect, there was no significant concordance in their ratings for behavioral engagement. Observers also significantly agreed in their ratings for cognitive engagement; however, the impact was moderate. These findings suggest that employing Scratch in higher education can be engaging and useful, especially for students with no prior programming experience.
Chapter
This paper aims at exploring students’ engagement in mathematical problem-solving through computational thinking (CT) and the programming language MATLAB. The work is a single case study conducted in the context of a first-year undergraduate course on programming with applications in mathematics. It uses a three-step approach based on theoretically derived insights from the research literature to address mathematical problem-solving by means of mathematical thinking, CT, and programming. The main method used is a semi-structured interview with two undergraduate students trying to solve a mathematical task related to Pythagoras’ theorem while responding to questions about the problem-solving process. The interviews were analyzed according to an inductive strategy based on the interplay between the three-step approach and the interview data. The results describe two students’ opposite experiences. While one was able to handle and solve the task using CT and MATLAB very easily, the other struggled to get acquainted with the task, CT, and the programming activity with MATLAB. Conclusions are drawn from the results to promote mathematical problem-solving through CT and programming in mathematics courses at the undergraduate level. Future work will address some of the research gaps found in the literature, in particular the links between mathematical thinking, CT, and programming to highlight their communalities and potential differences and deepen the knowledge about their connections.KeywordsAlgorithmComputational thinking (CT)MATLABMathematical problem-solvingMathematical thinkingProgrammingUsability
Article
Full-text available
Tutorial Education Program (TEP) is an initiative from Brazilian government to develop education quality in different areas of knowledge, as its main aim to decrease students’ evasion and promotion of academic success. PET-Informática group from Federal University of Pernambuco (UFPE) has invested in these activities, in particular, to teach programming, one of the disciplines in which students have lower grades in technology courses. In this context, this paper describes an experience of an extension course in Python, using the active learning approach Problem-Based Learning (PBL). This course, ministered in two weeks, made possible the construction of a PBL model to teach Python, based in the xPBL methodology described by Santos & Rodrigues (2016) and the lessons learned with this practical experiment. As the main contribution, this experience stands out the possibility to apply this course to different audiences with different levels of education, and also the dissemination of PBL approach in teaching programming.
Article
Full-text available
The use of programming patterns is considered to be a conceptual aid for programmers for developing understandable and testable concurrent and parallel code which is not only well built but also safe. By using programming patterns and their implementations as computer programs, difficult new concepts can be smoothly taught in lectures to students who before trying this teaching approach would have been reluctant to enroll on Parallel and Concurrent Programming courses. The approach presented in this paper consists in changing the traditional programming teaching and learning model to one where students are first introduced to syntactical constructs through selected introductory program code-patterns. In the theory lessons that follow, through the use of laptops with multi-core processors and access to the Virtual Campus services of our university, the students are easily able to implement and master the new concepts as they are taught. This teaching experiment was implemented to teach a concurrent and real-time programming course which is part of the computer engineering (CE) degree and taught during the third semester of the CE curriculum. Evaluation of the students’ academic performance when they had been taught with this approach revealed a improvement in the students’ end-of-course grades.
Conference Paper
Full-text available
LEGO Serious Play (LSP) is a methodology that helps people brainstorm and discuss complex ideas through storytelling and metaphors. LSP has been successfully applied in higher education as a mechanism for team building and promoting creativity. In this paper, we discuss using LSP to teach several core software engineering topics through hands-on case studies. Initial results suggest that LSP has a positive impact on student learning, while also improving student engagement with the course material. This paper describes the details of two LSP-based case studies along with many practical aspects of using LSP to teach software engineering.
Conference Paper
Full-text available
One of the challenges in teaching a first program- ming course is that in the same course, the students must learn basic programming techniques and high level abstraction abilities, and the application of those techniques and concepts in problem solving and (engineering) design. To confront this challenge, in previous years, we have included a project-based learning phase at the end of our course to encourage the acquisition of high level design and creativity. To address some of the shortcomings of our previous editions, we have recently included a mastery phase to the course. While project-based learning is suitable for teaching high-level skills that require design and creativity and prepare the students for the study of software engineering, mastery-based learning is suitable for concrete skills such as basic programming tasks. Our particular innovation is to allow students into the project phase only if they have demonstrated a minimum predefined competency level in programming. The combination of the two approaches seems to address most of the requirements of a first programming course. We present our motivation for combining the two pedagogical techniques and our experience with the course.
Article
Full-text available
A number of researchers have documented several difficulties faced by learners of basic programming concepts. Among the suggested pedagogical solutions to overcome these difficulties is the use of serious games inthe learning process. In fact, these games are more likely to boost the motivation of students and allow them to develop their knowledge efficiently. Our studyfocuses on evaluating such usage and the resulting students’ motivation towards programming. We’ve made students create simple games using the Scratch game environment in order for them to learn programming basics. The experiment was conducted with a group of 69 high school science major students. This group of students was arbitrarily chosen and divided into three sub-groups. With the first sub-groupwe experimented with our pedagogical method based on the creation of simple games using Scratch environment. With the other sub-groups we used a conventional method based on Pascal programming language. Twosurveys were distributed at the beginning and at the end of the experimentation in order to identify the programming level of students, their gaming habits, their motivation and interest for programming in the future. The analysis of the surveysshows that using an environment for learning programming such as Scratch highly motivate students and empower them to pursue their studies in programming. In fact, when learners were asked about their desire to continue their studies in programming, 65% of students who have experienced with Scratch environment consider continuing their studies in programming whereas only 10.3% of students who used a standard programming environment showed some interest.
Article
Full-text available
The growth of mobile technologies was evolutionary in the progression of technology, it opened a revolution in computing in a quicker time frame. The easy availability and extreme mobility with rich set of applications made smartphones an inevitable tool for students. This is the high time for academic domain to go for innovative teaching practices with the inclusion of mobile technologies to bridge the gap between academia and industry in a considerable manner. This paper is aimed to introduce an innovative approach of learning computer programming on smartphone platform. The proposed approach intends to introduce a new pedagogy of teaching programming on a platform by developing applications instead of teaching a programming language for creating applications. The main premise of this practice is the introduction of a tailored module to teach Java programming language while developing apps for a leading mobile platform-Android. The proposed module can be an appropriate alternative for the module ‘Introduction to programming’ of computer science curriculum across the globe. Pilot implementation has been done in one of the premier higher education centres of Gulf Council Country (GCC). An ontology based implementation of the proposed module ensures its consistency in delivery and the future work will focus more in this direction.
Conference Paper
Full-text available
In order to exploit the benefits of PBL and mitigate the risk of failure when implementing it, the NEXT (iNnovative Educational eXperience in Technology) research group has been working on methods and tools focused on managing the PBL approach as applied to Computing. In this context, this article proposes a teaching and learning methodology based on PBL, called xPBL, consisting of elements that reinforce PBL principles, namely: real and relevant problems; a practical environment; an innovative and flexible curriculum; an authentic assessment process; close monitoring by technical tutors and process tutors, and finally, professional practitioners as teachers and tutors. Based on these elements, the paper describes the design of a PBL approach for a Design course, grounded on acquired knowledge of Design content and past PBL experiences in Software Engineering courses. This approach provides an insightful guide to implementing PBL from xPBL methodology, and provides instruments based on management techniques such as 5W2H (what, why, who, when, where, how and how much) and the production of artifacts to support the conception process of courses based on PBL.
Article
Full-text available
The Java Wiki Integrated Development Environment (JavaWIDE) is an innovative environment that promotes active learning and collaboration in programming courses. This paper surveys how JavaWIDE's features have been used to promote active and collaborative learning in both traditional and distance education (synchronous) in four different environments: high school, summer enrichment courses, and at two- and four-year colleges. The authors describe the context of each teaching and learning environment and the parts of JavaWIDE that are particularly well suited in each context. After discussing the active learning and collaboration techniques employed, student responses to the experience are summarized. This collection of case studies illustrates how the concurrent editing, shared environment awareness and other features of JavaWIDE can be used to promote active learning and collaboration within a heterogeneous set of teaching and learning environments.
Article
Full-text available
Our educational system must nurture a student's ability to acquire knowledge. Research has proven that active learning, learning promoted by interacting with one's environment, as opposed to lectures, is most effective in developing a students ability to acquire knowledge. In the computer science domain, active learning can be facilitated by using mobile robots in a collaborative setting. We believe that a context-based, collaborative approach, combined with the excitement, motivation, and real-world experiences provided by a robot, provide a nearly optimal method of teaching students how to acquire knowledge about computer science. However, this methodology has not seen wide acceptance. In order to facilitate the use of robots we have developed an inexpensive wheeled robot that uses common parts and requires only a simple set of tools for assembly. An abstracted Java interface allows students to interact with the robot from any desktop computer using the simple commands provided. Additionally, students can develop sophisticated distributed software solutions that require only simple changes to the interface, and development of software for both the embedded microcontroller and desktop machine. Our approach makes a wide variety of robot-based projects accessible to all level of courses, and for even the smallest computer science departments.
Article
Full-text available
Knowledge acquisition and participation are the two prominent metaphors that guide our thinking about learning and relevant instruction. The first of them represents an individual and the latter a social basis of learning. Problem-based learning, case-based teaching, learning by design and cognitive apprenticeship powerfully emphasise anticipation and participation as main goals and perspectives into learning. Those perspectives seem to be typical of all the approaches that can be related with the family of collaborative teaching models. However, the increasing popularity of the collaborative aspect in university education challenges us to develop new approaches into instructional design. In the article the four mentioned, emerging collaborative teaching models are studied and discussed from the perspective of instructional design. The challenges of integration of new technologies in learning are also shortly presented.
Conference Paper
Full-text available
Programming is related to several fields of technology, and many university students are studying the basics of it. Unfortunately, they often face difficulties already on the basic courses. This work studies the difficulties in learning programming in order to support developing learning materials for basic programming courses. The difficulties have to be recognized to be able to aid learning and teaching in an effective way.An international survey of opinions was organized for more than 500 students and teachers. This paper analyses the results of the survey. The survey provides information of the difficulties experienced and perceived when learning and teaching programming. The survey results also provide basis for recommendations for developing learning materials and approaches.
Conference Paper
We report on our experience building and implementing a robotics course for Computer Science based on the LEGO NXT. The goal of the course is to provide students with an opportunity to learn the fundamental principles involved in designing, programming, and operating mobile robots in a completely experiential setting, while abstracting away the hardware complexity of typical robotics platforms. To this end, we built the course around the LEGO NXT robot kits. We have developed a software framework that allows the NXT to be used in conjunction with a laptop computer and a webcam to enable our students to learn in the context of a robotics soccer game. We describe the process of designing the robotics soccer project so that it is tightly coupled with course learning goals, and report on our experience running the course over the past three years. The software platform is freely available, and allows anyone with a webcam-equipped laptop and an NXT set to implement their own soccer playing bot.
Conference Paper
We offered professional development to in-service K-12 teachers. Teachers learned programming, and how to teach programming. During the subsequent academic year, they taught programming in their schools. We interviewed the teachers to better understand their experiences. This poster describes case studies of K-12 teachers as they teach programming for the first time. As this study is qualitative, it does not attempt to measure findings. Rather, in exploring individual teachers' experiences, we hope to benefit both future teachers who will need to teach computing as well as those who will be helping those teachers.
Conference Paper
We report our experience developing and teaching a computing elective course for students enrolled in a Doctor of Medicine (MD) program. Students participated in a series of workshops to learn and practice programming, and gained additional experience by completing programming assignments. Students then participated in a novel seminar series delivered by experts who each discussed one application of computing to medicine. Each seminar included a corresponding programming project where students worked with the ideas introduced in the seminar and practiced their newly-acquired programming skills. We found that by streaming the students into levels based on prior experience, carefully scaffolding project handouts, and having each seminar co-led by a faculty member, we are able to support students --- even beginners --- to succeed. Students report that the topics are relevant, they appreciate the medical context of the programming exercises, and they would recommend the program to others.
Conference Paper
This paper explores the results of a piloting and field-testing of Alice in the Middle East (Alice ME), a computing curriculum for students in Middle Schools in Qatar. Alice ME is a project aimed at designing and delivering a Qatari context appropriate computing curriculum using Alice software. Curricular materials and professional development were created to help participating teachers deliver the course. An evaluation of the effectiveness of the implementation was carried out during all stages of the project. Results show that students who studied computing through Alice ME showed an improvement in their critical thinking and problem solving skills. Moreover, students and teachers became more motivated to learn programing as a result. This paper suggests best practices in teacher training and CS teaching in K-12 schools in Qatar in addition to sharing lessons learned from the process.
Conference Paper
Significant advances have been made in the learning and teaching of Introductory Programming, including the integration of active and contextualised learning pedagogy. However, Massively Open Online Courses (MOOCs), where Computer Science and, more specifically, introductory programming courses dominate, do not typically adopt such pedagogies or lessons learned from more traditional learning environments. Moreover, the improvement of learning within the MOOC context in terms of discipline-specific pedagogy, and the improvement of student learning outcomes and processes have not been studied in depth. This paper reports findings from a foundation programming skills MOOC that supports the learning of fundamental Computer Science concepts and the development of programming skills through a media computation approach, based upon digital artworks and animations. In this paper, we explore the course activity data as well as a sample of students' source code submissions to investigate their engagement with the course and the quality and development of their programming skill over the six weeks of the course duration.
Conference Paper
To improve student's class experience, the use of mobile devices has been steadily increasing. However, such use of mobile learning environments in the class is mostly static in nature through content delivery or multiple choice and true/false quiz taking. In CS courses, we need learning environments where students can interact with the problem in a hands-on-approach and instructor can assess their learning skills in real-time with problems having different degree of difficulty. To facilitate such interactive problem solving and real-time assessment using mobile devices, a comprehensive backend system is necessary. This paper presents one such system, named Mobile Response System (MRS) software, associated interactive problem-solving activities, and lessons learned by using it in the CS classrooms. MRS provides instructor with the opportunity of evidence-based teaching by allowing students to perform interactive exercises in their mobile devices with different learning outcomes and by getting an instant feedback on their performance and mental models. MRS is easy-to-use, extensible and can render interactive exercises developed by third-party developers. The student performance data shows its effectiveness in increasing student understanding of difficult concepts and the overall perception of using the software was very positive.
Conference Paper
DevOps is a new way of developing software that is challenging from a teaching perspective. In this paper, we outline these challenges and propose teaching methods that focus on skill acquisition and technical practices that focus on performant virtualization to overcome them. We describe central elements from our course Cloud Computing and Architecture that has been designed and executed upon these methods and practices and report our experiences and lessons learned.
Article
Several authors and studies highlight the benefits of the integration of Computer Science into K-12 education. Applications such as Scratch have been demonstrated to be effective in educational environments. The aim of this study is to assess the use of a Visual Programming Language using Scratch in classroom practice, analyzing the outcomes and attitudes of 107 primary school students from 5th to 6th grade in five different schools in Spain. The intervention takes place in two academic years analyzing the practice of integrating coding and visual blocks programming in sciences and arts. The “Computational concepts and computational practices” dimension details a quasi-experimental approach, which showed significant improvement regarding learning programming concepts, logic, and computational practices with an active approach. The “Learning processes and coding in primary education” dimension analyzes the practice of the experimental group through questionnaires and structured observation. In this pedagogical design, students interact and create their own content related to curricular areas with several advantages, such as motivation, fun, commitment, and enthusiasm, showing improvements related to computational thinking and computational practices. Understanding of computational concepts through an active approach, Project Based Learning, usefulness, motivation, and commitment underline the importance and effectiveness of implementing a Visual Programming Language from active methodologies in primary education. Due to the aforementioned benefits and positive results obtained in this research, it is recommended to implement a Visual Programming Language in educational settings in 5th and 6th grade in primary education through a cross-curricular implementation.
Article
In this paper, we report the experience gained in a Mobile Application Development course. We involved students in Computer Science at the University of Salerno, who in teams had to conduct a project. The goal of this project was to design and develop applications (or simply app) for Android-based devices. The adopted teaching approach was based on Project-Based-Learning and enhanced collaboration and competition. Collaboration took place among members of the same team (intra-team), while competition among different teams of students (extra-team). To allow intra-team collaboration, students used GitHub as Computer-Supported-Collaborative-Learning tool. It provided support for implicit and explicit communication among members in each team and for distributed revision control and management of software artifacts (e.g., source code and requirements models). Developed apps underwent a final public competition prized by IT managers of national and international software companies. This is how we implemented extra-team competition. IT managers expressed a positive judgment on both students׳ competition and developed apps. Also, students provided very good feedback on used teaching approach and support GitHub provided.
Article
This article describes how smartphones, studio-based learning, and extensive scaffolding were used in combination in the teaching of a freshman Introduction to Programming course. To reduce cognitive overload, a phased approach was followed in introducing programming concepts and development environments, beginning with the visual programming environment Scratch and culminating with Java development for Android smartphones. Studio-based learning, a pedagogical approach long established in the fields of architecture and design education, was used as the basis for a collaborative social constructivist—and constructionist—approach to learning. Smartphones offered students the potential to develop applications for a context that is both immediate and clearly relevant to the ways in which they utilize and interact with technology. The research was carried out over three full academic years and included 53 student participants. An exploratory case study methodology was used to investigate the efficacy of the approach in helping to overcome the barriers faced by novice programmers. The findings indicate that the approach has merit. The students were motivated and engaged by the learning experience and were able to develop sophisticated applications that incorporated images, sound, arrays, and event handling. There is evidence that aspects of the studio-based learning approach, such as the scope that it gave students to innovate and the open feedback during student presentations, provided a learning environment that was motivating. Overall, the combination of smartphones, studio-based learning, and appropriate scaffolding offers an effective way to teach introductory programming courses.
Article
Traditionally, faculty plan and implement courses with students as the target audience, based upon educational goals and objectives. With today's interest in active learning, faculty try to anticipate activities that will resonate with students. This paper presents a different model that utilizes faculty-student collaboration for course development -- in this case, creating an introductory C-based course on imperative problem solving with robots as an application theme. Basing development on course goals and objectives, a faculty member works with a development team of undergraduate students to structure course content, prepare materials (e.g., readings, laboratory exercises, projects), and test each element of the course. In subsequent semesters, students taking the course provide feedback on all materials, the development team updates materials, and the refinement process iterates. The resulting course meets goals and objectives, provides wonderful motivation, and highlights creativity and intellectual challenge within computer science as well as syntax, semantics, and core technical skills. This paper builds upon a previous report (SIGCSE 2013 Proceedings, pp. 27-32), by highlighting the course development process and providing data that assess course effectiveness. The resulting course has been identified as an "exemplar" by CS Curricula 2013 (pp. 454-455, 458-459), providing a strong second course in a three-course, multi-paradigm introductory sequence that emphasizes a lab-based approach with collaborative learning. Course materials at co-author Walker's home page.
Article
We describe the curriculum, initial experience, and preliminary evaluation of an introductory CS course for students taking CS as their single or double major. The course is taught during the first or second semester of the first year of studies. It is centered around eleven to thirteen topics, offering a wide cover of major CS subjects. Many of these topics are not covered in "traditional" introductory CS courses, and some of them are not even covered through the standard undergraduate curricula. Examples: digital image representation and processing, error correction and detection codes, hashing (including Cuckoo hashing), and text compression. The programming language used in the course is Python. The students are exposed to all standard programming language constructs (commands, assignments, functions, conditionals, iterations, recursion, etc.) and basic data types (e.g. integers, floating-point numbers, lists, dictionaries, and sets), as well as less basic constructs, like higher order functions, lambda expressions, classes and methods, and iterators. We have set a dual learning outcome: the students are expected to acquire a good knowledge and proficiency of programming and understanding short programs. We also expect them to get a broad view of central subjects in Computer Science.
Program Visualisation: Cognitive Issues and Technological Implementations
  • D Ayrapetov
  • S Graham
Ayrapetov, D., S. Graham, 2002. "Program Visualisation: Cognitive Issues and Technological Implementations".
Teaching Programming: The State of the Art. The Center for Research in IT in Education
  • E Costelloe
Costelloe, E., 2016. "Teaching Programming: The State of the Art. The Center for Research in IT in Education".
Teaching real-time programming using mobile robots
  • C Rodríguez
  • J Luis Guzmán
  • M Berenguel
Rodríguez, C., J. Luis Guzmán, M. Berenguel, 2016. "Teaching real-time programming using mobile robots".
Building Casual Game SDKS for Teaching CS1/2: A Case Study
  • K Sung
  • R Nash
  • J Pace
Sung, K., R. Nash, J. Pace, 2016. "Building Casual Game SDKS for Teaching CS1/2: A Case Study".