Master Lukkarinen Aleksi 2016
Total Page:16
File Type:pdf, Size:1020Kb
Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media Computaon Scala Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media Computaon Scala Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media Computaon Aalto University Scala Contextualizaon Scala Media ComputaonSchool Scala of Science Degree Programme in Computer Science and Engineering Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media Computaon Scala Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media ComputaonAleksi Lukkarinen Scala Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala MediaSupporng Computaon Media Computaon Scala Contextualizaon Scala Media Computaonin Programming Scala Educaon Scala Media Computaon ContextualizaonA Scala Class Library Media for Bitmap Processing Using Scala Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media Computaon Scala Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media Computaon Scala Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media Computaon Scala Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media Computaon Scala Scala Media Computaon Contextualizaon Scala Media Scala Scala Contextualizaon Scala Media ComputaonMaster's Thesis Espoo, May 23, 2016 Scala Contextualizaon Scala Media Computaon Scala Scala Media Computaon Contextualizaon Scala MediaSupervisor: Scala Scala Contextualizaon Scala Media ComputaonAdvisors: Scala Contextualizaon Scala Media Computaon Scala Professor Lauri Malmi Scala Media Computaon Contextualizaon Scala Media Juha Sorva, D.Sc. (Tech.) Oo Seppälä, D.Sc. (Tech.) Scala Scala Contextualizaon Scala Media Computaon Scala Contextualizaon Scala Media Computaon Scala Aalto University, P.O. BOX 11000, 00076 AALTO www.aalto.fi Abstract of Master's Thesis Author Aleksi Lukkarinen Title of Thesis Supporng Media Computaon in Programming Educaon: A Class Library for Bitmap Processing Using Scala Degree Programme Computer Science and Engineering Thesis Supervisor Professor Lauri Malmi Code of Professorship T–106 Department Computer Science and Engineering Thesis Advisors Juha Sorva, D.Sc. (Tech.); Oo Seppälä, D.Sc. (Tech.) Date May 23, 2016 Number of Pages xx + 106 + 3 appendices Language English Abstract The objecve of the Thesis was to idenfy opportunies for applying Media Computaon in four courses that teach introductory computer science and programming with the Scala programming language and are aimed at computer science majors at Aalto. Media Computaon is an approach for contextualizing computer science and programming educaon to make it appear more inter- esng and movang for students. The main components of this thesis are (1) a classificaon of the currently available teaching contextualizaon methods for programming and computer science, with a focus on Media Com- putaon; and (2) a research prototype which supports students by offering cognive scaffolding and improves the presentaon of bitmap-based media on the interacve Scala shell of Scala IDE. The Thesis examines the foundaon of contextualizaon and Media Computaon in theories of movaon. This thesis formulates a classificaon that provides a coarse-grained overall pic- ture of tool-based contextualizaon methods and a more fine-grained descripon of ways to integrate media inside integrated development environments, a form of Media Computaon. In addion, on the basis of several textbooks that apply Media Computaon, the Thesis presents a classificaon of current genres of Media Computaon. Moreover, it reviews soware applica- ons that have already been used, or would be suitable to be used, for Media Computaon. The research prototype consists of two Scala-based class libraries and a bespoke version of the Eclipse-based Scala IDE. The first of the class libraries, SMCL (Scala Media Computaon Library), enables the actual bitmap processing. The laer one, in turn, offers an interface for the interac- ve Scala shell both to query SMCL for and to display metadata, such as bitmaps, that is related to the execuon results of code fragments. SMCL enables both pixel- and composing-based Media Computaon with RGBA-formaed (red, green, blue, aplha) bitmaps. It also contains a simple bitmap viewer for cases in which the development environment cannot display bitmaps or does not support SMCL. The requirements set for the prototype were almost fully realized, and a small-scale pilot tesng proved the funconality offered by the prototype to be useful. With further development of the prototype it is most likely possible to produce a tool, with which programming educaon can be improved to be more diverse, interesng, and movang. Keywords Scala, Media Computaon, contextualized teaching, introductory programming educaon, movaon, bitmap, graphics, class library Aalto-yliopisto, PL 11000, 00076 AALTO www.aalto.fi Diplomityön ivistelmä Tekijä Aleksi Lukkarinen Työn nimi Medialaskentaa ohjelmoinopetukseen: Scala-pohjainen kirjasto bikarojen käsielyyn Koulutusohjelma Tietotekniikka Valvoja Professori Lauri Malmi Professuurikoodi T–106 Laitos Tietotekniikka Työn ohjaajat Juha Sorva, TkT; Oo Seppälä, TkT Päiväys 23. toukokuuta 2016 Sivumäärä xx + 106 + 3 liiteä Kieli Englan Tiivistelmä Tämän diplomityön tavoieena oli tutkia mahdollisuuksia medialaskennan soveltamiseen neljällä Aalto-yliopiston Tietotekniikan laitoksen pääaineopiskelijoille suunnatulla kurssilla, jotka opea- vat etojenkäsielyeteen ja ohjelmoinnin alkeita Scala-ohjelmoinkielellä. Medialaskenta on näiden aiheiden opetukseen suunnau viitekehyksellistämismenetelmä, joka tähtää opetuksen muokkaamiseen opiskelijoiden näkökulmasta mielenkiintoisemmaksi ja movoivammaksi. Työn tärkeimmät osat ovat (1) etojenkäsielyeteen ja ohjelmoinnin opetukseen suunnauja viitekehyksellistämismenetelmiä käsielevä ja medialaskentaan painouva luokielu sekä (2) tut- kimusprototyyppi, joka tarjoaa opiskelijoille kogniivista tukea sekä parantaa bikarapohjai- sen median esiämistä Scala IDE -kehitysympäristön Scala-komentorivillä. Työssä haetaan perusteita sekä viitekehyksellistämisen eä medialaskennan toimivuudelle mo- vaaoteorioista. Kokonaiskuvan työkalupohjaisista viitekehyksellistämismenetelmistä saa työn tarjoamasta karkeasta luokielusta; medialaskennan osalta tämä luokielu tarkentuu tapoihin esiää mediaa integroiduissa kehitysympäristöihissä. Lisäksi työ esielee medialaskentaa sovel- taviin oppikirjoihin pohjautuvan luokielun medialaskennan suuntauksista sekä tutustuaa joi- hinkin medialaskennassa jo käyteyihin tai siihen soveltuviin ohjelmistoihin. Tutkimusprototyyppi koostuu kahdesta Scala-kielisestä luokkakirjastosta sekä Eclipse-pohjaisen Scala IDE -kehitysympäristön mukautetusta versiosta. Luokkakirjastoista ensimmäinen, SMCL (Scala Media Computaon Library), mahdollistaa varsinaisen bikarojen käsielyn, kun taas jäl- kimmäinen tarjoaa rajapinnan Scala-komentorivillä suoriteujen ohjelmakoodikokonaisuuksien suoritustuloksia koskevan metaedon, kuten bikarojen, siirtämiseen SMCL:ltä Scala-komen- torivillä esiteäväksi. SMCL mahdollistaa medialaskennan rgba-muotoisilla (red, green, blue, alpha) bikartoilla sekä kuvapistepohjaises eä bikartoista kokonaisuuksia koostaen. SMCL sisältää myös yksinkertaisen ohjelman bikarojen tarkastelemiseksi tapauksissa, joissa kehitys- ympäristö joko ei kykene esiämään bikaroja tai ei tue SMCL:ää. Prototyypille asetetut vaamukset toteutuivat lähes kokonaan ja pienimuotoinen pilotestaus osoi prototyypin tarjoaman toiminnallisuuden hyödylliseksi. Prototyyppiä jatkokehiämällä voidaan todennäköises tuoaa työkalu, jonka avulla ohjelmoinopetusta voidaan kehiää en- stä monipuolisemmaksi, mielenkiintoisemmaksi ja movoivammaksi. Asiasanat Scala, medialaskenta, viitekehyksellistey opetus, ohjelmoinnin alkeisopetus, movaao, bikara, grafiikka, luokkakirjasto Contents List of Figures vii List of Tables ix List of Code Examples xi Preface xiii Abbreviations and Definitions xv 1 Introduction 1 1.1 Computers and Programming in Today’s Society ..............1 1.2 Introductory Progr. Courses at Aalto University’s Dept. of CS . 4 1.3 Research Questions, Goals, and Process ...................6 1.4 Scope Restrictions ...............................8 1.5 Existing Literature ...............................9 1.6 Computing Education Research ........................10 1.7 Classifications and Relations to Research Disciplines . 11 1.8 Content and Notations .............................13 2 Motivation and Contextualization in Education 15 2.1 Motivation ...................................15 2.2 Contextualized Content ............................19 2.3 Apch. for Contextualization and Multimedia Usage . 21 2.3.1 Solutions Essentially Combining Software and Hardware . 22 2.3.2 Essentially Software-Based Solutions . 23 2.3.3 Essentially Hardware-Based Solutions . 26 3 Media Programming as a Context 27 3.1 Three Views into Media ............................27 3.2 Defining Media Programming .........................28 3.3 Effects of Media Programming ........................32 3.4 Applying Media Programming