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