14,105 research outputs found

    Introductory programming: a systematic literature review

    Get PDF
    As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    public class Graphic_Design implements Code { // Yes, but how? }: An investigation towards bespoke Creative Coding programming courses in graphic design education

    Get PDF
    Situated in the intersection of graphic design, computer science, and pedagogy, this dissertation investigates how programming is taught within graphic design education. The research adds to the understanding of the process, practice, and challenges associated with introducing an audience of visually inclined practitioners—who are often guided by instinct—to the formal and unforgiving world of syntax, algorithms, and logic. Motivating the research is a personal desire to contribute towards the development of bespoke contextualized syllabi specifically designed to accommodate how graphic designers learn, understand, and use programming as an integral skill in their vocational practice.The initial literature review identifies a gap needing to be filled to increase both practical and theoretical knowledge within the interdisciplinary field of computational graphic design. This gap concerns a lack of solid, empirically based epistemological frameworks for teaching programming to non-programmers in a visual context, partly caused by a dichotomy in traditional pedagogical practices associated with teaching programming and graphic design, respectively. Based on this gap, the overarching research question posed in this dissertation is: “How should programming ideally be taught to graphic designers to account for how they learn and how they intend to integrate programming into their vocational practice?”A mixed methods approach using both quantitative and qualitative analyses is taken to answer the research questions. The three papers comprising the dissertation are all built on individual hypotheses that are subsequently used to define three specific research questions.Paper 1 performs a quantitative mapping of contemporary, introductory programming courses taught in design schools to establish a broader understanding of their structure and content. The paper concludes that most courses are planned to favor programming concepts rather than graphic design concepts. The paper’s finding can serve as a point of departure for a critical discussion among researchers and educators regarding the integration of programming in graphic design education.Paper 2 quantitatively assesses how the learning style profile of graphic design students compares with that of students in technical disciplines. The paper identifies a number of significant differences that call for a variety of pedagogic and didactic strategies to be employed by educators to effectively teach programming to graphic designers. Based on the results, specific recommendations are given.Paper 3 proposes a hands-on, experiential pedagogic method specifically designed to introduce graphic design students to programming. The method relies on pre-existing commercial graphic design specimens to contextualize programming into a domain familiar to graphic designers. The method was tested on the target audience and observations on its use are reported. Qualitative evaluation of student feedback suggests the method is effective and well-received. Additionally, twenty-four heuristics that elaborate and extend the paper’s findings by interweaving other relevant and influential sources encountered during the research project are provided. Together, the literature review, the three papers, and the heuristics provide comprehensive and valuable theoretical and practical insights to both researchers and educators, regarding key aspects related to introducing programming as a creative practice in graphic design education

    Student-centered learning objects to support the self-regulated learning of computer science

    Get PDF
    The most current computing curriculum guidelines focus on designing learning materials to prepare students for lifelong learning. Under the lifelong learning paradigm, students are responsible for controlling and monitoring their learning processes. This undoubtedly includes the ability to choose suitable learning materials. Correspondingly, instructional paradigms are shifting from teacher-centered to more student-centered models that require students to be self-regulated learners. On the other hand, recent trends in learning materials’ instructional design focus on moving toward the concept of Learning Object-based instructional technology. A learning object is a unit of instruction with a specific pedagogical objective that can be used and reused in different learning contexts. Designing learning objects to support students in their self-regulated learning is not an easy task due to the lack of underlying pedagogical frameworks. It is difficult to find learning objects related to students’ specific preferences and requirements. In this study, a number of learning objects are designed to support the self-regulated learning of programming languages concepts based on the theory of learning styles. Students’ interactions with these learning objects are managed using an online learning object repository. The repository helps students identify their preferred learning styles and find the relevant learning objects. The results of the evaluations of these learning objects revealed that students perceive them to be easy to use and effective in supporting their learning about different programming languages concepts

    Immersive Learning Environments for Computer Science Education

    Get PDF
    This master\u27s thesis explores the effectiveness of an educational intervention using an interactive notebook to support and supplement instruction in a foundational-level programming course. A quantitative, quasi-experimental group comparison method was employed, where students were placed into either a control or a treatment group. Data was collected from assignment and final grades, as well as self-reported time spent using the notebook. Independent t-tests and correlation were used for data analysis. Results were inconclusive but did indicate that the intervention had a possible effect. Further studies may explore better efficacy, implementation, and satisfaction of interactive notebooks across a larger population and multiple class topics

    Development, implementation and evaluation of an interactive multimedia instructional model : A teaching and learning programming approach

    Get PDF
    This study sought to explore the outcomes from the use of a dynamic interactive visualisation tool among novice programmers in an introductory computer programming course. The proposed model, Dynamic Interactive Visualisation Tool in Teaching C (DIVTIC), was designed to use multimedia and visual imagery to provide learners with a step-by-step representation of program execution in the C language as a means of enhancing their understanding of programming structures and concepts. DIVTIC was designed to support constructivist learning principles and combined collaborative and visualisation learning strategies with use of the Internet and the World Wide Web to support the learning of programming. The feasibility and effectiveness of DIVTIC was explored among a cohort of 100 undergraduate engineering students, 50 in a control group and another 50 in an experimental group, studying an introductory programming course at Suranaree University of Technology (SUT) in Thailand, The study found that the use of DIVTIC was a successful complement to conventional teaching. The results clearly demonstrated the advantage of using DIVTIC among low achieving students. The students from this level in the experimental group significantly outscored their counterparts in the control group in the final test suggesting that DIVTIC was an important element in their learning process. Interestingly, these low achieving students used DIVTIC most and achieved highest grades. However, lower achieving students appeared to learn from simply viewing the animations rather than being highly interactive and stopping and starting them consistently. The study found that the visualisation process implemented in DIVTIC could be of considerable assistance to a particular group of students, those with a low GPA, in developing their understanding of difficult programming concepts

    The pedagogy of computer programming using cognitive development through an e-learning object

    Get PDF
    Motivated by the needs of a pedagogy focusing on minimizing the learning difficulties in program semantics knowledge and logical reasoning, this research project develops a cognitive development-based pedagogy for introductory programming to support students in organizing and constructing knowledge to learn computer programming. A pedagogy is described as a practice and learning theory that defines the teaching and learning. Regarding the practice of this pedagogy, it uses a cognitive learning tool, called e-learning object, to support the scaffolding. With regard to the theory, this pedagogy is developed based on Vygotsky’s Zone of Proximal Development and Piaget’s theory for cognitive development. In particular the scaffolding of this pedagogy includes three major learning processes. The first two learning processes focus on supporting students constructing knowledge on program semantics and conceptually map this knowledge to the coding process. The last learning process extends the learning to self-practice by demanding students to complete a set of exercises independently. All of these learning processes are supported by using the e-learning object, which is the major cognitive learning tool used in this pedagogy to support cognitive development. It is called e-learning object as it is designed by organizing a group of learning objects, in which each of them is to deliver the concepts of a specific unit topic of program control. Together with the course materials, these learning objects are accessed through the college’s ‘Blackboard System’. In addition to the major objective of improving students’ learning performance, this cognitive development-based pedagogy also extends from this objective to find out whether the positive learning outcome connects to cognitive development, and also whether this pedagogy can be embraced by teachers for use in their teaching processes. With these objectives, six research questions are defined in two stages of study. Research questions Q1 and Q2 are used to study students’ learning outcomes in year 1 and 2, and research questions Q3 to Q5 are used to find out whether students’ learning outcomes are connected to cognitive development. Research question Q6 focuses on whether this pedagogy matches teachers’ knowledge of using it, based on their knowledge of applying technology-based pedagogy. The research methodology of this project is the triangulation design where quantitative data are enriched by the collection of qualitative data. This mixture of quantitative and qualitative data collection in different research questions enables this study to interpret the values of this cognitive development-based pedagogy with different views from students and teachers. The research methods mainly include the quasi-experimental method, survey method and the rating scale anchoring method. With these methods, data are collected by using pre-test and post-test papers, questionnaires, and a checklist of rating scale anchoring mental specifications. They are analysed by two-tailed t-test, descriptive method with mean analysis and the one- way repeated measure ANOVA. These research and data analysis methods have been proven effective and used widely, in educational research projects. This research project makes four major contributions: (i) the e-learning object used in this pedagogy can be used to improve students’ learning performance in computer programming; (ii) evidence that a pedagogy focusing on cognitive development can be used to improve students’ learning performance without being limited by programming languages; (iii) development of a cognitive development- based pedagogy for wide use in introductory programming without being limited by teachers’ knowledge and programming languages; and (iv) learning with this cognitive development-based pedagogy builds up students’ problem-solving skills and applies them to different subject areas. With these achieved goals, this project therefore provides a conceptual and operational model for a pedagogical approach to Computer Science teachers design and use in their teaching process

    Identification and Evaluation of Predictors for Learning Success and of Models for Teaching Computer Programming in Contemporary Contexts

    Get PDF
    Introductory undergraduate computer programming courses are renowned for higher than average failure and withdrawal rates when compared to other subject areas. The closer partnership between higher education and the rapidly expanding digital technology industry, as demonstrated by the establishment of new Degree Apprenticeships in computer science and digital technologies, requires efficient and effective means for teaching programming skills. This research, therefore, aimed to identify reliable predictors of success in learning programming or vulnerability to failure. The research also aimed to evaluate teaching methods and remedial interventions towards recommending a teaching model that supported and engaged learners in contemporary contexts that were relevant to the workplace. Investigation of qualifications designed to prepare students for undergraduate computer science courses revealed that A-level entrants achieved significantly higher programming grades than BTEC students. However, there was little difference between the grades of those with and those without previous qualifications in computing or ICT subjects. Analysis of engagement metrics revealed a strong correlation between extent of co-operation and programming grade, in contrast to a weak correlation between programming grade and code understanding. Further analysis of video recordings, interviews and observational records distinguished between the type of communication that helped peers comprehend tasks and concepts, and other forms of communication that were only concerned with completing tasks. Following the introduction of periodic assessment, essentially converting a single final assessment to three staged summative assessment points, it was found that failing students often pass only one of the three assignment parts. Furthermore, only 10% of those who failed overall had attempted all three assignments. Reasons for failure were attributed to ‘surface’ motivations (such as regulating efforts to achieve a minimum pass of 40%), ineffective working habits or stressful personal circumstances rather than any fundamental difficulty encountered with subject material. A key contribution to pedagogical practice made by this research is to propose an ‘incremental’ teaching model. This model is informed by educational theory and empirical evidence and comprises short cycles of three activities: presenting new topic information, tasking students with a relevant exercise and then demonstrating and discussing the exercise solution. The effectiveness of this model is evidenced by increased engagement, increased quiz scores at the end of each teaching session and increased retention of code knowledge at the end of the course

    Learning-by-Teaching in CS Education: A Systematic Review

    Get PDF
    To investigate the strategies and approaches in teaching Computer Science (CS), we searched the literature review in CS education in the past ten years. The reviews show that learning-by-teaching with the use of technologies is helpful for improving student learning. To further investigate the strategies that are applied to learning-by-teaching, three categories are identified: peer tutoring, game-based flipped classroom, and teachable agents. In each category, we further searched and investigated prior studies. The results reveal the effectiveness and challenges of each strategy and provide insights for future studies

    The development of design guidelines for educational programming environments

    Get PDF
    Introductory programming courses at university are currently experiencing a significant dropout and failure rate. Whilst several reasons have been attributed to these numbers by researchers, such as cognitive factors and aptitude, it is still unclear why programming is a natural skill for some students and a cause of struggle for others. Most of the research in the computer science literature suggests that methods of teaching programming and students’ learning styles as reasons behind this trend. In addition to the choice of the first programming language taught. With the popularity of virtual learning environments and online courses, several instructors are incorporating these e-learning tools in their lectures in an attempt to increase engagement and achievement. However, many of these strategies fail as they do not use effective teaching practices or recognise the learning preferences exhibited by a diverse student population. Therefore this research proposes that combining multiple teaching methods to accommodate different learners' preferences will significantly improve performance in programming. To test the hypothesis, an interactive web based learning tool to teach Python programming language (PILeT) was developed. The tool’s novel contribution is that it offers a combination of pedagogical methods to support student’s learning style based on the Felder-Silverman model. First, PILeT was evaluated by both expert and representative users to detect any usability or interface design issues that might interfere with students’ learning. Once the problems were detected and fixed, PILeT was evaluated again to measure the learning outcomes that resulted from its use. The experimental results show that PILeT has a positive impact on students learning programming

    Creative Coding and Visual Portfolios for CS1

    Get PDF
    In this paper, we present the design and development of a new approach to teaching the college-level introductory computing course (CS1) using the context of art and creative coding. Over the course of a semester, students create a portfolio of aesthetic visual designs that employ basic computing structures typically taught in traditional CS1 courses using the Processing programming language. The goal of this approach is to bring the excitement, creativity, and innovation fostered by the context of creative coding. We also present results from a comparative study involving two offerings of the new course at two different institutions. Additionally, we compare our results with another successful approach that uses personal robots to teach CS1
    • 

    corecore