Research School of Computer Science | - Designing ......learning computer science that they might...

34
Designing Teaching Materials for Musical Live-Coding Education Xinyu Hou (u5916376) COMP3740 Bachelor of Software Engineering (H) 20 October 2019 AUSTRALIAN NATIONAL UNIVERSITY College of Engineering and Computer Science

Transcript of Research School of Computer Science | - Designing ......learning computer science that they might...

Page 1: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

Designing Teaching Materials for Musical Live-Coding Education

Xinyu Hou (u5916376)

COMP3740

Bachelor of Software Engineering (H)

20 October 2019

AUSTRALIAN NATIONAL UNIVERSITY College of Engineering and Computer Science

Page 2: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  2  

Acknowledgement I would start by expressing my great gratitude to my supervisor Dr Ben Swift, who gave me the encouragement, patient guidance, help and opportunity during the whole process of this project. My great appreciations are also extended to Dr Weifa Liang for his valuable advice and assistance during the development of this project. I would also like to express my deep thanks to the whole Australian National University Laptop Ensemble group for their support with the enthusiastic participation and data collection.

Page 3: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  3  

Abstract Learning how to program is a difficult and challenging topic (for both the student and the teacher) in the computing education field [1]. In this report, we explore musical live coding as a context for, encouraging and motivating multidisciplinary novices to learn programming. We use a PRIMM (Predict-Run-Investigate-Modify-Make) pedagogical approach to construct tutorials and learning materials for the Extempore live-coding environment. These tutorials were used in an exploratory pilot study with students from the Australian National University Laptop Ensemble. Qualitative and quantitative methods were used to collect feedback from the participants. The results suggest that the PRIMM-style tutorial and tutorial materials might help novice programmers to understand programming concepts, promote discussions and collaborations at the tutorial, as well as increase multidisciplinary novices' interest in learning programming. Keywords - Introductory programming education, musical live coding, PRIMM pedagogical approach.

Page 4: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  4  

Table of Contents

Acknowledgement .................................................................................................................... 2

Abstract ..................................................................................................................................... 3

Introduction .............................................................................................................................. 7

Background .............................................................................................................................. 8

Interdisciplinary Education ............................................................................................................. 8

Pedagogical Approaches for Computer Science Education ......................................................... 9

The Study ................................................................................................................................ 11

Participants ..................................................................................................................................... 12

The PRIMM-Style Materials ......................................................................................................... 12

Study Design .................................................................................................................................... 13

Results ..................................................................................................................................... 14

Discussion ............................................................................................................................... 19

Limitations ...................................................................................................................................... 21

Future Work ................................................................................................................................... 21

Conclusion .............................................................................................................................. 21

Reference ................................................................................................................................ 23

Appendix ................................................................................................................................. 25

Appendix 1. The final project description. ................................................................................... 25

Appendix 2. Details of the study contract. ................................................................................... 26

Appendix 3. Description of artefacts produced. .......................................................................... 28

Appendix 4. Artifacts README file ............................................................................................ 29

Appendix 5. Feedback Survey for Extempore Tutorial .............................................................. 31

Appendix 6. Full summary of participants’ characteristics. ...................................................... 33

Page 5: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  5  

Appendix 7. The full feedback of PRIMM-style tutorial and tutorial materials. ..................... 34

Page 6: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  6  

Table of Figures

Fig. 1. Difficulties experienced and perceived when different experienced programmers were

learning the tutorial. ....................................................................................................................... 16

Fig. 2. Expectation and interest in musical live coding of both music and computer science

students. ........................................................................................................................................... 17

Fig. 3. Q7 Encouraged discussion and exchanging ideas. ........................................................... 18

Fig. 4. Q12 Overall, the material is helpful. ................................................................................. 19

Page 7: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  7  

Introduction The difficulties in teaching and learning introductory programming has been a common concern over the years. Novices struggle with the hardness of learning programming course, while they are feeling stressful and scared to learn the programming materials [2]. Another common phenomenon is that the dropout and failure rates are high in many introductory programming courses. Lots of novices’ difficulties could be caused by pedagogical strategies, learner’s attitudes and learning methods, as well as the natural difficulties of programming learning [3]. When the students are not able to deal with the natural programming difficulties, they might feel demotivated, and the feeling of demotivation could negatively influence student’s learning attitudes and universally cause negative learning outcomes [4]. It is challenging to choose appropriate pedagogical strategies and framework what will provide the novices with the best possible on learning outcomes and the most efficient studying environment in computer education [5]. Although Computing Education research community has done lots of pedagogical research on the programming pedagogy, this paper is focus on a specific programming context – musical live coding, as well as the value of musical live coding for teaching and learning introductory programming. Soosai Raj et al. [6] found that live-coding could help the beginners to easily understand the programming process as well as debugging process, as well as help students to get in touch with programming practices. Musical live-coding language is able to be easily used to teach basic programming concepts, and the musical elements in computing curriculum give students extra learning meaning and motivation [7]. In this report, a pedagogical approach named PRIMM is used to structure tutorials for teaching a musical live coding language named Extempore. The PRIMM-style tutorial materials were used in an exploratory pilot study which have been trialed with the students from the Australian National University Laptop Ensemble. PRIMM stands for: Predict, Run, Investigate, Modify and Make, and draws the attention from recent computer programming education research [8]. PRIMM constructs a scaffolding learning environment, as well as promotes the tutorial discussion. By following the PRIMM structure, learners could have more support to understand the programming concepts before they write their own program. This report shows the preliminary consequences of a pilot study for discussing whether the PRIMM pedagogical approach is feasible to teach musical live coding for multidisciplinary novice programmers. This report describes the background of the musical live coding education as well as some general programming pedagogical approaches. Based on the researches, the PRIMM pedagogical approach will be explored on musical live-coding education. The PRIMM-style tutorials for teaching the musical live-coding language - Extempore have been constructed, and the tutorial activities are trialed with the Australian National University Laptop Ensemble students. Through the qualitative and quantitative feedback gathered from the participants, this paper concludes that the PRIMM-style tutorial and learning materials might attract and motivate multidisciplinary students to learn programming in the musical live-coding context, help novice programmers to understand the programming concepts, as well as help to stimulate discussions and collaborations in the actively learning environment. The limitations and potential influences will also be discussed for contributing to the further larger-scale researches.

Page 8: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  8  

Background Teaching introductory programming courses is still an important and challenging topic in the computing education field. The methods of the fundamental programming teaching might significantly influence how the beginners perceive the computing programming [1]. Interdisciplinary programming could help students to connect various interests and passions from different disciplines. Musical live coding is a creative way to help computer science students develop their inherent interest in art and music, as well as music major students to tap the programming disciplinary that they might never have considered before. Teaching interdisciplinary programming could interest multi-disciplinary students to think both computationally and creatively [9]. Interdisciplinary Education Musical live coding education is an innovative interdisciplinary collaboration to teach computer programming between computer science and music. Heines, et al. [9] developed an interdisciplinary introductory education curriculum named Sound Thinking to allow both computer science students and music students to learn computational thinking through musical live coding. The interdisciplinary course that they conducted allow music major students could learn something about information technology while computer science students could learn music. They used the programming language, Scratch, for helping student to learn computing thinking through music. Scratch has a Sound category for learners to easily compose music by using the different components. One benefit that this study concluded is that the interdisciplinary collaboration helps multidisciplinary students to be more confident on learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses and aimed to connect computer science and the art at a Northeast USA university: the course format named hybrid was designed that all majors students are have the same coursework, while the course format called synchronized encouraged specialization for the different departments. hybrid is designed to encourage all the students to be able to learn individually and respond on all the course materials. But students could work individually as well as in the group, students could also value from the multidisciplinary collaborations. Because each department provide the general education credit for their students as well, the hybrid courses attracted a mixture of multiyear and multidisciplinary learners to participate. For the synchronized method, different departments students were encouraged to work on the joint project and complement each other with their different expertise from each department. Both computer science and art groups were surprised, inspired and appreciated each other by working with the cross-over teams. As the conclusion [10], hybrid course format force students to learn stuff that they are not familiar with. However, the unfamiliar contents were blended with what they have already skilled in and good at, so they could still develop some creative and expressive things on the new field based on what they have already known. While synchronized help students to delved deeper into their own discipline, but also offers their opportunity to see how their discipline related to other fields in the collaborative context [10]. Heines and Jeffers [11] also developed an attractive interdisciplinary performance projects to encourage both computer science and art freshman to explore their interested application fields earlier for their academic future. Students might not only work on their own disciplinary area,

Page 9: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  9  

but also learn from other areas. Each performance project includes many tasks, which are worked by different students. Multidisciplinary students need to ‘perform’ their own tasks by using their various knowledge, in order to contribute to the final projects. Heines and Jeffers [11] mentioned, comparing to the traditional computer science assignments, the performance or exhibitions could creatively invigorate the general computer science courses and encourage the interdisciplinary collaboration. Participants also mentioned that, because everyone is working on the different tasks, they are happy with that they could share their works and ideas with outsiders, as well as they could learn different skills by looking on other participants’ tasks and projects [11]. Inspired by the previous literature, we want to conduct a musical live-coding learning environment to attract and encourage multidisciplinary novices to learn programming. Same tutorial contents and learning materials will be used to all different disciplinary students, but students will also have the opportunities on developing their own programs. We hope the multidisciplinary novices could confidently learn and develop the knowledge that they are not familiar with but interested in, based on the expertise that they have already learnt. We will also provide a collaborative learning environment for students to share their own works with each other, so that they could exchange the ideas as well as learn different knowledge from each other. Pedagogical Approaches for Computer Science Education There is much general computing research associated with the approaches of teaching computing programming, and appropriate pedagogical approaches as well as materials could help students get ideal results in education [1]. Cutts, et al. [12] stated that there are two important methods to help make the pedagogical models on computer science education: Scaffolding and Process. By following these models, the students could also work closely with their teachers. Scaffolding provides students with some examples codes to start with. Beginners could observe and learn from the example codes while they are accumulating and contributing to their own work. Novices are not required to complete the whole program, as they would be given the simpler and smaller tasks at a time. Process provides students chance to work really close to their teacher. Not only their final outputs will be judged, the whole process, the computing thinking skills, and other intermediate outcomes will also be evaluated by their teacher. C. Selby [13] identified and stated four pedagogical approaches for teaching introductory programming from literature: code analysis, building blocks approach, simple units and full systems. We will focus on the first approach, code analysis, which adopts the principle of reading and understanding the code before writing and producing learner’s own code. Moreover, if pseudocode is used for reading and understanding rather than the codes from specific languages, code analysis could be used independently to the programming languages [13]. Reading and understanding the code could enhance learners’ skills of tracing, explaining and debugging program [13]. As the benefits of the code analysis methods for introductory programming education, Selby [13] concluded that reading and comprehending before writing code could improve leaner’s ability of understanding code, enhance the novices’ computational thinking skills as well as problem-solving skills in many aspects. Besides, code analysis could help programming learners to observe and learn the well-written and well-structured code before they write their code, learners could also learn the logic and knowledge behind each simple code statement before they actually programming by themselves [13].

Page 10: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  10  

PRIMM PRIMM approach will be used in this study for structuring musical live-coding tutorials as well as learning materials. PRIMM (Predict, Run, Investigate, Modify and Make) is a structured pedagogical approach to teaching and learning programming. PRIMM has been influenced by the Vygotsky's sociocultural theory, which emphasizes the important role of social interaction in cognitive development [14]. One reason that we choose to use PRIMM is that PRIMM approach provides students with scaffolding to help students understanding computing concepts, as well as promotes the collaboration and discussion of the coding problems [15]. Tutorials and materials would be structured with below activities:

•   Predict: Predict what the code will do, and discuss it with other students. •   Run: Run the code and check against the prediction. •   Investigate: Investigate and understand the underlying concepts of the code. •   Modify: Modify the code to change some features or add functionality. •   Make: Make their own program with this open-ended activity.

By following the structure of the PRIMM approach, novice programmers could explore and discuss the coding statement with peers for understanding before they start to write their own code. Venables et al. [16] emphasized the significant influence of tracing and explaining code on writing code. Novices need to be able to read the code and “explain” the code in their own way, when they are writing a piece of code [16]. PRIMM-style structure helps beginners to move from “completely not my code” to “partly my code” to “my code”, and helps novices to build their confidence on programming. We choose the PRIMM approach for teaching introductory musical live coding in this study. Because by combining the PRIMM approach’s benefits from the literature and the outcomes from interdisciplinary programming education literature, the PRIMM approach might provide an actively collaborate learning context to help multidisciplinary novices to understand programming, and might promote their interests on musical live coding: The Predict and Run phases could help novices to read the code, explain the code, know how to execute the code, and even get some perspective on debugging [13]. Investigate phase provide an active and collaborative learning environment for students to understand what the code does and how the program works by learning both independently and in the group. The active learning context for promoting tutorial discussion and collaboration is also important in the musical live-coding education, as students could learn the interdisciplinary knowledge from other students [9]. In our study, we also hope the multidisciplinary students could get a better understanding on programming. Moreover, we hope the multidisciplinary students could get more confidence on learning programming through the interdisciplinary collaboration musical live-coding context [9], while the PRIMM approach offers the collaborative learning environment for student to discussion and working together. After students know how to use the code, they could start to do some modification on the exist program by themselves in the Modify phase. After they get the programming skills and confidence, they could start to design and build their own program as well as solve problems by themselves. Because our study involves multi-year and multidisciplinary students with different programming and music levels, the open-ended Make phase also gives learners less limitations on their own programs, learners are able to generate various ideas as well as decide

Page 11: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  11  

when they are “done” the tutorial. The Make phase might also promote the communication at the tutorial. Moreover, students could do their own different creative programming products at the PRIMM’s Make phase, which provide students chance to share their works and ideas with other people at the same tutorial without any concern. Student could learn different ideas from each other by observing other’s program, or by working together with others [11]. Previous literature also found some outcomes on PRIMM approach for teaching programming. S. Sentance et al. [8] evaluated the PRIMM approach with approximately fifty hundred students in school, and interviewed nine involved teachers. Lots of comments were gathered from teachers about the structure and the experience of PRIMM. From those comments, S. Sentance et al. [8] indicated that those teachers think the PRIMM approach is useful for structuring the productive curriculums, as well as helpful for students understanding the programming. Some teachers also mentioned that PRIMM offers a clear and simple structure that is not provided by other methods, and PRIMM helped them to be able to teach productively in a multidisciplinary class [8]. The PRIMM approach provides an easy-to-follow structure for producing various programming courses [8]. The researchers also found that students in the post test performed better than those in the control group. PRIMM approach helps the students to understand the programming concepts and to make great progress [8].

The Study As the previous literature showed that the PRIMM pedagogical approach could offer students scaffolding as well as code examples to support students to read and understand the programming concepts before they work on their own program [8], [13]. S. Sentance [15] also mentioned that the PRIMM-style structure could promote discussion about that the programs are going on, as well as promote the collaboration with other pupils. In this report, we conduct a pilot study for evaluating some potential benefits of PRIMM approach on musical live-coding education. The research study has been conducted with Australian National University (ANU) Laptop Ensemble students. The PRIMM-style tutorials and learning materials have been produced for teaching the musical live-coding language – Extempore. According to the previous literature [10], we decide to use the same tutorial materials and tasks for both computer science and music students in ANU Laptop Ensemble. Blending the knowledge that students are not familiar with, into the expertise that students have already learnt, could help student develop new knowledge as well as create new products based on the skills that they have already have [10]. To evaluate whether PRIMM-style tutorials and learning materials could be used to the larger-scale musical live-coding education in the future, this report does the pilot study which aims to explore three potential benefits in terms of PRIMM approach on musical live-coding education that we have already seen in the literature:

•   The PRIMM-style tutorials and learning materials could help novices to understand the introductory musical live-coding programming concepts.

Page 12: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  12  

•   The PRIMM approach could promote discussions and collaborations at the tutorials and conduct an active learning environment.

•   The PRIMM-style activities could increase multidisciplinary novices’ interests on

learning programming in the musical live-coding context. Participants The study has been done with the students from the Australian National University (ANU) Laptop Ensemble. ANU Laptop Ensemble is a code-creativity-culture learning group which belongs to ANU college of Engineering and Computer Science. Music students and Computer Science students were enrolled in ANU Laptop Ensemble to learn and apply the fundamental knowledges of music computing. ANU Laptop Ensemble provides a musical studying environment for students to learn computational skills and collaborative skills. Eight students were enrolled in ANU Laptop Ensemble this semester, the study mainly involved the eight students with different background for participation. The PRIMM-Style Materials In this study, the PRIMM-Style tutorial and learning materials were constructed to help the ANU Laptop Ensemble programmers for learning the musical live-coding language – Extempore. The Extempore tutorial was reworked and recreated based on the Extempore docs’s learning materials (https://extemporelang.github.io/). The example of a PRIMM-structured tutorial materials for teaching Extempore is in the artifact repository, but here is a simple instruction about how the tutorial materials were structured, and what was included in each phase. Some challenges also came out when designing these tutorials and would be discussed later. Predict and Run Pieces of code are presented here, and students are encouraged to read the code and predict the program outputs before they run the code and check against the prediction. The clues and programming syntax are also presented here to help students understand the programming language during the reading time. For the Predict and Run phases, students could work together with others for discussion and might help each other to understand the language better. Investigate A few tasks and questions are listed here, students are asked to purposely investigate and understand the underlying concepts under the teacher’s tutorial structure and context. Instead of just predicting the outcomes, a deeper thinking is required in this phase to understand the code statements, the computing thinking, as well as to get familiar with the language synthesis. Students are encouraged to work in pair or in groups for discussion and collaboration to solve the problems on understanding the program. Modify

Page 13: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  13  

After discovering the deeper underlying computing concepts in the example codes, students are challenged to modify the example codes and start to create some their own coding features by themselves. The tasks are listed thus student could modify the code start from simple features to complex features under the guide. Make Finally, it is the time to let students to create their own program by themselves. Few code examples are also provided here to help students get more ideas and possibilities on the programming language that they never learnt before. Study Design Pre-Interview Before structuring the PRIMM-style tutorial, a qualitative pre-interview has been done with the eight ANU Laptop Ensemble students to gather students’ related information as well as the motivation and the expectation of learning musical live coding. Students were also asked about their experience on the computing programming. If they have the experience on coding, they will be asked about the difficulties that they met when they were learning their introductory programming language, as well as how did they deal with the difficulties at that time. PRIMM-Style Tutorial and Tutorial Materials A PRIMM-style tutorial and the tutorial materials were structured to teach ANU Laptop Ensemble students with the musical live-coding language – Extempore. The PRIMM-style tutorial was run on the regular two-hours ANU Laptop Ensemble tutorial. Seven students attended the tutorial and learned Extempore by following the tutorial materials. There is no student has any programming experience on Extempore before, but everyone completed all the tasks of the first tutorial material. Students were sitting together and learning the material with the teachers’ help, they can ask other peers or teachers questions at any time of the tutorial. Because the students are from different disciplines and are in different grade and we decided to use the same materials for all multidisciplinary students, one challenge came out when producing the PRIMM-style tutorial materials is that, it is hard to balance the difficulty of the tutorial contents for comforting both computer science students and music students. As the tutorials are used for introductory programming education, we do not want to undermine novices’ self-confidence while do not want those students who have few programming knowledge to feel bored. However, the PRIMM approach might help us to reduce this challenge a bit. The open-ended Make phase of the PRIMM provides students with unlimited ideas to create their own work. Students could play with the program in line with their programming and music level at the last phase. Besides, this challenge could also become a worthy value for this pilot study to see how do the multidisciplinary students feel when doing the same tutorial materials, so based on students’ feedback in this pilot study, we could modify the tutorial materials later in the larger-scale research. Data collection - Seven-point Likert Scale Survey

Page 14: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  14  

After the tutorial, a quantitative method was used to collect the feedback with the PRIMM-style tutorial for teaching Extempore. A survey (See Appendix 5.) with twelve questions are conducted and followed by one open-ended question for gathering more feedback. Seven-point Likert Scale was used to help the people to express their answer for each of the twelve questions, such as, 1 for strongly disagree, 2 for disagree, 3 for more or less disagree, 4 for undecided, 5 for more or less agree, 6 for agree, and 7 for strongly agree. Students were not asked to provide their name or university ID on the survey sheet. The survey sheets were printed out and handed over for the subjects after the PRIMM-style tutorial. All the seven ANU Laptop Ensemble students who attended the tutorial did the survey. The questions in the survey are involved to gather the students experience on the programming, how difficult the tutorial is for subjects to understand and learn, how appropriate the tutorial suits for subject’s background and knowledge, whether the PRIMM-style tutorial encourages the discussion and the collaboration, whether the tutorial contains the contents and concepts that subjects are interested in, whether the tutorial promotes subjects to learn more on the live coding or programming in the future, whether the tutorial meets subjects’ expectations, and overall, whether the tutorial is helpful for the subjects’ to learn the musical live-coding language Extempore.

Results Pre-Interview The full table in the Appendix 6. summarizes the qualitative information that received from the pre-interview. Each student’s information is recorded by a row in the table, the detail content follows a unique ID of each subject. Here we selected some responses from the table for discussion. From the feedback that got from the pre-interview, we can see that in ANU Laptop Ensemble, most subjects (five out of eight) felt hard on understanding the computational concepts, models, the code, and the computational thinking when they were learning the introductory programming languages. For asking about how do they overcome the difficulties when learning a new programming language. Some subjects (three out of eight) mentioned that when they meet the difficulties on learning programming, they would like to find some code examples to read. The code examples could help them understand how the code works as well as show them some examples about the unfamiliar syntax of the programming languages. Two subjects indicated that, when they feel tough to learn the introductory programming language, they prefer to have someone who know the programming language to ask, or to work with them, or even just to watch the experts coding on that programming language. By coding with others, they could ask as well as learn the programming knowledge directly from the people who sits beside them. Also, by observing other people coding, they could get different ideas and technological support of programming or project from other’s work. This feedback also matches what Heines and Jeffers [11] mentioned, novice programmers are pleased with

Page 15: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  15  

watching other people coding so that they could learn different skills from multidisciplinary people and help them to understand the code better. Another thing that we can find in terms of the information that we received form the qualitative pre-interview is that, the computer science students are interested in the musical stuff, and also the music students are curious about the computing thinking and programming field. They have the passion on the computer music, the musical live coding, as well as the performance. Thus, when we were structuring the tutorial materials, all the components are related to music. Students are not just learning the stiff programming syntax such as list and loop, instead, they are learning a list of music notes, or the looping chords. Through the feedback of the pre-interview, we want to make our tutorial more attractive and could meet students’ musical expectation on live-coding learning. PRIMM-Style Tutorial and Tutorial Materials The tutorial materials have been made based on the PRIMM pedagogical approach, as well as been impacted and modified by the feedback that got from the pre-interview. By following the PRIMM approach, many code examples are provided in the tutorial materials for beginners to start with. Basic computational concepts that are involved in the code examples are introduced and explained in the materials. Besides, for encouraging novices’ interests, the learners could make some sounds from the first tutorial. By observing the subjects’ behaviors on the PRIMM-style tutorial, subjects were willing to communicate with other students as well as teachers when they were following the tutorial materials and doing the tasks. In the Make phase, subjects had different ideas to create some interesting sounds. Some students build their own program based on the structure that they learnt in the previous phases, while few students did different things comparing to the computing syntax and synthesis that the tutorial includes before. Subjects look exited when they did make some sounds. The Seven-point Likert Scale Survey The PRIMM-style tutorial’s feedback has been gathered through the Seven-point Likert Scale survey. All the seven survey sheets were collected after the subjects filled them, and the scale values that the subjects choose were recorded. The table in the Appendix 7. shows the full seven subjects’ responses on each question, the value 1 stands for strongly disagree and the value 7 stands for strongly agree. In the below section, the analysis on the feedback will be discussed related to the three potential benefits of PRIMM approach in musical live-coding education that this pilot study is aims at: Whether PRIMM-style tutorials and learning materials could motive novices to learn and understand the introductory musical live-coding language; Whether PRIMM approach could promote discussions and collaborations at the tutorials and conduct an active learning environment; As well as whether the PRIMM-style activities could increase multidisciplinary novices’ interests on learning computing programming in the musical live-coding context. Difficulties experienced and perceived when different experienced programmers were learning the tutorial: According to the survey feedback, there are four computer science students (student number from 1 to 4) and three music students (student number from 5 to 7) did the survey. To evaluate

Page 16: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  16  

how difficult the subjects feel when they were learning the new programming language, as well as how the computing programming experience that each subject has, a scatter chart (Fig. 1.) was composed to show how the difficult that each subject felt for this PRIMM-style tutorial, as well as their programming experience. Fig. 1. Difficulties experienced and perceived when different experienced programmers were learning the tutorial.

The horizontal axis represents the seven students’ numbers from 1 to 7, while the vertical axis represents the Seven-Point Likert Scale for each question, 1 stands for strongly disagree and the value 7 stands for strongly agree. The blue rhombus represents the scale value of question 1, “I am an experienced programmer” for each subject; the orange rectangle represents each subject’s scale value of the question 2, “The tutorial material was easy to understand”; The grey triangle represents each subject’s scale value for the question 5, “The tutorial material was appropriate to my knowledge and background”; And the yellow cross represents each subject’s scale value for the question 6, “The material was too easy for me”. Based on the first question in the survey, “I am an experienced programmer”, four subjects (student number 3, 5, 6 and 7) have few experience on programming, and three of them (student number 1, 2 and 4) are more experienced on computer programming. The scatter chart (Fig. 1.) shows that there is nobody think the materials is significantly difficult for them to understand or to learn (there are no scale value 1 or 2 shows in the feedback of question 2). Overall, majority subjects agreed that the tutorial material is easy to understand (6 out of 7 agree with this to some degree through question 6) as well as is suitable with their background and their knowledge (all the 7 subjects agree with this in some way through the question 5). Moreover, for the computer science students (student number from 1 to 4), while they have more experience on programming (3 out of 4 agree with they are the experienced programmers to some degree), they think the tutorial materials are easy to understand as well as fit to their knowledge and background (all the 4 subjects agree with this to some extent). For the music students (student number from 5 to 7), they all do not have much experience on programming (all the 3 subjects disagree with that they are an experienced programmer), however, two of the three subjects still agree that the PRIMM-style tutorial helps them to easily understand the musical live coding through the feedback of question 2.

Page 17: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  17  

Expectation and interest in musical live coding of both music and computer science student: For evaluating subjects’ expectation, their interests on computational concepts and live coding, as well as whether the PRIMM-style tutorial promotes their interests on learning programming, a bar chart (Fig. 2.) is conducted for both computer science group and music group. Fig. 2. Expectation and interest in musical live coding of both music and computer science students.

The bar chart (Fig. 2.) illustrates the scale values received for the question 8 (represented by the blue bar), “I am interested in the underlying concepts covered in the tutorial”, the question 9 (represented by the red bar), “The tutorial met my expectations”, the question 10 (represented by the grey bar), “I want to learn more live coding in the future”, and the question 11 (represented by the yellow bar), “My interest in programming and coding has increased”, for the computer science group and the music group separately. The bar values are calculated by getting the average values of all the students’ scale values from each group. From the bar chart (Fig. 2.) as well as the original records table (Appendix 7.), subjects highly agreed with that they are interested in the tutorial covered computational concepts and they want to learn more live coding later (each scale value for question 8 as well as the averages for two groups are all greater or equal to 5). Both groups highly agreed that overall the tutorial met their expectation (all the subjects’ scale values for question 9 as well as the two groups’ average values are greater than 5). Through the feedback from question 10, both computer science group and the music group agree with that they want to learn more live coding in the future (all the subjects’ scale values for question 10 as well as the two groups’ average values are greater than 5), moreover, the computer science group shows the major interests on learning live coding in the future, the average value for this group reached 6.5 out of 7. The subjects quite agreed with that the PRIMM approach promotes both group’s interests on learning more live-coding programming in the future. However, while the interests on live coding were promoted, the computer science subjects did not generally agree that their interests on programming and coding were promoted (with the average 3.75 out of 7 for question 11), although they have already had some programming experience in some ways. But for the music students, their interests on programming and coding were increased (with the average 5.33 out of 7 for question 11), two of the music subjects gave the scale value 6 out of 7 to the question 11, while one of the music subject gave

Page 18: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  18  

the scale value 4 out of 7. We are happy to see this that the PRIMM approach might increase the confidence for the music students on learning more programming in the future, as most music students quite agreed with their interests in programming and coding has increased. Encouraged discussion and exchanging ideas: For analyzing the feedback of the question 7, “The material encouraged me to discuss and exchange ideas with my classmates”, a scatter chart (Fig. 3.) is used to show how each subject agreed or disagreed with this question 7. Fig. 3. Q7 Encouraged discussion and exchanging ideas.

In the scatter chart (Fig. 3.), the horizontal axis represents the seven students’ numbers from 1 to 7, while the vertical axis represents the Seven-Point Likert Scale for each question, 1 stands for strongly disagree and the value 7 stands for strongly agree. The blue rhombus represents the scale value of question 7, “The material encouraged me to discuss and exchange ideas with my classmates” for each subject. Through the feedback scale values from the subjects for question 7, the scatter chart (Fig. 3.) shows that, in ANU Laptop Ensemble, most people think that the PRIMM-style tutorial material did encourage students to collaborate, discuss and exchange the ideas with others. Majority subjects agreed with this question to some degree, 6 out of 7 have the scale values which are larger or equal to 5, as well as 3 students strongly agree with this question and gave the scale value 7. It is valuable to see that the majority subjects agreed with that the PRIMM-style tutorial materials promote the discussion and collaboration in the musical live-coding context. Overall, the material is helpful: A scatter chart (Fig. 4.) also made for analyzing question 12 to show subject’s overview on the PRIMM-style tutorial for learning musical live coding – Extempore. In the scatter chart (Fig. 4.), the horizontal axis represents the seven students’ numbers from 1 to 7, while the vertical

Page 19: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  19  

axis represents the Seven-Point Likert Scale for each question, 1 stands for strongly disagree and the value 7 stands for strongly agree. The blue rhombus represents the scale value of question 12, “Overall, the Extempore tutorial was helpful for my learning” for each subject. We can see that the majority participants in ANU Laptop Ensemble did agree with that, overall, the PRIMM-style tutorial and the tutorial material is helpful for them to learn the musical live-coding language Extempore (6 out of 7 subjects agreed with that while one subject kind of agreed with this). Fig. 4. Q12 Overall, the material is helpful.

Discussion The results in this paper are consistent with some findings in the previous literatures. S. Sentance [15] and Cutts, et al. [12] illustrated that scaffolding pedagogical model could help novice programmers start with existing code examples, learners could learn the programming language start from reading and understating the code example, rather than start from scratch, which would help novices understand the programming concepts. In this pilot study, the easy-to-follow PRIMM-style structure offers us opportunities to structure many code examples into the tutorial materials. During the Predict, Run and Investigate phases, learners predicted the outputs of the code examples and understood the code examples before they start to make their own program. Besides, based on the feedback that had been got from the pre-interview, some students stated that the code examples are greatly helpful to learn and understand an introductory programming language. Novices could read and understand what and how did other people do with the programming language in terms of those code examples, then start to code by themselves according to what they have been inspired by the code examples. Program examples offer great value to teach programming and to demonstrate computational concepts [17]. The leaners could study from those code examples by observing and familiarizing the programming language’s syntax and synthesis in the examples, then solve the similar tasks by themselves [17].

Page 20: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  20  

Moreover, Sentance [8], [15] also mentioned that the PRIMM-style tutorial and learning materials provide novices with the programming scaffolding to help students learning and understanding computing concepts. According to the feedback from qualitative pre-interview, many subjects mentioned that they felt difficult on understanding the computational concepts, the code, and the thinking methods when they were learning the introductory programming languages. But from the tutorial’s survey feedback that I got, in ANU Laptop Ensemble, majority students agree with that the PRIMM-style tutorial and the tutorial materials does help the subjects to understand a brand new musical live-coding language, as well as fit the multidisciplinary students’ background and knowledge. It seems that in this pilot study, PRIMM approach might help the novices understand the programming concepts and overcome the difficulties in the musical live-coding environment. The study’s results also support that the PRIMM approach could promote students on collaboration, discussion, and changing ideas with other peers as well as teachers at the tutorials [9], [15]. Heines and Jeffers [11] also stated that the collaborative learning context could help learners share ideas on various works as well as projects. By coding with others or just observing other coding, students could obtain and develop different knowledge and skills from other disciplines. By doing the PRIMM-style musical live coding tutorial with the ANU Laptop Ensemble students, the subjects significantly agree with that the PRIMM-style tutorial did encourage the collaboration and provide a learning environment conductive to discussion. A few subjects also mentioned in the pre-interview about that observing and talking with the programming peers or experts could help them on understanding the code and therefore overcoming the difficulties of introductory programming, which aligns the benefits from Heines and Jeffers’s [11] research. In this pilot study, the PRIMM approach did promote discussions and collaborations at the ANU Laptop Ensemble tutorial and did conduct an active learning environment for subjects to share their ideas and works. Heines, et al. [9] described that interdisciplinary curriculums increase the confidence of multidisciplinary students learning computing programming that they might never considered before. Musical live coding is a good interdisciplinary connection to teach multidisciplinary students programming as well as to provide a chance for non-music students to learn more musical stuff [9]. In the pre-interview of this pilot study, the motivation and expectation for the ANU Laptop Ensemble students is the computer music, the musical live coding, as well as the performance. Aligning to the research did by Heines and Jeffers [11], comparing to the traditional computer science assignments, the performance could make the general computer science courses more interesting as well as motivate the interdisciplinary students to collaborate. According to the results of the study, PRIMM-style musical live-coding tutorials might be a good method to increase students’ interests on musical live coding, as well as help music students be more interested in computer programming. Both the computer science subjects and the music subjects quite agreed with that the PRIMM approach increase there interests on learning live coding. The result of this pilot study also shows that, as majority music participants agreed with that their interests in programming and coding has been stimulated, the PRIMM approach might promote music subjects’ confidence on learning computing programming in the future. This pilot study did show that, the PRIMM-style activities for learning live coding could increase multidisciplinary novices’ interests in learning live coding, as well as motivate music students intend to do more programming.

Page 21: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  21  

Limitations There are some limitations in this study that need to be addressed in the future work. First, the study is quite small, although it is just the pilot study which would not involve a large-scale of participants, only eight students enrolled in the ANU Laptop Ensemble this semester, moreover, only seven subjects participated in the PRIMM-style tutorial and sent back the feedback. The subject size is a little bit small, and the study even does not have the control group, thus we cannot isolate the effects of an independent variable from the whole problem. The small study size influences the reliability of the survey’s results. Small sample size could also decrease the representative of the whole population, and make the results less convincing [18]. The results could be impacted by the non-response people, thus the small sample size could lead the uncoverage bias of data reliability [18]. On the other hand, through the small-size pilot study, we could still easily test that the PRIMM approach could be worthy to the larger study on musical live-coding education. Another major limitation in this study is that only eight students were involved in, and the researcher got familiar with the subjects during the study process. Subject bias might exist and effect the results’ accuracy. Subjects might intentionally or accidentally answer the survey in a way that they think the researcher wants them to react, and it would effect the external validity of the study. The unrelated causal factors would influence the study results as well as make the consequences be less helpful. Future Work In this paper, only a small size subject group was involved in, and the small study size might negatively impact the pilot study’s results [18]. Thus, it would be useful to conduct a larger study which could include a control group, to evaluate whether PRIMM approach could be helpful on teaching and learning live-coding programming languages and could be feasible to teach introductory programming languages for the large-size groups. More study feedback needs to be received to conduct reliable consequences. Also, in this study, only students’ feedback was collected, so in the further study, teachers’ feedback on structuring and teaching PRIMM-style tutorial as well as tutorial materials also could be collected, in order to get teachers’ opinions and experience on utilizing PRIMM pedagogical approach. S. Sentance et al. [8] mentioned that the easy-to-follow PRIMM structure could be used to any phases in computing education. So, for discovering the influence of PRIMM pedagogical approach on teaching wider introductory computer programming languages, it could be worthy to conduct PRIMM approach studies on other live coding languages or even on the wider introductory computing programming languages in the future.

Conclusion In this paper, we have conducted a pilot study to discuss about using PRIMM-style tutorials and materials to attract, motivate and teach multidisciplinary novices to programming in the

Page 22: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  22  

innovative musical live-coding environment. The PRIMM-style tutorial was built to help the Australian National University Laptop Ensemble students to learn the musical live-coding language – Extempore. Participants’ feedback for the tutorial has been collected through the quantitative survey questions. Subjects also have been qualitatively asked about their experience on computing programming as well as their difficulties on learning introductory programming languages. The feedback has been evaluated and compared to the previous computer science research literatures’ results as well. Through the feedback that was got from the ANU Laptop Ensemble, the tutorials and materials structured by the PRIMM approach are helpful for students to understand a musical live-coding language that they never learnt before. PRIMM-style tutorial as well as materials could encourage students to discuss and collaborate with others at the tutorial, and might attract and motivate multidisciplinary students to learn programming in the musical live-coding context. The results of the study also show that plenty of code examples on a new programming language could help novice programmers to understand the computing syntax, coding structure, and synthesis of the programming language. Although there are lots of limitations in this study, such as the uncoverage bias of data reliability led by the small study size as well as the subjects bias, using PRIMM approach in the creative musical live-coding environment might still feasible and value to the introductory computing education. This pilot study shows that, the PRIMM pedagogical approach could help novices to understand the introductory musical live-coding programming concepts; promote discussions and collaborations at the tutorials and conduct an active learning environment; and increase multidisciplinary novices’ interests in learning computing programming. Based on this pilot study, further works could be conducted a larger-scale study on the PRIMM pedagogical approach to help connect interdisciplinary education, promote students’ motivation and interests, as well as teaching and learning general introductory programming languages.

Page 23: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  23  

Reference

[1] A. Gaspar and S. Langevin, "Restoring "coding with intention" in introductory programming courses," in 2007, . DOI: 10.1145/1324302.1324323.

[2] A. B. Woszczynski, T. C. Guthrie and S. Shade, "Personality and Programming, "Journal of Information Systems Education, vol. 16, (3), pp. 293, 2005.

[3] A. Gomes and A. J. Mendes, “Learning to program-difficulties and solutions,” In International Conference on Engineering Education–ICEE, vol. 2007, 2007.

[4] A. Gomes et al, "A teacher's view about introductory programming teaching and learning - portuguese and macanese perspectives," in 2017, . DOI: 10.1109/FIE.2017.8190493.

[5] S. Mohorovicic and V. Strcic, "An overview of computer programming teaching methods," in 2011, .

[6] A. G. S. Raj, J. M. Patel, R. Halverson, and E. R. Halverson, “Role of Live-coding in Learning Introductory Programming,” Proceedings of the 18th Koli Calling International Conference on Computing Education Research - Koli Calling 18, 2018.

[7] "Live Coding Education - Sonic Pi", Sonic-pi.net. [Online]. Available: https://sonic-pi.net/files/articles/Live-Coding-Education.pdf.

[8] A. G. S. Raj, J. M. Patel, R. Halverson, and E. R. Halverson, “Role of Live-coding in Learning Introductory Programming,” Proceedings of the 18th Koli Calling International Conference on Computing Education Research - Koli Calling 18, 2018.

[9] A. Ruthmann et al, "Teaching computational thinking through musical live coding in scratch," in 2010, . DOI: 10.1145/1734263.1734384.

[10] F. Martin, G. Greher, J. Heines, J. Jeffers, H. J. Kim, S. Kuhn, ... and H. Yanco, “Joining computing and the arts at a mid-size university,” Journal of Computing Sciences in Colleges, vol. 24, (6), pp. 87-94, 2009.

[11] J. M. Heines, J. Jeffers and S. Kuhn, “Performamatics: Experiences with Connecting a Computer Science Course to a Design Arts Course,” International Journal of Learning, vol. 15, (2), 2008.

[12] Q. Cutts et al, "The abstraction transition taxonomy: Developing desired learning outcomes through the lens of situated cognition," in 2012, . DOI: 10.1145/2361276.2361290.

[13] C. Selby, “Four approaches to teaching programming,” in 2011, . [14] S. Sentance, J. Waite and M. Kallia, "Teaching computer programming with

PRIMM: a sociocultural perspective," Computer Science Education, vol. 29, (2-3), pp. 136-176, 2019.

[15] S. Sentance, “PRIMM: A structured approach to teaching programming,” Computer Science Education Kings, 01-Sep-2017. [Online]. Available: https://blogs.kcl.ac.uk/cser/2017/09/01/primm-a-structured-approach-to-teaching-programming/.

[16] A. Venables, G. Tan and R. Lister, "A closer look at tracing, explaining and code writing skills in the novice programmer," in 2009, . DOI: 10.1145/1584322.1584336.

[17] R. R. Gajraj, M. Bernard, M. Williams and L. Singh, “Transforming source code examples into programming tutorials,” In Proceedings of the 6th International Multi-Conference on Computing in the Global Information Technology (ICCGI’11), pp. 160-164, 2011.

Page 24: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  24  

[18] A. E. Simmons, "The Disadvantages of a Small Sample Size", Sciencing, 2018. [Online]. Available: https://sciencing.com/disadvantages-small-sample-size-8448532.html.

Page 25: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  25  

Appendix Appendix 1. The final project description. Teaching computing with appropriate pedagogical methods and strategies could help novices to have the best possible on learning outcomes. The Computing Education (CEd) research community has done a lot of important pedagogical research on which programming languages to use, what supplementary materials to provide, which pedagogical frameworks to apply, how to create the best learning environment, and so on. Languages for musical live-coding attract novices to learn programming and engage people with creative motivations. Good live-coding training materials are important to help novices learn and nourish their programming skills, especially if they don't have prior programming experience. This project aims to analyse and build training materials for musical live-coding languages in order to teach novice programmers, and to find pedagogical approaches to help the novice programmers to learn coding in the musical live-coding context. Related pedagogical techniques and strategies from the wider computing education research literature will be discussed and applied to the project outcomes. This project will consist of the following:

•   A survey of introductory training materials for four major musical live-coding languages.

•   Analysis of the explicit and implicit pedagogical frameworks of these learning materials.

•   Compare and contrast of the pedagogical frameworks which are conducted from the general computing education research literature.

•   A set of guidelines for developing tutorials and other introductory curriculum for teaching programming through musical live-coding languages.

Page 26: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  26  

Appendix 2. Details of the study contract.

Research School of Computer Science Form updated Jan 2018

INDEPENDENT STUDY CONTRACT SPECIAL TOPICS

Note: Enrolment is subject to approval by the course convenor

SECTION A (Students and Supervisors)

UniID: _____u5916376_______

SURNAME: _______Hou__________ FIRST NAMES: __________Xinyu_______________

TOPIC SUPERVISOR (may be external): _________________Dr_Ben_Swift___________________

FORMAL SUPERVISOR (if different, must be an RSSCS academic): ___________ Dr_Ben_Swift _____________

COURSE CODE, TITLE AND UNITS: _______COMP3740, [Project Work in Computing] (6 units)_______

SEMESTER S1 S2 YEAR: _______2019_______

TOPIC TITLE:

Pedagogical foundations of musical livecoding training materials

LEARNING OBJECTIVES: • Survey & understand current Computing Education (CEd) research about teaching novices to program. • Analyse tutorials & other training materials for four livecoding languages: Extempore, Sonic Pi, Tidal and Gibber. • Comment on the pedagogical basis (or lack thereof) for the training materials in the case of each livecoding language. • Conduct & analyse interviews with novices trying to learn to program through these livecoding training materials. • Suggest improvements to current livecoding training materials based on this research.

DESCRIPTION: Teaching computing with appropriate pedagogical methods and strategies could help novices to have the best possible on learning outcomes. The Computing Education (CEd) research community has done a lot of important pedagogical research on which programming languages to use, what supplementary materials to provide, which pedagogical frameworks to apply, how to create the best learning environment, and so on. Languages for musical live-coding attract novices to learn programming and engage people with creative motivations. Good live-coding training materials are important to help novices learn and nourish their programming skills, especially if they don't have prior programming experience. This project aims to analyse and build training materials for musical live-coding languages in order to teach novice programmers, and to find pedagogical approaches to help the novice programmers to learn coding in the musical live-coding context. Related pedagogical techniques and strategies from the wider computing education research literature will be discussed and applied to the project outcomes. This project will consist of the following:

• A survey of introductory training materials for four major musical live-coding languages. • Analysis of the explicit and implicit pedagogical frameworks of these learning materials. • Compare and contrast of the pedagogical frameworks which are conducted from the general computing education

research literature. • A set of guidelines for developing tutorials and other introductory curriculum for teaching programming through

musical live-coding languages.

Page 27: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  27  

Page 28: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  28  

Appendix 3. Description of artefacts produced. 3.1 The list of all program code files. There are four repositories in the artefacts folder, and each repository at least includes one .md file (tutorial instruction file) and one .xtm file (Extempore code file). The list of all program code files (Extempore code file) in the artefacts folder is:

•   tutorial1 o   tutorial_one.xtm

•   tutorial2 o   tutorial_two.xtm

•   tutorial3 o   tutorial_three.xtm

•   tutorial4 o   tutorial_four.xtm

3.2 Details of the code was tested for correctness. For the musical live-coding code in this study, the test process for correctness is the process for running the tutorial with the ANU Laptop Ensemble students. Every student worked on the code that has been written, and sounds would be made. There is no unit testing for these artefacts. 3.3 Description of how experiments were conducted. The Extempore tutorial was reworked and recreated based on the learning materials from Extempore docs (https://extemporelang.github.io/). As mentioned in the report, a pilot study on the PRIMM-style tutorial and artefacts was conducted with the ANU Laptop Ensemble students. Feedback of the tutorial and the artefacts was collected through the Seven-Point Likert Scale survey. The Extempore version that these artefacts used is: [Extempore nightly build (binary release)](https://github.com/digego/extempore/releases), which includes: - Extempore-0.7.9-20190919-osx10.9+.dmg - Extempore-0.7.9-20190920-win10.zip - Source code (zip) - Source code (tar.gz) The instructions for setting up development environment and running the artefacts code have been included in the [tutorial1.md](tutorials/tutorial1/tutorial1.md) file in great detail. User could also open [Ben's Blog](https://benswift.me/blog/2019/09/18/xinyus-extempore-tutorials/#preliminaries) to directly go to the tutorial materials to see the preliminaries.

Page 29: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  29  

Appendix 4. Artifacts README file ###### Folder Name: tutorials ###### Author: Xinyu Hou ###### Date: 2019-10-24 # Project Name PRIMM-style Teaching Materials for Musical Live-Coding Education # Description There are four [PRIMM-style](https://blogs.kcl.ac.uk/cser/2017/09/01/primm-a-structured-approach-to-teaching-programming/) tutorials are build for learning a musical live-coding - Extempore. Each tutorial was built with the PRIMM-style strucutre. PRIMM (stands for Predict, Run, Investigate, Modify and Make) aproach provides five phases to help to produce the tutorials as well as the learning materials: - Predict: Predict what the code will do, and discuss it with other students. - Run: Run the code and check against the prediction. - Investigate: Investigate and understand the underlying concepts of the code. - Modify: Modify the code to change some features or add functionality. - Make: Make their own program with this open-ended activity. # Package Files There are four repositories in this folder, and each repository at least includes one .md file (tutorial instruction file) and one .xtm file (Extempore code file): - tutorial1 - tutorial1.md - tutorial_one.xtm - img - myPI.png - TO1.png - TO2.png - TO3.png - TO4.png - tutorial2 - tutorial2.md - tutorial_two.xtm - tutorial3 - tutorial3.md - tutorial_three.xtm - tutorial4 - tutorial4.md - tutorial_four.xtm

Page 30: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  30  

User is supposed to read and work with the tutorial#.md file, which includes the tutorial instruction and materials. # Environment Extempore version: [Extempore nightly build (binary release)](https://github.com/digego/extempore/releases), which includes: - Extempore-0.7.9-20190919-osx10.9+.dmg - Extempore-0.7.9-20190920-win10.zip - Source code (zip) - Source code (tar.gz) # Run the Code The instructions for setting up environment and running the code have been included in the [tutorial1.md](tutorials/tutorial1/tutorial1.md) file in great detail. User could also open [Ben's Blog](https://benswift.me/blog/2019/09/18/xinyus-extempore-tutorials/#preliminaries) to directly go to the tutorial materials to see the preliminaries. # Support User could contact me with the email: [email protected] for any futher questoins and support. # Acknowledgement The ideas of the tutorial materials were built based on the [Extempore docs](https://extemporelang.github.io/). Reworking and recreating works were structured with the PRIMM approach in these tutorials. The source code [Extempore nightly build (binary release)](https://github.com/digego/extempore/releases) as well as the [Extempore docs](https://extemporelang.github.io/) is really helpful when conducting the Extempore tutorials. The [PRIMM](https://blogs.kcl.ac.uk/cser/2017/09/01/primm-a-structured-approach-to-teaching-programming/) approach offers me the pedagogical framework on constructing these tutorials.

Page 31: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  31  

Appendix 5. Feedback Survey for Extempore Tutorial

1

Feedback Survey for Extempore Tutorial Your degree: ________________________ Which year are you in: ____________ All the questions bellow are based on the Extempore tutorial that you participated last week. The main purpose of this survey is to get your feedback about the Extempore tutorial material on Ben’s blog that you did last week. You don’t need to put your name or uID on this sheet. Seven-point Likert Scale is used to help you to express how much you agree or disagree with a particular statement. Please circle the number at the below of each question that best represents your response for the question. 1 for Strongly Disagree and 7 for Strongly Agree. 1. I am an experienced programmer 1 2 3 4 5 6 7 2. The tutorial material was easy to understand 1 2 3 4 5 6 7 3. When I was doing the tutorial, I read the material very carefully 1 2 3 4 5 6 7 4. When I was doing the tutorial, I needed to search for other information online in

order to complete the tutorial tasks 1 2 3 4 5 6 7 5. The tutorial material was appropriate to my knowledge and background 1 2 3 4 5 6 7 6. The material was too easy for me 1 2 3 4 5 6 7 7. The material encouraged me to discuss and exchange ideas with my classmates 1 2 3 4 5 6 7 8. I am interested in the underlying concepts covered in the tutorial 1 2 3 4 5 6 7

Page 32: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  32  

2

9. The tutorial met my expectations 1 2 3 4 5 6 7 10. I want to learn more livecoding in the future 1 2 3 4 5 6 7 11. My interest in programming and coding has increased 1 2 3 4 5 6 7 12. Overall, the Extempore tutorial was helpful for my learning 1 2 3 4 5 6 7 Any other feedback or comments about anything?

Thank you for your participation and time :)

Page 33: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  33  

Appendix 6. Full summary of participants’ characteristics.

ID Degree Motivation Whether has programming experience

Difficulties when learning first programming language

Resources used when learning programing languages

Expectation

1 Bachelor of Software Engineering

Music, live-coding stuff.

Haskell, Java, Python, C++.

Hard at beginning, and hard to understand what the code does. But felt better after understanding computational concepts and after doing few languages.

Lectures, Tutorials, and online resources.

Learn live coding. Build the artifact and do some performance on the base of computer science and musical stuffs.

2 Bachelor of advanced computing

Computer music, artistic skills.

Python, Haskell.

Hard at beginning. Need to learn background and conceptual ideas behind programming, rather than just coding skills.

Online resources, code examples.

Learn how to make music in algorithm.

3 Bachelor of Computer Science

Music. Python. Culture, and hard to get into computing study, brand new to computing science.

Programming language library, code examples, watch other people coding, online resources.

Performance, concert. Musical and creative things.

4 Bachelor of advanced computing

Music. Java. Not hard, but take time to understand the computational concepts.

Online resources. Do live shows and musical stuff.

5 Master of Computing

Music. Python, Haskell, Ada.

Get computational modals in the head.

Reference manual, work with or ask any people who know the programming language, tutorials.

Make some music.

6 Bachelor of music

Not a pure coding course, computing-musical course is easier.

No No programming experience.

Lectures, tutorials, online resources.

Make creative thing on computing. Performance.

7 Bachelor of music

Learn computing syntax. Cooperate computer science and music

Few HTML, Java, Python knowledge.

Computing thinking and mathematical thinking is hard. Hard to understand code.

Lectures, tutorials, online resources, Code examples.

Computer music. Learn how to do computing-musical stuff in a group.

8 Bachelor of Music

Electronic music, computer music.

No No programming experience.

Reference manual and online resources.

Hybrid composition.

Page 34: Research School of Computer Science | - Designing ......learning computer science that they might never considered before. Martin, et al. [10] developed two formats of creative courses

  34  

Appendix 7. The full feedback of PRIMM-style tutorial and tutorial materials.

ID Degree Year IN

Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12

1 Bachelor of Software Engineering

2nd 6 7 6 3 7 6 7 6 6 7 5 6

2 Bachelor of advanced computing

3rd 7 6 5 6 5 6 4 7 6 7 1 6

3 Bachelor of Computer Science

3rd 3 6 5 2 5 6 7 6 5 6 5 5

4 Master of Computing

1st 5 6 6 2 7 6 5 6 5 6 4 6

5 Bachelor of music

1st 2 3 5 1 4 4 6 5 5 5 4 6

6 Bachelor of music

2nd 1 6 6 5 6 4 7 7 7 6 6 6

7 Bachelor of Music

2nd 1 5 5 1 4 7 6 5 6 5 6 6