864 research outputs found

    Emergent requirements for supporting introductory programming

    Get PDF
    The problems associated with learning and teaching first year University Computer Science (CS1) programming classes are summarized showing that various support tools and techniques have been developed and evaluated. From this review of applicable support the paper derives ten requirements that a support tool should have in order to improve CS1 student success rate with respect to learning and understanding

    Links between the personalities, styles and performance in computer programming

    Get PDF
    There are repetitive patterns in strategies of manipulating source code. For example, modifying source code before acquiring knowledge of how a code works is a depth-first style and reading and understanding before modifying source code is a breadth-first style. To the extent we know there is no study on the influence of personality on them. The objective of this study is to understand the influence of personality on programming styles. We did a correlational study with 65 programmers at the University of Stuttgart. Academic achievement, programming experience, attitude towards programming and five personality factors were measured via self-assessed survey. The programming styles were asked in the survey or mined from the software repositories. Performance in programming was composed of bug-proneness of programmers which was mined from software repositories, the grades they got in a software project course and their estimate of their own programming ability. We did statistical analysis and found that Openness to Experience has a positive association with breadth-first style and Conscientiousness has a positive association with depth-first style. We also found that in addition to having more programming experience and better academic achievement, the styles of working depth-first and saving coarse-grained revisions improve performance in programming.Comment: 27 pages, 6 figure

    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

    Fabrication, structure and properties of epoxy/metal nanocomposites

    Get PDF
    Gd2O3 nanoparticles surface-modiïŹed with IPDI were compounded with epoxy. IPDI provided an anchor into the porous Gd2O3 surface and a bridge into the matrix, thus creating strong bonds between matrix and Gd2O3. 1.7 vol.-% Gd2O3 increased the Young’s modulus of epoxy by 16–19%; the surface-modiïŹed Gd2O3 nanoparticles improved the critical strain energy release rate by 64.3% as compared to 26.4% produced by the unmodiïŹed nanoparticles. The X-ray shielding efïŹciency of neat epoxy was enhanced by 300–360%, independent of the interface modiïŹcation. Interface debonding consumes energy and leads to crack pinning and matrix shear banding; most fracture energy is consumed by matrix shear banding as shown by the large number of ridges on the fracture surface

    Expectation incongruence in music and code reading: The eye-tracking approach

    Get PDF
    Humans create and use different kinds of languages in order to store, view, and convey various types of information. Natural languages, such as English, allow people to communicate with each other in everyday and professional contexts. In contrast, symbolic languages, such as Western music notation or programming languages, enable people to make use of technical devices like musical instruments or computers. Research on the eye movements of expert musicians and programmers has revealed certain similarities in how these symbolic languages are read: unlike text reading, experts read music and code with more regressive eye movements. The current dissertation is the first project that explores music and code reading together. It focuses on one of the aspects of music and code reading that is equally important for both symbolic languages—the skill of working with unexpected information from a notation. In music and programming, this skill is especially required in tasks such as handling surprising melodic patterns and debugging, respectively. This dissertation had three main aims: (1) theoretical exploration of similarities and differences in creating expectations that help with pattern recognition in music and programming; (2) development (in music reading) and creation (in code reading) of research methodologies that can be applied in research on incongruent patterns; and (3) exploration of the cognitive processing of incongruent notation in experienced music readers and one experienced code reader. Surprising elements in familiar patterns hamper their recognition. Article I presents a theoretical exploration of the similarities and differences in building expectations that allow pattern recognition in music and programming. The proposed prediction model, which serves as the solution to Aim 1, includes three components that are common for both music and programming: (1) knowledge of language systems, (2) knowledge of meaning, and (3) knowledge of context. In addition, it also contains two components that differ for music and programming: (4) translation of information and (5) temporal and motor requirements. Experiments presented in this dissertation can be considered to be the first steps toward looking at certain components of the proposed prediction model in detail when prediction works normally (congruent notation) and when prediction is violated (incongruent notation). In order to study the reading of surprising incongruent patterns in music and code, special experimental settings, which provide the solution to Aim 2, were developed for music reading and created for code reading. Hence, the selected setup for the music reading study was based on a prior study (Penttinen et al., 2015), where incongruences were introduced in the “Mary Had a Little Lamb” melody and all music performances were temporarily controlled using a metronome. Experiment 1 developed this set-up by inserting incongruent notes into two different tonalities and by asking participants to play on a piano or sing from the notation. Thus, the music reading experiment focused on the first, second, fourth, and fifth components of the proposed model in music reading. It explored how the meaning of congruent and incongruent musical symbols is processed by experienced music readers. In addition, it also explored the translation of music information into two different performance ways (singing and playing piano) that have different motor requirements. Combining three different eye movement parameters allowed the researcher to describe different aspects of the cognitive processing of incongruent music reading—the temporal aspect, with the help of the eye-time span parameter (ETS), the cognitive effort aspect with the help of the mean pupil size parameter measured only in first-pass fixations, and the attention aspect with the help of the first-pass fixation duration. Experiment 2 on code reading was carefully designed on the basis of the music reading study. Consequently, incongruences were introduced in different parts of the familiar notation. The Bubble sort algorithm—a well-known sorting algorithm—was chosen as an analogue of the “Mary Had a Little Lamb” melody in programming. As in the music reading study, all code reading performances were temporarily controlled. The case code study provided some insights into the first and second components of the proposed model in programming by investigating how an experienced programmer reads sorting algorithms with and without surprising patterns. It particularly focuses on the phenomenon of an experienced reader overlooking the surprising pattern, which is considered to be the original one instead so-called proof-readers’ error. In addition, this study explored the issue of the unit of code reading analysis by comparing two different options: lines and elements. The study introduced saccade velocity as a parameter of cognitive effort for the incongruent code reading analysis. Research findings from these experimental studies provided the solution to Aim 3 and revealed that—in both music and code reading—incongruent patterns in the notation led to changes in fixation and cognitive effort parameters (pupil size and saccadic velocity). In contrast to code reading, strict temporal requirements for the processing of incongruence exist in music reading. The application of the eye-time span (ETS) parameter that describes the distance between the performer’s gaze and musical time, allowed the researcher to investigate the temporal aspect of incongruence processing in the music reading experiment. Hence, experienced readers had longer ETS when they approached the incongruent part of the notation and shorter ETS when they were in the process of struggling with the incongruent part. In addition to incongruent reading, the difference in the performance mode of the same music task associated with the translation of information and motor requirements was studied in the music reading experiment by comparing singing and playing from music scores. Despite the fact that the participants played incongruent melodies better than they sang them, the analysis of eye movement parameters allowed the researcher to discover that singing might be less cognitively demanding than playing. These findings are discussed within the proposed theoretical model of prediction and associated expertise theories.Odotusten vastaisten symbolien lukeminen: katseenseurantatutkimus nuotin- ja koodinluvusta Ihmiset luovat ja kĂ€yttĂ€vĂ€t erilaisia kieliĂ€ tallentaakseen, tarkastellakseen ja vĂ€littÀÀkseen informaatiota. Luonnolliset kielet, kuten englanti, mahdollistavat ihmisten vĂ€lisen kommunikaation arkisissa ja ammatillisissa tilanteissa. Sen sijaan symboliset kielet, kuten lĂ€nsimainen nuottikirjoitus tai ohjelmointikielet, mahdollistavat erilaisten laitteiden, kuten soittimien tai tietokoneiden, operoinnin. Taitavien muusikkojen ja koodinlukijoiden silmĂ€nliikkeiden tutkimus on paljastanut joitakin samankaltaisuuksia siitĂ€, miten nĂ€itĂ€ kahta symbolikieltĂ€ luetaan: toisin kuin tekstin lukemisessa, taitavat nuotin- ja koodinlukijat tekevĂ€t enemmĂ€n regressiivisiĂ€, eli taaksepĂ€in suuntautuvia silmĂ€nliikkeitĂ€. TĂ€mĂ€ vĂ€itöstutkimus on ensimmĂ€inen tutkimushanke, jossa tarkastellaan nuotin- ja koodinlukua rinnakkain. Tutkimus keskittyy tiettyyn, molemmissa symbolikielissĂ€ tĂ€rkeÀÀn piirteeseen, eli taitoon selvitĂ€ lukemisen aikana notaatiossa havaittuun yllĂ€ttĂ€vÀÀn informaatioon. SekĂ€ musiikin ettĂ€ ohjelmoinnin aloilla tĂ€tĂ€ taitoa tarvitaan silloin, kun lukijan tĂ€ytyy kĂ€sitellĂ€ yllĂ€ttĂ€viĂ€ melodisia kuvioita musiikkikappaletta lukiessaan tai etsiĂ€ virheitĂ€ koodista. TĂ€llĂ€ vĂ€itöstutkimuksella oli kolme pÀÀtavoitetta: (1) teoreettinen pohdinta nuotin- ja koodinluvun yhtĂ€lĂ€isyyksistĂ€ ja eroavaisuuksista ja erityisesti siitĂ€, miten taitavat lukijat muodostavat ennakko-oletuksia lukemastaan symbolien tunnistamisen helpottamiseksi; (2) menetelmien kehittĂ€minen (nuotinluvussa) ja luominen (koodinluvussa) inkongruenttien, eli epĂ€yhdenmukaisten, kuvioiden lukemisen tutkimukseen; ja (3) taitavien nuotinlukijoiden ja yhden taitavan koodinlukijan kognitiivisen prosessoinnin tutkiminen silloin, kun lukijat kĂ€sittelevĂ€t inkongruenttia informaatiota. YllĂ€ttĂ€vĂ€t elementit tutussa visuaalisessa materiaalissa vaikeuttavat kyseessĂ€ olevan materiaalin prosessointia. Artikkelissa I pohditaan nuotin- ja koodinluvun teoreettisia eroja ja eroavaisuuksista ja sitĂ€, miten taitavat lukijat muodostavat ennakko-oletuksia lukiessaan. Ehdotettu ennustusmalli, jonka avulla vastataan pÀÀtavoitteeseen 1, sisĂ€ltÀÀ kolme molemmille symbolikielille yhteistĂ€ komponenttia: (1) tiedon kielijĂ€rjestelmĂ€stĂ€, (2) tiedon merkityksestĂ€ ja (3) tiedon kontekstista. TĂ€mĂ€n lisĂ€ksi malli sisĂ€ltÀÀ kaksi komponenttia, joissa nuotin- ja koodinluku eroavat toisistaan: (4) informaation kÀÀntĂ€minen laitteelle ja (5) temporaaliset ja motoriset vaatimukset. TĂ€ssĂ€ vĂ€itöstutkimuksessa esiteltĂ€vĂ€t empiiriset osahankkeet olivat ensiaskelia ennustusmallin komponenttien tutkimuksessa. Kahdessa osahankkeessa tarkasteltiin yksityiskohtaisesti tilanteita, joissa ennakko-oletuksia voi hyödyntÀÀ tavalliseen tapaan (kongruentti notaatio) ja kun odotukset eivĂ€t toteudu (inkongruentti notaatio). TĂ€ssĂ€ vĂ€itöstutkimuksessa kehitettiin koeasetelmia nuotin- ja koodinluvun aikaisten, yllĂ€ttĂ€vien ja inkongruenttien kuvioiden lukemisen tutkimusta varten (pÀÀtavoite 2). Nuotinlukuaiheinen koeasetelma pohjautui aikaisempaan tutkimukseen (Penttinen et al., 2015), jossa epĂ€yhdenmukaisuuksia sijoitettiin tuttuun ”Maijall’ oli karitsa” –melodiaan ja soittosuoritusten ajoitusta kontrolloitiin metronomin avulla. Osatutkimus 1 kehitti tĂ€tĂ€ asetelmaa edelleen esittĂ€mĂ€llĂ€ tutun kappaleen osallistujille kahdessa eri sĂ€vellajissa ja pyytĂ€mĂ€llĂ€ osallistujia toteuttamaan melodia kahdella eri tavalla, soittaen ja laulaen. Osatutkimus 1 keskittyi siis ennustusmallin ensimmĂ€iseen, toiseen, neljĂ€nteen ja viidenteen komponenttiin nuotinlukemisen nĂ€kökulmasta. Osatutkimuksessa 1 tutkittiin kuinka taitavat nuotinlukijat prosessoivat kongruenttien ja inkongruenttien nuottisymbolien merkityksiĂ€. TĂ€mĂ€n lisĂ€ksi osahanke selvitti sitĂ€, miten nuottiinformaatio kÀÀnnettiin kahdelle motorisilta vaatimuksiltaan erilaiselle ”soittimelle” (pianonsoitto ja laulaminen). Kognitiivisia prosesseja inkongruentin materiaalin lukemisen aikana kuvailtiin kolmen eri silmĂ€nliikemuuttujan turvin: lukuprosessin ajallista etenemistĂ€ selvitettiin eye-time span –mittarin (ETS) avulla, kognitiivista työmÀÀrÀÀ mittaamalla pupillin koon vaihtelua, ja fiksaatioiden kestot kertoivat huomion kohdistumisesta notaation eri osiin ensilukemisen aikana. Koodinlukuun keskittyvĂ€ osatutkimus 2 suunniteltiin osatutkimuksen 1 koeasetelman pohjalta ja epĂ€yhdenmukaisuudet sijoitettiin jĂ€lleen tuttuun notaatioon. Koodinlukukokeessa nuotinlukukokeen ”Maijall’ oli karitsa” –melodian tilalle valittiin hyvin tunnettu kuplalajittelualgoritmi, ja myös koodinlukutehtĂ€vĂ€ssĂ€ kontrolloitiin ajankĂ€yttöÀ. Tapaustutkimuksessa selvitettiin, miten kokenut ohjelmoija luki lajittelualgoritmia silloin kun siinĂ€ joko oli tai ei ollut inkongruentteja kohtia. NĂ€in voitiin tarkastella ennustusmallin ensimmĂ€istĂ€ ja toista komponenttia koodinlukemisen nĂ€kökulmasta. Tapaustutkimus keskittyi erityisesti tilanteeseen, jossa kokenut lukija ohitti yllĂ€ttĂ€vĂ€t elementit notaatiossa ja tulkitsi inkongruentin algoritmin oikeaksi ja alkuperĂ€iseksi (ns. proof-readers’ error). TĂ€mĂ€n lisĂ€ksi osatutkimuksessa 2 testattiin koodinlukututkimuksiin sopivia analyysiyksiköitĂ€ vertaamalla kahta vaihtoehtoa, rivejĂ€ ja elementtejĂ€, ja esiteltiin sakkadien nopeus kognitiivisen työmÀÀrĂ€n tarkasteluun sopivana, koodinlukututkimuksille uutena mittarina. Osatutkimusten 1 ja 2 perusteella vastattiin pÀÀtavoitteeseen 3. Osatutkimuksissa selvisi, ettĂ€ sekĂ€ nuotin- ettĂ€ koodinlukutilanteissa inkongruentit kohdat notaatiossa johtivat muutoksiin fiksaatio- ja kognitiivisen työmÀÀrĂ€n mittareissa (pupillin koko ja sakkadin nopeus). Toisin kuin koodinluvussa, tiukat temporaaliset rajoitteet sÀÀtelevĂ€t inkongruenssin prosessointia nuotinluvun aikana. TĂ€stĂ€ syystĂ€ nuotinlukukokeessa hyödynnettiin ETS-mittaria, joka kertoo katseen kohdan ja musiikillisen ajan vĂ€lisestĂ€ etĂ€isyydestĂ€. Taitavien nuotinlukijoiden ETS oli pidempi, kun he lukiessaan lĂ€hestyivĂ€t inkongruenttia kohtaa, ja lyhyempi, kun he soittivat tĂ€tĂ€ samaista kohtaa. Inkongruentin kohdan lukemisen lisĂ€ksi tutkittiin kahta erilaista esitystapaa (laulaminen ja soittaminen), sillĂ€ esitystapa liittyy nuotti-informaation kÀÀntĂ€miseen oikeiksi motoriksiksi liikkeiksi. Vaikka osallistujat soittivat inkongruentit melodiat paremmin kuin he lauloivat ne, silmĂ€nliikkeiden tarkastelu osoitti ettĂ€ laulaminen saattoi silti olla osallistujille kognitiivisesti vĂ€hemmĂ€n vaativaa kuin soittaminen. NĂ€itĂ€ havaintoja pohditaan vĂ€itöskirjatutkimuksessa esitetyn ennustusmallin sekĂ€ asiantuntijuusteorioiden valossa

    Debugging: The Key to Unlocking the Mind of a Novice Programmer?

    Get PDF
    Novice programmers must master two skills to show lasting success: writing code and, when that fails, the ability to debug it. Instructors spend much time teaching the details of writing code but debugging gets significantly less attention. But what if teaching debugging could implicitly teach other aspects of coding better than teaching a language teaching debugging? This paper explores a new theoretical framework, the Theory of Applied Mind for Programming (TAMP), which merges dual process theory with Jerome Bruner’s theory of representations to model the mind of a programmer. TAMP looks to provide greater explanatory power in why novices struggle and suggest pedagogy to bridge gaps in learning. This paper will provide an example of this by reinterpreting debugging literature using TAMP as a theoretical guide. Incorporating new view theoretical viewpoints from old studies suggests a “debugging-first” pedagogy can supplement existing methods of teaching programming and perhaps fill some of the mental gaps TAMP suggests hamper novice programmers
    • 

    corecore