Úvod do kódu

CS101 se zabývá základními vlastnostmi počítačů, jejich fungováním, tím, co umí a neumí, a nevyžaduje žádné počítačové znalosti.Začneme tím, že se seznámíme se základními vlastnostmi počítačů a začneme si hrát s počítačovým kódem.

Poděkování: Děkujeme Nicku Parlantemu za poskytnuté materiály. Od Nicka: „Děkuji společnosti Google za podporu mého počátečního výzkumu, který pomohl vytvořit tuto třídu. Děkuji Marku Guzdialovi, který zpopularizoval myšlenku využití digitálních médií k představení počítačů.“

Základní rovnice počítačů

Základní rovnice počítačů zní:

Počítač = Výkonný + Hloupý

  • Dostatečně výkonný na to, aby prohlédl masy dat
    -Biliony „operací“ za sekundu
  • Hloupý, protože každá operace je jednoduchá a mechanická.
    -Nic jako „vhled“ nebo „myšlení“ (video HAL 9000)
  • Mocný + Hloupý … vyjde v našich cvičeních
  • Proč jsou počítače užitečné navzdory svému omezení?
  • O tom je CS101
    -Navštívit tento legrační svět počítačů, podívat se, jak fungují
    -Pochopit, co umí a jak je lidé využívají
    -Nenechat se zastrašit
  • Skrytý program: otevřít některým oči, více kurzů informatiky

Počítače jsou velmi výkonné při rychlém prohlížení velkého množství dat. Počítače mohou provádět doslova miliardy operací za sekundu. Jednotlivé „operace“, které mohou počítače provádět, jsou však nesmírně jednoduché a mechanické, vůbec se nepodobají lidské myšlence nebo vhledu. Mezi typické „operace“ patří porovnávání dvou čísel nebo sčítání dvou čísel dohromady.

Ačkoli jsou tedy počítače rychlé v tom, co dělají, operace, které mohou provádět, jsou extrémně rigidní, jednoduché a mechanické. Nebo jinak řečeno, počítače nejsou jako HAL 9000 z filmu 2001: Vesmírná odysea:

Klíčovým poznatkem je, že počítač se nechová jako lidský mozek. Počítač je mechanický nástroj, který dokáže úžasné věci, ale potřebuje člověka, který mu řekne, co má dělat.

Vysoká úroveň – jak počítač funguje?

  • Počítač se řídí řadou „kódových“ instrukcí
  • Každá instrukce je jednoduchá (např. sečti 2 čísla)
  • Počítač „provádí“ dlouhou řadu instrukcí
  • Čistě mechanicky

Počítače jsou velmi užitečné

  • Přemýšlejte o všech užitečných funkcích počítače (telefon, fotoaparát)
    -Zprávy, e-mail
    -MP3 audio
    -Redukce červených očí
  • Jestliže jsou počítače tak hloupé.. jak to, že jsou tak užitečné?
  • Co je spojuje?“

Programátoři

  • Programátoři využívají sílu počítače!
  • Programátor vymyslí užitečnou funkci
    – Vyžaduje kreativitu, vhled do lidských potřeb a znalost počítačů
  • Programátoři rozkládají kroky, píší kód pro počítač
    – Otupí to pro počítač!
  • Nejlepší vlastnosti obou stran: levné/rychlé zpracování počítače + tvůrčí vhled programátora
  • Zkoumání CS101: algoritmy a kód

Když jsou počítače naprosto mechanické a hloupé, proč jsou tak všudypřítomné? Mezera mezi počítačem a děláním něčeho užitečného je místem, kde lidský programátor vytváří řešení. Programování vyžaduje, aby byl člověk kreativní a měl vhled do problému a také schopnost rozložit řešení do instrukcí, které může počítač následovat.

Kódem se rozumí jazyk, kterému počítač rozumí. Na těchto přednáškách budeme psát a spouštět krátké úryvky kódu, abychom pochopili, jaké jsou základní vlastnosti počítačů, a zejména jejich silné stránky a omezení.

Při experimentování s kódem se velmi jasně projeví povaha počítačů … svým způsobem mocných, ale s omezenou, mechanickou kvalitou. Tuto smíšenou povahu počítačů by IMHO měl pochopit každý, aby je mohl dobře používat a nenechal se jimi zastrašit.

Před kódováním – trpělivost

  • Začneme s jednoduchým kódováním níže
  • Kód je jako kostky lega….
  • -Jednotlivé dílky jsou superjednoduché
  • -V konečném důsledku vytvoříme skvělé kombinace
  • Ale musíme začít v malém

Stínování

Během několika hodin přednášky budeme dělat speciální efekty s obrázky, například následující:

Ale zatím nám stačí print()!

Trpělivost Na začátku se naučíme několik programovacích prvků a také různé části počítače a později těchto několik prvků překombinujeme k řešení mnoha problémů. Tyto první prvky jsou jednoduché, takže se na ně samy o sobě moc nedívejte. Buďte trpěliví, brzy budeme tyto prvky skládat dohromady – jako kostičky lega – a vytvářet pěkné projekty.

Javascript Computer Langauge

  • Kód JavaScriptu plus některá rozšíření jen pro CS101
  • Naše kódové věty jsou malé…
  • -Pouze dostatečně velké, aby bylo možné experimentovat s klíčovými myšlenkami
  • -Nejsou to plné, profesionální programy
  • -Ale dostatečně velké, aby ukázaly skutečné problémy kódování

Pro tuto hodinu budeme používat variantu jazyka známého jako Javascript s některými přidanými funkcemi pro tento kurz. Jazyk Javascript pracuje ve webovém prohlížeči, takže všechny naše experimenty mohou žít přímo v prohlížeči bez potřeby čehokoli dalšího. Budeme používat pouze části jazyka Javascript potřebné pro naše experimenty, nikoliv celý jazyk, se kterým se lze setkat při profesionálním používání Javascriptu. Přesto je Javascript skutečný jazyk a náš kód je skutečný kód. Naše malé programy ukazují důležité vlastnosti kódu a zároveň zachovávají rychlost a malé rozměry.

První příklad kódu – Tisk

Tady je kód, který volá funkci „print“. Klikněte na tlačítko Spustit níže, počítač tento kód spustí a výstup kódu se zobrazí vpravo.

kód1-1

  • Spustit provede každý řádek jednou, běží shora dolů
  • tisk je funkce, sloveso, které představuje akci, kterou počítač provede.
  • Data uvnitř závorek se předávají funkci print (podstatná jména)
    -tato data jsou předmětem „slovesa“
    -data se nazývají argumenty funkce
  • Více hodnot se odděluje čárkami
  • Experimenty mění kód a spuštěním po každé změně vidíte nový výstup:
    -Změňte číslo
    -Přidejte další čísla oddělená čárkami uvnitř print(….)
    -Zkopírujte první řádek a vložte ho dvakrát za poslední řádek
    -slibuji, že výstup bude zajímavější!“
  • Úzká syntaxe není volná
    -Povolená syntaxe je super striktní a úzká
    -např. nelze vynechat pravou závorku )
    -Odraz vnitřní, mechanické povahy počítače
    -Nenechte se odradit – „Když v Římě..“
    -Navštěvujeme svět počítače
  • Všimněte si, že tento „print“ není běžnou součástí Javascriptu, přidal jsem ho pro CS101

Print And Strings

code1-2

  • Komentář začíná // a sahá až do konce řádku. Způsob zápisu poznámek ke kódu, které počítač ignoruje.
    Proč mohou programátoři používat komentáře?
  • Řetězec je posloupnost znaků zapsaná v uvozovkách, která se použije jako data v kódu
    -např. „ahoj“ nebo „123“
    -Strunce pracují kromě čísel i s funkcí print
    -Strunce v počítači uchovávají text, např. adresy URL nebo text odstavců apod.
  • Experimenty:
    -Upravit text uvnitř řetězce
    -Přidat další řetězce oddělené čárkami
    -Přidat řetězec „print“ – záludné!
    -Uvnitř uvozovek jsou jen data
  • Kód = instrukce, které se spouštějí
  • Data = čísla nebo řetězce; zpracovává je kód

Poznamenejte si, že „print“ je v kódu rozpoznán jako funkce oproti řetězci „hello“, který je jen pasivním údajem (jako slovesa a podstatná jména). počítač komentáře ignoruje, takže slouží jen k tomu, abyste si mohli psát poznámky k tomu, co kód dělá. Komentáře lze použít k dočasnému odstranění řádku kódu — „zakomentování“ kódu umístěním znaku „//“ vlevo od něj.

Přemýšlení o syntaxi a chybách (dnešní klíčové sdělení!)

  • Syntaxe — kód je strukturován pro počítač
  • Velmi častá chyba — typ v kódu, s mírným syntaktickým problémem
  • Profesionální programátoři dělají tento druh „chyby“ neustále
  • Naštěstí velmi snadno opravitelná … nedělejte si s tím starosti
  • Není to odrazem nějaké vady programátora
  • Je to prostě povaha psaní myšlenek do mechanického počítačového jazyka
  • Začátečníky může syntaktický krok vykolejit, protože si myslí, že dělají nějakou velkou chybu
  • Zkuste si udělat několik typických syntaktických chyb a opravit je
  • Oprava těchto drobných chyb je malý, normální krok
  • Poznámka: Firefox vám dává nejlepší chybová hlášení

Syntaxe Výše uvedená syntaxe musí být striktně dodržována, jinak kód nebude fungovat: název funkce, závorky, každý řetězec má otevírací a uzavírací uvozovky, čárky oddělující hodnoty pro volání funkce.

Pevnost syntaxe je odrazem omezení počítačů, protože jejich přirozený jazyk je pevný a mechanický. To je důležité si při práci s počítači osvojit a myslím, že právě tady mnoho lidí vykolejí začátky s počítači. Vy napíšete něco, čemu by rozuměl každý člověk, ale počítač může kód pochopit jen tam, kde to odpovídá mechanické syntaxi počítače.

Triviální, povrchní chyby v syntaxi jsou při psaní kódu velmi časté. Nejzkušenější programátoři na světě dělají tento druh chyb neustále a nic si z toho nedělají. Syntaktické chyby neodrážejí nějakou chybnou strategii autora. Je to jen přirozený krok při převádění našich myšlenek do mechaničtějšího jazyka počítače. Jak uvidíme níže, oprava těchto chyb je velmi rychlá.

Důležité je nenechat se vykolejit těmito drobnými povrchně chybovými případy. Abychom vám pomohli naučit se vzorce, níže uvádíme mnoho příkladů zobrazujících typické chyby, abyste viděli, jak vypadají chybová hlášení a jak je opravit. U každého níže uvedeného úryvku kódu uveďte, o jakou chybu se jedná? Někdy chybová zpráva vygenerovaná počítačem ukazuje na problém přesně, ale někdy chybová zpráva pouze prozrazuje, že chyba počítač zmátla tak hluboce, že nedokáže vytvořit přesnou chybovou zprávu. Firefox v současné době vytváří nejužitečnější chybová hlášení a často vám sdělí konkrétní řádek s problémy.

Příklady chyb syntaxe

Tyto problémy se syntaxí lze rychle odstranit.

code1-err1

.

Napsat komentář