A Journey from Symbolic Execution to Smart Fuzzing and Beyond Koushik Sen EECS Department University of California, Berkeley

Total Page:16

File Type:pdf, Size:1020Kb

A Journey from Symbolic Execution to Smart Fuzzing and Beyond Koushik Sen EECS Department University of California, Berkeley Automated Test Generation: A Journey from Symbolic Execution to Smart Fuzzing and Beyond Koushik Sen EECS Department University of California, Berkeley https://people.eecs.berkeley.edu/~ksen/ 1 Programs are still written by humans, and will be written by humans 2 To Err is Human Software Bugs 3 Programs Have Bugs 4 Why Program Testing? Programmer familiarity Concrete input for debugging No false positives Easy regression 5 Why Automated Testing? 6 Automated Testing Hits the Mainstream 7 Automated Testing Hits the Mainstream 8 Automated Testing Hits the Mainstream 9 Automated Testing Hits the Mainstream 10 Automated Testing Hits the Mainstream 11 Automated Testing Hits the Mainstream 12 Automated Testing Hits the Mainstream 13 Automated Testing Hits the Mainstream 14 Automated Testing Hits the Mainstream 15 Goals of Automated Testing Assumption: A program with optional assertions Goal: Automatically generate test inputs Get “good” code coverage Find “most” assertion violations Find crashes Find security vulnerabilities 16 Approaches to Test Generation Symbolic execution Fuzz testing Hybrid Human-guidance AI guidance Many more ... Symbolic Execution and Concolic Testing 18 Symbolic Execution Java PathFinder, KLEE, S2E, Veritesting Concolic Testing Combine concrete execution and symbolic execution DART, CUTE, CREST, ConBol, Apollo, Jalangi, CATG Concrete + Symbolic = Concolic 19 Symbolic Execution and Concolic Testing void testme (int x, int y) { 1. z = 2 * y; 2. if (z == x) { 3. if (x > y+10) { 4. ERROR; 5. } 6. } 7.} 20 Symbolic Execution and Concolic Testing void testme (int x, int y) { 1. z = 2 * y; 2. if (z == x) { 3. if (x > y+10) { 4. ERROR; 5. } 6. } Path constraint x y z true x y undef 7.} 0 0 21 Symbolic Execution and Concolic Testing void testme (int x, int y) { 1. z = 2 * y; 2. if (z == x) { 3. if (x > y+10) { 4. ERROR; 5. } 6. } Path constraint x y z true x y 2y 7.} 0 0 0 22 Symbolic Execution and Concolic Testing void testme (int x, int y) { 1. z = 2 * y; 2. if (z == x) { 3. if (x > y+10) { 4. ERROR; 5. } 6. } Path constraint x y z 2y = x x y 2y 7.} 0 0 0 0 0 23 Symbolic Execution and Concolic Testing void testme (int x, int y) { 1. z = 2 * y; 2. if (z == x) { 3. if (x > y+10) { 4. ERROR; 5. } 6. } Path constraint x y z 2y = x /\ x > y + 10 x y 2y 7.} 0 0 0 0 0 0 0 24 Symbolic Execution and Concolic Testing void testme (int x, int y) { 1. z = 2 * y; 2. if (z == x) { 3. if (x > y+10) { 4. ERROR; 5. } 6. } Path constraint x y z 2y = x /\ x > y + 10 22 11 7.} 0 0 0 0 Solve Test Inputs 25 Concolic Testing in Practice • Led to the development of several industrial and academic automated testing and security tools – Projects at Intel, Google, MathWorks, NTT, SalesForce – PEX, SAGE, and YOGI at Microsoft – Apollo at IBM, and Conbol and Jalangi at Samsung – BitBlaze, jFuzz, Oasis, and SmartFuzz in academia 26 Coverage is Low 27 Why Coverage is Low? ✗ Expensive to explore each path (i.e. input) ✗ Astronomical # of paths ✗ Explores a small fraction of paths But finds complex logical bugs 28 Fuzz Testing 29 Fuzzing in One Slide Program 30 Fuzzing in One Slide Fuzzer Program 31 Fuzzing in One Slide Randomly generate Input Input Input Input Fuzzer Input Program H@5^23#t.f ./Program < /dev/random 32 Fuzzing in One Slide Randomly generate Run on Input Inputs Input Input Input Fuzzer Input Program H@5^23#t.f ./Program < /dev/random 33 Mutational Fuzzing in One Slide Seed Interesting Input(s) Input Input. Program . Input 34 Mutational Fuzzing in One Slide Seed Interesting Input(s) Input Input. Fuzzer Program . Input 35 Mutational Fuzzing in One Slide Seed Interesting Input(s) Input Pick an Input Input. Fuzzer Program . Input 36 Mutational Fuzzing in One Slide Seed Interesting Input(s) <!ATTLIST Mutate the Input Input Pick an Input Input. Input . Input . Input . Fuzzer Input Program . <!BTTLIST Input 37 Mutational Fuzzing in One Slide Seed Interesting Input(s) <!ATTLIST Mutate Run on the Input Input Pick an Inputs Input Input. Input . Input . Input . Fuzzer Input Program . <!BTTLISTInputs Input 38 Mutational Fuzzing in One Slide Seed Interesting Input(s) <!ATTLIST Mutate Run on the Input Input Pick an Inputs Input Input. Input . Input . Input . Fuzzer Input Program . <!BTTLISTInputs Input Mutational Fuzzers • Radamsa • Zzuf 39 Feedback-Directed Fuzzing 40 Feedback-directed Fuzzing 101 Seed Interesting Inputs Mutate Run on the Input Input Pick an Inputs Input Input. Input . Input . Input . Fuzzer Input Program . Inputs Input 41 Feedback-directed Fuzzing 101 Seed Interesting Inputs Mutate Run on the Input Input Pick an Inputs Input Input. Input . Input . Input . Fuzzer Input Program . Inputs Input Feedback • Coverage • Execution length • Well-formed input • ... 42 Feedback-directed Fuzzing 101 Seed Interesting Inputs Mutate Run on the Input Input Pick an Inputs Input Input. Input . Input . Input . Fuzzer Input Program . Inputs Input Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... 43 Feedback-directed Fuzzing 101 Seed Interesting Inputs Mutate Run on the Input Input Pick an Inputs Input Input. Input . Input . Input . Fuzzer Input Program . Inputs Input Yes: add Input Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... 44 Feedback-directed Fuzzing 101 Seed Interesting Inputs Mutate Run on the Input Input Pick an Inputs Input Input. Input . Input . Input . Fuzzer Input Program . Inputs Input Yes: add Input Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... No: Discard input 45 Feedback-directed Fuzzing 101 Seed Interesting Lots of choices: Inputs Mutate 1. WhichRun oninput to pick? the Input Input Pick an 2. HowInputs to mutate an Input input? Input. Input . Input 3. How many mutants to . Input . Fuzzer Input generate?Program . Inputs4. What kind of feedback? Input 5. How to decide if an Yes: add input is interesting? Input Resolved using heuristics over a period of 10 years Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... No: Discard input 46 Feedback-directed Fuzzing 101 Seed Interesting Lots of choices: Inputs Mutate 1. WhichRun oninput to pick? the Input Input Pick an 2. HowInputs to mutate an Input input? Input. Input . Input 3. How many mutants to . Input . Fuzzer Input generate?Program . Inputs4. What kind of feedback? Input 5. How to decide if an Yes: add input is interesting? Input Resolved using heuristics over a period of 10 years Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... No: Discard input 47 Feedback-directed Fuzzing 101 Seed Interesting Lots of choices: Inputs Mutate 1. WhichRun oninput to pick? the Input Input Pick an 2. HowInputs to mutate an Input input? Input. Input . Input 3. How many mutants to . Input . Fuzzer Input generate?Program . Inputs4. What kind of feedback? Input 5. How to decide if an Yes: add input is interesting? Input Resolved using heuristics over a period of 10 years Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... No: Discard input 48 Feedback-directed Fuzzing 101 Seed Interesting Lots of choices: Inputs Mutate 1. WhichRun oninput to pick? the Input Input Pick an 2. HowInputs to mutate an Input input? Input. Input . Input 3. How many mutants to . Input . Fuzzer Input generate?Program . Inputs4. What kind of feedback? Input 5. How to decide if an Yes: add input is interesting? Input Resolved using heuristics over a period of 10 years Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... No: Discard input 49 Feedback-directed Fuzzing 101 Seed Interesting Lots of choices: Inputs Mutate 1. WhichRun oninput to pick? the Input Input Pick an 2. HowInputs to mutate an Input input? Input. Input . Input 3. How many mutants to . Input . Fuzzer Input generate?Program . Inputs4. What kind of feedback? Input 5. How to decide if an Yes: add input is interesting? Input Resolved using heuristics over a period of 10 years Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... No: Discard input 50 Feedback-directed Fuzzing 101 Seed Interesting Lots of choices: Inputs Mutate 1. WhichRun oninput to pick? the Input Input Pick an 2. HowInputs to mutate an Input input? Input. Input . Input 3. How many mutants to . Input . Fuzzer Input generate?Program . Inputs4. What kind of feedback? Input 5. How to decide if an Yes: add input is interesting? Input Resolved using heuristics over a period of 10 years Interesting? Feedback • New coverage? • Coverage • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... No: Discard input 51 Feedback-directed Fuzzing 101 Fuzzers: Seed Interesting • AFL Inputs Mutate • AFLFastRun on the Input Input Pick an • LibfuzzerInputs Input • Angora Input. Input • . Input VUzzer . Input • Steelix . Fuzzer Input Program . Inputs• AFLGo • AFLSmart Input • Yes: add Nautilus Input • FairFuzz • PerfFuzz • JQF/Zest Interesting? Feedback• FuzzFactory • New coverage? • Coverage• RLCheck • Longer execution? • Execution length • Valid input? • Well-formed input • ... • ... No: Discard input 52 What Bugs
Recommended publications
  • Neuron C Reference Guide Iii • Introduction to the LONWORKS Platform (078-0391-01A)
    Neuron C Provides reference info for writing programs using the Reference Guide Neuron C programming language. 078-0140-01G Echelon, LONWORKS, LONMARK, NodeBuilder, LonTalk, Neuron, 3120, 3150, ShortStack, LonMaker, and the Echelon logo are trademarks of Echelon Corporation that may be registered in the United States and other countries. Other brand and product names are trademarks or registered trademarks of their respective holders. Neuron Chips and other OEM Products were not designed for use in equipment or systems, which involve danger to human health or safety, or a risk of property damage and Echelon assumes no responsibility or liability for use of the Neuron Chips in such applications. Parts manufactured by vendors other than Echelon and referenced in this document have been described for illustrative purposes only, and may not have been tested by Echelon. It is the responsibility of the customer to determine the suitability of these parts for each application. ECHELON MAKES AND YOU RECEIVE NO WARRANTIES OR CONDITIONS, EXPRESS, IMPLIED, STATUTORY OR IN ANY COMMUNICATION WITH YOU, AND ECHELON SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of Echelon Corporation. Printed in the United States of America. Copyright © 2006, 2014 Echelon Corporation. Echelon Corporation www.echelon.com Welcome This manual describes the Neuron® C Version 2.3 programming language. It is a companion piece to the Neuron C Programmer's Guide.
    [Show full text]
  • Navigation Techniques in Augmented and Mixed Reality: Crossing the Virtuality Continuum
    Chapter 20 NAVIGATION TECHNIQUES IN AUGMENTED AND MIXED REALITY: CROSSING THE VIRTUALITY CONTINUUM Raphael Grasset 1,2, Alessandro Mulloni 2, Mark Billinghurst 1 and Dieter Schmalstieg 2 1 HIT Lab NZ University of Canterbury, New Zealand 2 Institute for Computer Graphics and Vision Graz University of Technology, Austria 1. Introduction Exploring and surveying the world has been an important goal of humankind for thousands of years. Entering the 21st century, the Earth has almost been fully digitally mapped. Widespread deployment of GIS (Geographic Information Systems) technology and a tremendous increase of both satellite and street-level mapping over the last decade enables the public to view large portions of the 1 2 world using computer applications such as Bing Maps or Google Earth . Mobile context-aware applications further enhance the exploration of spatial information, as users have now access to it while on the move. These applications can present a view of the spatial information that is personalised to the user’s current context (context-aware), such as their physical location and personal interests. For example, a person visiting an unknown city can open a map application on her smartphone to instantly obtain a view of the surrounding points of interest. Augmented Reality (AR) is one increasingly popular technology that supports the exploration of spatial information. AR merges virtual and real spaces and offers new tools for exploring and navigating through space [1]. AR navigation aims to enhance navigation in the real world or to provide techniques for viewpoint control for other tasks within an AR system. AR navigation can be naively thought to have a high degree of similarity with real world navigation.
    [Show full text]
  • Parallel Range, Segment and Rectangle Queries with Augmented Maps
    Parallel Range, Segment and Rectangle Queries with Augmented Maps Yihan Sun Guy E. Blelloch Carnegie Mellon University Carnegie Mellon University [email protected] [email protected] Abstract The range, segment and rectangle query problems are fundamental problems in computational geometry, and have extensive applications in many domains. Despite the significant theoretical work on these problems, efficient implementations can be complicated. We know of very few practical implementations of the algorithms in parallel, and most implementations do not have tight theoretical bounds. In this paper, we focus on simple and efficient parallel algorithms and implementations for range, segment and rectangle queries, which have tight worst-case bound in theory and good parallel performance in practice. We propose to use a simple framework (the augmented map) to model the problem. Based on the augmented map interface, we develop both multi-level tree structures and sweepline algorithms supporting range, segment and rectangle queries in two dimensions. For the sweepline algorithms, we also propose a parallel paradigm and show corresponding cost bounds. All of our data structures are work-efficient to build in theory (O(n log n) sequential work) and achieve a low parallel depth (polylogarithmic for the multi-level tree structures, and O(n) for sweepline algorithms). The query time is almost linear to the output size. We have implemented all the data structures described in the paper using a parallel augmented map library. Based on the library each data structure only requires about 100 lines of C++ code. We test their performance on large data sets (up to 108 elements) and a machine with 72-cores (144 hyperthreads).
    [Show full text]
  • Handwritten Digit Classication Using 8-Bit Floating Point Based Convolutional Neural Networks
    Downloaded from orbit.dtu.dk on: Apr 10, 2018 Handwritten Digit Classication using 8-bit Floating Point based Convolutional Neural Networks Gallus, Michal; Nannarelli, Alberto Publication date: 2018 Document Version Publisher's PDF, also known as Version of record Link back to DTU Orbit Citation (APA): Gallus, M., & Nannarelli, A. (2018). Handwritten Digit Classication using 8-bit Floating Point based Convolutional Neural Networks. DTU Compute. (DTU Compute Technical Report-2018, Vol. 01). General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Handwritten Digit Classification using 8-bit Floating Point based Convolutional Neural Networks Michal Gallus and Alberto Nannarelli (supervisor) Danmarks Tekniske Universitet Lyngby, Denmark [email protected] Abstract—Training of deep neural networks is often con- In order to address this problem, this paper proposes usage strained by the available memory and computational power. of 8-bit floating point instead of single precision floating point This often causes it to run for weeks even when the underlying which allows to save 75% space for all trainable parameters, platform is employed with multiple GPUs.
    [Show full text]
  • High Dynamic Range Video
    High Dynamic Range Video Karol Myszkowski, Rafał Mantiuk, Grzegorz Krawczyk Contents 1 Introduction 5 1.1 Low vs. High Dynamic Range Imaging . 5 1.2 Device- and Scene-referred Image Representations . ...... 7 1.3 HDRRevolution ............................ 9 1.4 OrganizationoftheBook . 10 1.4.1 WhyHDRVideo? ....................... 11 1.4.2 ChapterOverview ....................... 12 2 Representation of an HDR Image 13 2.1 Light................................... 13 2.2 Color .................................. 15 2.3 DynamicRange............................. 18 3 HDR Image and Video Acquisition 21 3.1 Capture Techniques Capable of HDR . 21 3.1.1 Temporal Exposure Change . 22 3.1.2 Spatial Exposure Change . 23 3.1.3 MultipleSensorswithBeamSplitters . 24 3.1.4 SolidStateSensors . 24 3.2 Photometric Calibration of HDR Cameras . 25 3.2.1 Camera Response to Light . 25 3.2.2 Mathematical Framework for Response Estimation . 26 3.2.3 Procedure for Photometric Calibration . 29 3.2.4 Example Calibration of HDR Video Cameras . 30 3.2.5 Quality of Luminance Measurement . 33 3.2.6 Alternative Response Estimation Methods . 33 3.2.7 Discussion ........................... 34 4 HDR Image Quality 39 4.1 VisualMetricClassification. 39 4.2 A Visual Difference Predictor for HDR Images . 41 4.2.1 Implementation......................... 43 5 HDR Image, Video and Texture Compression 45 1 2 CONTENTS 5.1 HDR Pixel Formats and Color Spaces . 46 5.1.1 Minifloat: 16-bit Floating Point Numbers . 47 5.1.2 RGBE: Common Exponent . 47 5.1.3 LogLuv: Logarithmic encoding . 48 5.1.4 RGB Scale: low-complexity RGBE coding . 49 5.1.5 LogYuv: low-complexity LogLuv . 50 5.1.6 JND steps: Perceptually uniform encoding .
    [Show full text]
  • Supporting Technology for Augmented Reality Game-Based Learning
    DOCTORAL THESIS Supporting Technology for Augmented Reality Game-Based Learning Hendrys Fabián Tobar Muñoz 2017 Doctorate in Technology Supervised by: PhD. Ramon Fabregat PhD. Silvia Baldiris Presented in partial fulfillment of the requirements for a doctoral degree from the University of Girona The research reported in this thesis was partially sponsored by: The financial support by COLCIENCIAS – Colombia’s Administrative Department of Science Technology and Innovation within the program of doctoral scholarships. The research reported in this thesis was carried out as part of the following projects: ARreLS project, funded by Spanish Economy and Competitiveness Ministry(TIN2011-23930) Open Co-Creation Project, funded by the Spanish Economy and Competitiveness Ministry (TIN2014-53082-R) The research reports in this thesis was developed within the research lines of the Communications and Distributed Systems research group (BCDS, ref GRCT40) which is part of the DURSI consolidated research group COMUNICACIONS I SISTEMES INTEL·LIGENTS. © Hendrys Fabián Tobar Muñoz, Girona, Catalonia, Spain, 2017 All Rights Reserved. No part of this book may be reproduced in any form by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without written permission granted by the author. Gracias a Dios Todopoderoso y a Su Divina Providencia. Este trabajo está dedicado a mi Reina Omaira que es lo más hermoso de este mundo. ______________________________________________________________________________________________________________________ Thanks to God Almighty and His Divine Providence. This work is dedicated to my Queen Omaira who is the most beautiful of this world (I swear, this sounds better in Spanish) ACKNOWLEDGEMENTS I have always liked games and digital technologies and I have always believed in their educational potential.
    [Show full text]
  • On the Automated Derivation of Domain-Specific UML Profiles
    Schriften aus der Fakultät Wirtschaftsinformatik und 37 Angewandte Informatik der Otto-Friedrich-Universität Bamberg On the Automated Derivation of Domain-Specifc UML Profles Alexander Kraas 37 Schriften aus der Fakultät Wirtschaftsinformatik und Angewandte Informatik der Otto-Friedrich- Universität Bamberg Contributions of the Faculty Information Systems and Applied Computer Sciences of the Otto-Friedrich-University Bamberg Schriften aus der Fakultät Wirtschaftsinformatik und Angewandte Informatik der Otto-Friedrich- Universität Bamberg Contributions of the Faculty Information Systems and Applied Computer Sciences of the Otto-Friedrich-University Bamberg Band 37 2019 On the Automated Derivation of Domain-Specifc UML Profles Alexander Kraas 2019 Bibliographische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliographie; detaillierte bibliographische Informationen sind im Internet über http://dnb.d-nb.de/ abrufbar. Diese Arbeit hat der Fakultät Wirtschaftsinformatik und Angewandte Informatik der Otto-Friedrich-Universität Bamberg als Dissertation vorgelegen. 1. Gutachter: Prof. Dr. Gerald Lüttgen, Otto-Friedrich-University Bamberg, Germany 2. Gutachter: Prof. Dr. Richard Paige, McMaster University, Canada Tag der mündlichen Prüfung: 13.05.2019 Dieses Werk ist als freie Onlineversion über den Publikationsserver (OPUS; http://www. opus-bayern.de/uni-bamberg/) der Universität Bamberg erreichbar. Das Werk – ausge- nommen Cover, Zitate und Abbildungen –
    [Show full text]
  • PAM: Parallel Augmented Maps
    PAM: Parallel Augmented Maps Yihan Sun Daniel Ferizovic Guy E. Belloch Carnegie Mellon University Karlsruhe Institute of Technology Carnegie Mellon University [email protected] [email protected] [email protected] Abstract 1 Introduction Ordered (key-value) maps are an important and widely-used The map data type (also called key-value store, dictionary, data type for large-scale data processing frameworks. Beyond table, or associative array) is one of the most important da- simple search, insertion and deletion, more advanced oper- ta types in modern large-scale data analysis, as is indicated ations such as range extraction, filtering, and bulk updates by systems such as F1 [60], Flurry [5], RocksDB [57], Or- form a critical part of these frameworks. acle NoSQL [50], LevelDB [41]. As such, there has been We describe an interface for ordered maps that is augment- significant interest in developing high-performance paral- ed to support fast range queries and sums, and introduce a lel and concurrent algorithms and implementations of maps parallel and concurrent library called PAM (Parallel Augment- (e.g., see Section 2). Beyond simple insertion, deletion, and ed Maps) that implements the interface. The interface includes search, this work has considered “bulk” functions over or- a wide variety of functions on augmented maps ranging from dered maps, such as unions [11, 20, 33], bulk-insertion and basic insertion and deletion to more interesting functions such bulk-deletion [6, 24, 26], and range extraction [7, 14, 55]. as union, intersection, filtering, extracting ranges, splitting, One particularly useful function is to take a “sum” over a and range-sums.
    [Show full text]
  • Distributed Cognitions GENERAL EDITORS: ROY PEA Psychological and Educational JOHN SEELY BROWN Considerations
    Learning in doing: Social, cognitive, and computational perspectives Distributed cognitions GENERAL EDITORS: ROY PEA Psychological and educational JOHN SEELY BROWN considerations The construction zone: Working for cognitive change in school Denis Newman, Peg Grrfin, and Michael Cole Plans and situated actions: The problem of human-machine Edited by interaction Lucy Suchman GAVRIEL SALOMON Situated learning: Legitimate peripheral participation University of Ha$, Israel Jean Lave and Etienne Wenger Street mathematics and school mathematics Terezinha Nunes, Anahria Dim Schliemann, and David William Carraher Understanding practice: Perspectives on activity and context Seth Chaiklin andJean Lave (editors) I943 CAMBRIDGE UNIVERSITY PRESS Published by the Press Syndicate of the University of Cambridge The Pin Building, Trumpington Street, Cambridge CB2 1RI' 40 West 20th Street, New York, NY 10011-4211, USA Contents 10 Stamford Road, Oakleigh, Melbourne 3166, Australia 0 Cambridge Universify Press 1993 First phlished 1993 Printed in the United States of America Library of Conqcsr Catalo@n~-in-PublicdionData Disaibuted cognitions : psychological and educational considerations I / edited by Gavriel Salomon. List of contribufon page vii I p. cm. - (Learning in doing) Includes index. Series foreword ix ISBN 0-521-41406-7 (hard) xi 1. Cognition and culture. 2. Knowledge, Sociology of. 3. Cognition - Social aspects. 4. Learning. Psychology of - Social aswcts. I. Salomon. Gavriel. 11. Series. 1 A cultural-historical approach to distributed 92-41220 cognition CIP MICHAEL COLE AND YRJO ENGESTR~M A catalog record for this book is available from the British Library. 2 Practices of distributed intelligence and designs for education ISBN 0-521-41406-7 hardback ROY D. PEA 3 Person-plus: a distributed view of thinking and learning D.
    [Show full text]
  • Towards Bendable Augmented Maps
    15-3 MVA2011 IAPR Conference on Machine Vision Applications, June 13-15, 2011, Nara, JAPAN Towards Bendable Augmented Maps Sandy Martedi∗ and Hideo Saito † Graduate School of Science and Technology Keio University, Japan Abstract Three different kinds assumptions are often used for representing the shape of a paper:rigid, foldable and nonrigid. Nonrigid surface detection is intensively ex- plored as challenging topics which addresses two prob- lems: recovering the paper shape and estimating the camera pose. The state-of-the-art researches try to (a) (b) solve both problems robustly for real time purpose. We Figure 1. Application overview. (a). An aug- propose an augmented reality application that use a mented map (b). Bendable augmented map. The nonrigid detection method to recover the shape of the 3D building model is overlaid on top of bended bendable paper using dots as keypoints and estimate paper map. the camera pose simultaneously. Our approach recov- ers the multi-planarity of the paper as the initial shape and iteratively approximates the surface shape. The multi-planarity is estimated by using the tracking by we use multiple planes as the initial shape of the op- descriptor update method that uses the correspondence timization. We then optimize our shape by applying between captured and reference keypoints. We then op- the progressive finite newton optimization [22]. We timize the shape using the progressive finite newton op- then overlay the 3D building model onto the regular- timization method. ized map using the piecewise homography computation as shown in Fig. 1. 1 Introduction We design the setup of our application using a monocular camera and a display.
    [Show full text]
  • 1.3. Thesis Guide
    Understanding How to Translate from Children’s Tangible Learning Apps to Mobile Augmented Reality through Technical Development Research by Shubhra Sarker B.Sc. in Computer Science, Khulna University, 2016 Thesis Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science in the School of Interactive Arts and Technology Faculty of Communication, Arts and Technology © Shubhra Sarker 2019 SIMON FRASER UNIVERSITY Fall 2019 Copyright in this work rests with the author. Please ensure that any reproduction or re-use is done in accordance with the relevant national copyright legislation. Approval Name: Shubhra Sarker Degree: Master of Science Title: Understanding How to Translate from Children’s Tangible Learning Apps to Mobile Augmented Reality through Technical Development Research Examining Committee: Chair: Marek Hatala Professor Alissa Antle Senior Supervisor Professor Bernhard Riecke Supervisor Associate Professor Steve Dipaola External Examiner Professor Date Defended/Approved: December 17, 2019 ii Abstract In this thesis, I discuss the design and development of two Augmented Reality (AR) applications derived from two tangible systems. In this technology development research, I explore if it is feasible to port tangible systems to mobile (tablet-based) AR systems so that these systems can be more widely deployed as research prototypes and eventually as products. I use two existing tangible systems (Youtopia, PhonoBlocks), which have been validated empirically, as case studies. To do this, I begin by determining the key requirements that each AR system must have – those known through theoretical design guidance or shown in previous studies to be important for the effectiveness of the tangible system. I designed and implemented design and technical AR solutions for each requirement.
    [Show full text]
  • Map Generation from Large Scale Incomplete and Inaccurate Data
    Map Generation from Large Scale Incomplete and Inaccurate Data Labels Rui Zhang Conrad Albrecht Wei Zhang [email protected] [email protected] [email protected] IBM T.J. Watson Research Center IBM T.J. Watson Research Center IBM T.J. Watson Research Center Yorktown Heights, New York Yorktown Heights, New York Yorktown Heights, New York Xiaodong Cui Ulrich Finkler David Kung [email protected] [email protected] [email protected] IBM T.J. Watson Research Center IBM T.J. Watson Research Center IBM T.J. Watson Research Center Yorktown Heights, New York Yorktown Heights, New York Yorktown Heights, New York Siyuan Lu [email protected] IBM T.J. Watson Research Center Yorktown Heights, New York Figure 1: Houses (red semi-transparent boxes) and roads (white semi-transparent lines) generated from aerial imagery (background). ABSTRACT and map data, both of which cover the contiguous United States Accurately and globally mapping human infrastructure is an impor- (CONUS). We approach the technical challenge of inaccurate and tant and challenging task with applications in routing, regulation incomplete training data adopting state-of-the-art convolutional compliance monitoring, and natural disaster response management neural network architectures such as the U-Net and the CycleGAN arXiv:2005.10053v1 [cs.CV] 20 May 2020 etc.. In this paper we present progress in developing an algorithmic to incrementally generate maps with increasingly more accurate pipeline and distributed compute system that automates the process and more complete labels of man-made infrastructure such as roads of map creation using high resolution aerial images.
    [Show full text]