Master Lukkarinen Aleksi 2016

Total Page:16

File Type:pdf, Size:1020Kb

Master Lukkarinen Aleksi 2016 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
Recommended publications
  • Exploring the .BMP File Format
    Exploring the .BMP File Format Don Lancaster Synergetics, Box 809, Thatcher, AZ 85552 copyright c2003 as GuruGram #14 http://www.tinaja.com [email protected] (928) 428-4073 The .BMP image standard is used by Windows and elsewhere to represent graphics images in any of several different display and compression options. The .BMP advantages are that each pixel is usually independently available for any alteration or modification. And that repeated use does not normally degrade the image. Because lossy compression is not used. Its main disadvantage is that file sizes are usually horrendous compared to JPEG, fractal, GIF, or other lossy compression schemes. A comparison of popular image standards can be found here. I’ve long been using the .BMP format for my eBay and my other phototography, scanning, and post processing. I firmly believe that… All photography, scanning, and all image post-processing should always be done using .BMP or a similar non-lossy format. Only after all post-processing is complete should JPEG or another compressed distribution format be chosen. Some current examples of my .BMP work now do include the IMAGIMAG.PDF post-processing tutorial, the Bitmap Typewriterthat generates fully anti-aliased small fonts, the Aerial Photo Combiner, and similar utilities and tutorials found on our Fonts & Images, PostScript, and on our Acrobat library pages. A few projects of current interest involving .BMP files include true view camera swings and tilts for a digital camera, distortion correction, dodging & burning, preventing white punchthrough on knockouts, and emphasis vignetting. Mainly applied to uncompressed RGBX 24-bit color .BMP files.
    [Show full text]
  • TS 101 499 V2.2.1 (2008-07) Technical Specification
    ETSI TS 101 499 V2.2.1 (2008-07) Technical Specification Digital Audio Broadcasting (DAB); MOT SlideShow; User Application Specification European Broadcasting Union Union Européenne de Radio-Télévision EBU·UER 2 ETSI TS 101 499 V2.2.1 (2008-07) Reference RTS/JTC-DAB-57 Keywords audio, broadcasting, DAB, digital, PAD ETSI 650 Route des Lucioles F-06921 Sophia Antipolis Cedex - FRANCE Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16 Siret N° 348 623 562 00017 - NAF 742 C Association à but non lucratif enregistrée à la Sous-Préfecture de Grasse (06) N° 7803/88 Important notice Individual copies of the present document can be downloaded from: http://www.etsi.org The present document may be made available in more than one electronic version or in print. In any case of existing or perceived difference in contents between such versions, the reference version is the Portable Document Format (PDF). In case of dispute, the reference shall be the printing on ETSI printers of the PDF version kept on a specific network drive within ETSI Secretariat. Users of the present document should be aware that the document may be subject to revision or change of status. Information on the current status of this and other ETSI documents is available at http://portal.etsi.org/tb/status/status.asp If you find errors in the present document, please send your comment to one of the following services: http://portal.etsi.org/chaircor/ETSI_support.asp Copyright Notification No part may be reproduced except as authorized by written permission.
    [Show full text]
  • Little Languages for Little Robots
    Little Languages for Little Robots Matthew C. Jadud Brooke N. Chenoweth Jacob Schleter University of Kent Canterbury Indiana University Gibson High School Canterbury, UK Bloomington Fort Branch, IN [email protected] Bloomington, IN [email protected] ABSTRACT where students learn by building personally meaningful With serendipity as our muse, we have created tools that artifacts in the world. allow students to author languages of their own design for robots of their own construction. In developing a Scheme 2. JACKLL: A NEW LANGUAGE compiler for the LEGO Mindstorm we realized that there In building up to the evolution of Jackll and the philoso- is great educational potential in the design and creation phies its creation embodies, we feel it is appropriate to of new languages for small robotics kits. As a side effect first introduce the LEGO Mindstorm, the target for our of bringing Scheme and the Mindstorm together in a cre- Scheme compiler, and situate Jackll with respect to other ative context, we have begun an exploration of teaching languages intended for beginner programmers. language design that is fundamentally different from the treatment of the subject in traditional literature. 2.1 What is the LEGO Mindstorm? The LEGO Mindstorm Robotics Invention System is a 1. INTRODUCTION commercial product from the LEGO Group that provides Jacob Schleter, a rising senior at Gibson High School, Fort an inexpensive, reconfigurable platform for exploring robotics. Branch, Indiana, took part in the Indiana University Col- It comes standard with two motors, two touch sensors, one lege of Arts and Sciences Summer Research Experience for light sensor, and hundreds of pieces for assembling all sorts six weeks during the summer of 2002.
    [Show full text]
  • IPS Signature Release Note V9.17.79
    SOPHOS IPS Signature Update Release Notes Version : 9.17.79 Release Date : 19th January 2020 IPS Signature Update Release Information Upgrade Applicable on IPS Signature Release Version 9.17.78 CR250i, CR300i, CR500i-4P, CR500i-6P, CR500i-8P, CR500ia, CR500ia-RP, CR500ia1F, CR500ia10F, CR750ia, CR750ia1F, CR750ia10F, CR1000i-11P, CR1000i-12P, CR1000ia, CR1000ia10F, CR1500i-11P, CR1500i-12P, CR1500ia, CR1500ia10F Sophos Appliance Models CR25iNG, CR25iNG-6P, CR35iNG, CR50iNG, CR100iNG, CR200iNG/XP, CR300iNG/XP, CR500iNG- XP, CR750iNG-XP, CR2500iNG, CR25wiNG, CR25wiNG-6P, CR35wiNG, CRiV1C, CRiV2C, CRiV4C, CRiV8C, CRiV12C, XG85 to XG450, SG105 to SG650 Upgrade Information Upgrade type: Automatic Compatibility Annotations: None Introduction The Release Note document for IPS Signature Database Version 9.17.79 includes support for the new signatures. The following sections describe the release in detail. New IPS Signatures The Sophos Intrusion Prevention System shields the network from known attacks by matching the network traffic against the signatures in the IPS Signature Database. These signatures are developed to significantly increase detection performance and reduce the false alarms. Report false positives at [email protected], along with the application details. January 2020 Page 2 of 245 IPS Signature Update This IPS Release includes Two Thousand, Seven Hundred and Sixty Two(2762) signatures to address One Thousand, Nine Hundred and Thirty Eight(1938) vulnerabilities. New signatures are added for the following vulnerabilities: Name CVE–ID
    [Show full text]
  • Universidade Salvador – Unifacs Programa De Pós-Graduação Em Redes De Computadores Mestrado Profissional Em Redes De Computadores
    UNIVERSIDADE SALVADOR – UNIFACS PROGRAMA DE PÓS-GRADUAÇÃO EM REDES DE COMPUTADORES MESTRADO PROFISSIONAL EM REDES DE COMPUTADORES DEMIAN LESSA INTERFACES GRÁFICAS COM O USUÁRIO: UMA ABORDAGEM BASEADA EM PADRÕES Salvador 2005 DEMIAN LESSA INTERFACES GRÁFICAS COM O USUÁRIO: UMA ABORDAGEM BASEADA EM PADRÕES Dissertação apresentada ao Mestrado Profissional em Redes de Computadores da Universidade Salvador – UNIFACS, como requisito parcial para obtenção do grau de Mestre. Orientador: Prof. Dr. Manoel Gomes de Mendonça. Salvador 2005 Lessa, Demian Interfaces gráficas com o usuário: uma abordagem baseada em padrões / Demian Lessa. – Salvador, 2005. 202 f.: il. Dissertação apresentada ao Mestrado Profissional em Redes de Computadores da Universidade Salvador – UNIFACS, como requisito parcial para a obtenção do grau de Mestre. Orientador: Prof. Dr. Manoel Gomes de Mendonça. 1. Interfaces gráficas para usuário - Sistema de computador. I. Mendonça, Manoel Gomes de, orient. II. Título. TERMO DE APROVAÇÃO DEMIAN LESSA INTERFACES GRÁFICAS COM O USUÁRIO: UMA ABORDAGEM BASEADA EM PADRÕES Dissertação aprovada como requisito parcial para obtenção do grau de Mestre em em Redes de Computadores da Universidade Salvador – UNIFACS, pela seguinte banca examinadora: Manoel Gomes de Mendonça – Orientador _________________________________ Doutor em Ciência da Computação pela Universidade de Maryland em College Park, Estados Unidos Universidade Salvador - UNIFACS Celso Alberto Saibel Santos ____________________________________________ Doutor em Informatique Fondamentalle et Parallelisme pelo Université Paul Sabatier de Toulouse III, França Universidade Federal da Bahia – UFBA Flávio Morais de Assis Silva _____________________________________________ Doutor em Informática pelo Technische Universität Berlin, Alemanha Universidade Federal da Bahia – UFBA Salvador de de 2005 A meus pais, Luiz e Ines, pelo constante incentivo intelectual e, muito especialmente, por todo amor e carinho repetidamente demonstrados.
    [Show full text]
  • Libreoffice Na Prefeitura De Paraíba Do Sul 05
    EDITORES Eliane Domingos de Sousa Vera Cavalcante EDITORIAL REDATORES Festa diante do caos Alessandro Feitoza Clayton Eduardo Dausacker A abertura dos jogos olímpicos foi uma lição para o mundo. Danilo Martinez Praxedes Como um país que está em um momento turbulento na economia e na política David Jourdain Douglas Vigliazzi consegue passar por cima de tudo isso e fazer uma festa maravilhosa Gilvan Vilarim !emos um jeito tão brasileiro de separar as coisas. "ostramos ao mundo que Jon Maddog Hall Johnny Furusato podemos fazer festa# mesmo diante do caos. $ dizer o que precisa ser dito para o José Rojo Camacho mundo. %obre como somos os responsáveis pelo que acontece ao planeta. %omos Luiz Fernando Rezende Coutinho a causa da doença# mas tamb&m podemos ser a cura. Algu&m tem uma ideia que# Marco Giannini Nélio Gonçalves Godoi com certeza# & um sonho individual que compartilhado# & colocado em prática. Um Rômulo Souza indivíduo tem que ser o primeiro a colocar a mão na massa. $ pode fazer a Sedenir Marco de Paris diferença no mundo. (epois a massa assume a ideia e a mudança. A lição que Sthefany Soares tiramos disso & que# cada um de n)s pode plantar uma ideia. *u uma árvore. $ o TRADUÇÃO mundo será# no futuro# melhor para os que aqui estiverem. David Jourdain +amos aproveitar esse momento e tomá-lo como apoio para todas as nossas Vera Cavalcante aç-es futuras. Boas ideias e trabalho são as aç-es que podem fazer a diferença. REVISÃO 'm e/emplo disso foi o trabalho realizado na 0refeitura de 0araíba do %ul.
    [Show full text]
  • CSCE A201 Computer Programming I Lab 0
    CSCE A201 Computer Programming I Lab 0 Lecture Instructors: Dr. Kenrick Mock, MW 11:30‐12:45pm Dr. Frank Witmer, TR 10‐11:15am Lab Assistants: Deanna Flynn Elisha Waugh Goals for Today • Introduce lab assistants • Meet some of your classmates • Introduction to Dr. Java • Understand platform independence • Write your first (!?) Java program Syllabus Highlights wrt. Lab • May students collaborate on lab assignments? • May students collaborate on programming assignments? • What percentage of the total course grade is determined by lab? • How is the lab grade determined? Introduce your Neighbor 1. Name 2. Hometown 3. Something interesting (e.g. hobby or recent trip) Some Java Development Environments • Dr. Java – from Rice University, simple & effective – standalone executable (installation instructions on Blackboard) • jGRASP – NSF funded at Auburn University • Intellij IDEA – good code completion & error messages – https://www.jetbrains.com/idea/ • NetBeans – from Oracle, good for multiple, larger projects • Eclipse – more plug‐ins, more customizable – good for Android development) • TextPad (initially free, but then ~$30) • Any text editor & command line – Notepad++ with Cygwin/DOS – emacs, vim, nano with unix/linux • See also Appendix 1 in Savitch book Java Example • Class Hello must be stored in file Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello world."); } } Platform Independence Demo • Compile java & C++ programs on linux – Which executable/bytecode will run on a Windows machine? Platform Independence • Use ‘javac’ command to compile Java source code .java files high‐level language • Use ‘java’ command to run Java bytecode .class and .jar (Java Archive) files low‐level language Same bytecodes can run any platform with an appropriate JVM (‘java’) Lab 0 Exercise 1.
    [Show full text]
  • 51 Document Output
    ◆ Document Output <Function> You can output a document from “Document List” as an image file. All the documents selected in “Document List” can be outputted as a document in a specified format. <ICP Setting Procedures> Refer to 4 3, 6 15 1. Click “Output Document” at the right side. 2. The “Save As” dialog box appears. 3. Click “Compression” to confirm the file compression setting for “TIFF File”. If you change, click “OK”. 4. Select “PDF File” as a file format in the “Save as type” list box. 5. Click “Compression” to confirm the file compression setting for “PDF File”. If you change, click “OK”. 6. Select “PDF(Searchable) File” as a file format in the “Save as type” list box. 7. Click “OCR Settings” to confirm the searchable file setting. If you change, click “OK”. 8. Select “Jpeg File” as a file format in the “Save as type” list box. 9. Click “Compression” to confirm the file compression setting for “JPEG File”. If you change, click “OK”. 10. Select “Jpeg2000 File” as a file format in the “Save as type” list box. 11. Click “Compression” to confirm the file compression setting for “Jpeg2000 File”. If you change, click “OK”. 12. Select “Depends on Image Type” in the “Save as type” list box. 13. “File Type Settings” dialog box appears and confirm the settings for each type. If you change, click “OK”. 14. Select “Jpeg File” as a file format in the “Save as type” list box. 15. Confirm the setting of File Name at the bottom right and click “Save”.
    [Show full text]
  • Compiler Error Messages Considered Unhelpful: the Landscape of Text-Based Programming Error Message Research
    Working Group Report ITiCSE-WGR ’19, July 15–17, 2019, Aberdeen, Scotland Uk Compiler Error Messages Considered Unhelpful: The Landscape of Text-Based Programming Error Message Research Brett A. Becker∗ Paul Denny∗ Raymond Pettit∗ University College Dublin University of Auckland University of Virginia Dublin, Ireland Auckland, New Zealand Charlottesville, Virginia, USA [email protected] [email protected] [email protected] Durell Bouchard Dennis J. Bouvier Brian Harrington Roanoke College Southern Illinois University Edwardsville University of Toronto Scarborough Roanoke, Virgina, USA Edwardsville, Illinois, USA Scarborough, Ontario, Canada [email protected] [email protected] [email protected] Amir Kamil Amey Karkare Chris McDonald University of Michigan Indian Institute of Technology Kanpur University of Western Australia Ann Arbor, Michigan, USA Kanpur, India Perth, Australia [email protected] [email protected] [email protected] Peter-Michael Osera Janice L. Pearce James Prather Grinnell College Berea College Abilene Christian University Grinnell, Iowa, USA Berea, Kentucky, USA Abilene, Texas, USA [email protected] [email protected] [email protected] ABSTRACT of evidence supporting each one (historical, anecdotal, and empiri- Diagnostic messages generated by compilers and interpreters such cal). This work can serve as a starting point for those who wish to as syntax error messages have been researched for over half of a conduct research on compiler error messages, runtime errors, and century. Unfortunately, these messages which include error, warn- warnings. We also make the bibtex file of our 300+ reference corpus ing, and run-time messages, present substantial difficulty and could publicly available.
    [Show full text]
  • How to Design Co-Programs
    JFP, 15 pages, 2021. c Cambridge University Press 2021 1 doi:10.1017/xxxxx EDUCATIONMATTERS How to Design Co-Programs JEREMY GIBBONS Department of Computer Science, University of Oxford e-mail: [email protected] Abstract The observation that program structure follows data structure is a key lesson in introductory pro- gramming: good hints for possible program designs can be found by considering the structure of the data concerned. In particular, this lesson is a core message of the influential textbook “How to Design Programs” by Felleisen, Findler, Flatt, and Krishnamurthi. However, that book discusses using only the structure of input data for guiding program design, typically leading towards structurally recur- sive programs. We argue that novice programmers should also be taught to consider the structure of output data, leading them also towards structurally corecursive programs. 1 Introduction Where do programs come from? This mystery can be an obstacle to novice programmers, who can become overwhelmed by the design choices presented by a blank sheet of paper, or an empty editor window— where does one start? A good place to start, we tell them, is by analyzing the structure of the data that the program is to consume. For example, if the program h is to process a list of values, one may start by analyzing the structure of that list. Either the list is empty ([]), or it is non-empty (a : x) with a head (a) and a tail (x). This provides a candidate program structure: h [ ] = ::: h (a : x) = ::: a ::: x ::: where for the empty list some result must simply be chosen, and for a non-empty list the result depends on the head a and tail x.
    [Show full text]
  • The Comparability Between Modular and Non-Modular
    THE COMPARABILITY BETWEEN MODULAR AND NON-MODULAR EXAMINATIONS AT GCE ADVANCED LEVEL Elizabeth A Gray PhD INSTITUTE OF EDUCATION UNIVERSITY OF LONDON 1 ABSTRACT The prime concern of this thesis is the comparability of two types of assessment now prevalent in Advanced level GeE examinations. The more conventional linear scheme assesses all candidates terminally, and the only way to improve the grade awarded is to re-take the whole examination. In contrast, the relatively new modular schemes of assessment include testing opportunities throughout the course of study. This not only has formative effects but allows quantifiable improvements in syllabus results through the medium of the resit option. There are obvious differences between the two schemes, but this does not necessarily imply that they are not comparable in their grading standards. It is this standard which the thesis attempts to address by considering the different variabilities of each of the schemes, and how these might impinge upon the outcomes of the grading process as evidenced in the final grade distributions. A key issue is that of legitimate and illegitimate variabilities - the former perhaps allowing an improvement in performance while maintaining grading standards; the latter possibly affecting the grading standard because its effect was not fully taken into account in the awarding process. By looking at a linear and modular syllabus in mathematics, the differences between the two are investigated, and although not fully generalisable, it is clear that many of the worries which were advanced when modular schemes were first introduced are groundless. Most candidates are seen to use the testing flexibility to their advantage, but there is little evidence of over-testing.
    [Show full text]
  • Java Ide's One-On-One*
    DR. J VS. THE BIRD: JAVA IDE'S ONE-ON-ONE* Michael Olan Computer Science and Information Systems Richard Stockton College Pomona, NJ 08240 609-652-4587 [email protected] ABSTRACT An important decision facing instructors of introductory programming courses is the choice of supporting software development tools. Usually this involves selecting an integrated development environment (IDE). BlueJ has received widespread adoption for first year courses that use the Java programming language; however, DrJava is emerging as an alternative. This paper features a comparison of the pedagogical approaches used by BlueJ and DrJava as a guideline for selecting the tool best suited to the teaching style used in the introductory course. 1. INTRODUCTION The choice was simple when text editors and the command line were the only tools for developing programs. That changed with the introduction of integrated development environments (IDE's), and campuses nationwide adopted Borland's Turbo Pascal. Languages also have changed. Pascal was designed as a teaching language, but now academic programs use advanced languages designed for professional software engineers. Making these complex languages accessible to beginning students requires a careful selection of the development environment. This discussion will only include Java, currently the dominant language choice for introductory courses. Let us first consider several levels of tool support in the introductory course sequence: 1) Minimal: A text editor and the command line. 2) Simple IDE: Just the basics, no bells and whistles. 3) Professional IDE: Powerful and feature filled. ___________________________________________ * Copyright © 2004 by the Consortium for Computing Sciences in Colleges. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the CCSC copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Consortium for Computing Sciences in Colleges.
    [Show full text]