Modelling wit h definitive scripts “a m ethodology for m odelling with dependency” Sem antic orientation … towards ex ploratory state- asex perienced NOT circum scribed reliable process as conceived Sem antic Relations (I) p rogram α p r oces s β Sem antic Relations (II) Art efact = s crip t + com p u t er + d is p lay Developing educational software uses Student Teacher implements specifies Developer Em pirical Modelling (EM) • Offers a set of principles for model building in any of the student, teacher and developer roles: in Teacher Student t er act s i ct s a r nt e model interacts Developer Com m onsense agency and concurrency The stationmaster – an LSD account (oracles and states) agent sm() { oracle (time) Limit, Time, / / knows of time to elapse before departure due (bool) guard_raised_flag, / / knows whether the guard has raised his flag (bool) driver_ready, (bool) around[d], doorway / / knows whether the driver is ready / / knows whether there's anybody around (bool) door_open[d]; / / the open/ close status of door d (for d = 1 .. number_of_doors)# state (time) tarrive = | time| , (bool) can_move, starting engine / / the S- M registers time of arrival / / the signal observed by driver for (bool) whistle = false, / / the whistle is not being blown (bool) whistled = false, / / the whistle has not been blown (bool) sm_flag = false, / / S- M lowers flag The stationmaster – an LSD account (handles and derivates) ….. handle (bool) can_move, (bool) whistle, (bool) whistled, (bool) sm_flag, (bool) sm_raised_flag; (bool) door_open[d]; / / the open/ close status of door d (for d = 1 .. number_of_doors) derivate number_of_doors (bool) ready = /\ (!door_open[d]); / / are all doors shut? d= 1 (bool) timeout = (Time - tarrive) > Limit; / / departure due ….. The stationmaster – an LSD account (protocol / privileges) ….. protocol door_open[d] ^ !around[d] - > door_open[d] = false; (d = 1 .. number_of_doors) ready ^ timeout ^ !whistled - > whistle = true; whistled = true; guard(); whistle = false; ready ^ whistled ^ !sm_raised_flag - > sm_flag = true; sm_raised_flag = true; sm_flag ^ guard_raised_flag - > sm_flag = false; ready ^ guard_raised_flag ^ driver_ready ^ engaged ^ !can_move - > can_move = true; } Anim ation Som e ex am ple m odels Formal annotation Shuffle Figure 6-1: An extended version of heapsort with its formal specification REALIST IDEALIST Requirements Rooms Evolving Requirements R017 ? R020 RO11 Subjects ? WWW HCI SYSTEMS I Initially blank timetable Final timetable Figure 1 : Rea lis t a n d Id ea lis t p er s p ectives o n t im eta b lin g !!! External activities supervisor assessor moderator staff (x 30) timeslots (5 days) and rooms (x 2) students (x 120) with projects F i g u r e 2 : T h e c a s e s t u d y c o n t e x t Mo d eller In t er fa ce elem en t s fea s ib ilit y co m p let en e ss Tim et a b le d ata TT SAM s u ita b ility co n s is t en cy … et c. F i g u r e 3 : O u t l i n e s t r u c t u r e o f t h e T e m p o s c o p e History window Interface window Commentary window Figure 4: Screenshot of the Temposcope Input window The Realist (conventional) perspective The Idealist (ISM-based) perspective uses abstract state and data representations. uses personal and situated personal state and data representations. follows a hidden algorithm. supports timetabling activity under the complete control (and ideally within the comprehension) of the timetabler, with as much automation as desired. offers an open-ended model, "environment" or "instrument" that the modeller can shape in ways that are not predetermined, and can use for ad hoc experimentation. is highly flexible (albeit only in the hands of an experienced modeller). aims at quality rather than efficiency, although some optimisation is possible through run-time analysis of the dependency tree. offers limited scope for large-scale situated evaluation, unless perhaps the evaluation is performed in parallel by many people using a distributed ISM. uses spreadsheet-style interaction that gives rich support for modelling functional dependencies. The level of support for procedural activity ranges from purely manual to fully automatic at the timetabler's discretion. uses an interface that is (ideally) built and adapted interactively to the modeller's own personal and situated requirements. (An interface which admits any possible change to the model is difficult to conceive – by definition, interfaces restrict possibilities.) accepts "arbitrary" input and assumes that all knowledge in the model is subject to future revision. involves computer activity that is freely and dynamically interpreted by the modeller according to the current situation. treats the computer as an artefact, with a semantics that is mediated interactively and experientially offers a system for a specified intended use. is difficult to adapt to unforeseen uses. is efficient and optimised. is scalable to large problems. uses batch-style interaction and is as fully automated as possible: set up an input, run the algorithm, examine the results. is easy to use via an "accessible" user interface. accepts only perfect, clean (or very high quality) input. involves computer activity that is interpreted by the user according to preconceived conventions. treats the computer as an abstract computational device with formally defined mathematical semantics Table 1: Two perspectives on computer-assisted timetabling Sudoku in tkeden Sudoku in tkeden