Neni trochu zbytecne davat sem dalsi serial o tom, jak programovat ve Squeaku, kdyz uz tu jeden hodne dobry byl (http://www.root.cz/serialy/squeak-navrat-do-budoucnosti/) a tento neprinasi nic noveho?
Ja z toho nepomýšlím udělat plnokrevný tutoriál ke Squeaku (toho se již zhostil Pavel), toto byl jen základ Smalltalku, který je nutný v dalších dílech, kde bych se chtěl věnovat právě jeho GUI a taktéž (asi především) projektu Alice – právě tam se teprve dostaneme k jádru, čemu se tento seriál věnuje – programovacím jazyků pro výuku.
Ďakujem za seriál, ktorý sa podľa týchto slov nebude referenčný manuál, ale bude sa uberať podobným smerom, ako je to v knihe Squeak – Learn Programming with Robots (http://gforge.inria.fr/frs/download.php/10764/BotsInc-OriginalEnglish.pdf a upravený obraz squeaku s prostredím pre cvičenia podľa tejto knihy http://scg.unibe.ch/wiki/botsinc/).
IMO Squeak je vhodným nástrojom pri výučbe nielen informatiky už pre deti na základných školách (tu môže byť trochu problém s použitým jazykom – nie pre deti, ale, v naších školách žiaľ často, pre vyučujúceho), ale aj pre ostatné predmety, kde je možné urobiť jednoduché simulácie (fyzika, biológia, …), ako je to napr. v článku Alana Kaya http://www.squeakland.org/content/articles/attach/etoys_n_learning.pdf
Ve Smalltalku a tím pádem i ve Squeaku se zprávy rozdělují podle toho, kolika objektů se daná zpráva „týká“. V případě unárních zpráv se týká pouze jednoho objektu – příjemce zprávy – který na zprávu reaguje podle jejího selektoru. Binární zprávy, například 1 + 2 se „týkají“ dvou objektů, příjemce (tím je objekt 1, tj. instance třídy SmallInteger) a parametru (tím je objekt 2).
Má někdo tip na jednoduchý assembler s přehledným IDE vhodným pro výuku? Zkouším pro tento účel použít PicoBlaze IDE (http://www.mediatronix.com/Screenshot.htm), což je hodně blízké tomu, co si představuji, a jediné, co mi na něm trochu vadí, je harvardská architektura, absence push/pop a fakt, že standardní dokumentace k PicoBlaze používá jiné názvy instrukcí.
Nějak jsem nepochopil, jaký assembler chcete učit. Snad všechna DSP mají harvardskou architekturu a instrukce push/pop nepotřebují, nebo mají zásobníky implementované trochu jinak, než to má Intel (z důvodů rychlosti). Mikrořadiče, co se týče harvardské architektury, taky vedou nad Svobodou. A řekl bych, že v dnešní době člověk přijde do styku spíše s Assemblerem pro nějaké DSP nebo mikrořadič, než že by v něm kutil nějaké věci pro x86. Jinak solidní IDE má dle mého názoru i AVRStudio nebo Keil, který podporuje i ARMy.
Nejde ani tak o výuku nějakého konkrétního assembleru jako spíš o seznámení se s tím, co programování v Assembleru/strojovém kódu obnáší. Pro to je něco jako PicoBlaze ideální – malá množina instrukcí, RAM menší než město v Karlovi ;-), indexované registry. PUSH/POP lze samozřejmě snadno nahradit. Osobně to vidím jako vhodnou průpravu pro C/C++, protože je na tom snadno demonstrují ukazatele (vč. ukazatelů na funkce), problematika předávání parametrů atd.
Ahoj Pavle,
nestacilo by nakonec neco takoveho:
http://www.6502asm.com/
?
Ja jsem se s tim docela dobre pobavil a vzpomel si na stare dobre casy osmibitu :-) Ma to i video RAM, takze nejenom Karel ale i Logo is possible, pokud si tedy zvladnete se studentem implementovat FP nebo FX operace :-)
Tak tohle určitě ještě zvážím :-) Bohužel jsem ho neměl k dispozici tak dlouho, jak by bylo potřeba, a konec prázdnin se kvapem blíží. Takže možná se nakonec za Karla nedostaneme. Ale jestli zvládne samostatně to násobení čtyřbitových čísel v Karlovi, co jsem mu dal za domácí úkol, tak bych byl s výsledkem toho rychlokurzu spokojen :-)
Posledně jsem s ním dělal sčítání dvou binárních čísel (reprezentovaných značkami) a to dvěma způsoby – jeden, kdy se zpracuje najednou jeden sloupeček a případně provede přenos doleva, a druhý složitější, kdy se nejdříve sečtou sloupečky a pak se postupně přenesou přenosy. Karel je na výuku opravdu vynikající záležitost.
To je pravda, vetsina mikroradicu ma ROM a RAM oddelene (a v teto oblasti to ma vyznam). Pokud Pavle potrebujes nejaky MCU s jednotnym adresnim prostorem, tj. von Neumanna, tak je tady jeste porad 68HC08 a 68HC11, i kdyz na tom bych popravde asi assembler (pokud se ma jednat o prvni seznameni s nim) neucil, ta instrukcni sada je zpocatku trosku zmatena :-)
Já bych doporučil spíš Scalu (když už jsme u těch webových frameworků, Scala má Lift). Autor Groovy sám má ke Scale velký respekt: http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html
Citace z článku autora Groovy pro rychlost: I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.
Given that MrJava, MrJRuby and MrGroovy are all tipping Scala as javac's long term replacement, there might be something in it. So what are you waiting for; get the Programming in Scala book or the O'Reilly Scala book and start having fun :)
Tím nechci říct, že je Groovy k ničemu, ale Scala mi osobně přijde ve většině situací výhodnější.
Protože mu je asi jasný, že se velmi podobná věta říkala už dávno: „proč používat nějaký podivný C, když přece všichni ajťáci znají Fortran“, „naco nějaká Java/C#, vždyt céčko stačí pro všechny“ atd.
Btw. proč vlastně učit „algoritmy“ sčítání a násobení, když to zvládnou počítače a kalkulačky za nás.