107 research outputs found

    Emergence of computing education as a research discipline

    Get PDF
    This thesis investigates the changing nature and status of computing education research (CER) over a number of years, specifically addressing the question of whether computing education can legitimately be considered a research discipline. The principal approach to addressing this question is an examination of the published literature in computing education conferences and journals. A classification system was devised for this literature, one goal of the system being to clearly identify some publications as research – once a suitable definition of research was established. When the system is applied to a corpus of publications, it becomes possible to determine the proportion of those publications that are classified as research, and thence to detect trends over time and similarities and differences between publication venues. The classification system has been applied to all of the papers over several years in a number of major computing education conferences and journals. Much of the classification was done by the author alone, and the remainder by a team that he formed in order to assess the inter-rater reliability of the classification system. This classification work led to two subsequent projects, led by Associate Professor Judy Sheard and Professor Lauri Malmi, that devised and applied further classification systems to examine the research approaches and methods used in the work reported in computing education publications. Classification of nearly 2000 publications over ranges of 3-10 years uncovers both strong similarities and distinct differences between publication venues. It also establishes clear evidence of a substantial growth in the proportion of research papers over the years in question. These findings are considered in the light of published perspectives on what constitutes a discipline of research, and lead to a confident assertion that computing education can now rightly be considered a discipline of research

    Efficient Use of Teaching Technologies with Programming Education

    Get PDF
    Learning and teaching programming are challenging tasks that can be facilitated by using different teaching technologies. Visualization systems are software systems that can be used to help students in forming proper mental models of executed program code. They provide different visual and textual cues that help student in abstracting the meaning of a program code or an algorithm. Students also need to constantly practice the skill of programming by implementing programming assignments. These can be automatically assessed by other computer programs but parts of the evaluation need to be assessed manually by teachers or teaching assistants.There are a lot of existing tools that provide partial solutions to the practical problems of programming courses: visualizing program code, assessing student programming submissions automatically or rubrics that help keeping manual assessment consistent. Taking these tools into use is not straightforward. To succeed, the teacher needs to find the suitable tools and properly integrate them into the course infrastructure supporting the whole learning process. As many programming courses are mass courses, it is a constant struggle between providing sufficient personal guidance and feedback while retaining a reasonable workload for the teacher.This work answers to the question "How can the teaching of programming be effectively assisted using teaching technologies?" As a solution, different learning taxonomies are presented from Computer Science perspective and applied to visualization examples so the examples could be used to better support deeper knowledge and the whole learning process within a programming course. Then, different parts of the assessment process of programming assignments are studied to find the best practices in supporting the process, especially when multiple graders are being used, to maintain objectivity, consistency and reasonable workload in the grading.The results of the work show that teaching technologies can be a valuable aid for the teacher to support the learning process of the students and to help in the practical organization of the course without hindering the learning results or personalized feedback the students receive from their assignments. This thesis presents new visualization categories that allow deeper cognitive development and examples on how to integrate them efficiently into the course infrastructure. This thesis also presents a survey of computer-assisted assessment tools and assessable features for teachers to use in their programming assignments. Finally, the concept of rubric-based assessment tools is introduced to facilitate the manual assessment part of programming assignments

    What does this Python code do?: An exploratory analysis of novice students’ code explanations

    Get PDF
    Motivation. Code reading skills are important for comprehension. Explain-in-plain-English tasks (EiPE) are one type of reading exercises that show promising results on the ability of such exercises to differentiate between particular levels of code comprehension. Code reading/explaining skills also correlate with code writing skills. Objective. This paper aims to provide insight in what novice students express in their explanations after reading a piece of code, and what these insights can tell us about how the students comprehend code. Method. We performed an exploratory analysis on four reading assignments extracted from a university-level beginners course in Python programming. We paid specific attention to 1) the core focus of student answers, 2) elements of the code that are often included or omitted, and 3) errors and misconceptions students may present. Results. We found that students prioritize the output that is generated by print-statements in a program. This is indication that these statements may have the ability to aid students make sense of code. Furthermore, students appear to be selective about which elements they find important in their explanation. Assigning variables and asking input was less often included, whereas control-flow elements, print statements and function definitions were more often included. Finally, students were easily confused or distracted by lines of code that seemed to interfere with the newly learned programming constructs. Also domain knowledge (outside of programming) both positively and negatively interfered with reading and interpreting the code. Discussion. Our results pave the way towards a better understanding of how students understand code by reading and of how an exercise containing self-explanations after reading, as a teaching instrument, may be useful to both teachers and students in programming education.Computer Systems, Imagery and Medi

    Retention in Introductory Programming

    Get PDF
    The introductory programming course is one of the very first courses that computer science students encounter. The course is challenging not only because of the content, but also due to the challenges related to finding a place in a new community. Many have little knowledge of what to expect from university studies, some struggle to adjust their study behavior to match the expected pace, and a few simply cannot attend instruction due to e.g. family or work constraints. As a consequence, a considerable number of students end up failing the course, or pass the course with substandard knowledge. This leads to students failing to proceed in their studies at a desirable pace, to students who struggle with the subsequent courses, and to students who completely drop out from their studies. This thesis explores the issue of retention in introductory programming courses through multiple viewpoints. We first analyze how the teaching approaches reported in literature affect introductory programming course pass rates. Then, changes on the retention at the University of Helsinki are studied using two separate approaches. The first approach is the use of a contemporary variant of Cognitive Apprenticeship called the Extreme Apprenticeship method, and the second approach is the use of a massive open online course (MOOC) in programming for recruiting students before they enter their university studies. Furthermore, data from an automatic assessment system implemented for the purposes of this thesis is studied to determine how novices write their first lines of code, and what factors contribute to the feeling of difficulty in learning programming. On average, the teaching approaches described in the literature improve the course pass rates by one third. However, the literature tends to neglect the effect of intervention on the subsequent courses. In both studies at the University of Helsinki, retention improved considerably, and the students on average also fare better in subsequent courses. Finally, the data that has been gathered with the automatic assessment system provides an excellent starting point for future research.Ohjelmointi on nykyajan käsityöläistaito, jolle on akuutti tarve työelämässä. Tämän taidon opettelua harkitseva tietää harvoin, kuinka riippuvainen yhteiskuntamme on ohjelmoinnin tuotoksista eli ohjelmistoista. Ilman ohjelmointia esimerkiksi yhteydenpito, kaupankäynti, matkustaminen ja terveydenhuolto olisivat heikommalla tasolla. Puhelimet eivät toimisi, internettiä ei olisi, eikä lääketeollisuus pystyisi käsittelemään yhtä suuria datamassoja uusia parannuskeinoja etsiessä. Kukaan ei olisi kirjoittanut ohjelmaa, joka auttoi avaruuteen pääsemisessä. Väitöskirjassa tarkastellaan ohjelmoinnin opetusmenetelmiä ja niiden toimivuutta korkeakouluissa sekä esitellään kognitiiviseen oppipoikamalliin (Cognitive Apprenticeship) perustuva “ajatuskäsityöläisten” opetusmenetelmä tehostettu kisällioppiminen (Extreme Apprenticeship). Tehostetussa kisällioppimisessa oppimista edesauttava yksilöllinen ohjaus on mahdollista skaalata satoja opiskelijoita sisältäville kursseille. Väitöskirjatyössä ehdotetaan lisäksi kaikille avoimen verkkokurssin (MOOC) käyttöä yliopisto-opiskelijoiden valintaan sekä tarkastellaan tällaisen valintaväylän toimivuutta tietojenkäsittelytieteen alalla. Väitöskirja käsittelee myös ohjelmointitehtävien automaattista arviointia ja esittelee tähän tarkoitetun Test My Code -järjestelmän, jota voidaan käyttää askeleittaisten ohjeiden ja palautteen antamiseen aloitteleville ohjelmoijille sekä tiedon keräämiseen ohjelmointiprosessissa esiintyvistä ongelmista. Tällaista tietoa voidaan tutkia oppimisanalytiikan menetelmin. Väitöskirjassa tarkastellaan myös aloittelevien ohjelmoijien ensimmäisten ohjelmien kirjoittamisessa esiintyviä ongelmia sekä esitellään ohjelmointitehtävien vaikeuden ennustamiseen sopivia menetelmiä

    Utilizing educational technology in computer science and programming courses : theory and practice

    Get PDF
    There is one thing the Computer Science Education researchers seem to agree: programming is a difficult skill to learn. Educational technology can potentially solve a number of difficulties associated with programming and computer science education by automating assessment, providing immediate feedback and by gamifying the learning process. Still, there are two very important issues to solve regarding the use of technology: what tools to use, and how to apply them? In this thesis, I present a model for successfully adapting educational technology to computer science and programming courses. The model is based on several years of studies conducted while developing and utilizing an exercise-based educational tool in various courses. The focus of the model is in improving student performance, measured by two easily quantifiable factors: the pass rate of the course and the average grade obtained from the course. The final model consists of five features that need to be considered in order to adapt technology effectively into a computer science course: active learning and continuous assessment, heterogeneous exercise types, electronic examination, tutorial-based learning, and continuous feedback cycle. Additionally, I recommend that student mentoring is provided and cognitive load of adapting the tools considered when applying the model. The features are classified as core components, supportive components or evaluation components based on their role in the complete model. Based on the results, it seems that adapting the complete model can increase the pass rate statistically significantly and provide higher grades when compared with a “traditional” programming course. The results also indicate that although adapting the model partially can create some improvements to the performance, all features are required for the full effect to take place. Naturally, there are some limits in the model. First, I do not consider it as the only possible model for adapting educational technology into programming or computer science courses. Second, there are various other factors in addition to students’ performance for creating a satisfying learning experience that need to be considered when refactoring courses. Still, the model presented can provide significantly better results, and as such, it works as a base for future improvements in computer science education.Ohjelmoinnin oppimisen vaikeus on yksi harvoja asioita, joista lähes kaikki tietojenkäsittelyn opetuksen tutkijat ovat jokseenkin yksimielisiä. Opetusteknologian avulla on mahdollista ratkaista useita ohjelmoinnin oppimiseen liittyviä ongelmia esimerkiksi hyödyntämällä automaattista arviointia, välitöntä palautetta ja pelillisyyttä. Teknologiaan liittyy kuitenkin kaksi olennaista kysymystä: mitä työkaluja käyttää ja miten ottaa ne kursseilla tehokkaasti käyttöön? Tässä väitöskirjassa esitellään malli opetusteknologian tehokkaaseen hyödyntämiseen tietojenkäsittelyn ja ohjelmoinnin kursseilla. Malli perustuu tehtäväpohjaisen oppimisjärjestelmän runsaan vuosikymmenen pituiseen kehitys- ja tutkimusprosessiin. Mallin painopiste on opiskelijoiden suoriutumisen parantamisessa. Tätä arvioidaan kahdella kvantitatiivisella mittarilla: kurssin läpäisyprosentilla ja arvosanojen keskiarvolla. Malli koostuu viidestä tekijästä, jotka on otettava huomioon tuotaessa opetusteknologiaa ohjelmoinnin kursseille. Näitä ovat aktiivinen oppiminen ja jatkuva arviointi, heterogeeniset tehtävätyypit, sähköinen tentti, tutoriaalipohjainen oppiminen sekä jatkuva palautesykli. Lisäksi opiskelijamentoroinnin järjestäminen kursseilla ja järjestelmän käyttöönottoon liittyvän kognitiivisen kuorman arviointi tukevat mallin käyttöä. Malliin liittyvät tekijät on tässä työssä lajiteltu kolmeen kategoriaan: ydinkomponentteihin, tukikomponentteihin ja arviontiin liittyviin komponentteihin. Tulosten perusteella vaikuttaa siltä, että mallin käyttöönotto parantaa kurssien läpäisyprosenttia tilastollisesti merkittävästi ja nostaa arvosanojen keskiarvoa ”perinteiseen” kurssimalliin verrattuna. Vaikka mallin yksittäistenkin ominaisuuksien käyttöönotto voi sinällään parantaa kurssin tuloksia, väitöskirjaan kuuluvien tutkimusten perusteella näyttää siltä, että parhaat tulokset saavutetaan ottamalla malli käyttöön kokonaisuudessaan. On selvää, että malli ei ratkaise kaikkia opetusteknologian käyttöönottoon liittyviä kysymyksiä. Ensinnäkään esitetyn mallin ei ole tarkoituskaan olla ainoa mahdollinen tapa hyödyntää opetusteknologiaa ohjelmoinnin ja tietojenkäsittelyn kursseilla. Toiseksi tyydyttävään oppimiskokemukseen liittyy opiskelijoiden suoriutumisen lisäksi paljon muitakin tekijöitä, jotka tulee huomioida kurssien uudelleensuunnittelussa. Esitetty malli mahdollistaa kuitenkin merkittävästi parempien tulosten saavuttamisen kursseilla ja tarjoaa sellaisena perustan entistä parempaan opetukseen

    Effects of regular use of scalable, technology enhanced solution for primary mathematics education

    Get PDF
    Mathematics is one of the key subjects in any school curriculum and most teachers agree that mathematical skills are important for students to master. There is an abundance of research in learning mathematics and a consensus exists among researchers that technology can enhance the learning process. However, many factors need to be taken into consideration when introducing technology into teaching mathematics. Developing a more natural collaboration between learning technology experts, teachers, and students ensures all stakeholders are considered. Involving teachers early on helps develop enduring commitment to innovations and practical solutions. Moreover, creating a culture of collaboration between experts in the field and teachers brings to bear the best of what both worlds have to offer. This thesis synthesizes six papers and offers additional findings that focus on how technology experts can collaborate with elementary teachers to improve student learning outcomes. We focus on managing educational change in ways that improve the sustainability of innovations. We also explore how technical and teaching experts co-create effective lesson plans. In one of the six papers we collected and reported teachers’ responses to survey questions covering typical usage patterns on a platform. Teachers’ direct feedback was collected and incorporated to improve technical solutions. Moreover, one study was conducted abroad to measure the effect of culture on the teaching and learning process. Evidence of effectiveness of technologically enhanced lessons and corresponding homework was based on multiple studies in grades 1 - 3, covering 379 students. The effectiveness of educational technology was measured based on two variables: student performance in mathematics, based on the learning objectives specified in the curriculum, and arithmetic fluency measured by how rapidly and accurately students solved basic arithmetic operations. Statistically significant findings show that educational technology can improve two target variables when comparing students who did not use educational technology to students who did. An additional effect size analysis was conducted to verify and compare results with previous research. Based on these results, platform use produced the same or better effect than previous studies. Based on teacher feedback and user growth on the platform, we managed to integrate technology into the regular school classroom in meaningful and sustainable ways. We were clearly able to support teachers in their practice in a manner that resulted in noticeable student achievement gains. A survey revealed a need to emphasize new features that were introduced to the platform in teacher training programs. Teachers also reported having a positive attitude towards the platform and the initiative gained wide acceptance among their peers.Matematiikka on yksi tärkeimmistä kouluaineista pelkästään tuntimääräisesti mitattunakin. Matematiikan osaamista ja oppimista pidetään yleisesti tärkeänä ja arvostettuna taitona. Matematiikan oppimisesta on valtavasti tutkimusta ja tutkijoiden keskuudessa vallitsee yhteisymmärrys tietotekniikan positiivisista mahdollisuuksista edistää matematiikan oppimista. Tietotekniikan ja oppimisen vuorovaikutus on kuitenkin monisyinen vyyhti ja sen onnistunut hyödyntäminen vaatii tutkijoiden, opettajien ja oppilaiden välistä tiivistä ja vuorovaikutteista yhteistyötä. Uusien innovaatioiden ja kokeilujen onnistumiselle ja niihin sitoutumiselle luodaan vahva pohja, kun opettajat otetaan mukaan kehitystyöhön ensimetreiltä lähtien. Tällaisen tiiviin yhteistyökulttuurin vaaliminen mahdollistaa käytännön työn ja teorian vahvuuksien hyödyntämisen. Tämä väitöstyö koostuu kuudesta artikkelista. Artikkelit kuvaavat, kuinka tutkijat ja opettajat työskentelivät yhdessä parantaakseen oppilaiden matematiikan oppimista. Tavoitteenamme oli muuttaa koulun käytänteitä pitkäjänteisesti ja kestävällä tavalla. Tutkimme kuinka tutkijat ja opettajat pystyivät yhdessä luomaan onnistuneita ja tehokkaita oppimiskokonaisuuksia. Opettajat olivat koko ajan kehitystyön keskiössä. Yhdessä kuudesta artikkelista tutkittiin kyselytutkimuksen avulla opettajien kokemuksia ja käyttötottumuksia. Näitä vastauksia hyödynnettiin teknisessä kehitystyössä ja hyvien käytänteiden hiomisessa. Yksi väitöskirjan tutkimuksista tehtiin ulkomailla opetus- ja oppimiskulttuureista vaikutusten huomioimiseksi. Sähköisten oppituntien ja kotitehtävien vaikuttavuuden arviointi perustuu useisiin 1.-3. luokilla tehtyihin tutkimuksiin ja kaikkiaan 379 oppilaan vastauksiin. Sähköisten oppituntien vaikuttavuutta arvioitiin kahden eri mittarin perusteella. Ensin matematiikan taitojen perusteella, eli kuinka hyvin kunkin luokka-asteen oppimistavoitteet olivat täyttyneet ja myöhemmin myös laskusujuvuuden perusteella, eli kuinka nopeasti ja tarkasti oppilaat pystyivät laskemaan peruslaskutoimituksia. Tulokset osoittavat, että opetusteknologian avulla pystytään parantamaan oppilaiden suoriutumista edellä mainittujen osa-alueiden osalta verrattuna oppilaisiin, jotka eivät käyttäneet opetusteknologiaa. Tulokset olivat tilastollisesti merkitseviä. Näiden tulosten varmistamiseksi laskettiin vaikuttavuuden suuruus ja sitä verrattiin aiempiin alan tutkimuksiin. Tulosten perusteella sähköisillä oppitunneilla oli sama tai parempi vaikuttavuus kuin aiemmissa tutkimuksissa. Opettajien palautteiden ja kasvavan käyttäjämäärän perusteella voidaan sanoa, että onnistuimme tavoitteessamme integroida opetusteknologiaa mielekkäällä tavalla osaksi koulutyötä. Onnistuimme myös tukemaan ja auttamaan opettajia opetustyössään ja samalla merkittävästi parantamaan oppilaiden suoriutumista. Kyselytutkimuksen perusteella huomasimme, että uusien ominaisuuksien kouluttamiseen tulee kiinnittää enemmän huomiota. Samassa tutkimuksessa opettajat raportoivat olevansa tyytyväisiä alustaan ja sähköiset oppitunnit näyttävät saaneen vankan jalansijan suomalaisessa opettajakunnassa

    On Learning SQL:Disentangling concepts in Data Systems Education

    Get PDF

    From Legos and Logos to Lambda: A Hypothetical Learning Trajectory for Computational Thinking

    Get PDF
    This thesis utilizes design-based research to examine the integration of computational thinking and computer science into the Finnish elementary mathematics syllabus. Although its focus is on elementary mathematics, its scope includes the perspectives of students, teachers and curriculum planners at all levels of the Finnish school curriculum. The studied artifacts are the 2014 Finnish National Curriculum and respective learning solutions for computer science education. The design-based research (DBR) mandates educators, developers and researchers to be involved in the cyclic development of these learning solutions. Much of the work is based on an in-service training MOOC for Finnish mathematics teachers, which was developed in close operation with the instructors and researchers. During the study period, the MOOC has been through several iterative design cycles, while the enactment and analysis stages of the 2014 Finnish National Curriculum are still proceeding.The original contributions of this thesis lie in the proposed model for teaching computational thinking (CT), and the clarification of the most crucial concepts in computer science (CS) and their integration into a school mathematics syllabus. The CT model comprises the successive phases of abstraction, automation and analysis interleaved with the threads of algorithmic and logical thinking as well as creativity. Abstraction implies modeling and dividing the problem into smaller sub-problems, and automation making the actual implementation. Preferably, the process iterates in cycles, i.e., the analysis feeds back such data that assists in optimizing and evaluating the efficiency and elegance of the solution. Thus, the process largely resembles the DBR design cycles. Test-driven development is also recommended in order to instill good coding practices.The CS fundamentals are function, variable, and type. In addition, the control flow of execution necessitates control structures, such as selection and iteration. These structures are positioned in the learning trajectories of the corresponding mathematics syllabus areas of algebra, arithmetic, or geometry. During the transition phase to the new syllabus, in-service mathematics teachers can utilize their prior mathematical knowledge to reap the benefits of ‘near transfer’. Successful transfer requires close conceptual analogies, such as those that exist between algebra and the functional programming paradigm.However, the integration with mathematics and the utilization of the functional paradigm are far from being the only approaches to teaching computing, and it might turn out that they are perhaps too exclusive. Instead of the grounded mathematics metaphor, computing may be perceived as basic literacy for the 21st century, and as such it could be taught as a separate subject in its own right

    Purpose-first Programming: A Programming Learning Approach for Learners Who Care Most About What Code Achieves

    Full text link
    Introductory programming courses typically focus on building generalizable programming knowledge by focusing on a language’s syntax and semantics. Assignments often involve “code tracing” problems, where students perform close tracking of code’s execution, typically in the context of ‘toy’ problems. “Reading-first” approaches propose that code tracing should be taught early to novice programmers, even before they have the opportunity to write code. However, many learners do not perform code tracing, even in situations when it is helpful for other students. To learn more, I talked to novice programmers about their decisions to trace and not trace code. Through these studies, I identified both cognitive and affective factors related to learners’ motivation to trace. My research found that tracing activities can create a “perfect storm” for discouraging learners from completing them: they require high cognitive load, leading to a low expectation of success, while also being disconnected from meaningful code, resulting in low value for the task. These findings suggest that a new learning approach, where novices quickly and easily create or understand useful code without the need for deep knowledge of semantics, may lead to higher engagement. Many learners may not care about exactly how a programming language works, but they do care about what code can achieve for them. I drew on cognitive science and theories of motivation to describe a “purpose-first” programming pedagogy that supports novices in learning common code patterns in a particular domain. I developed a proof-of-concept ”purpose-first” programming curriculum using this method and evaluated it with non-major novice programmers who had a variety of future goals. Participants were able to complete scaffolded code writing, debugging, and explanation activities in a new domain (web scraping with BeautifulSoup) after a half hour of instruction. An analysis of the participants’ thinkalouds provided evidence the learners were thinking in terms of the patterns and goals that they learned with in the purpose-first curriculum. Overall, I found that these novices were motivated to continue learning with purpose-first programming. I found that these novices felt successful during purpose-first programming because they could understand and complete tasks. Novices perceived a lower cognitive load on purpose-first programming activities than many other typical learning activities, because, in their view, plans helped them apply knowledge and focus only on the most relevant information. Participants felt that what they were learning was applicable, and that the curriculum provided conceptual, high-level knowledge. For some participants, particularly conversational programmers who didn’t plan to program in their careers, this information was sufficient for their needs. Other participants felt that purpose-first programming was a starting point, from which they could move forward to gain a deeper understanding of how code works.PHDInformationUniversity of Michigan, Horace H. Rackham School of Graduate Studieshttp://deepblue.lib.umich.edu/bitstream/2027.42/167912/1/kicunn_1.pd
    corecore