A Web-Based System for Executing Interactive Scala Programming Exercises in Browser

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2016-12-22
Department
Major/Subject
Information Networks
Mcode
SCI3047
Degree programme
Master’s Programme in Information Networks
Language
en
Pages
120+7
Series
Abstract
When first introduced to programming, students are often assigned to write mere code snippets that only produce a numerical output with the help of a simple control structure. The students are left unimpressed as they fail to see the real utility that learning to program holds. By assigning students real-world programming problems, such as games and media computation exercises, we showcase real applications for programming. At the beginning of their first programming course, students are already used to working with modern, interactive, and visually impressive interfaces. However, they cannot be expected to produce the graphical user interfaces required to take the full advantage of media content. Previously, we have distributed interfaces implemented with Swing as program code for local execution; the practise does not allow the easy updating of assignment related code and achieving a usable interface is tiresome with the use of Swing. To address the issues of the current process, we developed a web-based system that allows the execution of interactive Scala programs in a browser. The system combines student’s code together with the instructor prepared code and compiles it to JavaScript code. The design of the system is a novel one and takes the use of modern web technologies. The system was trialled with a media programming course in 2015 with encouraging results. Despite the technical difficulties, the system helped addressing the challenges encountered in implementing and distributing modern graphical user interfaces.

Usein ohjelmointiopintojen alussa opiskelijoille annetaan tehtäväksi vain lyhyitä koodin pätkiä, jotka tuottavat kontrollirakenteen avulla numeerisen tulosteen. Tällaiset tehtävät eivät vakuuta opiskelijoita ohjelmoinnin opettelun hyödyllisyydestä. Antamalla opiskelijoille tehtäväksi todellisia ohjelmointiongelmia, kuten pelejä tai mediaohjelmointitehtäviä, on mahdollista esittää ohjelmoinnin todellisia sovelluskohteita. Jo ennen ensimmäistä ohjelmointikurssinsa alkua opiskelijat ovat tottuneita interaktiivisten ja visuaalisesti näyttävien käyttöliittymien käyttäjiä. Heidän ei kuitenkaan voida odottaa itse tuottavan käyttöliittymiä, jotka hyödyntävät mediasisältöjä. Aikaisemmin olemme tarjonneet käyttöliittymät Swing-kirjaston avulla toteutettuna ohjelmakoodina, joita opiskelijat ovat suorittaneet omalla tietokoneillaan. Tämä ei kuitenkaan mahdollista helppoa tapaa päivittää tehtävänantoon liittyvää koodia, minkä lisäksi onnistuneiden käyttöliittymien aikaansaaminen Swing-kirjaston avulla on työlästä. Ratkaisuksi näihin ongelmiin diplomityössä kehitettiin web-pohjainen järjestelmä, joka mahdollistaa interaktiivisten Scala-ohjelmien suorituksen selaimessa. Järjestelmä yhdistää opiskelijan tuottaman koodin opettajan valmisteleman koodiin ja kääntää nämä yhdessä JavaScript-ohjelmaksi. Järjestelmän toimintatapa on uudenlainen ja sen toteutuksessa on käytetty moderneja web-teknologioita. Järjestelmän koekäytössä mediaohjelmoinnin kurssilla vuonna 2015 saatiin lupaavia tuloksia. Teknisistä vaikeuksista huolimatta järjestelmä auttoi kohtaamaan modernien käyttöliittymien toteutukseen ja jakeluun liittyviä haasteita.
Description
Supervisor
Malmi, Lauri
Thesis advisor
Seppälä, Otto
Sorva, Juha
Keywords
distributed homework submission system, novice programmers, computer science education, Scala
Other note
Citation