1,110 research outputs found

    Visual and Textual Programming Languages: A Systematic Review of the Literature

    Get PDF
    It is well documented, and has been the topic of much research, that Computer Science courses tend to have higher than average drop out rates at third level. This is a problem that needs to be addressed with urgency but also caution. The required number of Computer Science graduates is growing every year but the number of graduates is not meeting this demand and one way that this problem can be alleviated is to encourage students at an early age towards studying Computer Science courses. This paper presents a systematic literature review on the role of visual and textual programming languages when learning to program, particularly as a first programming language. The approach is systematic, in that a structured search of electronic resources has been conducted, and the results are presented and quantitatively analysed. This study will give insight into whether or not the current approaches to teaching young learners programming are viable, and examines what we can do to increase the interest and retention of these students as they progress through their education.Comment: 18 pages (including 2 bibliography pages), 3 figure

    An In-Depth Look at Learning Computer Language Syntax in a High-Repetition Practice Environment

    Get PDF
    Students in an introductory computer science course generally have difficulty producing code that follows the arrangement rules known as syntax. Phanon was created to help students practice writing correct code that follows the rules of syntax. Previous research suggests this tool has helped students improve their exam scores and strengthen effectiveness in the course. A study was conducted to observe students while they complete the syntax exercises to find meaningful patterns in the steps the students take to complete an exercise. Evidence to support high intrinsic load was found throughout the study, which is a measure of difficulty learning a subject. The syntax exercise design’s ineffectiveness, known as the extraneous cognitive load, was minimal throughout the study. It was also found that even if students seem to take longer completing the syntax exercises, it does not reflect a decrease in their performance for the class. This supports a theory that syntax is a separate process from problem-solving and mastering it can help students focus their cognitive process on problem-solving. Finding ordinary moments of comprehension or struggle can provide insight into how improvements can be made in Phanon and computer science teaching methods. The effectiveness of Phanon can be applied to students with a variety of programming experience

    Toward Predicting Success and Failure in CS2: A Mixed-Method Analysis

    Full text link
    Factors driving success and failure in CS1 are the subject of much study but less so for CS2. This paper investigates the transition from CS1 to CS2 in search of leading indicators of success in CS2. Both CS1 and CS2 at the University of North Carolina Wilmington (UNCW) are taught in Python with annual enrollments of 300 and 150 respectively. In this paper, we report on the following research questions: 1) Are CS1 grades indicators of CS2 grades? 2) Does a quantitative relationship exist between CS2 course grade and a modified version of the SCS1 concept inventory? 3) What are the most challenging aspects of CS2, and how well does CS1 prepare students for CS2 from the student's perspective? We provide a quantitative analysis of 2300 CS1 and CS2 course grades from 2013--2019. In Spring 2019, we administered a modified version of the SCS1 concept inventory to 44 students in the first week of CS2. Further, 69 students completed an exit questionnaire at the conclusion of CS2 to gain qualitative student feedback on their challenges in CS2 and on how well CS1 prepared them for CS2. We find that 56% of students' grades were lower in CS2 than CS1, 18% improved their grades, and 26% earned the same grade. Of the changes, 62% were within one grade point. We find a statistically significant correlation between the modified SCS1 score and CS2 grade points. Students identify linked lists and class/object concepts among the most challenging. Student feedback on CS2 challenges and the adequacy of their CS1 preparations identify possible avenues for improving the CS1-CS2 transition.Comment: The definitive Version of Record was published in 2020 ACM Southeast Conference (ACMSE 2020), April 2-4, 2020, Tampa, FL, USA. 8 page

    Understanding novice programmer behavior on introductory courses - Learning analytics approach

    Get PDF
    It is not easy to learn programming. This is why increasing theoretical and practical knowledge in programming education benefits both the educators as well as the students. To allow the students to gain maximal benefit from their studies, the educator must be able to recognize the students who are struggling with learning programming. Learning analytics provides a possible solution to this problem. This thesis demonstrates a novel method to model programmer behavior by using Markov Models. Programming fulfills the Markov property, because the success of the next attempt to compile or execute code is not influenced by the previous attempts; only by the current skill level of the programmer. The model is built using a state machine, which consists of states representing the different phases of the programming process. The state machine contains eight different states and 29different state transition possibilities. A Markov chain corresponding to a specific student can be computed using this state machine and then used with, for example machine learning algorithms. The data for this thesis was collected from a total of five different introductory programming courses, which used either the Java or Python programming languages. The dataset contains 1174 unique students, who made 544 835 total submissions to411 unique assignments. All programming courses were given in Turku, during2017-2021.This thesis provides a theoretical basis for modeling students (Markov Models) and offers a practical method to model students using Markov Models. This thesis only applies unsupervised machine learning methods to the data, specifically the K-Means clustering algorithm. However, supervised methods may also be used. The usefulness of the model is demonstrated by clustering students into three statistically similar clusters: students who perform well, average and poorly. The model is also applied to recognize the programming language used, based only on the transitions within the state machine.--- Ohjelmoinnin oppiminen ei ole helppoa. Tästä syystä ohjelmoinnin opetuksenteoreettinen ja käytännön edistäminen hyödyttää paitsi nykyisin ohjelmointia opettavia, myös opiskelijoita. Jotta opiskelijat voivat saavuttaa maksimaalisenhyödyn opiskelustaan, opettajan täytyy voida tunnistaa ne opiskelijat, joille ohjelmoinnin opiskelu tuottaa hankaluuksia. Oppimisanalytiikka tarjoaa tähän mahdollisuuden. Tämä väitöskirja esittelee tavan mallintaa ohjelmoinnin opiskelijoidenkäyttäytymistä käyttämällä Markovin malleja. Ohjelmoijan käyttäytyminen toteuttaa Markovin ominaisuuden, sillä ohjelmoijan koodin ajoyrityksen onnistumiseen vaikuttaa ainoastaan ohjelmoijan senhetkinen taitotaso; aikaisemmilla yrityksillä ei ole vaikutusta tuleviin kertoihin. Malli rakennetaan käyttämällä tilakonetta, jonka jokainen tila vastaa ohjelmointiprosessin vaihetta. Tilakoneessa on yhteensä kahdeksan eri tilaa ja 29 erilaista tilan muutosmahdollisuutta. Tilakoneesta lasketaan opiskelijaa vastaava Markovin ketju, mitä voidaan käyttää esimerkiksi koneoppimisalgoritmien kanssa. Dataa tähän väitöskirjaan kerättiin yhteensä viidestä ohjelmoinninperuskurssista, joissa käytettiin joko Java- tai Python-ohjelmointikieltä. Opiskelijoita kursseilla oli yhteensä 1174. Opiskelijat tekivät yhteensä 544-835 ohjelmointitehtävän palautusta 411 ohjelmointitehtävään. Kaikki ohjelmointikurssit pidettiin Turussa, vuosina 2017-2021 Tämä väitöskirja tarjoaa teoreettisen pohjan ohjelmoinnin opiskelijoidenmallintamiseen (Markovin mallit) ja tarjoaa menetelmän, jolla Markovin malleja käyttämällä voi mallintaa ohjelmoinnin opiskelijoita. Malliin sovelletaan vain ohjaamattomia koneoppimismenetelmiä, erityisesti K-Means clustering -algoritmia. Tässä väitöskirjassa osoitan myös teoreettisen mallin muutamia käytännönsovelluksia luokittelemalla opiskelijoita samoja ominaisuuksia sisältäviin luokkiin. Malli opetetaan erottelemaan opiskelijat kolmeen ryhmään: hyvin, keskiverrosti ja huonosti pärjääviin. Mallia sovelletaan onnistuneesti myös tunnistamaan käytetty ohjelmointikieli käyttämällä vain tilakoneen tilasiirtymiä

    Apply Small Teaching Tactics in an Introductory Programming Course: Impact on Learning Performance

    Get PDF
    Small teaching approaches are well-structured, incremental teaching improvement techniques supported by research in cognitive science, memory, and learning. I systematically implement a series of small teaching activities in an introductory programming course to tackle the teaching and learning challenges faced by instructors and students. The small teaching activities are designed to promote effective learning strategies such as knowledge retrieval, spacing-out practice, and interleaving learning. I examine the impact of such approaches on students’ performance through comparative analyses. The test results indicate that small teaching approaches are effective in improving students’ lower- and higher-level thinking skills and help boost students’ long-term knowledge retention. Because the small teaching approaches are flexible and easy to implement, instructors teaching technical information systems topics can quickly integrate at least some small teaching activities into their classes

    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

    Portfolio for GEOL 488/888: Groundwater Geology

    Get PDF
    Groundwater Geology is a course that draws undergraduate and graduate students from multiple units, including the College of Arts and Sciences, Institute for Agriculture and Natural Resources, and Civil and Environmental Engineering. The course material focuses on groundwater as a resource, and includes the use of computer programming (Python programming language) to analyze groundwater data. Many students who enroll in the course are new to either geosciences or Python, despite the fact that it is an advanced course. The course has been redesigned recently to include materials suitable for a groundwater engineering course, because it is newly offered with sections listed by the Department of Civil and Environmental Engineering. This has provided opportunities for course updates, but also challenges due to the hybrid nature of engineering classes, since the department is split between two campuses. By focusing on course objectives and using backward design for assignments and assessments, the Spring 2023 student cohort was successful in mastering the course materials and made excellent strides in applying Python programming to groundwater applications

    Analysis of the learning object-oriented programming factors

    Get PDF
    Students often feel overwhelmed by object-oriented programming courses. They find it difficult and complex to learn, requiring a high cognitive load to use the concepts in coding. These issues lead to demotivation in learning programming. This research aims to identify and verify factors that contribute to learning object-oriented programming from two perspectives: interviews and surveys. A literature review was conducted to identify these factors, followed by interviews with five experts who have been teaching object-oriented programming for over ten years to confirm them. Based on the interview results, a questionnaire was developed and administered to 31 bachelor students and 19 lecturers with master’s or doctorate degrees in computer science. The responses indicated that the identified factors were acceptable, with scores ranging from 3.74 to 4.65. The outcomes of this study are a set of factors that should be considered in a programming environment to improve the teaching and learning of object-oriented programming and make it more accessible and engaging for students

    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

    Automated Feedback for Learning Code Refactoring

    Get PDF
    • …
    corecore