{"title":"Keep Calm and Code on Your Phone: A Pilot of SuaCode, an Online Smartphone-Based Coding Course","authors":"George Boateng, V. Kumbol, Prince Steven Annor","doi":"10.1145/3375258.3375260","DOIUrl":"https://doi.org/10.1145/3375258.3375260","url":null,"abstract":"Africa lags behind the rest of the world in terms of digital literacy skills with less than one percent of African children leaving school with basic coding skills. One cause of this gap is poor access to equipment such as computers for teaching and learning. Yet, there is a proliferation of smartphones in Africa. Seeking to leverage this opportunity, we developed SuaCode, an online smartphone-based coding course to teach programming fundamentals to Africans. We designed the course to teach coding in a visual, interactive and fun way through the building of a pong game using Processing (a Java-based programming language). In this work, we describe our experience delivering the course online to 30 Ghanaian high school and college students. At the end of the course, 7 of the 30 students completed the first part of the course, building the pong game. The reflection essays from our students showed that they enjoyed the course and coding on a smartphone was not a barrier to completing the assignments. Improvements such as having more mentors and automated feedback on the coding assignments will improve the quality of the course. Given the difficulty in accessing computers in Africa, our work shows that smartphones can be leveraged to effectively introduce students to programming concepts via an online course. We are excited about the results of this pilot and see the potential to scale the course to eventually bring coding skills within arm's reach of millions across Africa, literally into their palms thereby bridging Africa's digital divide.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"118 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124571370","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":"Creating Tutorial Materials as Lecture Supplements by Integrating Drawing Tablet and Video Capturing/Sharing","authors":"Chen-Wei Wang","doi":"10.1145/3375258.3375259","DOIUrl":"https://doi.org/10.1145/3375258.3375259","url":null,"abstract":"We report the experience of adopting an innovative technique for creating tutorial videos which complement lectures and facilitate students' learning. Our technique relies on: 1) preparing starter pages consisting of code fragments or writings/figures on a drawing tablet; 2) illustrating complex ideas on the drawing tablet; 3) recording all computer desktop activities (e.g., development of code on a programming IDE, illustration on the drawing tablet); and 4) sharing the recorded tutorial videos with students online. Our technique has been adopted in creating tutorial series for four Computer Science and Engineering courses, ranging from the first year to the third year. Analytics of these online tutorial videos is presented to show the average amount of time which each registered student spent on watching them. Course evaluation results indicate that our technique is perceived as effective for achieving the course learning outcomes. Comparison of students' performance on complex topics (arrays and loops) also indicates a positive impact of our approach.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130465920","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":"Project Tomo: automated feedback service in teaching programming in Slovenian high schools","authors":"Matija Lokar","doi":"10.1145/3375258.3375276","DOIUrl":"https://doi.org/10.1145/3375258.3375276","url":null,"abstract":"Good and immediate feedback is one of the key components in learning programming. Therefore a tool enabling quick feedback can be very useful in the teaching process. As most such services already available had feedback possibilities more or less limited, we developed a new web service called Project Tomo. It is completely open and already has more than 4000 programming exercises that can be adapted and re-used in new courses. At the moment the service is used by over 30 educational establishments, most of which are high schools. The poster briefly describes the options available in the service and presents its use. Opinions of the teachers using this tool in their teaching are given as well.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"86 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131563187","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":"Is Deductive Program Verification Mature Enough to be Taught to Software Engineers?","authors":"Marc Schoolderman, S. Smetsers, M. V. Eekelen","doi":"10.1145/3375258.3375265","DOIUrl":"https://doi.org/10.1145/3375258.3375265","url":null,"abstract":"Software engineers working in industry seldom try to apply formal methods to solve problems. There are various reasons for this. Sometimes these reasons are understandable---the cost of using formal methods does not make economic sense in many contexts. However, formal methods are also often greeted with scepticism. Formal methods are assumed to take too much time, require tools that are too academic, or to be too mathematical to be understood by practice-oriented software engineers. We tested these assumptions by designing a small course around a framework for program verification, aimed at regular computer science students enrolled in a Master's programme. After four lectures and associated exercises, students were given a small verification task where they had to model and verify a real, non-trivial, C function in Why3. A significant majority of students managed to prove a non-trivial functional specification of this C function in the time allotted, and many also pointed out inherent flaws of this function discovered during formalization. Participants reported no major difficulties or mental hurdles in learning Why3, and considered its approach to be appropriate for selected components of safety-critical software. While formal verification tools such as Why3 still have lots of room for improvement, this experience shows that in a short amount of time, software engineers can be taught to use a program verification tool, and obtain usable results without being fully proficient in it. We further recommend that courses on formal methods should also let students explore these as techniques to be applied, instead of only focusing on the theory behind them, as we expect this to gradually lower the barrier to wider acceptance.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125899963","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":"Programming, Research and... Coffee?: An Analysis of Workplace Activities by Computing Interns","authors":"H. Aldewereld, Esther van der Stappen","doi":"10.1145/3375258.3375264","DOIUrl":"https://doi.org/10.1145/3375258.3375264","url":null,"abstract":"To overcome the skills gap between industry demands and learning outcomes achieved by graduates in higher computing education, many Bachelor programs integrate some form of internship in their curriculum; students are assumed to encounter authentic tasks and recent technologies in the workplace. In practice, however, educators often do not know specifically which tasks their students perform and which technologies they use, mainly due to the distance between coach and student during the work placement and the lack of cohort-based overviews of activities performed in internships. In this study, we gathered and analyzed workplace activity data of 54 students over the course of their third-year semester-long internships in the computing industry. We performed descriptive analyses to gain insight into i) which categories of activities students performed most (programming, research and documentation) and ii) which of the activity categories they find most difficult (research, documentation (both academic and IT) and implementation/configuration). Subsequent text analysis gives us insight into students' perceptions of the categories used to label activities (testing, research, meetings, and academic documentation are congruous) and which technologies were used most by these students. Based on the results, we conclude it is feasible to use user-generated data to get insights into workplace activities of computing interns. The quality of this user-generated data does hamper us in drawing certain conclusions. Further research is needed with improved data quality and volume in order to obtain more generalizable results.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"261 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121222068","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":"Static Detection of Design Patterns in Class Diagrams","authors":"E. V. Doorn, Sylvia Stuurman, M. V. Eekelen","doi":"10.1145/3375258.3375268","DOIUrl":"https://doi.org/10.1145/3375258.3375268","url":null,"abstract":"Teaching Object-Oriented design on the class diagram level is often a cumbersome effort. Requiring the use of specific design patterns helps the students in structuring their design properly. However, checking whether students used the right design pattern can be a very time-intensive task due to the variety of possibilities of creating structure using design patterns on the high-level class diagrams. For the same reason, it is hard for students to check for themselves whether their solution fulfills the basic requirements that are required by the instructor with respect to the use of design patterns. Efficiency and the quality of design pattern education can be improved by automatic detection of design patterns in UML class diagrams. We introduce a new method to detect design patterns in class diagrams, together with a prototype of a tool that uses this new method. Using this tool, an instructor needs less effort to review solutions of design exercises since the tool can check the basic class requirements automatically. Consequently, an instructor can focus on the more high-level requirements that were set in the exercise and students can easier check for themselves whether their design satisfies the basic required properties on the pattern level. The method offers static decidability for those design patterns, that are identified by structural properties e.c. the names of the classes and their associations. It is non-duplicating. That is a specific occurrence of a design pattern is not reported multiple times. The method not only detects all 16 static Gang of Four design patterns without false positives or false negatives, but also it can detect redundant relations. Our tool contributes to the quality and efficiency of design pattern education, both for students and instructors.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130477351","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":"Tying Ethics to Teamwork Training in a Minimodule","authors":"A. Sprague, Raquel Diaz-Sprague","doi":"10.1145/3375258.3375275","DOIUrl":"https://doi.org/10.1145/3375258.3375275","url":null,"abstract":"Most CS and engineering curricula require that students take ethics training and acquire competence in teamwork skills before graduation. Both ethics and teamwork are course objectives mandated by the Accreditation Board for Engineering & Technology (ABET). However, ethics and teamwork are difficult to teach by regular STEM faculty. Lingard (2010) suggests that faculty may not have had much teamwork training themselves. Students can take ethics courses in other departments which may/not help the students to engage in moral reasoning or help them in considering societal implications of technologies they learn in CS or Engineering courses. Thus, there is a growing recognition of the need for a more integrative approach, such as to teach ethics across the curriculum (Pease and Baker, 2009) or embed ethics within the CS curriculum (Grosz et al, 2019). At the University of Alabama at Birmingham (UAB), we are pilot testing a short, integrative approach, i.e., a 4-class period minimodule, covering both ethics and teamwork, embedded in CS or ECE courses. It includes a short refresher on moral reasoning, examples of cooperative behavior in animals and student-led teamwork demonstrations. Using an andragogical approach we provide questions to guide discussions by student teams after viewing video lectures by renowned experts. Outside of class, student teams prepare teamwork demonstrations for the class. We report results and observations. We also report on an event in progress: the intercollegiate Ethics in Action Challenge --https://www.ub.edu/engineering/ece/news/127-ethics-in-action","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131848324","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}
H. Alers, Marcella Veldthuis, Aleksandra Malinowska, Tim K. Cocx
{"title":"A Flipped Classroom Experiment: The implementation of Semi-Synchronous Learning","authors":"H. Alers, Marcella Veldthuis, Aleksandra Malinowska, Tim K. Cocx","doi":"10.1145/3375258.3375274","DOIUrl":"https://doi.org/10.1145/3375258.3375274","url":null,"abstract":"With semi-synchronous learning, students are provided with online learning material, and allowed a window of time within which they study the material. This allows the students to employ mastery-based progression and just-in-time learning approaches. Furthermore, this also frees lecturers' time, allowing them to focus on helping students lagging behind. This article describes the process of converting a ten-week university course to a semi-synchronous teaching format. Student grades and video viewing statistics were used to evaluate the new approach. Results show that some students had an initial resistance to the new format and leaned towards traditional teaching methods. However, video viewing statistics show that students remained engaged in learning the theory throughout the course duration. The new approach did not result in a significant difference in student grades.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133929597","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}
H. Günzel, Lars Brehm, Hans-Jürgen Haak, Mira Grönvall, A. Sainio
{"title":"DI2 Co-Innovation Lab: Teaching software development in and for real business situations","authors":"H. Günzel, Lars Brehm, Hans-Jürgen Haak, Mira Grönvall, A. Sainio","doi":"10.1145/3375258.3375273","DOIUrl":"https://doi.org/10.1145/3375258.3375273","url":null,"abstract":"Digitization is changing the business world as a whole [7]. But, digitization affects not only the business world, but also university teaching significantly. The DI2 Co-Innovation Lab serves as a framework to work on joint projects and tasks with companies, students and lecturers in a spatial distributed, international and interdisciplinary setting (DI2) and at the same time to reduce the effort and risk of those involved. The Co-Innovation Lab (CIL) brings a proven agile project management method with knowledge assets from previous projects to support the work on real business problems. Aspects of mediation mitigate the effects of the complex setting. Tried and tested IT tools for acquisition, communication and knowledge management support the processing. Furthermore, branding and publications are used in the acquisition of projects.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"93 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131504128","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}
Lex Bijlsma, C. Huizing, R. Kuiper, H. Passier, H. Pootjes, S. Smetsers
{"title":"Evaluation of a Structured Design Methodology for Concurrent Programming","authors":"Lex Bijlsma, C. Huizing, R. Kuiper, H. Passier, H. Pootjes, S. Smetsers","doi":"10.1145/3375258.3375266","DOIUrl":"https://doi.org/10.1145/3375258.3375266","url":null,"abstract":"Learning how to design and implement a program is hard. Teaching methods and textbooks on Java programming often treat a new subject in terms of syntax and examples. Little attention is paid to systematically designing programs with these new concepts. Research has shown that such a complex task requires not only conceptual knowledge, but also explicit procedural support. In this paper, we investigate the effect of combining conceptual and procedural guidance to teaching and learning concurrent programming. We build on earlier research in which we have introduced such a structured design methodology which divides the development of multi-threaded Java programs into a sequence of explicit, manageable steps: the Steps Plan. We present our experiences with applying the Steps Plan in an introductory course on object-oriented programming, with multithreading. The main questions addressed are: \"What problems did the students encounter in direct relation to the Steps Plan?\", and \"What general problems surfaced?\" As to the first question, two important issues were that using a relatively far developed sequential solution as a stepping stone towards a multi-threaded solution wrong-footed some students, and that remedying race condition situations turned out to be supported at a too high level of abstraction. As to the second question, two notable issues were that deciding on the right amount and type of concurrency by themselves is maybe too difficult for students at this level, and that the notion of (establishing) correctness or quality of a solution is, different from the sequential case, not intuitively clear to students. For these issues, the paper recommends remedies and indicates directions for future work. We discuss the consequences for education as regards teaching materials and forms of teaching.","PeriodicalId":120434,"journal":{"name":"Proceedings of the 8th Computer Science Education Research Conference","volume":"94 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127908988","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}