Bevezetés a kódba

A CS101 a számítógépek alapvető tulajdonságait tárja fel, hogyan működnek, mit tudnak és mit nem tudnak, és egyáltalán nem igényel számítógépes előképzettséget.A számítógépek alapvető jellemzőivel kezdünk, és elkezdünk játszani a számítógépes kóddal.

Köszönet: Köszönet Nick Parlante-nak az anyagokért. Nick-től: “Köszönöm a Google-nek, hogy támogatta a korai kutatásaimat, amelyek segítettek ennek az órának a létrehozásában. Köszönet Mark Guzdialnak, aki népszerűsítette a digitális média használatának ötletét a számítógépek bemutatására.”

A számítógépek alapvető egyenlete

A számítógépek alapvető egyenlete:

Számítógép = Erős + Hülye

  • Elég erős ahhoz, hogy átnézze egy adat tömegét
    -Milliárd “művelet” másodpercenként
  • Hülye, mert minden művelet egyszerű és mechanikus.
    -Nem olyan, mint a “belátás” vagy a “gondolkodás” (HAL 9000 videó)
  • Hatalmas + Hülye … fog kijönni a gyakorlatainkban
  • Miért hasznosak a számítógépek a korlátoltságuk ellenére?
  • Ez az, amiről a CS101 szól
    -Látogassunk el a számítógépek e furcsa világába, nézzük meg, hogyan működik
    – Értsük meg, mire képesek, és hogyan használja ki őket az ember
    -Ne ijedjünk meg
  • Rejtett cél: szemet nyitni néhányaknak, több informatika kurzus

A számítógépek nagyon erősek abban, hogy nagy mennyiségű adatot gyorsan átnézzenek. A számítógépek szó szerint másodpercenként több milliárd műveletet képesek elvégezni. Azonban az egyes “műveletek”, amelyeket a számítógépek el tudnak végezni, rendkívül egyszerűek és mechanikusak, semmiben sem hasonlítanak az emberi gondolathoz vagy felismeréshez. Tipikus “műveletek” például két szám összehasonlítása vagy két szám összeadása.

A számítógépek tehát, bár gyorsak abban, amit csinálnak, a műveletek, amelyeket képesek elvégezni, rendkívül merevek, egyszerűek és mechanikusak. Vagy másképpen fogalmazva, a számítógépek nem olyanok, mint a HAL 9000 a 2001: Űrodüsszeia című filmből: HAL 9000 videó.

A legfontosabb tanulság, hogy a számítógép nem úgy működik, mint egy emberi agy. A számítógép egy mechanikus eszköz, amely csodálatos dolgokra képes, de szükség van egy emberre, aki megmondja neki, hogy mit tegyen.

Felső szint – Hogyan működik a számítógép?

  • A számítógép “kód” utasítások sorozatát követi
  • Minden utasítás egyszerű (pl. 2 szám összeadása)
  • A számítógép egy hosszú utasítássorozatot “futtat” le
  • Tisztán mechanikus

A számítógépek nagyon hasznosak

  • Gondolj a számítógép összes hasznos funkciójára (telefon, kamera)
    – Üzenetküldés, e-mail
    -MP3 hang
    -Vörös szemek csökkentése
  • Ha a számítógépek ilyen hülyék….akkor hogy lehetnek olyan hasznosak?
  • Mi köti össze a két oldalt?

Programozók

  • A programozók hasznosítják a számítógép erejét!
  • A programozó kitalál egy hasznos funkciót
    – Kreativitást, rálátást az emberi igényekre és számítógépes ismereteket igényel
  • A programozók lebontják a lépéseket, kódot írnak a számítógépnek
    – Leegyszerűsítik a számítógép számára!
  • Mindkét oldal legjobb tulajdonságai: a számítógép olcsó/gyors feldolgozása + a programozó kreatív rálátása
  • CS101 felfedezések: algoritmusok és kód

Mivel a számítógépek teljesen mechanikusak és buták, miért olyan mindenütt jelen vannak? A számítógép és a hasznos dolgok elvégzése közötti rés az, ahol az emberi programozó megoldásokat hoz létre. A programozáshoz az embernek kreatívnak kell lennie, és rálátással kell rendelkeznie egy problémára, valamint képesnek kell lennie arra, hogy a megoldást olyan utasításokra bontsa le, amelyeket a számítógép követni tud.

A kód a számítógép által érthető nyelvre utal. Ezeken az előadásokon rövid kódrészleteket fogunk írni és futtatni, hogy megértsük, mik a számítógépek alapvető tulajdonságai, és különösen az erősségeik és korlátaik.

A kóddal kísérletezve nagyon világosan ki fog derülni a számítógépek természete … a maguk módján erősek, de korlátozott, mechanikus minőséggel rendelkeznek. IMHO a számítógépeknek ezt a vegyes természetét mindenkinek meg kell értenie ahhoz, hogy jól tudja használni őket, és ne ijedjen meg tőlük.

Kódolás előtt – Türelem

  • Az alábbiakban néhány egyszerű kódolással kezdünk
  • A kód olyan, mint a lego tégla…
  • -Az egyes darabkák szuper egyszerűek
  • – Végül nagyszerű kombinációkat építünk fel
  • De kicsiben kell kezdenünk

Előárnyékolás

Az előadás néhány órája alatt olyan különleges effekteket fogunk készíteni a képekkel, mint a következő:

De egyelőre csak a print()!

Patience Azzal kezdjük, hogy megtanulunk néhány programozási elemet, valamint a számítógép különböző részeit, és később ezt a néhány elemet újra kombináljuk, hogy sok problémát megoldjunk. Ezek az első elemek egyszerűek, így önmagukban nem sokat jelentenek. Légy türelmes, hamarosan össze fogjuk rakni ezeket az elemeket — mint a lego téglákat –, hogy elég takaros projekteket hozzunk létre.

Javascript Computer Langauge

  • Javascript kód plusz néhány bővítés csak a CS101 számára
  • A kódkifejezéseink kis…
  • – Éppen elég nagyok ahhoz, hogy a legfontosabb ötletekkel kísérletezzünk
  • -Nem teljes, professzionális programok
  • – De elég nagyok ahhoz, hogy megmutassuk a kódolás valódi kihívásait

Ezeken az órákon a Javascript néven ismert nyelv egy változatát fogjuk használni, néhány, a kurzus számára hozzáadott funkcióval. A Javascript nyelv a webböngészőben működik, így minden kísérletünk közvetlenül a böngészőben élhet, semmi másra nincs szükség. A Javascriptnek csak a kísérleteinkhez szükséges részeit fogjuk használni, nem a teljes nyelvet, amit a Javascript professzionális használatakor látnánk. Ennek ellenére a Javascript egy valódi nyelv, és a mi kódunk is valódi kód. Kis programjaink bemutatják a kód fontos jellemzőit, miközben a dolgok gyorsak és kicsik maradnak.

Első kódpélda – Print

Itt a kód, amely a “print” függvényt hívja. Kattintson az alábbi Futtatás gombra, és a számítógép lefuttatja ezt a kódot, és a jobb oldalon megjelenik a kód kimenete.

code1-1

  • A Futtatás minden sort egyszer hajt végre, felülről lefelé haladva
  • A print egy függvény, egy ige, amely a számítógép által végrehajtandó műveletet jelöl.
  • A zárójelben lévő adatokat átadjuk a print függvénynek (főnevek)
    -ezek az adatok az “ige” tárgyai
    -az adatokat a függvény argumentumainak nevezzük
  • A több értéket vesszővel választjuk el
  • Kísérletek módosítják a kódot, és minden egyes módosítás után futtatjuk, hogy lássuk az új kimenetet:
    -Változtassunk meg egy számot
    -Adjunk több számot vesszővel elválasztva a print(…)
    -másolja ki az első sort, és illessze be kétszer az utolsó sor után
    -ígérem, hogy a kimenet érdekesebb lesz!
  • Szűk szintaxis nem szabad forma
    -A megengedett szintaxis szuper szigorú és szűk
    -pl. nem hagyhatja ki a jobb oldali zárójelet )
    -A számítógép belső, mechanikus természetének tükörképe
    -Ne hagyja magát elriasztani – “When in Rome…”
    -A számítógép világába látogatunk
  • Megjegyezzük, hogy ez a “nyomtatás” nem normális része a Javascriptnek, a CS101 számára adtam hozzá

Print And Strings

code1-2

  • A megjegyzés //-vel kezdődik és a sor végéig tart. A kóddal kapcsolatos, a számítógép által figyelmen kívül hagyott megjegyzések írásának módja.
    Miért használhatnak a programozók megjegyzéseket?
  • A karakterlánc idézőjelek közé írt karaktersorozat, amelyet a kódban adatként használnak
    pl. “hello” vagy “123”
    A stringek a számok mellett a print függvénnyel is működnek
    A stringek a számítógépben szöveget tárolnak, például url-eket vagy bekezdések szövegét stb.
  • Kísérletek:
    -Egy stringen belüli szöveg szerkesztése
    Még több, vesszővel elválasztott string hozzáadása
    A “print” string hozzáadása – trükkös!
    -Az idézőjelek között csak adatok vannak
  • Kód = utasítások, amelyek lefutnak
  • Adatok = számok vagy karakterláncok; a kód kezeli őket

Megjegyezzük, hogy a nyomtatást függvényként ismeri fel a kód, szemben a “hello” stringgel, amely csak passzív adat (mint az igék és főnevek) A számítógép figyelmen kívül hagyja a megjegyzéseket, így azok csak arra szolgálnak, hogy megjegyzéseket írj magadnak arról, hogy mit csinál a kód. A megjegyzéseket arra is használhatjuk, hogy ideiglenesen eltávolítsunk egy kódsort — “kikommentáljuk” a kódot egy “//” balra helyezésével.

Gondolkodás a szintaktikáról és a hibákról (a mai nap legfontosabb üzenete!)

  • Szintaktika — a kód a számítógép számára van felépítve
  • Nagyon gyakori hiba — kód beírása, enyhe szintaktikai problémával
  • Profi programozók állandóan elkövetnek ilyen “hibát”
  • Szerencsére nagyon könnyen javítható … ne aggódj miatta
  • Nem a programozó valamilyen hibáját tükrözi
  • Csak az ötletek gépi számítógépes nyelvbe gépelésének természete
  • A kezdőket kisiklathatja a szintaktikai lépés, azt gondolva, hogy valami nagy hibát követnek el
  • Próbálj meg egy csomó tipikus szintaktikai hibát elkövetni és kijavítani őket
  • Az apró hibák kijavítása egy kis, normális lépés
  • Megjegyzendő: A Firefox adja a legjobb hibaüzeneteket

Szintaxis A fent látható szintaxist mereven be kell tartani, különben a kód nem fog működni: függvénynév, zárójelek, minden karakterláncot nyitó és záró idézőjelek, függvényhívásnál vesszők választják el az értékeket.

A szintaxis merevsége a számítógépek korlátait tükrözi, mivel természetes nyelvük kötött és mechanikus. Ezt fontos elsajátítani, amikor számítógépekkel dolgozunk, és azt hiszem, sokan itt siklanak ki, amikor a számítógépekkel kezdenek el foglalkozni. Olyasmit írsz, amit bármelyik ember megértene, de a számítógép csak ott érti meg a kódot, ahol az illeszkedik a számítógép mechanikus szintaxisához.

A kódírás során nagyon gyakoriak a triviális, felszínes szintaxisbeli hibák. A világ legszakavatottabb programozói is folyton elkövetnek ilyen hibákat, és nem gondolnak rá semmit. A szintaktikai hibák nem a szerző valamilyen hibás stratégiáját tükrözik. Ez csak egy természetes lépés a gondolatainknak a számítógép mechanikusabb nyelvére való lefordítása során. Mint alább látni fogjuk, ezeknek a hibáknak a kijavítása nagyon gyors.

Fontos, hogy ne hagyjuk magunkat kisiklatni ezeken a kis felületes-felületes hibaeseteken. A minták megtanítása érdekében az alábbiakban számos példát mutatunk be tipikus hibákat, így láthatjuk, hogyan néznek ki a hibaüzenetek, és láthatjuk, hogyan kell kijavítani őket. Az alábbi kódrészleteknél mi a hiba? Néha a számítógép által generált hibaüzenet pontosan rámutat a problémára, de néha a hibaüzenet csak azt mutatja, hogy a hiba olyan mélyen összezavarta a számítógépet, hogy nem tud pontos hibaüzenetet létrehozni. A Firefox jelenleg a leghasznosabb hibaüzeneteket produkálja, és gyakran megmondja a konkrét problémás sort.

Szintaktikai hibapéldák

Ezek a szintaktikai problémák gyorsan javíthatóak.

code1-err1

Szólj hozzá!