{"title":"Strategy-based feedback in a programming tutor","authors":"H. Keuning, B. Heeren, J. Jeuring","doi":"10.1145/2691352.2691356","DOIUrl":"https://doi.org/10.1145/2691352.2691356","url":null,"abstract":"More and more people take up learning how to program: in schools and universities, in large open online courses or by learning it by themselves. A large number of tools have been developed over the years to support learners with the difficult task of building programs. Many of these tools focus on the resulting program and not on the process: they fail to help the student to take the necessary steps towards the final program.\u0000 We have developed a prototype of a programming tutor to help students with feedback and hints to progress towards a solution for an introductory imperative programming problem. We draw upon the ideas of a similar tutor for functional programming and translate these ideas to a different paradigm. Our tutor is based on model solutions from which a programming strategy is derived, capturing the different paths to these solutions. We allow for variation by expanding the strategy with alternatives and using program transformations. The instructor is able to adapt the behaviour of the tutor by annotating the model solutions.\u0000 We show a tutoring session to demonstrate that a student can arrive at a solution by following the generated hints. We have found that we can recognise between 33% and 75% of student solutions to three programming exercises that are similar to a model solution, which we can increase by incorporating more variations.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"119 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123486618","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Beautiful JavaScript: how to guide students to create good and elegant code","authors":"H. Passier, Sylvia Stuurman, H. Pootjes","doi":"10.1145/2691352.2691358","DOIUrl":"https://doi.org/10.1145/2691352.2691358","url":null,"abstract":"Programming is a complex task, which should be taught using authentic exercises, with supportive information and procedural information. Within the field of Computer Science, there are few examples of procedural information that guide students in how to proceed while solving a problem. We developed such guidelines for programming tasks in JavaScript, for students who have already learned to program using an object oriented language.\u0000 Teaching JavaScript in an academic setting has advantages and disadvantages. The disadvantages are that the language is interpreted so there is no compiler to check for type errors, and that the language allows many 'awful' constructs. The advantage is that, because of those disadvantages, programmers should consciously apply rules for 'good' programs, instead of being able to rely on the errors and warnings that a compiler will raise.\u0000 In this article, we show how we guide students to develop elegant code in JavaScript, by giving them a set of guidelines, and by advising a process of repeated refactoring until a program fulfills all requirements. To show that these guidelines work, we describe the development of a generic module for client-side form validation. The process followed and the resulting module both are valuable in an educational setting. As an example, it shows and explains precisely to students how such a module can be developed by following our guidelines, step by step.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128686359","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Improving students' learning in software engineering education through multi-level assignments","authors":"C. Köppe, Leo Pruijt","doi":"10.1145/2691352.2691357","DOIUrl":"https://doi.org/10.1145/2691352.2691357","url":null,"abstract":"Assignments and exercises are an essential part of software engineering education. It usually requires a variety of these assignments to cover a desired wide range of educational objectives as defined in the revised Bloom's taxonomy. But such a variety has inherent problems, e.g. that students might not see the connections between the assignments and find it hard to generalize the covered concepts.\u0000 In this paper we present the educational design pattern Multi-Level Assignment which addresses these problems. It enables the assignment designer to incorporate a variety of educational objectives into a single assignment by including the concepts on multiple knowledge and process levels. The description as educational design pattern and the provided three implementation examples make this approach directly applicable for other software engineering educators.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123012656","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"The design of mobile apps: what and how to teach?","authors":"Sylvia Stuurman, B. V. Gastel, H. Passier","doi":"10.1145/2691352.2691360","DOIUrl":"https://doi.org/10.1145/2691352.2691360","url":null,"abstract":"Mobile applications (or mobile apps or apps for short) gain importance, and will, as is our expectation, find a place in the curricula of Computer Science and Software Engineering. In books, courses and tutorials, not much attention has been given to the design of mobile applications.\u0000 In this paper, we describe the anatomy of mobile apps, using Android as an example. Based on this anatomy, we offer an inventarization of modeling techniques that can be applied to adequately design mobile apps. Some of these modeling techniques are already taught in most curricula, albeit in different courses. A modeling technique that is useful for several aspects of mobile apps is the Interaction Flow Modeling Language (IFML). This modeling technique would have to be introduced when one would like to teach students how to design apps.\u0000 We also describe which strategies can be followed when introducing mobile apps in a curriculum: as a subject of a course, together with knowledge of the concepts and the necessary modeling techniques, or as examples in different courses. We discuss advantages and disadvantages of both approaches.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116423731","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Managing a large tertiary computer science class","authors":"V. Pieterse, C. Stallmann","doi":"10.1145/2691352.2691359","DOIUrl":"https://doi.org/10.1145/2691352.2691359","url":null,"abstract":"The organisation of a tertiary module shows prevalent problems when the size of the class increases. We present problems associated with large classes and investigate a number of proposed solutions. An attempt was made to address these difficulties in a presentation of a first-year module introducing programming with yearly student enrolment of approximately 500. We report on the different aspects of managing a large Computer Science class. The focus of the paper is on the infrastructure put in place to handle this large enrolment at a residential institution.\u0000 The impact of the efforts and attempted solutions has been observed over the past three years. It was evaluated using statistical methods to detect relationships between broad behaviours. Qualitative evaluation of student feedback and other observations are used to illustrate how the students experienced the course. The outcome can be used as guideline when planning similar courses to avoid some pitfalls that have been identified through this experience and consider the aspects we found useful.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"29 12","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132938310","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Reviewing the flipped classroom research: reflections for computer science education","authors":"M. Giannakos, J. Krogstie, N. Chrisochoides","doi":"10.1145/2691352.2691354","DOIUrl":"https://doi.org/10.1145/2691352.2691354","url":null,"abstract":"Recent technical and infrastructural developments posit flipped (or inverted) classroom approaches ripe for exploration. Flipped classroom approaches have students use technology to access the lecture and other instructional resources outside the classroom in order to engage them in active learning during in-class time. Scholars and educators have reported a variety of outcomes of a flipped approach to instruction; however, the lack of a summary from these empirical studies prevents stakeholders from having a clear view of the benefits and challenges of this style of instruction. The purpose of this article is to provide a review of the flipped classroom approach in order to summarize the findings, to guide future studies, and to reflect the major achievements in the area of Computer Science (CS) education. 32 peer-reviewed articles were collected from a systematic literature search and analyzed based on a categorization of their main elements. The results of this survey show the direction of flipped classroom research during recent years and summarize the benefits and challenges of adopting a flipped approach in the classroom. Suggestions for future research include: describing in-detail the flipped approach; performing controlled experiments; and triangulating data from diverse sources. These future research efforts will reveal which aspects of a flipped classroom work better and under which circumstances and student groups. The findings will ultimately allow us to form best practices and a unified framework for guiding/assisting educators who want to adopt this teaching style.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"254 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130114400","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Gamification in educational software development","authors":"Achilleas L. D. Buisman, M. V. Eekelen","doi":"10.1145/2691352.2691353","DOIUrl":"https://doi.org/10.1145/2691352.2691353","url":null,"abstract":"Software development education often suffers from the image of tedious programming, leading to low levels of activity. In general, gamification can help making tasks more attractive. This paper reports on a gamification case study, indicating that the use of gamification may be an effective instrument to increase the activity of students in Educational Software Development.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115336946","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
J. Jeuring, L. T. V. Binsbergen, Alex Gerdes, B. Heeren
{"title":"Model solutions and properties for diagnosing student programs in Ask-Elle","authors":"J. Jeuring, L. T. V. Binsbergen, Alex Gerdes, B. Heeren","doi":"10.1145/2691352.2691355","DOIUrl":"https://doi.org/10.1145/2691352.2691355","url":null,"abstract":"Ask-Elle is an interactive tutor that supports the stepwise development of simple functional programs. Using Ask-Elle students receive feedback about whether or not they are on the right track, they can ask for a hint when they are stuck, and get suggestions about how to refactor their program. Our tutor generates this feedback from model solutions and properties that a solution should satisfy. This paper studies the feasibility of using model solutions together with the desired properties of solutions to analyse the work of a student. It describes an experiment in which we analyse almost 3500 log entries from students using Ask-Elle to solve functional programming exercises, to determine how many of these programs are diagnosed correctly based on model solutions and the desired properties of solutions. Ask-Elle manages to correctly diagnose 82.9% of the student programs. A further analysis of the student programs and the diagnoses shows that adding some reasonable model solutions, properties of model solutions, and general program transformations would increase this percentage to 92.9%.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"116 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132004622","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"An essential language for declarative business rules","authors":"L. Wedemeijer","doi":"10.5555/2541917.2541922","DOIUrl":"https://doi.org/10.5555/2541917.2541922","url":null,"abstract":"Business rules are an important concept in todays business operations. Students in a Business Management and IT curriculum must learn the basics of business rules by capturing and describing the declarative rules that apply in a restricted business context. Learning to specify rules in exact detail is hampered by the lack of rule languages suited for instructional purposes. Natural language or semiformal languages are too versatile and imprecise, whereas most formal languages presuppose advanced knowledge of mathematics and set theory. We describe an essential language for denoting declarative business rules. The language provides just five basic statements which are closely matched to the architectural structure of declarative business rules. The expressive power of the language enables to capture rules very precisely. The clear and simple structure of the language is well suited to learning and understanding. Hence, it is expected that it will improve the learning curve of students in mastering the basics of declarative business rules.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-04-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134572813","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Jumpstart sustainability in seminars: hands-on experiences in class","authors":"B. Penzenstadler, V. Bauer","doi":"10.1145/2421277.2421282","DOIUrl":"https://doi.org/10.1145/2421277.2421282","url":null,"abstract":"Sustainability in its different aspects is hardly addressed in software engineering education, neither as quality objective of system development nor in business process design.\u0000 Consequently, students tend to be unaware of this concept and are not considering sustainability as an important aspect of systems development. This results in the development of (environmentally or socially) suboptimal solutions---although information and communication technology systems could offer great support in promoting and enabling sustainability in our society. To unlock this potential, we are sensitizing students for the issue by gradually introducing the concept in the curriculum.\u0000 In this paper, we report on experiences in establishing sustainability in the software engineering curriculum of Bachelor and Master students by means of designated interactive seminars. A guideline on how to establish similar teaching activities concludes the paper.","PeriodicalId":131223,"journal":{"name":"Computer Science Education Research Conference","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115204914","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}