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 :)