pátek 16. ledna 2015

Vývoj letošních maturitních prací

Do maturitní zkoušky sice ještě zbývá pár měsíců, ale práce na maturitních projektech probíhají už od minulého školního roku. Postupně, jak je budou studenti dokončovat, bych rád ve spolupráci s nimi představil projekt po projektu. Protože všichni úspěšně zvládli práci se systémy správy verzí, můžete teď vývoj na projektech sledovat podrobně verzi po verzi s každým přidaným kouskem kódu.

středa 7. ledna 2015

Výsledky Codecademy JavaScript soutěže

Codecademy je výborný webový projekt zaměřený na výuku programovacích jazyků zábavnou a hlavně interaktivní cestou přímo ve vašem prohlížeči. Protože s druháky zrovna začínáme JavaScript, udělali jsme přes prázdniny malou soutěž, kdo v něm (a jeho knihovně jQuery) dojde na codecademy nejdále. V prestižním klání s mírným náskokem zvítězil Jirka s následujícím výsledkem:









Kurz je však dlouhý a komplexní a tak ani Jirka ještě nedošel za půlku. Máme před sebou tedy hodně práce, ale hlavně také prostor pro další kolo soutěže, ke kterému jsem byl dnes přemluven. Tak uvidíme kdo toho nejvíc "nakódí" do příštího týdne.

úterý 6. ledna 2015

Jak přeložíme wearables? Aneb bitva o naše zápěstí začíná

Je na čase začít hledat český výraz pro wearables, a rozhodně budeme hledat něco víc sexy než "nositelná elektronika," mají-li se stát součástí našeho života tak jako dnes chytré telefony. Ano, minimálně naše zápěstí si brzy přestane užívat vzácného období v historii, kdy mohlo být volné. Zatímco posledních pár let už nebylo potřeba nosit hodinky z jiných než estetických důvodů, chystá se teď na nás nová ofenzíva. O tom, že potřebujeme další kousek spotřební elektroniky, se nás už dnes snaží přesvědčit řada výrobců, a brzy jejich řady rozšíří největší manipulátor peněženek ze všech, kalifornský Apple.





Proti sobě tak na tomto trhu nastoupí staří známí soupeři ze světa smartphonů: Apple s Apple Watch vs. Google s Android Wear. Po hardwarové stránce bude souboj vyrovnaný. Obě strany si uvědomují, že hodinky nejsou jen další kus elektroniky, který nosíme po kapsách nebo v batohu. Hodinky totiž nosíme přímo na našem těle, čili stejně jako u našeho oblečení hraje velkou roli móda a vkus každého konkrétního člověka. Proto si dal Apple záležet, aby nebyly Watch jako Watch. Budete si moci vybrat z velkého množství řemínků, dvou velikostí displeje a tří typů materiálu. Za tým Android zase kope více výrobců, takže variabilita na trhu s Android Wear je již dnes velká, a to včetně tvaru displeje. Větší souboj se ale pravděpodobně bude dít na poli softwaru pro tyto zařízení. Apple a Google si totiž funkci hodinek zatím představují každý trochu po svém. Zatím co pánové z Googlu vidí hodinky jako zařízení s minimalistickou interakcí, tedy zařízení, které nám kromě času ukazuje notifikace z telefonu a pomocí Google Now se snaží uhodnout, jakou informaci bychom v danou chvíli na daném místě potřebovali, Apple si od hodinek zdá se slibuje malý iPhone na vašem zápěstí, se vším, co k tomu patří.



A protože bych nerad, aby mně (a v důsledku i studentům) ujížděl vlak v podobě nových technologií jako je tato, tak jsme si poslední hodinu hráli s aplikacemi právě pro Android Wear. Hodinky si zatím pouštíme na našich noteboocích v emulátoru, a zkoušíme první řádky kódu. Hned jak se nám podaří něco pěkného vytvořit, rádi se podělíme.

sobota 20. prosince 2014

Vánoční stromeček

Vyhlašuji soutěž o nejkrásnější vánoční stromeček. Ne úplně stromeček samotný, jako spíše kód který ho zobrazuje.

Zde je takový malý textový stromeček:


       *
      ***
     *****
       *
      ***
     *****
    *******
   *********
       *
      ***
     *****
    *******
   *********
  ***********
 *************


parametry = (blockCount:3, growFactor:2, firstBlockSize: 3}


Úkolem je udělat program, který podle daných parametrů vytiskne stromeček do konzole (nebo jinam dle chuti a libosti).  Stromeček se skládá z jednoho a více bloků (trojúhelníků) a každý blok z několika řádků.

Program si bere následující parametry:

block count - požadovaný počet bloků ve výsledném stromečku.
grow factor - o kolik řádků je blok delší než blok předchozí.  V obrázku nahoře si všimněte, že první blok má 3 řádky, druhý 5 a třetí 7. Počet řádků se zvyšuje blok od bloku o dva, tedy grow factor 2.
first block size - počet řádků prvního (horního) bloku.

Problém samotný není složitý, záleží jak k jeho řešení přistoupíte. Přímočaře by ho měl zvládnout bez větších problému prvák, ale s trochou experimentálního přístupu může být zajímavý i pro ostřílené programátory. Hotová řešení mi posílejte nebo rovnou uploadněte na github a pošlete odkaz. Zvláště si cením netradičních řešení se zajímavým nápadem. Volbu jazyka nechám na vás, klidně si to pište třeba v LOLCODE :) Různá vaše řešení si rozebereme zde po Vánocích.

Řešení pro funkcionální drsňáky - nepoužívejte cykly (while, for) a obejděte se i bez mutabilního stavu tzn. v javě používat pouze final proměnné. Využijte rekurze nebo prvků z JAVA 8 (píšete-li v Javě) viz. odkazy níže.

pro drsňáky pár odkazů:
Functional Programming in Java 8 video 
Turorial
Top 10 Java 8 Tutorials








středa 10. prosince 2014

Vánoční programování od Google

Google nám stejně jako minulý rok připravil Santa Tracker. Na Štědrý večer tak budete moci sledovat, kterou část planety Santa zrovna obsluhuje. Pro ty, kteří se nemohou dočkat Vánoc, připravil i adventní kalendář, který každý den odkrývá novou hru, video nebo naučné udělátko. A proč o tom mluvím já? Google se nás totiž mimo jiné rozhodl vzdělat i v psaní kódu. První cvičení uvolnil v úterý a další budou následovat. Cílí na úplné neprogramátory (děti), takže si cvičení může zkusit opravdu každý.

Tak jen do toho: https://santatracker.google.com/#codelab



neděle 30. listopadu 2014

Čtenářský kroužek v hodinách programování? Proč ne.

Kdo říká, že by hodiny programování měly být pouze o "kódění" a algoritmech? Softwarové inženýrství je především o stálém a nekonečném vzdělávaní a osvojování si nových metod uvažování. Zvláště u čtvrtého ročníku, kde brzy ztratím svůj (bezpochyby pozitivní:)) vliv a studenti se vydají svou cestou, je právě myšlenka nekončícího sebevzdělávaní poslední, kterou bych jim chtěl ještě stihnout předat. A s tím souvisí samozřejmě i čtení odborné literatury. První knížkou v našem hledáčku je bible Java programátorů, druhé vydání knihy Effective Java od Joshui Bloche. Tak uvidíme, co si studenti odnesou z první kapitoly, o které si popovídáme už příští hodinu.


sobota 29. listopadu 2014

I studenti C4 přistávají na komety

Není žádným tajemstvím, že většina z nás programátorů začala psát své první řádky kódu s nadějí, že udělá svou vlastní super počítačovou hru. Po prvních týdnech programování a prvních bitvách o vypsání několika znaků do černobílé konzole se člověku sen o vlastní hře rychle rozplyne a odloží na neurčito. Kdo ale trpělivě vydrží, pečlivě zvládne veškeré základ a po hlavě se vrhne do studia složitějších algoritmů, může nakonec ze šuplíku vytáhnout  svůj nápad na hru a konečně ji rozhýbat k životu. Právě to se teď povedlo Olze ze čtvrtého ročníku IT.

Nikoho z vás asi neminula zpráva o prvním přistáni lidstva na kometě v historii.  Přistání pro sondu Philae a její piloty z ESA určitě nebyl  jednoduchý úkol. Právě do jejich kůže se díky Olze budete už brzy moct dostat, alespoň tedy v tom světě virtuálním, uvnitř aplikace pro chytré telefony. Ale jako vždy před dokončením projektu je potřeba si uvědomit, že jak pravil klasik:
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
- Brian Kernighan
tak doufejme, že Olga svůj boj s chybami přece jen vyhraje, a její aplikace se brzy objeví na Play Store. Mezitím přikládám screenshot, abyste mi věřili, že je opravdu na co se těšit.




Ještě bych měl doplnit, že aplikace vypadá takto dobře také díky týmové spolupráci Olgy s Honzou. Honzovi sice někdy dělá problém zorientovat se ve vlastním kódu, ale jak ho vidíte pracovat s grafickým nástrojem, tak je hned jasné, kde je opravdu doma. Už jen doladit ten ukazatel paliva vpravo nahoře :)