Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SNAPSHOT

Kimmie46
November 24, 2020

 SNAPSHOT

Kimmie46

Kimmie46

November 24, 2020
Tweet

Transcript

  1. SNAPCON Recap and SNAPSHOT objective • Recap Codification presentation at

    SNAPCON • Codification means to create Python code directly out of SNAP Code via a mapping of SNAP blocks to Python code. The created Python Code is downloaded and should run immediately. • At SNAPCON we didn’t have a real application/example to be codified, focus was more on technical mapping • SNAPSHOT objective • Demo a minimum SNAP application, which is codified into Python code • Discuss if codification as such and/or our example • Eases the move from a blocks language like SNAP to typing language Python • Increases the fun in learning
  2. Application “friends database” • UI: Prompt implemented in SNAP (in

    Python by nature), Prompt (instead of a Table view) as a start • “Architecture”: Event Loop, Table as a tool to store data UI: Event Loop reacts on numbers 1,3,6,7 “Database” : table 3: New Entry 7: End 1: View 1: View 3: New Entry 6: View menue
  3. • Application works exactly the same and “feels” similar •

    Prompt is “simulated” in SNAP and not codified as UI in SNAP/Python is different by nature DEMO SNAP Code -> Python Code
  4. Create structure/architecture and “feeling” of algorithm/code across language and platform

    SNAP code is transformed into Python code which runs immediately.
  5. SUPERIORTY OF SNAP: NO CEILING: Objective: Start at a minimum

    complexity and expand to a full-blown useful application, which can grow as you use it. 1. More complex Event loop including a full GUI, not just a list of numbers 2. Input validation for ZIP-Codes, type checks for age (numbers 0-120), name,.. 3. Architecture, Design Patterns -> MVC 4. Persistence, store data as (CSV-) files, before moving to a real database like sqlite 1. ER – Data modeling, identity, key values, IDs 2. SQL, ER related to OO 3. Identity of real world/objects/data sets (IDs and cross reference to other tables/objects) 4. CRUD: CREATE, READ, UPDATE, DELETE 5. HOF on tables (sort by column, find, filter values), SQL via HOFs 6. Table as an ADT 1. Gui Library in SNAP (Table view, Button, Textbox ) and tcl/tk in Python (not to be codified, but to be easily replaced) 1. Level of UI, Controls and Views 2. Level of processing data, checking input, addressing “database” 3. Level of data and “database” UI: Event Loop “Database” : table
  6. Discussion and complaints • Complaints/Requests at SNAP team • PLEASE

    add local vars/methods to codification, so OO codification is possible • Please improve options to create a runtime application out of SNAP code, so students can use their applications in real life • Please provide nicer and more readable text on canvas • Feedback/Discussions (lots of backup slides ) • Do you see value in teaching CS by building a real application and not just create code snippets? • Is it worth it? Do you think python codification helps to teach CS? • Or is codification just a tech gimmick with no value in teaching CS? Does it accelerate understanding CS? • Do you think, codification is useful in teaching CS and moving from SNAP to a typing language like Python?