O krutosti skutečné výuky informatiky - On the Cruelty of Really Teaching Computer Science
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
“O krutosti skutečné výuky výpočetní techniky“Je dokument z roku 1988 E. W. Dijkstra[1] což tvrdí programování je třeba chápat jako větev matematika, a to formální prokazatelnost a program je hlavním kritériem správnosti.
Navzdory názvu je většina článku o Dijkstrině pokusu vyjádřit počítačová věda do širší perspektivy uvnitř Věda, výuka je řešena jako a důsledek na konci. Konkrétně Dijkstra vytvořil „návrh na úvodní programovací kurz pro nováčky“, který se skládal z Logika hoare jako neinterpretovaný formální systém.
Debata o proveditelnosti
Protože byl vytvořen termín „softwarové inženýrství“, formální ověření byla téměř vždy považována za příliš náročnou na zdroje, než aby byla proveditelná.[Citace je zapotřebí ] Ve složitých aplikacích je častým zdrojem chyb také obtížnost správného určení toho, co by měl program dělat. Další metody testování softwaru se obvykle používají k pokusu o eliminaci hmyz a mnoho dalších faktorů je bráno v úvahu při měření kvalita softwaru.
Až do konce svého života Dijkstra tvrdil, že ústřední výzvy práce s počítačem nebyly uspokojeny kvůli jeho nedostatečnému důrazu na správnost programu (i když nebrání jiným požadavkům, jako je udržitelnost a účinnost ).[2]
Pedagogické dědictví
Počítačová věda, jak se dnes vyučuje, se neřídí Všechno rady Dijkstra. Učební osnovy obecně zdůrazňují techniky pro řízení složitosti a přípravu na budoucí změny v návaznosti na dřívější Dijkstraovy spisy. Tyto zahrnují abstrakce, programování na základě smlouvy, a designové vzory. Programovací techniky, jak se vyhnout chybám, a konvenční metody testování softwaru se vyučují jako základní požadavky a studenti jsou vystaveni určitým matematickým nástrojům, ale metody formálního ověřování nejsou v učebních osnovách zahrnuty, snad jen jako pokročilé téma.[3] Takže v některých ohledech byly Dijkstraovy myšlenky dodržovány; myšlenky, které nejsilněji cítil, však nebyly.
Nově vytvořené osnovy softwarového inženýrství přijaly doporučení Dijkstra. Těžištěm těchto programů je formální specifikace softwarových požadavků a designu s cílem usnadnit formální ověření správnosti systému. V Kanadě jsou často akreditovanými inženýrskými tituly s podobnými základními kompetencemi v oblasti fyzikálního inženýrství.[4]
Reference
- ^ Dijkstra, Edsger W. O krutosti skutečné výuky výpočetní techniky (EWD-1036) (PDF). Archiv E.W. Dijkstra. Centrum pro americké dějiny, University of Texas v Austinu. (transkripce )
- ^ Dijkstra, Edsger W. Konec počítačové vědy? (EWD-1304) (PDF). Archiv E.W. Dijkstra. Centrum pro americké dějiny, University of Texas v Austinu. (transkripce )
- ^ Kurzy MIT:
- Eric Grimson, Peter Szolovits a Trevor Darrell. 6.001 Struktura a interpretace počítačových programů. Jaro 2005. Massachusettský technologický institut: MIT OpenCourseWare, https://ocw.mit.edu. Licence: Creative Commons BY-NC-SA.
- Robert Morris a Samuel Madden. 6.033 Počítačové systémové inženýrství. Jaro 2009. Massachusettský technologický institut: MIT OpenCourseWare, https://ocw.mit.edu. Licence: Creative Commons BY-NC-SA.
- Ronitt Rubinfeld a Albert Meyer. 6.042J Matematika pro informatiku. Podzim 2005. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. Licence: Creative Commons BY-NC-SA.
- Daniel Jackson. 6.170 Softwarové studio. Jaro 2013. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. Licence: Creative Commons BY-NC-SA.
- ^ "Programy softwarového inženýrství nejsou programy informatiky" (PDF). Archivovány od originál (PDF) dne 2013-09-27. Citováno 2012-10-30.