BIRÓ PIROSKA, CSERNOCH MÁRIA: TÁBLÁZATKEZELÉS ALGORITMIKUS MEGKÖZELÍTÉSE
Biró Piroska, Csernoch Mária TÁBLÁZATKEZELÉS ALGORITMIKUS MEGKÖZELÍTÉSE 1. Bevezetés A táblázatkezelő programok a legnépszerűbb alkalmazói szoftverek közé sorolhatók (Scaffidi – Shaw – Myers 2005, Borbély 2013). A nemzetközi kutatások mutatják azonban, hogy a táblázatkezelőkkel készített dokumentumok közel 90%-a hibás, mindezen túl, a hozzá nem értés következtében óriási az az időveszteség, ami ezen dokumentumok létrehozásához szükséges (Abraham – Erwig 2009; Jorgensen 2013; Kadijevich 2009, 2013; Kwak 2013; Panko 2008; Panko – Aurigemma 2010; Powell – Baker – Lawson 2008, 2009a, 2009b; W2 2012; Teo – Tan 1999; Tort 2010; Tort – Blondel – Bruillard 2008). Az okok keresése során egyértelművé vált, hogy a hibák megjelenésének elsődleges forrása az algoritmikus szemlélet hiánya. Ez a hiányosság megjelenik a táblázatkezelés valamennyi tevékenységi formájában; a dokumentumok tervezésénél, az adatbevitelnél, a képletek létrehozásánál (W1 2013; Sestoft 2010; Csernoch – Biró 2013a, 2013b). A már mentett dokumentumokon, a szerkezeti és az adatbevitel hibák tesztelésére a legelterjedtebb módszer az automatikus hibakereső programok alkalmazása. Ezek a módszerek azonban nem alkalmasak a képletek létrehozásának menetét vizsgálni. A két leggyakoribb módszer, a képletek létrehozásának elemzésére és tesztelésére a logfájlok készítése, valamint a szimulációs, papíralapú problémamegoldás. A Debreceni Egyetem elsőéves informatikus hallgatóival végzett szimulációs felmérések egyértelműen mutatják, hogy a szoftvergyártó cégek által népszerűsített TAEW-típusú (Trial-And-Error Wizard-based) megoldások a képletbeviteli hibák fő forrásai. A TAEW-típusú számítógépes tevékenységek a felületi metakognitív típusú tevékenységek közé tartoznak, és mint ilyenek nem elegendőek számítógépes problémák megoldásához. Ezeknek a módszereknek a lényege, hogy a grafikus felületen történő navigálás, a közben hozott metakognitív döntések sorozata vezet az eredményhez, de nem feltétlenül a probléma megoldásához. A méréseink azt mutatják, hogy sokkal inkább mélyszerkezetű metakognitív döntéssorozatok meghozatalára van szükség, amelyek számítógépes környezetben a CAADtípusú (Computer-Algorithmic- And Debuggging-based) tevékenységek közé
TANULMÁNYOK
sorolhatóak (Csernoch – Biró 2013c; Case 2000; Case – Gunstone 2002, 2003; Case – Gunstone – Lewis 2001, Cox 2005; Csíkos 2006; Koriat – LeviSadot 2000). Jelen tanulmányban egy olyan CAAD-típusú módszer kerül bemutatásra, amely hatékonyságát korábbi mérések során vizsgáltuk (Csernoch 2012; Csernoch – Biró 2013a, 2013b, 2013c). A mérési eredmények egyértelműen mutatják, hogy a módszer alkalmas arra, hogy lényegesen csökkentse a hibás képletek számát, lerövidítse a képletek előállításához szükséges időt és kevésbé hiba érzékennyé tegye a dokumentumokat. 2. Módszerek 2.1.
Felhasználóbarát szoftverek?
A szoftvergyártó cégek leginkább hangoztatott szlogenje, hogy a táblázatkezelő programok használatához nincs szükség háttérismeretekre, a varázslók és a súgók által nyújtott információ elegendő a problémák megoldásához. Tehát semmi mást nem kell tenni, csak kattintgatni, és a program mindent elvégez a felhasználó helyett. Napjainkra azonban egyértelművé vált, hogy a táblázatkezelők varázslóinak és a súgóinak szövege érthetetlen a számítástechnikában, matematikában, matematikai statisztikában, közgazdaságtanban járatlan felhasználóknak, ami általánosabban már a nyolcvanas évek közepén megfogalmazódott (Carroll – Mack 1984; Warren 2004). Ennek következménye, hogy a táblázatkezelői problémák megoldása az esetek nagy részében úgy történik, hogy a felhasználó kattintgat, és ha végre sikerül egy szintaktikailag helyes képletet létrehoznia, akkor azt boldogan elfogadja. A tesztelésre, az így kapott eredmény ellenőrzésére sem az igény nem alakult ki, sem a megfelelő módszerek nem állnak rendelkezésére. 2.2.
CAAD-típusú metakognitív módszerek
A szoftvergyártó cégek TAEW-típusú megközelítésével szemben viszont léteznek kevésbé ismert és elterjedt, bár jóval hatékonyabb CAAD-típusú módszerek. Az egyik ilyen módszer az egy értéket visszaadó tömbképletek (SRAF, Single Result Array Formulas) használata. Az egyértékű tömbképleteknek számtalan előnye van, amelyek közül az alábbiakat mindenképpen érdemes megemlíteni: – segíti az algoritmikus készség fejlődését, – egyszerű függvényekből építkezik, – nincs szükség újabb és újabb beépített függvényekre,
BIRÓ PIROSKA, CSERNOCH MÁRIA: TÁBLÁZATKEZELÉS ALGORITMIKUS MEGKÖZELÍTÉSE
– olyan problémákra is ad megoldást, amelyekhez nem készült még beépített függvény, – fokozottan támogatja a képletek helyességének ellenőrzését (debugging). 2.2.1. Egyszerű függvények alkalmazása Kezdő felhasználóknál már tíz függvény is elegendő akár komolyabb problémák megoldására is; SZUM(), ÁTLAG(), MIN(), MAX(), HA(), INDEX(), HOL.VAN(), BAL(), JOBB(), HOSSZ(). Ezzel a tíz függvénnyel el lehet jutni egy magasabb szintre. A következő szinten mindenképpen érdemes a HIBÁS() függvényt bevezetni. Ezen túl szükség lehet a KICSI(), NAGY(), ÉS(), VAGY(), NEM() függvényekre, ami összességében újabb hat függvény. Tovább bővítve a listát megjelenhet a SOR(), OSZLOP(), ELTOLÁS(), TRANSZPONÁLÁS(), KEREKÍTÉS() függvények. Ez a minimalista szemlélet összhangban áll más programozási nyelveknél már igazolásra került szemlélettel, amely azt mondja, hogy a kezdőket nem érdemes megzavarni fölöslegesen bonyolult dolgokkal azon túl, ami feltétlenül szükséges a probléma megoldásához (Laurel 1993; Warren 2004). Érdemes azonban hangsúlyozni, hogy az első tíz függvény alkalmazásával és azok megfelelő szintű gyakorlásával már a képleteket biztonságosan kezelő, viszonylag kevés hibával dolgozó, és a legfontosabb, hogy algoritmikus szemlélettel rendelkező felhasználókká válhatnak a tanulók. 2.2.2. Egymásba ágyazott függvények Függvények egymásba ágyazása annyit jelent, hogy egy függvény teljes egészében magába foglal egy másikat, ami leginkább a matrjoska babák összeépítéséhez (1. ábra) hasonlít. Ilyen összetett függvények létrehozása esetén a kiértékelés a legbelső függvény kiértékelésével kezdődik. A legelőször kiértékelt függvény visszaadott értéke lesz az őt magába foglaló függvény bemenő értéke, egyik argumentuma, és ez így folytatódik, amíg a legkülső függvény kiértékelése is megtörténik. A legkülső függvény visszaadott értéke nem más, mint az összetett függvény visszaadott értéke.
TANULMÁNYOK
1. ábra: Függvények egymásba ágyazása a matrjoska babák 1 egymás köré építéséhez hasonlóan történik
3. Eredmények 3.1.
Beépített függvények helyettesítése tömbképletekkel
Az 3. ábra felsorol néhány olyan beépített függvényt, amelyek könnyedén helyettesíthetőek tömbképletekkel. Az ilyen jellegű beépített függvények létjogosultsága megkérdőjelezhető egyrészt azért, mert rendkívül egyszerűen helyettesíthetők összetett függvényekkel, másrészt azért mert mindig adódhat olyan feladat, amelyre nincs beépített függvény. Erre mutat példát a 3. ábra utolsó sorának képlete. Lehetetlenség az összes valaha létezett és a jövőben felmerülő problémára beépített függvényt készíteni. Sokkal inkább célszerű megtanulni azt, hogy az egyszerű elemeket használva, hogyan lehet összetett feladatokat megoldani.
2. ábra: Az ötöslottó nyerőszámai táblázat (letölthető a Szerencsejáték Zrt. weblapjáról: .xls, .csv, .html formátumban2)
1
Matrjoska baba: http://esemenyhorizont.uw.hu/2009/letfilo/beta01.jpg, Letöltve 2012. május 17. 2 Az Ötöslottó eddigi nyerőszámai. http://www.szerencsejatek.hu/xls/otos.xls. . http://www.szerencsejatek.hu/xls/otos.csv. http://www.szerencsejatek.hu/xls/otos.html. Letöltve 2012. augusztus 3.
BIRÓ PIROSKA, CSERNOCH MÁRIA: TÁBLÁZATKEZELÉS ALGORITMIKUS MEGKÖZELÍTÉSE
beépített függvény
képlet
SZORZATÖSSZEG() SUMPRODUCT()
i
NÉGYZETÖSSZEG() SUMSQ()
i
SZUMX2BŐLY2() SUMX2MY2() SZUMX2MEGY2() SUMX2PY2() SZUMXBŐLY2() SUMXMY2()
nincs függvény
tömbképlet
x i yi
{=SZUM(D4:D50*E4:E50)}
x i2
{=SZUM(F4:F50^2)} {=SZUM(F4:F50*F4:F50)}
x i2
y i2
{=SZUM(D4:D50^2-F4:F50^2)}
x i2
y i2
{=SZUM(D4:D50^2+F4:F50^2)}
xi
yi
xi
y i2
i
i 2
{=SZUM((D4:D50-F4:F50)^2)}
i
i
{=SZUM(D4:D50-F4:F50^2)}
3. ábra: Példák SRAF típusú tömbképletekkel helyettesíthető beépített függvényekre az ötöslottó táblázat D, E és F oszlopait használva (2. ábra)
3.2.
Feltételes függvények
Az egy értéket visszaadó tömbképletek esetében szokás megkülönböztetni azokat, amelyek eredménye valamely feltétel kiértékeléséhez kötött. A feltétel jelenlétének hangsúlyozására a feltételes egyértékű tömbképlet elnevezést használjuk (CSRAF, Conditional Single Result Array Formulas). A CSRAF típusú képletek létrehozásához szükség van egy belső HA() függvényre, amellyel az eldöntendő kérdésre kapott válasz alapján rendelkezhetünk a kimeneti értékekről. 3.3.
Az *IF?() függvények és a tömbképletek kapcsolata
Az általunk összefoglaló néven *IF?() függvényeknek nevezett függvények csoportjába tartozik az összes olyan függvény, amelyek egy vagy akár több argumentuma is feltételt tartalmaz. A függvényeket összefoglaló 4. ábra azok angol és magyar elnevezéseit, a függvények kategóriáit és argumentumait mutatja. A COUNTBLANK() függvény kivételével valamennyi angol név tartalmazza az if szóalakot, utalva ezzel a feltétel jelenlétére. Az *IF?() függvények nem mások, mint az egyértékű tömbképletek leegyszerűsített, sokkal inkább lebutított, véges számban rendelkezésre álló
TANULMÁNYOK
verziói. Használatuk több szempontból is nehézkes és csak speciális esetekben alkalmazhatók. angol
magyar
kategória
argumentumok
COUNTIF()
DARABTELI()
S
feltétel_tart;feltétel
COUNTIFS()
DARABHATÖBB()
S
feltétel_tart1;feltétel1;…
SUMIF()
SZUMHA()
M
feltétel_tart;feltétel;összeg_tart
SUMIFS()
SZUMHATÖBB()
M
összeg_tart;feltétel_tart1;feltétel1…
AVERAGEIF()
ÁTLAGHA()
S
feltétel_tart;feltétel;átlag_tart
AVERAGEIFS()
ÁTLAGHATÖBB()
S
átlag_tart;feltétel_tart1;feltétel1;…
COUNTBLANK()
DARABÜRES()
S
tartomány
4. ábra: Az *IF?() függvények angol és magyar nyelvű megnevezése, kategóriái (M: Matematikai és trigonometriai, S: Statisztikai) és argumentumai
3.4.
Nehézségek az *IF?() függvényekkel
A következőkben felsorolásra kerülnek azok a problémák, amelyeket az *IF?() függvények magukban hordoznak. A problémák többsége kiolvasható a 4. ábra leírásaiból és a 6. ábra mintáiból, az alábbiakban ezek rendszerezése történik meg. – A különböző problémák megoldásához különböző függvények és különböző kategóriákba sorolt függvények szükségesek. Ezeket vagy meg kell jegyezni, vagy meg kell keresni a függvények bőséges listájában. – Hatalmas hátránya az *IF?() függvényeknek, azok korlátozott száma. – Az elérhető függvények száma verziónként változik. – A függvények argumentumlistája nehezen megjegyezhető és követhető. – A feltétel(ek) szintaktikája eltérő attól függően, hogy egyenlőséget vagy egyenlőtlenséget vizsgálunk, valamint attól, hogy konstans vagy változó szerepel a feltételben. Az *IF?() függvények feltételében egyenlőséget vizsgálva nincs szintaktikai eltérés konstans vagy változó esetén. Ezzel szemben, egyenlőtlenségek vizsgálata során más szintaktikai szabályok vonatkoznak a konstansokra és a változókra (6. ábra). Mindenképpen érdemes azonban megjegyezni, hogy más programozási nyelvekhez hasonlóan, nem célszerű egyik típusú képletnél sem konstansokat használni, mivel a bemenő érték
BIRÓ PIROSKA, CSERNOCH MÁRIA: TÁBLÁZATKEZELÉS ALGORITMIKUS MEGKÖZELÍTÉSE
módosulása esetén a képletet is módosítani kell, valamint az összes olyan képletet, amely az eredeti másolásával jött létre. – A több-feltételes függvények esetén csak és kizárólag ÉS kapcsolat valósítható meg a feltételek között. – Számított értékek nem adhatók meg az *IF?() függvények argumentumaként. Ez a megszorítás nagyban korlátozza a függvények használhatóságát. Némi könnyebbséget jelent, hogy a feltételekben megadott helyettesítő karaktereket (*, ?) értelmezni tudja a fordító program.
5. ábra: A Föld országai táblázat3. A 6. ábra képleteiben használt változók: földrész (B2:B236), terület (D2:D236), lakosság (E2:E236), H3 (a felhasználó által megadott egész szám), H4 (a felhasználó által megadott földrész) konstans
változó
*IF?()
tömbképlet
=DARABTELI(terület;500)
{=SZUM(HA(terület=500;1))}
=DARABTELI(földrész;"Afrika")
{=SZUM(HA(földrész="Afrika";1))}
=DARABTELI(terület;"<500")
{=SZUM(HA(terület<500;1))}
=DARABTELI(terület;H3)
{=SZUM(HA(terület=H3;1))}
=DARABTELI(földrész;H4)
{=SZUM(HA(földrész=H4;1))}
=DARABTELI(terület; "<"&H3)
{=SZUM(HA(terület
6. ábra: A DARABTELI() függvény és a CSRAF-típusú képletek összehasonlítása A 2004. évi emelt szintű Informatika próbaérettségi feladataihoz megadott táblázat alapján készült. Az eredeti fájl 2013. augusztus 30-án nem elérhető a http://www.oktatas.hu/kozneveles/erettsegi/feladatsorok/probaerettsegi2004 _valaszthato_targyak weblapon, de informatikatanároktól beszerezhető. 3
TANULMÁNYOK
4. Összegzés Korábbi kutatások egyértelművé tették, hogy a táblázatkezelődokumentumok többsége hibás és a hibák jelentős része az algoritmikus szemlélet hiányának következménye (Biró – Csernoch, 2013a, 2013b). Sem a dokumentumok megtervezésénél, sem a képletek létrehozásánál nem építenek a felhasználók algoritmusokat. A táblázatkezelés-oktatás elsődleges célja kell legyen, hogy a felhasználókat megtanítsuk az algoritmusok létrehozására a dokumentum különböző szintjein. Jelen tanulmányban egy mélyszerkezetű metakognitív megközelítésű (CAAD-típusú) módszert mutattunk be, amely alkalmas a képletek algoritmikus megközelítésére (Csernoch – Biró, 2013c). Eszközként a táblázatkezelő programokban létrehozható egy értéket visszaadó tömbképleteket használtuk (SRAF), ezek közül is hangsúlyosan azokat, amelyek egy feltétel teljesülésétől függően adnak vissza értéket (CSRAF). A módszer lényege, hogy kevés és a lehetőségekhez képest egyszerű függvényeket használ, és ezek segítségével lehetséges összetett, többszintű függvények, képletek létrehozása. Az ily módon létrehozott képletek mindenképpen megkövetelik a felhasználótól az algoritmikus gondolkodást. Az általunk bevezetett módszer, a már elvégzett hatékonyság-vizsgálati mérések alapján egy alkalmazást ad ahhoz az elméleti megközelítéshez, amelyet még 1993-ben Nielsen fogalmazott meg, mely szerint a táblázatkezelő programok használhatóak első nyelvként leginkább egyszerűségük miatt (Nielsen 1993; Warren 2004). Nielsen elképzelése azonban mindenképpen kiegészítésre szorul azzal, hogy az általa felvázolt, de nem bizonyított módszer csak abban az esetben alkalmazható, ha a táblázatkezelést CAAD-típusú módszerek valamelyikével tanítjuk. 5. Köszönetnyilvánítás The research was supported by the TÁMOP-4.2.2.C-11/1/KONV2012-0001 project. The project has been supported by the European Union, co-financed by the European Social Fund. The research was supported partly by the Hungarian Scientific Research Fund under Grant No. OTKA K-105262. 6. Felhasznált irodalom: Abraham Robin – Erwig Martin (2009): Mutation Operators for Spreadsheets. Software Engineering, IEEE Transactions on Volume: 35, Issue: 1.
BIRÓ PIROSKA, CSERNOCH MÁRIA: TÁBLÁZATKEZELÉS ALGORITMIKUS MEGKÖZELÍTÉSE
Biró Piroska – Csernoch Mária (2013a): Deep and surface structural metacognitive abilities of the first year students of Informatics. 4th IEEE International Conference on Cognitive Infocommunicaitons, Proceedings, Budapest, 521–526. Biró Piroska – Csernoch Mária (2013b): Elsőéves informatikushallgatók algoritmizáló készségei. XXIII. Nemzetközi Számítástechnika és Oktatás Konferencia - SzámOkt 2013, EMT, 154–159. Borbély Mária (2013): Digitális írástudás, digitális kompetenciák a statisztikai adatok tükrében. TMT. 60: 3, 120–127. Carroll M. John – Mack L. Robert (1984): Learning to use a word processor: by doing, by thinking and by knowing in Thomas, J.C and Schneider, M.L. (eds) Human Factors in Computer Systems Ablex, 13–51. Case Jennifer (2000): Students' perceptions of context, approaches to learning and metacognitive development in a second year chemical engineering course. Unpublished PhD, Monash University, Melbourne. Case Jennifer – Gunstone Richard (2002): Metacognitive development as a shift in approach to learning: an in-depth study. Studies in Higher Education, 27(4), 459–470. Case Jennifer – Gunstone Richard (2003): Approaches to learning in a second year chemical engineering course. International Journal of Science Education, 25(7), 801–819. Case Jennifer – Gunstone Richard – Lewis Alison (2001): Students' metacognitive development in an innovative second year chemical engineering course, Research in Science Education, 31(3), pp. 331–355. Cox Michael (2005): Metacognition in computation: A selected research review. Artificial Intelligence, 169 (2), 104–141. Csernoch Mária (2012): Introducing Conditional Array Formulas in Spreadsheet Classes. EDULEARN12 Proceedings. Barcelona, Spain. 2-4 July, 2012. Publisher: IATED, 7270–7279. Csernoch Mária – Biró Piroska (2013a): Button-up technikák hatékonyságának vizsgálata informatika szakos hallgatók táblázatkezelésoktatásában. Szerk: Kozma Tamás és Perjés István, Új kutatások a neveléstudományokban 2012, ELTE Eötvös Kiadó, 369–392. Csernoch Mária – Biró Piroska (2013b): Teachers’ Assessment and Students’ Self-Assessment on The Students’ Spreadsheet Knowledge. EDULEARN13 Proceedings July 1st-3rd, 2013 — Barcelona, Spain. Publisher: IATED. ISBN: 978-84-616-3822-2. pp. 949–956.
TANULMÁNYOK
Csernoch Mária – Biró Piroska (2013c): Spreadsheet misconceptions, spreadsheet errors. Hungarian Conference on Educational Research, Debrecen. Csíkos Csaba (2006): Metakogníció. A tudásra vonatkozó tudás pedagógiája. Műszaki Kiadó. Budapest. Jorgensen Hugh (2013): How not to Excel in economics Retrieved June 7, 2013 from http://www.lowyinterpreter.org/post/2013/04/18/How-notto-Excel-in-economics.aspx Kadijevich Djordje (2009): Simple spreadsheet modeling by first-year business undergraduate students: Difficulties in the transition from real world problem statement to mathematical model. In M. Blomhřj and S. Carreira (Eds.), Mathematical applications and modeling in the teaching and learning of mathematics: Proceedings of the 11th International Congress on Mathematical Education, Mexico, 241–248. Kadijevich Djordje (2013): Learning about spreadsheet. In Kadijevich Djordje, Angeli Charoula and Schulte Carsten (Eds.). (2013). Improving Computer Science Education. New York and London: Routledge; p. 19– 33. Koriat Asher – Levy-Sadot Ravit (2000): Conscious and Unconscious Metacognition: A Rejoinder. Consciousness and Cognition. (9). 193–202. Kwak James (2013): The Importance of Excel. http://baselinescenario.com/2013/02/09/the-importance-of-excel. Letöltve: 2013. május 17. Laurel Brenda (1993): Computers as Theatre, Addison-Wesley Publishing Company, Reading, Massachusetts. Nielsen Jakob (1993): Usability Engineering, Academic Press, Boston, MA. Panko Raymond (2008): What We Know About Spreadsheet Errors. Journal of End User Computing's Special issue on Scaling Up End User Development. (10)2, 15–21. Panko Raymond – Aurigemma Salvatore (2010): Revising the PankoHalverson taxonomy of spreadsheet errors. Decis. Support Syst. 49, 2 (2010): 235–244. Powell Stephen – Baker Kenneth – Lawson Barry (2008): A critical review of the literature on spreadsheet errors. Decision Support Systems, 46(1), 128–138. Powell Stephen – Baker Kenneth – Lawson Barry (2009a): Errors in operational spreadsheets. Journal of Organizational and End-User Computing, 1(3), 4–36.
BIRÓ PIROSKA, CSERNOCH MÁRIA: TÁBLÁZATKEZELÉS ALGORITMIKUS MEGKÖZELÍTÉSE
Powell Stephen – Baker Kenneth – Lawson Barry (2009b): Impact of errors in operational spreadsheets. Decision Support Systems, 47(2), 126–132. Scaffidi Christopher – Shaw Mary – Myers Brad (2005): Estimating the Numbers of End Users and End User Programmers. In Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing, pp. 207–214. Sestoft Peter (2010): Spreadsheet technology. Version 0.12 of 2012-01-31. IT University Technical Report ITU-TR-2011-142. IT University of Copenhagen, December 2011. Teo Thompson – Tan Margaret (1999): Spreadsheet Development and “What-if” Analysis: Quantitative versus Qualitative Errors, Accounting Management and Information Technologies, vol. 9, pp. 141–160. Tort Françoise (2010): Teaching Spreadsheets: Curriculum Design Principles. In S. Thorne (Ed.), Proceedings of the EuSpRIG 2010 conference: Practical steps to protect organisations from out-of-control spreadsheets, p 99–110. Tort Françoise – Blondel François-Marie – Bruillard Éric (2008): Spreadsheet Knowledge and Skills of French Secondary School Students. R.T. Mittermeir and M.M. Sysło (Eds.): ISSEP 2008, LNCS 5090, 305– 316, 2008. Springer-Verlag Berlin Heidelberg. Warren Peter (2004): Learning to program: spreadsheets, scripting and HCI, in Proceedings of the Sixth Australasian Conference on Computing Education – vol. 30, Darlinghurst, Australia, pp. 327–333
W1 (2013): Meet the spreadsheet. http://office.microsoft.com/en001/excel-help/meet-the-spreadsheet-RZ101773335.aspx?section=2. Letöltve: 2013. augusztus 2. W2 (2012): Report of JPMorgan Chase & Co. Management Task Force. Regarding : CIO Losses. http://files.shareholder.com/downloads/ONE/2272984969x0x628656/4cb574 a0-0bf5-4728-9582-625e4519b5ab/Task_Force_Report.pdf. Letöltve: 2013. május 17.W3 (2012): Az olasz, magyar, görög után most holland
tanulmány a tudatlanság áráról. Feltöltve: 2012. március 12. http://njszt.hu/ecdl/hir/20120312/az-olasz-magyar-gorog-utan-mostholland-tanulmany-a-tudatlansag-ararol. Letöltve: 2013. június 7.