CS101 bada istotne cechy komputerów, jak one działają, co mogą i czego nie mogą zrobić, i nie wymaga żadnego przygotowania informatycznego.Zaczniemy od przyjrzenia się podstawowym cechom komputerów i zaczniemy zabawę z kodem komputerowym.
Podziękowania: Podziękowania dla Nicka Parlante za jego materiały. Od Nicka: „Podziękowania dla Google za wsparcie moich wczesnych badań, które pomogły stworzyć tę klasę. Podziękowania dla Marka Guzdiala, który spopularyzował pomysł użycia mediów cyfrowych do wprowadzenia komputerów.”
Podstawowe równanie komputerów
Podstawowe równanie komputerów jest następujące:
Komputer = Potężny + Głupi
- Wystarczająco potężny, aby przejrzeć masę danych
-Biliony „operacji” na sekundę - Głupi, ponieważ każda operacja jest prosta i mechaniczna.
-Nic jak „wgląd” lub „myślenie” (wideo HAL 9000) - Potężny + Głupi … wyjdzie w naszych ćwiczeniach
- Dlaczego komputery są użyteczne pomimo ich ograniczeń?
- O to właśnie chodzi w CS101
-Zwiedzaj ten zabawny świat komputera, zobacz jak działa
-Zrozum co mogą zrobić i jak ludzie je wykorzystują
-Nie daj się zastraszyć - Ukryta agenda: otwórz oczy niektórym, więcej kursów informatyki
Komputery są bardzo potężne w szybkim przeglądaniu dużych ilości danych. Komputery mogą dosłownie wykonywać miliardy operacji na sekundę. Jednak poszczególne „operacje”, które komputery mogą wykonać są niezwykle proste i mechaniczne, nic jak ludzkiej myśli lub wglądu. Typowe „operacje” obejmują porównywanie dwóch liczb lub dodawanie dwóch liczb razem.
Więc chociaż komputery są szybkie w tym, co robią, operacje, które mogą zrobić są niezwykle sztywne, proste i mechaniczne. Albo mówiąc inaczej, komputery nie są jak HAL 9000 z filmu 2001: Odyseja kosmiczna: HAL 9000 video.
A key takeaway jest to, że komputer nie działa jak ludzki mózg. Komputer jest mechanicznym narzędziem, które może robić niesamowite rzeczy, ale wymaga człowieka, który powie mu, co ma robić.
Poziom wysoki – Jak działa komputer?
- Komputer wykonuje serię instrukcji „kodu”
- Każda instrukcja jest prosta (np. dodaj 2 liczby)
- Komputer „uruchamia” długą serię instrukcji
- Czysto mechaniczny
Komputery są bardzo użyteczne
- Pomyśl o wszystkich użytecznych funkcjach komputera (telefon, aparat)
-Wiadomości, email
-MP3 audio
-Redukcja czerwonych oczu - Jeśli komputery są tak głupie…. jak są tak użyteczne?
- Co łączy te dwie strony?
Programiści
- Programiści wykorzystują moc komputera!
- Programista wymyśla użyteczną funkcję
-Wymaga kreatywności, wglądu w ludzkie potrzeby i wiedzy o komputerach - Programiści rozkładają kroki, pisząc kod dla komputera
– Przygłuszają go dla komputera! - Najlepsze cechy obu stron: niedrogie/szybkie przetwarzanie danych przez komputer + kreatywny wgląd programisty
- S101 eksploracje: algorytmy i kod
Skoro komputery są całkowicie mechaniczne i głupie, dlaczego są tak wszechobecne? Luka między komputerem a robieniem czegoś użytecznego jest miejscem, w którym ludzki programista tworzy rozwiązania. Programowanie wymaga, aby człowiek był kreatywny i miał wgląd w problem, jak również zdolność do rozbicia rozwiązania na instrukcje, które komputer może śledzić.
Kod odnosi się do języka, który komputer może zrozumieć. Na tych wykładach będziemy pisać i uruchamiać krótkie fragmenty kodu, aby zrozumieć, jakie są podstawowe cechy komputerów, a zwłaszcza ich mocne strony i ograniczenia.
Eksperymentując z kodem, natura komputerów przejdzie bardzo wyraźnie … potężne na swój sposób, ale z ograniczoną, mechaniczną jakością. IMHO, ta mieszana natura komputerów jest czymś, co każdy powinien zrozumieć, aby używać ich dobrze i nie być przez nie zastraszonym.
Przed kodowaniem – cierpliwość
- Zaczniemy od prostego kodowania poniżej
- Kod jest jak klocki lego…
- -Pojedyncze elementy są super proste
- -W końcu zbudujemy wspaniałe kombinacje
- Ale musimy zacząć od małego
Foreshadowing
W ciągu kilku godzin wykładu, będziemy robić efekty specjalne z obrazkami takimi jak poniższe:
Ale na razie mamy tylko print()!
Cierpliwość Zaczniemy od poznania kilku elementów programowania oraz różnych części komputera, a później będziemy łączyć te elementy, aby rozwiązać wiele problemów. Te pierwsze elementy są proste, więc nie są zbytnio widoczne same w sobie. Bądź cierpliwy, wkrótce złożymy te elementy razem — jak klocki lego — aby stworzyć całkiem zgrabne projekty.
Javascript Computer Langauge
- Kod JavaScript plus kilka rozszerzeń tylko dla CS101
- Nasze wyrażenia kodowe są małe…
- -Just big enough to experiment with key ideas
- -Not full, professional programs
- -But big enough to show the real challenges of coding
For this class, we’ll use a variant of the language known as Javascript, with some added features for this course. Język Javascript działa w przeglądarce internetowej, więc wszystkie nasze eksperymenty mogą być przeprowadzane bezpośrednio w przeglądarce i nie wymagają niczego innego. Będziemy używać tylko części Javascript potrzebnych do naszych eksperymentów, a nie pełnego języka, który można zobaczyć używając Javascript profesjonalnie. Mimo to Javascript jest prawdziwym językiem, a nasz kod jest prawdziwym kodem. Nasze małe programy pokazują ważne cechy kodu, zachowując szybkość i małe rozmiary.
Pierwszy przykład kodu – Print
Tutaj jest kod, który wywołuje funkcję „print”. Kliknij przycisk Uruchom poniżej, a Twój komputer uruchomi ten kod, a wynik jego działania pojawi się po prawej stronie.
- Wykonanie każdej linii raz, od góry do dołu
- print jest funkcją, czasownikiem, który reprezentuje działanie, jakie podejmie komputer.
- Dane wewnątrz nawiasów są przekazywane do funkcji print (rzeczowniki)
-dane te są obiektem „czasownika”
-dane są nazywane argumentami funkcji - Wielokrotne wartości są oddzielone przecinkami
- Eksperymenty zmieniają kod i uruchamiają się po każdej zmianie zobacz nowe wyjście:
-Zmień liczbę
-Dodaj więcej liczb oddzielonych przecinkami wewnątrz print(…)
-Kopiuj pierwszą linię, i wklej ją dwa razy po ostatniej linii
Obiecuję, że wyjście będzie bardziej interesujące! - Wąska składnia nie wolna forma
-Dozwolona składnia jest super ścisła i wąska
-e.g. nie może opuścić prawego nawiasu )
-Odbicie wewnętrznej, mechanicznej natury komputera
-Nie daj się zniechęcić – „When in Rome….”
-Zwiedzamy świat komputera - Zauważ, że ten „print” nie jest normalną częścią Javascript, dodałem go dla CS101
Print And Strings
- Komentarz zaczyna się od // i rozciąga się do końca linii. Sposób na pisanie notatek o kodzie, ignorowanych przez komputer.
Dlaczego programiści mogą używać komentarzy? - Ciąg znaków to sekwencja znaków zapisanych w cudzysłowie, które mają być użyte jako dane w kodzie
-e.g. „hello” lub „123”
-Stwory współpracują z funkcją print, oprócz liczb
-Stwory w komputerze przechowują tekst, taki jak adresy URL lub tekst akapitów, itp. - Eksperymenty:
-Edycja tekstu wewnątrz łańcucha
-Dodanie większej ilości łańcuchów oddzielonych przecinkami
-Dodanie łańcucha „print” – podchwytliwe!
-Wewnątrz cudzysłowu są tylko dane - Kod = instrukcje, które są uruchamiane
- Dane = liczby lub łańcuchy; obsługiwane przez kod
Zauważ, że print jest rozpoznawany jako funkcja w kodzie vs. łańcuch „hello”, który jest tylko pasywnymi danymi (jak czasowniki i rzeczowniki).Komputer ignoruje komentarze, więc są one tylko sposobem na pisanie notatek do siebie o tym, co robi kod. Komentarze mogą być użyte do tymczasowego usunięcia linii kodu — „wykomentowanie” kodu przez umieszczenie znaku „//” po jego lewej stronie.
Myślenie o składni i błędach (dzisiejsze kluczowe przesłanie!)
- Syntaktyka — kod jest skonstruowany dla komputera
- Bardzo częsty błąd — wpisz kod, z niewielkim problemem w składni
- Profesjonalni programiści popełniają ten rodzaj „błędu” cały czas
- Na szczęście, bardzo łatwy do naprawienia … nie przejmuj się tym
- Nie jest to odzwierciedleniem jakiejś wady programisty
- Po prostu natura wpisywania pomysłów do mechanicznego języka komputerowego
- Początkujący mogą zostać wykolejeni przez krok składni, myśląc że robią jakiś wielki błąd
- Spróbuj zrobić kilka typowych błędów składni i napraw je
- Poprawianie tych małych błędów jest małym, normalnym krokiem
- Uwaga: Firefox daje najlepsze komunikaty o błędach
Syntaktyka Przedstawiona powyżej składnia musi być sztywno przestrzegana lub kod nie będzie działał: nazwa funkcji, nawiasy, każdy łańcuch ma cudzysłów otwierający i zamykający, przecinki oddzielające wartości dla wywołania funkcji.
Sztywność składni jest odzwierciedleniem ograniczeń komputerów, ponieważ ich język naturalny jest stały i mechaniczny. Jest to ważne do przyswojenia podczas pracy z komputerami i myślę, że to jest to, gdzie wielu ludzi się wykoleja, zaczynając pracę z komputerami. Piszesz coś, co każdy człowiek mógłby zrozumieć, ale komputer może zrozumieć kod tylko tam, gdzie pasuje on do mechanicznej składni komputera.
Trywialne, powierzchowne błędy składni są bardzo powszechne podczas pisania kodu. Najbardziej biegli programiści na ziemi popełniają tego rodzaju błędy przez cały czas i nic o tym nie myślą. Błędy składniowe nie odzwierciedlają jakiejś wadliwej strategii autora. Jest to po prostu naturalny krok w tłumaczeniu naszych myśli na bardziej mechaniczny język komputera. Jak zobaczymy poniżej, naprawa tych błędów jest bardzo szybka.
Ważne jest, aby nie dać się wykoleić przez te małe powierzchowne przypadki błędów. Aby pomóc ci nauczyć się wzorców, poniżej mamy wiele przykładów pokazujących typowe błędy, więc możesz zobaczyć, jak wyglądają komunikaty o błędach i zobaczyć, jak je naprawić. Dla każdego fragmentu kodu poniżej, jaki jest błąd? Czasami komunikat o błędzie wygenerowany przez komputer dokładnie wskazuje na problem, ale czasami komunikat o błędzie po prostu ujawnia, że błąd tak głęboko zdezorientował komputer, że nie jest on w stanie stworzyć dokładnego komunikatu o błędzie. Firefox obecnie produkuje najbardziej pomocne komunikaty o błędach i często powie ci konkretną linię z problemami.
Przykłady błędów składni
Te problemy ze składnią są szybkie do naprawienia.
.