Inleiding tot Code

CS101 verkent de essentiële eigenschappen van computers, hoe ze werken, wat ze wel en niet kunnen, en vereist geen enkele computerachtergrond.We beginnen met het bekijken van de basiskenmerken van computers en gaan aan de slag met het spelen met computercode.

Acknowledgements: Met dank aan Nick Parlante voor zijn materiaal. Van Nick: “Met dank aan Google voor het ondersteunen van mijn vroege onderzoek dat heeft bijgedragen aan de totstandkoming van deze les. Met dank aan Mark Guzdial die het idee populariseerde om digitale media te gebruiken om computers te introduceren.”

Fundamentele vergelijking van computers

De fundamentele vergelijking van computers is:

Computer = Krachtig + Dom

  • Machtig genoeg om door massa’s gegevens te kijken
    -Miljoenen “bewerkingen” per seconde
  • Stom omdat elke bewerking eenvoudig en mechanisch is.
    -Niets als “inzicht” of “denken” (HAL 9000 video)
  • Krachtig + Stom … zal in onze oefeningen naar voren komen
  • Waarom zijn computers nuttig ondanks hun beperking?
  • Daar gaat CS101 over
    -Bekijk deze grappige wereld van de computer, zie hoe hij werkt
    -Begrijp wat ze kunnen en hoe mensen er gebruik van maken
    -Niet geïntimideerd zijn
  • Verdekte agenda: ogen openen voor sommigen, meer informatica-cursussen

Computers zijn zeer krachtig in het snel doorzoeken van grote hoeveelheden gegevens. Computers kunnen letterlijk miljarden bewerkingen per seconde uitvoeren. De afzonderlijke “bewerkingen” die computers kunnen uitvoeren zijn echter uiterst eenvoudig en mechanisch, en lijken in niets op een menselijke gedachte of inzicht. Typische “bewerkingen” zijn het vergelijken van twee getallen of het optellen van twee getallen.

Dus hoewel de computers snel zijn in wat ze doen, zijn de bewerkingen die ze kunnen doen uiterst rigide, eenvoudig en mechanisch. Of anders gezegd, computers zijn niet zoals de HAL 9000 uit de film 2001: A Space Odyssey: HAL 9000 video.

Een belangrijke conclusie is dat een computer zich niet gedraagt als een menselijk brein. De computer is een mechanisch werktuig dat verbazingwekkende dingen kan doen, maar er is een mens voor nodig om hem te vertellen wat hij moet doen.

Hoog niveau – Hoe werkt een computer?

  • De computer volgt een reeks “code”-instructies
  • Elke instructie is eenvoudig (bijv. 2 getallen optellen)
  • De computer “loopt” een lange reeks instructies
  • Puur mechanisch

Computers zijn heel nuttig

  • Denk aan alle nuttige computerfuncties (telefoon, camera)
    -Messaging, e-mail
    -MP3 audio
    -Reductie van rode ogen
  • Als computers zo dom zijn….hoe kunnen ze dan zo nuttig zijn?
  • Wat verbindt de twee kanten?

Programmeurs

  • Programmeurs maken gebruik van de kracht van een computer!
  • De programmeur bedenkt een nuttige functie
    -Vereist creativiteit, inzicht in menselijke behoeften, en kennis van computers
  • Programmeurs breken de stappen af, schrijven code voor de computer
    – Dumbs it down voor de computer!
  • Beste eigenschappen van beide kanten: goedkope/snelle verwerking van computer + creatief inzicht van de programmeur
  • CS101 verkenningen: algoritmen en code

Omdat computers totaal mechanisch en dom zijn, waarom zijn ze dan zo alomtegenwoordig? Het gat tussen de computer en iets nuttigs doen is waar de menselijke programmeur oplossingen creëert. Programmeren vereist dat een mens creatief is, inzicht heeft in een probleem en de oplossing kan vertalen in instructies die een computer kan volgen.

Code verwijst naar de taal die de computer kan begrijpen. Voor deze lezingen zullen we korte stukjes code schrijven en uitvoeren om te begrijpen wat de essentiële kwaliteiten van computers zijn, en vooral hun sterke punten en beperkingen.

Door met code te experimenteren, zal de aard van computers heel duidelijk naar voren komen … krachtig op hun eigen manier, maar met een beperkte, mechanische kwaliteit. IMHO, deze gemengde aard van computers is iets wat iedereen zou moeten begrijpen om ze goed te kunnen gebruiken en er niet door geïntimideerd te worden.

Voor het coderen – Geduld

  • We beginnen met wat eenvoudige codering hieronder
  • Code is als legoblokjes…
  • -Individuele stukjes zijn super simpel
  • Op den duur bouwen we geweldige combinaties op
  • Maar we moeten klein beginnen

Schaduw

Op een paar uur college zullen we speciale effecten doen met plaatjes zoals de volgende:

Maar voor nu hebben we alleen print()!

Geduld We gaan beginnen met het leren van een paar programmeerelementen en de verschillende onderdelen van een computer, en later zullen we deze paar elementen combineren om veel problemen op te lossen. Deze eerste elementen zijn eenvoudig, dus ze zijn niet veel om naar te kijken op hun eigen. Heb geduld, binnenkort zullen we deze elementen in elkaar zetten – als legostenen – om behoorlijk nette projecten te maken.

Javascript Computer Langauge

  • Javascript code plus enkele uitbreidingen speciaal voor CS101
  • Onze code zinnen zijn klein…
  • -Niet groot genoeg om te experimenteren met belangrijke ideeën
  • -Niet volledige, professionele programma’s
  • -Maar groot genoeg om de echte uitdagingen van het coderen te laten zien

Voor deze les gebruiken we een variant van de taal die bekend staat als Javascript, met een aantal extra mogelijkheden voor deze cursus. De Javascript taal werkt in de web browser, dus al onze experimenten kunnen direct in de browser plaatsvinden zonder dat er iets anders nodig is. We zullen alleen de delen van Javascript gebruiken die nodig zijn voor onze experimenten, niet de volledige taal die men zou zien als men Javascript professioneel gebruikt. Dat gezegd hebbende, Javascript is een echte taal, en onze code is echte code. Onze kleine programma’s tonen de belangrijke kenmerken van code, terwijl we de dingen snel en klein houden.

Eerste Code Voorbeeld – Print

Hier is code die de “print” functie aanroept. Klik op de knop Uitvoeren hieronder, en uw computer zal deze code uitvoeren, en de uitvoer van de code zal rechts verschijnen.

code1-1

  • Uitvoeren voert elke regel eenmaal uit, van boven naar beneden
  • afdruk is een functie, een werkwoord dat een actie voorstelt die de computer zal ondernemen.
  • Gegevens binnen de haakjes worden doorgegeven aan de print-functie (zelfstandige naamwoorden)
    -die gegevens zijn het object van het “werkwoord”
    -gegevens worden de argumenten van de functie genoemd
  • Meerdere waarden worden gescheiden door komma’s
  • Experimenten wijzigen de code en uitvoeren na elke wijziging ziet de nieuwe uitvoer:
    -Verander een getal
    -Voeg meer getallen toe, gescheiden door komma’s binnen de print(…)
    -Kopieer de eerste regel, en plak het twee keer in na de laatste regel
    -Ik beloof dat de uitvoer interessanter wordt!
  • Smalle syntaxis geen vrije vorm
    -Toegestane syntaxis is super strikt en smal
    -bijv. kan de rechter haakjes niet weglaten)
    -Een weerspiegeling van de innerlijke, mechanische aard van de computer
    -Niet afschrikken – “When in Rome….”
    -We bezoeken de wereld van de computer
  • Note dit “print” is geen normaal onderdeel van Javascript, ik voegde het toe voor CS101

Print And Strings

code1-2

  • Een commentaar begint met // en loopt door tot het einde van de regel. Een manier om aantekeningen over de code te maken, die door de computer worden genegeerd.
    Waarom gebruiken programmeurs commentaar?
  • Een tekenreeks is een reeks tekens tussen aanhalingstekens om als gegevens in de code te worden gebruikt
    , bijv. “hallo” of “123”
    -Strings werken met de printfunctie, naast getallen
    -Strings in de computer slaan tekst op, zoals url’s of de tekst van alinea’s, etc.
  • Experimenten:
    -Bewerk de tekst binnen een string
    -Toevoeging van meer strings, gescheiden door komma’s
    -Toevoeging van de string “print” – tricky!
    -Binnen de aanhalingstekens is gewoon data
  • Code = instructies die worden uitgevoerd
  • Data = getallen of reeksen; behandeld door de code

Merk op dat print wordt herkend als een functie in de code, in tegenstelling tot de “hello” string die gewoon passieve data is (zoals werkwoorden en zelfstandige naamwoorden).De computer negeert de commentaren, dus ze zijn gewoon een manier om aantekeningen te maken over wat de code aan het doen is. Commentaar kan worden gebruikt om tijdelijk een regel code te verwijderen – “commentaar uit” de code door het plaatsen van een “//” aan de linkerkant.

Denken over Syntaxis en Fouten (de belangrijkste boodschap van vandaag!

  • Syntax — code is gestructureerd voor de computer
  • Zeer gewone fout — code intypen, met licht syntax probleem
  • Professionele programmeurs maken dat soort “fouten” de hele tijd
  • Gelukkig, zeer gemakkelijk te herstellen … maak je er geen zorgen over
  • Niet een reflectie van een fout in de programmeur
  • Juist de aard van het typen van ideeën in de mechanische computertaal
  • Beginners kunnen ontsporen door syntaxisstappen, denkend dat ze een of andere grote fout maken
  • Probeer een stel typische syntaxisfouten te maken en los ze op
  • Het oplossen van deze kleine fouten is een kleine, normale stap
  • Note: Firefox geeft u de beste foutmeldingen

Syntax De hierboven getoonde syntaxis moet strikt worden gevolgd, anders werkt de code niet: functienaam, haakjes, elke string heeft openings- en sluitingsaanhalingstekens, komma’s scheiden de waarden voor een functie-aanroep.

De starheid van de syntaxis is een weerspiegeling van de beperkingen van computers, aangezien hun natuurlijke taal vast en mechanisch is. Dit is belangrijk om te onthouden als je met computers werkt, en ik denk dat dit het punt is waar veel mensen ontsporen als ze met computers beginnen. Je schrijft iets dat ieder mens zou kunnen begrijpen, maar de computer kan de code alleen begrijpen waar het past in de mechanische syntaxis van de computer.

Triviale, oppervlakkige fouten in de syntaxis zijn heel gewoon bij het schrijven van code. De meest deskundige programmeurs op aarde maken dat soort fouten de hele tijd en denken er niets van. De syntaxis fouten zijn geen weerspiegeling van een gebrekkige strategie van de auteur. Het is gewoon een natuurlijke stap in het vertalen van onze gedachten naar de meer mechanische taal van de computer. Zoals we hieronder zullen zien, is het repareren van deze fouten erg snel.

Het is belangrijk om je niet te laten ontsporen door deze kleine oppervlakkige-fouten-gevallen. Om je te helpen de patronen te leren, hebben we hieronder veel voorbeelden met typische fouten, zodat je kunt zien hoe de foutmeldingen eruit zien en kunt zien hoe je ze kunt oplossen. Voor elk stukje code hieronder, wat is de fout? Soms wijst de door de computer gegenereerde foutmelding nauwkeurig naar het probleem, maar soms laat de foutmelding alleen zien dat de fout de computer zo diep in de war heeft gebracht dat hij geen nauwkeurige foutmelding kan maken. Firefox produceert momenteel de meest behulpzame foutmeldingen en zal u vaak de specifieke regel met problemen vertellen.

Syntax Error Examples

Deze syntax problemen zijn snel op te lossen.

code1-err1

Plaats een reactie