JavaRush /Blog Java /Random-PL /Materiały dodatkowe do wykładów CS50: Tydzień 0 (Wykłady ...
Bender
Poziom 1
Маунтин-Вью

Materiały dodatkowe do wykładów CS50: Tydzień 0 (Wykłady 1 i 2)

Opublikowano w grupie Random-PL
Kto jeszcze nie oglądał wykładów Harvardu z podstaw programowania, zapraszam tutaj: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

Wstęp. Struktura kursu CS50

Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 1Przyjaciele! We wstępie przypomnimy (lub opowiemy komukolwiek) o budowie CS50. Kurs trwa 12 tygodni. Co tydzień odbywają się dwa wykłady, a także różnego rodzaju seminaria i wyjaśnienia. Artykuły tego typu opublikujemy, gdy tylko wykłady będą gotowe. Będzie zawierał krótki opis wykładów, notatki dotyczące „krótkich” i dodatkowe informacje, a także tłumaczenia zadań praktycznych. Wykłady tygodnia zerowego obejmowały następujące zagadnienia:
  • Binarny system liczbowy.
  • ASCII
  • Algorytmy i myślenie algorytmiczne
  • Kompilatory
  • Język podstaw
  • Wyrażenia logiczne
  • Warunki
  • Cykle
  • Zmienne
  • Funkcje
  • Tablice
  • Strumienie
  • Wydarzenia
Cele tygodnia 0:
  • Zrozumienie, w jaki sposób informacje mogą być reprezentowane cyfrowo.
  • Poznaj podstawowe konstrukcje i koncepcje oprogramowania.
  • Stwórz własną animację, grę lub interaktywną aktywność za pomocą Scratcha.
  • Zaimponuj swoim znajomym =).

CS50 Tydzień 0 (wykład 1-2): notatki

Algorytmy

Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 2Mamy nadzieję, że oglądałeś już wykłady i zrozumiałeś, że algorytm rozbija rozwiązanie problemów (różne problemy, matematyczne czy „jak dojechać do stacji metra N”) na etapy. Co więcej, każdy krok musi zostać ukończony w skończonym czasie, a same kroki muszą być określone. Również następny krok zależy od poprzedniego. Więcej o algorytmach możesz przeczytać na przykład tutaj . Jeśli znasz angielski, oto wspaniała animacja TED autorstwa Davida Malana: https://youtu.be/6hfOvs8pY1k Chociaż ogólnie informacje zawarte w filmie powtarzają się w wykładzie =).

Binarny system liczbowy

Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 3Mamy 10 palców, a system jest dziesiętny. Oznacza to, że możemy przedstawić dowolną liczbę, niezależnie od jej wielkości, używając liczb 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. W zależności od tego, gdzie liczba znajduje się w liczbie, może to oznaczać różne rzeczy: jeśli ta cyfra jest ostatnia, to znajduje się na miejscu jedności, przedostatnia na miejscu dziesiątek, jeszcze dalej na lewo na miejscu setek i tak dalej. Zasadniczo dowolną liczbę można zapisać jako sumę cyfr, z których każda jest mnożona przez dziesięć do określonej potęgi. W przypadku jednostek - zero. Na przykład 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . Liczba, przez którą mnożone są cyfry, nazywana jest podstawą systemu liczbowego. W systemie dziesiętnym podstawą jest logicznie dziesięć. Komputer nie ma palców, ale są dwa stany: warunkowo „prąd płynie” i „prąd nie płynie”, zero i jeden. W związku z tym wszystkie liczby (i w ogóle informacje) w pamięci komputera składają się tylko z dwóch cyfr - 0 i 1. Ich położenie, podobnie jak w przypadku systemu liczb dziesiętnych, wskazuje cyfrę. Dopiero teraz liczbę można rozłożyć na sumę cyfr pomnożoną nie przez potęgę dziesięciu, ale przez potęgę dwójki. 0 w systemie binarnym = 0 1 w systemie binarnym = 1 2 w systemie binarnym = 10 7 10 =111 2 Naucz się konwertować z systemu binarnego na dziesiętny. Prawdopodobnie już rozumiesz, jak to się robi - po prostu bierzemy cyfrę liczby zaczynając od prawej, mnożymy ją przez podstawę do potęgi odpowiadającej jej cyfrze i dodajemy wszystko z każdą cyfrą. Przykład: Znajdźmy dziesiętny odpowiednik liczby binarnej 101101 2 Najbardziej na prawo = 1*2 0 Następne zero = 0*2 1 Trzecie od prawej = 1*2 2 Czwarte = 1*2 3 .. i tak dalej 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 Wyobraź sobie osiem żarówek ustawionych w rzędzie. Każdy z nich ma swój własny przełącznik. Każda z żarówek jest wyładowaniem. Co sobie możesz wyobrazić, pamiętaj o pierwszym wykładzie (tam jest takie urządzenie) lub tutaj jest dla Ciebie widget: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Play razem z nim ćwicz „wyczuwanie” tego systemu binarnego. Konwersja z systemu dziesiętnego na binarny. Tutaj również wszystko jest bardzo proste, jeśli rozumiesz istotę. Tutaj mamy liczbę 57 10 . Aby przekonwertować go na system binarny, musisz określić, jaka maksymalna potęga dwójki nie przekracza tej liczby. 2 6 = 64. To zdecydowanie za dużo. Ale 2 5 = 32. Teraz określiliśmy najbardziej znaczącą cyfrę. 32 10= 100000 2 . Teraz szukamy kolejnej cyfry. 57-32 = 25. Teraz dla 25 szukamy potęgi dwójki, która nie przekracza 25. 2 4 = 16. Oznacza to, że nasza następna cyfra również jest równa 1. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, to jest mniej niż 9. Oznacza to, że następna cyfra również będzie równa jedynce. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, czyli pozostała tylko jedna potęga 2 0 . Zatem 57 10 = 111001 2 . Jeśli nagle coś pozostanie niejasne, możesz przeczytać więcej w Wikibooku, a jeśli jesteś dobry w języku angielskim, oto mały dodatek do wykładu.

ASCII

Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 4Komputer rozumie tylko zera i jedynki, a jego pamięć można przedstawić jako bardzo długi ciąg żarówek z przełącznikami, jak widzieliśmy powyżej. Wiemy już, jak przedstawiać liczby w komputerze. A co z resztą informacji? Listy, zdjęcia? Załóżmy, że alfabet angielski ma 26 liter. Oznacza to, że teoretycznie możemy reprezentować litery z liczbami od 0 do 25, tylko w systemie binarnym. Powstaje pytanie: jak możemy zrozumieć, czy mamy małą, czy wielką literę? A co ze znakami interpunkcyjnymi? Niewidzialne znaki, takie jak spacje? Krótko mówiąc, potrzebujemy systemu kodowania, Cap! W latach sześćdziesiątych istniało wiele różnych schematów kodowania znaków. Brak jednolitości okazał się problemem i w 1963 roku Amerykański Instytut Standardów ANSI opracował i wprowadził schemat kodowania ASCII (American Standard Code for Information Interchange). Każdy znak ASCII składa się z siedmiu bitów, czyli siedmiu bitów, z których każdy może przyjmować wartość 0 lub 1. 7 bitów może przechowywać liczby od 0 do 127 w formacie binarnym, co oznacza, że ​​mamy 128 liczb do zakodowania znaków. Wydawałoby się, że to wystarczy, aby zakodować pisaną mowę angielską? Policzmy: az - 26 opcji AZ - 26 więcej 0-9 - 10 ,;:~& i inne znaki interpunkcyjne - 32 I jeszcze jedna spacja. Razem - 95 znaków. Pozostałe 33 wolne opcje są używane dla tak zwanych znaków kontrolnych, takich jak przesunięcie wiersza lub powrót karetki: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Ważne jest, aby rozróżnić znaki 0-9 i wartości numeryczne 0-9. Znaki 0-9 są reprezentowane przez wartości ASCII 48-57. Warto zauważyć, że cztery skrajne na prawo bity tych wartości ASCII to binarne reprezentacje wartości numerycznych 0-9. Upraszcza to nieco sposób konwersji wartości ASCII na ich rzeczywiste wartości liczbowe. Zaczniemy programować?

Zadrapanie

Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 5A więc Scratch. Na wykładzie powiedziano Ci o tym wizualnym języku programowania i jego podstawowych poleceniach. Aby samodzielnie wypróbować Scratch, kliknij link i kliknij „Dołącz”. Po zarejestrowaniu możesz rozpocząć programowanie online. Tak, nawiasem mówiąc, dzisiaj Scratch jest częściowo zrusyfikowany. Pomoc jest jednak nadal dostępna w języku angielskim. Jeśli chcesz, możesz zagrać, a także przejrzeć kod projektów studenckich, które zostały zaprezentowane na wykładzie. Oto połów ciasta Pikachu . Lub projekt z sortowaniem odpadów do różnych pojemników: https://scratch.mit.edu/projects/71161586/ David i firma proszą Cię, abyś się nie martwił, jeśli uważasz, że nie dasz rady wykonać tak skomplikowanych projektów: ten poziom wymaga już pewnych umiejętności .

Ćwiczenia

  1. Aby lepiej zrozumieć procesy zachodzące w Scratchu, możesz pobrać kod źródłowy kilku projektów stąd . Pobaw się i zobacz. Nauka cudzego kodu jest bardzo przydatna. Jest to jeden z najlepszych sposobów, aby dowiedzieć się, co kryje się w programach, do których jeszcze nie dojrzałeś. Gdy zaczniesz rozumieć, jak działają te aplikacje, możesz bezpiecznie przejść dalej.

  2. Teraz czas zrobić coś samemu. Wyzwanie polega na tym, aby dobrze się bawić, jednocześnie realizując od podstaw mały projekt. Może to być animacja, gra, interaktywna akcja.

Wymagania projektu:
  • Program musi zawierać co najmniej dwa duszki (postacie, obrazki), a jeden z nich na pewno nie może być kotem =).
  • Muszą istnieć co najmniej trzy skrypty (akcje).
  • Musi zostać wykonany co najmniej jeden warunek, jedna pętla i jedna zmienna.
  • W programie musi znaleźć się przynajmniej jeden dźwięk.
Oznacza to, że w istocie twój projekt będzie bardziej złożony niż te napisane na wykładzie, ale prostszy niż zademonstrowane zabawki dotyczące Pikachu i zbierania śmieci. Zatem Twój projekt prawdopodobnie będzie korzystał z kilkudziesięciu puzzli składających się na kod Scratcha. Jeśli coś nie wyjdzie, być może będziesz musiał zmienić swoje podejście do rozwiązania problemu. Najważniejsze to iść bez strachu! Zapraszamy do zadawania pytań i dzielenia się swoimi projektami w komentarzach.

Scratch: krótki przewodnik po działaniu

Duszek jest centralnym obiektem projektu. Każda postać – kot, samolot, piłka – jest duszkiem. Jeśli dodałeś dwa różne koty, będą to dwa różne duszki. Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 6Każdy duszek posiada skrypty opisujące jego zachowanie. To są bloki działania. Kostiumy to wygląd przedmiotów. Same duszki to w zasadzie tylko rysunki. Każdy duszek może mieć wiele kostiumów. Aby stworzyć duszka, musisz wybrać jego oryginalny kostium z biblioteki Scratch, narysować własny we wbudowanym edytorze, przesłać dowolny obraz, a nawet zrobić zdjęcie kamerą internetową i przesłać je. Wszystkie duszki ustawiane są na tzw. scenie. Scena jest w zasadzie naszym płótnem, scenerią programu. Możesz także dołączyć dźwięki z biblioteki do duszka lub sceny, możesz je także załadować lub nagrać samodzielnie za pomocą mikrofonu. Aby rozpocząć wykonywanie programu należy kliknąć na zieloną flagę znajdującą się w prawym górnym rogu okna sceny. Ale zanim to zrobisz, musisz umieścić w programie następujący blok: Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 7I dołączyć do niego kilka bloków, tak jak do części projektanta. Na przykład: Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 8W tym przypadku, kiedy klikniesz na flagę, duszek, do którego przypisane są akcje, zrobi 50 kroków i miauczy. Mamy mnóstwo bloków. Podzielono je na trzy zakładki: scenariusze, kostiumy i dźwięki. Stwórzmy prosty program z warunkiem. Jeśli zostanie spełnione, kot będzie miauczeć, jeśli nie zostanie spełnione, będzie milczał. Operatorzy są oznaczeni na zielono. Te, które sprawdzają, czy warunek jest prawdziwy, czy fałszywy, mają ostre rogi po bokach. Struktury i pętle do testowania stanu są pokazane na pomarańczowo. Posiadają specjalne otwory, w których można umieścić inne klocki.

Cykle:

Powtórz nieskończoną liczbę razy: Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 9Powtórz coś określoną liczbę razy: Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 10Powtórz akcję, jeśli warunek jest spełniony: Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 11Możesz tworzyć zmienne w bloku danych. W poniższym przykładzie utworzyliśmy zmienną x i od razu pojawiły się działania, które można z nią wykonać. Można ustawić zakres zmiennych: dla wszystkich duszków lub dla jednego. Materiały dodatkowe do wykładów CS50: Tydzień 0 (wykłady 1 i 2) - 12Zielona flaga to nie jedyna akcja. Również w sekcji Wydarzenia znajdziesz szereg innych warunków kontrolnych. Na przykład możesz wybrać, co ma się wydarzyć po kliknięciu myszą na przycisk lub na samego duszka. Jeśli potrzebujesz dodatkowych informacji, znajdziesz je na przykład tutaj .

Co jeszcze

Jeśli Twój dostęp do Internetu pozostawia wiele do życzenia, zalecamy pobranie edytora Scratch offline pod adresem https://scratch.mit.edu/scratch2download/ . W takim razie nie zapomnij przesłać swojego projektu na adres http://scratch.mit.edu/ za pomocą opcji Plik > Prześlij z komputera.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION