Co powinienem zrobić z grupą 16-17-latków, aby zainteresować się informatyką?

40

Za kilka tygodni będę zaangażowany w pewien „dzień otwarty” na moim uniwersytecie. W ramach tego czasu ja (wraz ze współpracownikiem) dostaję całą grupę uczniów szkół średnich na dwie godziny, a także laboratorium komputerowe wystarczająco duże, aby pomieścić ich wszystkich, i muszę zrobić coś w rodzaju aktywność lub zestaw działań z nimi, aby zachęcić ich do robienia informatyki (najlepiej na moim uniwersytecie, ale ogólnie także). Brakuje mi absolutnej straty co do tego, co tu robić, i z zadowoleniem przyjmuję wszelkie sugestie.

Koz Ross
źródło
Nie jestem nauczycielem ani ekspertem, jednak sugeruję, abyś nauczył ich, jak zaprogramować małą grę logiczną (wybierz taką, której uogólnienie jest NP-zupełne) obejmującą takie aspekty jak: generowanie poziomów, sprawdzanie rozwiązań, automatyczne wyszukiwanie rozwiązań: - )
Vor
1
Podobały mi się świąteczne wykłady Royal Institution 2008 . Możesz spróbować podobnych działań / pokazów.
melhosseiny

Odpowiedzi:

21
  • Możesz kazać im rysować za pomocą gramatyki bezkontekstowej. sztuka bez kontekstu Działa to również dla osób, które nigdy wcześniej nie programowały i skaluje się do doświadczonych programistów. Podstawowy język jest wystarczająco łatwy do wyjaśnienia za około pół godziny.
  • Nauczenie się czegoś o geometrii za pomocą grafiki Turtle również powinno być przyjemne. Logo zostało zaprojektowane dla dzieci, więc uczniowie liceum nie powinni mieć problemu. Na YouTube są fajne filmy o dzieciach korzystających z Logo
  • Jeśli uda ci się zdobyć roboty MindStorms, ich programowanie to świetna zabawa.
  • Istnieje wiele gier programistycznych, w których programujesz roboty do walki ze sobą lub programy asemblacyjne, które próbują się wzajemnie nadpisywać na maszynie wirtualnej. Wikipedia na ten temat , powiązane pytanie dotyczące przepełnienia stosu
  • Możesz także pomyśleć o jakimś projekcie sprzętowym. Sprawienie, by mikrokontroler mrugał diodą LED, na przykład w zależności od liczby nieprzeczytanych wiadomości e-mail w skrzynce odbiorczej.
  • Niech implementują różne algorytmy generowania labiryntu , spróbuj wymyślić kryteria, które czynią labirynty „trudnymi dla ludzi”. Jeśli czas pozwoli, rozszerz algorytmy, by obejmowały nie tylko korytarze, ale także pokoje.
  • Kup kilka Arduinos i diody LED. Pozwól im zaprogramować światła migające.
adrianN
źródło
1
Możesz dodać linki do samouczków programowania komputerowego Khan Academy do listy: To naprawdę fajny / interaktywny dodatek do powyższego. Na przykład: khanacademy.org/cs/intro-to-animation/830742281
PhD
+1 również dla CFG - kolejną wersją tego samego pojęcia, która byłaby dobra do wypróbowania, byłaby próba rysowania krzaków za pomocą Iterowanego Systemu Funkcyjnego; niech zaczną od prostokąta, ustaw kilka kolejnych prostokątów, a następnie powtórz „zawartość” pierwszego prostokąta (łącznie ze wszystkimi podprostokątami) w każdym z podprostokątów. Możesz mieć skonfigurowaną wersję cyfrową dla celów porównawczych.
Steven Stadnicki
13

Sprawdź Computer Science Unplugged . Z ich strony:

CS Unplugged to zbiór bezpłatnych zajęć edukacyjnych, które uczą informatyki poprzez angażowanie gier i łamigłówek, które wykorzystują karty, sznurki, kredki i wiele biegania.

Ćwiczenia wprowadzają uczniów w podstawowe pojęcia, takie jak liczby binarne , algorytmy i kompresja danych , oddzielone od rozproszeń i szczegółów technicznych, które zwykle widzimy na komputerach.

CS Unplugged jest odpowiedni dla osób w każdym wieku , od szkoły podstawowej po seniorów oraz z wielu krajów i środowisk. Unplugged jest używany na całym świecie od ponad piętnastu lat, w klasach, centrach nauki, domach, a nawet na imprezach wakacyjnych w parku!

Pål GD
źródło
1
To miła sugestia, ale podejrzewam, że OP chce czegoś, co faktycznie korzysta z laboratorium komputerowego, które zostało odłożone na bok.
András Salamon
Ważny punkt Powinien istnieć projekt robocode dla osób, które nie znają programowania.
Pål GD
11

Większość studentów informatyki, które znam, uważa naukę programowania za najbardziej bolesną i demoralizującą część ich edukacji. Dlatego trzymałbym się z dala od wszystkiego , co ma związek z samym programowaniem. Jak już zauważył Scphantm , prawdopodobnie nie będziesz miał na to czasu.

To, czego szukasz, to dwugodzinne ćwiczenie, które spełnia dwa cele:

  • To wystarczająco ekscytujące, aby zainteresować absolwentów szkół średnich przez dwie godziny,
  • To pozwoli im rzucić okiem na to, czym jest informatyka i mam nadzieję, że zainteresuje ich to.

Pierwszy cel jest dość niezależny od tego, co faktycznie pokażesz, i ma o wiele więcej wspólnego z byciem dobrym nauczycielem / prezenterem. Dobra praktyka dydaktyczna, tj. Utrzymywanie odbiorców na palcach, pozwalanie im na próbowanie małych rzeczy w grupach, zapewnianie im oddechu co 15 minut i tak dalej.

Drugi cel jest nieco trudny, a moim zdaniem najlepiej tutaj jest rozwiązać problem, który można wyjaśnić na podstawie ich obecnej wiedzy, pokazać, jak można opisać rozwiązanie algorytmicznie, a następnie pokazać, w jaki sposób można je przeanalizować i ulepszone.

Dobrym przykładem jest problem najkrótszej ścieżki na wykresach, zwany także systemem nawigacji GPS. Nie wymaga wyjaśnienia. Możesz dać im małą mapę z narysowanymi wagami / długością krawędzi i wiązką kredek, aby faktycznie wykonać algorytm podczas jego opisywania.

Następnie możesz rozpocząć dyskusję na temat znalezienia najkrótszej ścieżki itd. Pozwól im spróbować sformułować ją jako algorytm itp. Następnie opisz algorytm Dijkstry , pozwalając im pokolorować węzły jako odwiedzone , wstępne i nie odwiedzone zestawy. Bam Masz algorytm!

Jeśli nadal masz czas, możesz wyjaśnić niektóre szczegóły, tj. Rzeczy, które bierzemy za pewnik, takie jak znalezienie minimum w zbiorze niepewnych węzłów. Jeśli dojdziesz tak daleko, możesz pokazać różnicę między wyszukiwaniem liniowym a stertą, a jako bonus możesz wprowadzić matematyczną adnotację.O

Powiedziawszy to wszystko, to jest tak daleko, jak bym poszedł. Trzymaj się z dala od całej dyskusji vs. z dziesięciostopowym kijem. Chociaż większość informatyków uważa to za fascynujące, większość licealistów nie. Znam to z doświadczenia. Moim zdaniem kluczem jest zacząć od problemu, który mogą zrozumieć lub odnieść się do niego, i zabrać go stamtąd bez potrzeby częstego przedstawiania.P.N.P.

Pedro
źródło
9

Jeśli masz tylko 2 godziny, nie będziesz musiał dużo kodować. Uczenie się składni będzie trudne w tym czasie, ale zamiast tego można zrobić wiele rzeczy.

Jako sugestię spróbuj nauczyć ich kontroli przepływu i znaczenia bycia konkretnym:

  1. Podziel klasę na 2 „roboty” i pozostałych „programistów”.
  2. Podejmij odpowiednie wyzwanie, które wymaga prostej logiki, zapętlenia itp. - poniżej znajduje się przykład.
  3. Niech „programiści” wypiszą listę instrukcji przekazywanych „robotom”
  4. Niech „roboty” wykonają instrukcje, ale niech „roboty” wiedzą, że jeśli instrukcje są mylące, mogą się zatrzymać, błędnie lub w inny sposób działać, dopóki „programista” nie zatrzyma się i nie zdebuguje ich. Gwarantowane, jeśli dana będzie szansa na grę, licealista to zrobi.

Jako przykładowe zadanie, ustaw kilka pojemników z różnokolorowymi kulkami, z pasującymi kolorowymi paskami papieru w innym miejscu i wystarczającą ilością małych wiader dla każdej pary robota / programatora. Zadanie polega na tym, aby robot napełniał wiadro kulkami, ale aby to zrobić, mogą brać tylko piłki pasujące do określonego paska papieru. Jeśli w wannie nie ma już kulek tego koloru, wówczas robot musi zwrócić pasek papieru i zebrać nowy.

To zadanie wymaga warunkowego rozgałęziania, zapętlania, obsługi błędów i myślenia progresywnego. Wszystkie rzeczy, w których programista musi być dobry, bez względu na język lub aktywność.

Uruchom coś takiego dwa razy, aby „roboty” i „programiści” mogli zamienić. W międzyczasie daj krótką lekcję na temat powyższych wzorców myślenia, a oni będą działać znacznie lepiej w drugim, zakończą się krótką rozmową na temat wielkich wydarzeń w programowaniu - pokonania nazistów, udania się na księżyc, do internetu i będziesz mieć pokój potencjalnych i zaangażowanych programistów!


źródło
1
Dlaczego nie mogę dać tego +10? To świetny pomysł.
Xynariz,
@Xynariz dzięki! Zrobiłem to kilka razy z naprawdę małymi grupami, i na ogół kończy się to równą zabawą i frustracją - jednak frustracja wynika z niewłaściwie działających „robotów”, a nie komputerów, których dzieci jeszcze nie rozumieją.
Czasami ludzie nie rozumieją, że komputery są bardzo, bardzo dobre w robieniu dokładnie tego, co im powiesz ... nic więcej, nic mniej. Jest nawet odcinek CyberChase na ten temat ... (ukrywa się)
Xynariz,
7

Przeszkoliłem wielu programistów. Jeśli masz tylko 2 godziny, nie zawracaj sobie głowy nauczeniem ich kodowania. Laboratorium komputerowe też nie jest potrzebne. Aby przejść od zera do świata cześć, stracisz połowę klasy i spędzisz 45 godzin z 2 godzin na rozwiązywaniu problemów i nic nie zrobisz.

Możesz mieć więcej szczęścia, pokazując im, jak to jest myśleć jak programista. Daj każdemu z nich kartkę papieru i długopis i powiedz im, aby napisali program w ich własnym języku, w jaki sposób podnieść telefon z biurka i wykonać połączenie telefoniczne. Przejdź przez ich odpowiedzi. Jeśli posiadasz kod jakiejś soli, możesz przejrzeć jego programy i powiedzieć im, jak je ulepszyć i jak dostosować się do szczegółów, które musisz mieć. Następnie poproś ich, aby napisali program własnymi słowami, aby zrobić coś przyziemnego. załóż spodnie, umyj zęby, otwórz drzwi, cokolwiek. Zrób to samo z tym programem.

Daj im posmakować, jak to jest MYŚLIĆ jak programista. Z pewnością czerpią z tego więcej niż Ty próbujesz nauczyć je Pythona w ciągu 2 godzin.

scphantm
źródło
6

Możesz spróbować Alice . To IDE i API dla animacji 3D. Ma wszelkiego rodzaju wbudowane obiekty (króliki, kosmici, drzewa, budynki, ...), które możesz umieścić w początkowej scenie, za pomocą metod bardzo wysokiego poziomu: jak walk(north)(animuje ręce i nogi podczas ruchu postaci) i say("my name is Winky")co może spowodować, że z ust bohaterów wyjdzie bańka z kreskówek.

Umożliwia zaczepianie zdarzeń na klawiaturze i myszy, dzięki czemu można wykonywać interaktywne czynności.

Podstawowym językiem programowania jest Java, ale IDE daje graficzny wariant, w którym przeciągasz i upuszczasz części wyrażeń do okna edytora. (To nie pozwoli ci utworzyć błędu składniowego).

Myślę, że można to wszystko wstępnie ustawić w scenie, aby ktoś bez doświadczenia w programowaniu mógł zrobić coś interesującego w ciągu zaledwie kilku godzin.

Wędrująca logika
źródło
1
Wahałbym się przed zastosowaniem tego podejścia; może to działać dla młodszych uczniów, ale uczniowie szkół średnich częściej postrzegają to jako dziecinne. To powiedziawszy, jest to szybki sposób na ukończenie czegoś w terminie 2 godzin ...
Izkata
6

Kodowanie, nawet w języku zabawkowym lub graficznym, wydaje się przesadzone w ciągu godziny. Do diabła, nie jestem pewien, czy mógłbym ponownie zabrać Alice i zrobić coś wartościowego w ciągu 2 godzin. Może weekend, ale nie 2 godziny.

Sugeruję sprowadzenie CS do najistotniejszych rzeczy: rozwiązywania problemów i analiz. Podziel grupę na zespoły. Poświęć 10 minut na opisanie kilku problemów obliczeniowych wysokiego poziomu. Powinny to być łatwe problemy, które można łatwo wytłumaczyć osobom z małym doświadczeniem matematycznym lub CS. Przykłady obejmują:

  1. Sortowanie list
  2. Znajdowanie drzew o minimalnej rozpiętości
  3. Obliczanie (przybliżone) pierwiastków liczb całkowitych
  4. itp.

Poświęć kolejne 10 minut na dalszą dyskusję i wyjaśnienie zadania. Każdej grupie przypisany jest jeden problem, w związku z którym mają przeprowadzić burzę mózgów. Zespół będzie miał pół godziny na wspólne wypracowanie rozwiązania lub rozwiązania przypisanego im problemu. Następnie poświęć godzinę na omówienie rozwiązań w całej grupie i pozwól dzieciom dowiedzieć się, czy działają, czy nie, czy istnieje szybszy / lepszy sposób rozwiązania problemu itp.

Jeśli dzieci nie znajdą właściwego / optymalnego rozwiązania, nie ma problemu. Nie udzielaj jednak odpowiedzi - jest to absolutnie niezbędne. Powodem, dla którego dzieci nie robią już STEM, jest to, że nauczyciele sprawiają, że dzieci mają wrażenie, że wszystko już się udało. Potrzeba bardzo dojrzałych doradców, aby umożliwić dzieciom samodzielne rozwiązanie tych problemów i odniesienie sukcesu lub porażki. Prawidłowa odpowiedź nie jest istotna. Chodzi o to, aby dać dzieciom ciekawe problemy i pokazać im, na czym polega informatyka: rozwiązywanie problemów i ocena rozwiązań pod kątem poprawności i wydajności. Pozwalając dzieciom wymyślić własne odpowiedzi, da im poczucie własności i pomoże im poczuć zaangażowanie.

Oczywiście, jeśli dzieci zapytają, czy otrzymały prawidłową / dobrą / najlepiej znaną odpowiedź, powiedz im prawdę. Ale nie rozdawaj odpowiedzi, chyba że pojawią się one w wyniku dyskusji uczniów na temat rozwiązań. Podsumowując:

  1. Daj dzieciom łatwe do zrozumienia, ale bogate problemy do zbadania.
  2. Pozwól dzieciom wymyślić własne rozwiązania, zapewniając tylko wystarczającą pomoc, aby upewnić się, że rozumieją problem.
  3. Omów poprawność / wydajność w grupie, dając grupom szansę na wyjaśnienie swoich rozwiązań. Jako doradcy możesz swobodnie dyskutować o poprawności / skuteczności tak daleko, jak ci się wydaje.
  4. Pod żadnym pozorem nie należy przedstawiać własnych lub dobrze znanych rozwiązań problemu, chyba że są one w zasadzie identyczne z przedstawionymi przez studentów. Nie wydaje się, że CS to dziedzina, w której ludzie już wymyślili wszystkie odpowiedzi.
  5. Jeśli to możliwe, pozwól dzieciom czuć, że czegoś się nauczyły, ale żeby nadal miały pytania: czy znalazły najlepsze odpowiedzi? Czy inne pytania mogą rozwiązać w podobny sposób? Możesz nawet podać im jakiś nierozstrzygalny problem w łatwym do strawienia formacie, aby dać im coś do pracy.
Patrick87
źródło
Możesz nawet rozważyć stawianie drużyn przeciwko sobie w przyjaznych rozgrywkach. Daj parom zespołów ten sam problem i przekonaj się, kto wymyśli lepsze rozwiązanie.
Patrick87
1
Tego rodzaju konkursy zdecydowanie zniechęcają nieśmiałych ludzi i wzmacniają ego tych, którzy już znają te rzeczy. To tylko wzmacnia wizerunek CS jako „tylko dla nerdów”.
adrianN
6

Mam 17 lat i zacząłem programować, kiedy skończyłem 16 lat. Opowiem swoją historię i przedstawię kilka sugestii: moje zainteresowanie programowaniem zaczęło się, gdy oglądałem faceta informatyki, którego zadzwoniłem do moich rejestrów i wiersza poleceń ( mimo że chciał 500 $, aby naprawić moje BSOD, a ja nie zapłaciłem, naprawiłem je samodzielnie). Poszukałem więc „języka wiersza poleceń” i dowiedziałem się, że istnieje coś takiego jak „kod źródłowy” i to pozwoliło ci programować . W tamtym czasie nie miałem pojęcia, czym jest c ++, nawet nie sądzę, żebym kiedykolwiek o nim słyszał. Więc poszedłem na cpp.com (bardzo złe samouczki, nauczysz się złych i przestarzałych praktyk) i zacząłem uczyć się podstaw. Mój umysł oszalał i faktycznie dowiedziałem się, że wirus, który został zainfekowany powodując moje problemy, został napisany w c ++, co mnie dodatkowo zainteresowało. Później zacząłem czytać, uczyć się montażu i innych języków wysokiego poziomu. Najpierw chciałem dowiedzieć się o złośliwym oprogramowaniu i programowaniu graficznym i tak zrobiłem.

  1. Może to zabrzmieć źle, ale wiele osób w moim wieku interesuje się destrukcyjną stroną programowania. Pierwsze pytanie, które otrzymuję od moich przyjaciół, gdy mówię im, że jestem całkiem dobry z c ++, brzmi: „Czy możesz robić wirusy, zmieniać stopnie lub hakować gry” Nie jestem do końca na tym poziomie ... Ostatnio studiowałem zastrzyki bibliotek dll, więc dostaję tam. Być może możesz wymyślić coś podobnego do złośliwego oprogramowania, które nie jest niebezpieczne ani nielegalne, ale wciąż interesujące. (Może uzyskaj dane logowania ucznia ze szkolnego serwera) Możesz porozmawiać z nimi na temat działania wirusów i złośliwego oprogramowania.
  2. Opracuj małą grę podobną do pokemona i opisz, jak działają gry i silniki gier. Wiele osób prawdopodobnie zdziwiłoby się, wiedząc, że w wielu takich grach 2D postać ta się nie porusza, tło jest, a postać korzysta z animacji, mówiąc o liczbach losowych itp. Wymyśl też niektóre demonstracje 3D.
  3. Staraj się unikać wyjaśniania, co robi kod , spróbuj powiedzieć im, co programrobi to samo, nie mówiąc zbyt dużo o kodzie. Z mojego doświadczenia wynika, że ​​jest to łatwy sposób na zwrócenie uwagi ludzi, szczególnie jeśli nie rozumieją podstaw języka. W rzeczywistości starałbym się nie zamieszczać kodu źródłowego, ponieważ może to zniechęcać kogoś, kto spojrzy na 500 wierszy kodu i nie zrozumie żadnego z nich. Również jeśli masz kogoś, kogo demonstrujesz, jest podobny do mnie, prawdopodobnie zadaje ciąg pytań, ponieważ ma ciekawy umysł. tj .: mówisz o liczbach losowych, pytają, po co są liczby losowe i skąd pochodzą ... niż musisz im wyjaśnić o szumie elektronowym i tym, jak jest losowy i tak dalej, prawdopodobnie znajdziesz się w sytuacji, w której jesteś tak jak „nie wiem”.
  4. Lego Mindstorms to świetny pomysł. Jeśli nie chcesz wybierać długiej drogi i używać głównego języka, jest on wyposażony w język programowania w stylu blokowym, którego możesz używać. Zrozumiałem język w około 30-40 minut, wszystko się układa, gdy się nad tym zastanowić

  5. Możesz szybko opracować aplikację i pochwalić się nią, porozmawiać z nimi na temat $$ $$, które mogą pochodzić z tworzenia aplikacji.

moonbeamer2234
źródło
4

niektóre z moich ulubionych

  • generowanie fraktali . mają silny związek z głęboką matematyką i grafiką komputerową, a także naturalnie nadają się do równoległości. ilustruje złożoność i wschodzące zachowania , szczególnie gdy zbliżasz się do dowolnych skal, i ma silne powiązania z nauką i zjawiskami naturalnymi. napisanie równoległego fraktalnego kodu, który działa na wielu komputerach, nie jest trudne. jeden eksperyment polega na wyświetleniu przez każdą maszynę losowych linii, które przetwarzał (np. maszynach „podrzędnych”, które przetwarzają linie z kolejki), a następnie na maszynie centralnej wyświetlane są połączone wyniki.

  • Lego robotyka (lub inne zestawy robotyki, np. znaczek ). burze umysłów to zabawka, ale może być bardzo zaawansowana, służąc jako namacalna demonstracja abstrakcyjnych koncepcji. oprogramowanie, które można na nich uruchomić, może być bardzo złożone i może mieć skomplikowane pętle / algorytmy sens-myśl-działaj. istnieje wiele dobrych ksiąg konstrukcji. imponujące są także solwery kostkowe Rubiks , które niedawno pobiły rekord świata.

  • raspberry pi to nowa niedroga platforma, która cieszy się dużym zainteresowaniem i wykorzystaniem. może być użyty do zademonstrowania programowania linuksowego, robotyki itp. i ma wyjście HD itp. patrz np. superkomputer raspberry pi Southhampton z szafką Lego.

  • Logo, jak wspomniano w drugiej odpowiedzi, to stary klasyk. Innym nowym aspektem jest programowanie gier, np. w nowym, popularnym języku Scratch (wymyślonym w MIT ). może uczyć wielu naturalnych / zaawansowanych tematów CS.

vzn
źródło
2

oto inny kąt. istnieje tak wiele interesujących otwartych problemów lub pojawiających się technologii informatycznych na pograniczu naukowego zrozumienia, które mogą wywołać ciekawość / cud, tj. eksplorację pobliskiej terra incognita . jeśli poruszysz problemy, a następnie poprzesz klasę w dyskusji na temat konsekwencji rozwiązań, które mogą wzbudzić znaczące zainteresowanie / inspirację. [skoro wspominasz o dostępności pracowni komputerowej, możliwe byłoby również twórcze wymyślenie praktycznych ćwiczeń komputerowych związanych z tymi obszarami.]

może to nabrać uczucia science fiction, ale w CS jak żadne inne pole, zamienia to, co kiedyś było scifi w rzeczywistość w krótkim czasie. mogą być również kontrowersyjne i aktualne, łącząc się z dzisiejszymi nagłówkami, a uczniowie mogą zacząć rozumieć, jak wszechobecna CS jest w naszym świecie / społeczeństwie i jak znacząca jest, jeśli jest szeroko interpretowana. oto kilka dużych:

  • Problem składania DNA do białka . czy istnieje algorytm do jego dokładnego obliczenia?

  • sztuczna inteligencja w ogóle. Czy to możliwe? czy wiąże się to z etyką?

  • robotyka ma różne kluczowe pojawiające się obszary. np. autonomiczne samochody / jazda . jest na najbliższym horyzoncie. jak wpłynie to na społeczeństwo? wideo z konkursu DARPA sprzed niedawna robi wrażenie. Pisanie Kurzweila ma wiele rzeczy do zrobienia. drony są skomplikowanym tematem rzadko dyskutowanym i będą coraz częściej stosowane w kraju. to mars Rovers są nadzwyczajne i technologia są niesamowite historie za nim, takie jak, w jaki sposób systemy musiały być debugowany zdalnie interplanetarily gdy nie powiodła się.

  • Informatyczne systemy nadzoru w celu wykrywania przestępstw / terroryzmu są ostatnio bardzo popularne.

  • bozon Higgsa nie zostałby odkryty, a superkolider nie mógłby w ogóle funkcjonować bez dużych systemów opartych na CS do analizowania „dużych danych”.

  • Prawo Moore'a . jak daleko to będzie kontynuowane? jak bardzo wpłynęło to już na społeczeństwo / ludzkość?

  • Komputery kwantowe . czy są możliwe? czy będą szybsi? czy będą taniej czy zawsze niezdrowe? Dwave to kolorowe studium przypadku, jest świetny artykuł SciAm autorstwa Aaronsona itp

  • Algorytm Google PageRank jest jednym z wielu miliardowych cudów współczesnej informatyki. czy zostanie przedłużony? jak działa filtrowanie spamu? firma wydaje się zmierzać w kierunku analizy obrazów itp.

  • handel algorytmiczny / wysoka częstotliwość przenosi teraz ogromne ilości wolumenu / wartości handlowej. czy to dobrze / źle? czy to rośnie / maleje? czy będzie to regulowane w przyszłości? jaki rodzaj obliczeniowego wyścigu zbrojeń jest zaangażowany?

  • superkomputery są ogromne, rozwiązują niesamowite problemy i stają się coraz większe. czy są jakieś ograniczenia? co obliczają i co obliczą w przyszłości? nieco powiązane, Big Data i analizowanie danych .

  • serwisy społecznościowe miały ogromny wpływ na rozwój w mniej niż dekadę. biorą udział w podsycaniu popularnych powstań, np. arabskiej wiosny i Occupy wall st . jaka jest ich przyszłość?

vzn
źródło
2

Mam taką propozycję

  • koncentruje się na komputerze nauki (nie programowania lub pomocniczy),
  • zaczyna się od przesłanki, którą zna większość dzieci
  • został wypróbowany i działa.

Odbywamy małe warsztaty z uczniami szkół średnich na temat Saperów . Warsztaty wyglądałyby mniej więcej tak:

  1. Zagrajmy trochę w grę (większość o tym wie).

  2. Co właśnie zrobiliśmy? Jaki problem staramy się rozwiązać? Czy możemy sformułować ogólne zasady?

    Zazwyczaj zajmuje to chwilę. Dzieci nie są wykorzystywane do formułowania problemów w zakresie nakładów i wyników, ponieważ nie istnieją ogólne zasady ich rozwiązywania. Ci, którzy zaprogramowali wcześniej, docenią wysiłek; odniesienie do „kodu spaghetti” może pomóc. Niemniej jednak reguły będą przez większość czasu proste, biorąc pod uwagę tylko jedną komórkę na raz.

  3. Wykazuj problemy z zasadami.

    W tym momencie chcesz wprowadzić symulator Saper . Ten autorstwa Bayera, Snydera i Chouiery nie jest idealny, ale pozwala na pokazanie starannie zaprojektowanych scenariuszy.

  4. Ulepsz zestaw reguł, aby uwzględnić więcej scenariuszy.

    Zwykle prowadzi to studentów do wspólnego badania coraz większej liczby komórek. Możesz także skłonić ich do „rozwiązania wszystkich” podejść, takich jak wyrażanie dostępnych informacji jako liniowego układu równań - pojawia się to, gdy spróbujesz wyrazić dostępne informacje w kategoriach matematycznych. Studenci już wiedzą, jak rozwiązać takie systemy!

  5. Uwaga ograniczenia.

    Po pierwsze, istnieją scenariusze, które nie mają rozwiązania (deterministycznego). Ponadto możemy zestawić brutalną siłę z naszymi opracowanymi strategiami. Czy możemy porównywać prędkość z mocą? Jeśli pojawi się podejście do układu równań, zauważ, że możemy to skutecznie rozwiązać tylko w rzeczywistości, ale potrzebujemy binarnych odpowiedzi. Nie jest trudno budować scenariusze, które prowadzą do ogromnych czasów działania (ilustrowaliśmy to algebrą komputerową).

W zależności od grupy podejście to pozwala w naturalny sposób objąć wiele zasad informatyki: można zdefiniować problemy, opisać ogólne algorytmy, iteracyjne rozwiązywanie problemów, a także kwestie obliczalności i złożoności.

Informacje zwrotne od studentów były ogólnie pozytywne; czują się zaangażowani i wyrażają zainteresowanie koncepcjami. Ważne jest, aby mogli wykonywać większość pracy, tylko ostrożnie trącając ich w pożądanym kierunku, zadając spostrzeżone pytania.

Raphael
źródło
1

masz wiele rzeczy do zrobienia ... ale jedna rzecz, która wydawałaby się tak ekscytującym „pieniędzmi”, więc przedstaw pytanie „P ≠ NP” i nagrodę z siedmiu tysiącleci, kiedy byłem w szkole średniej, czytałem o tym, chociaż ja nie znałem notacji jedyną rzeczą, którą rozumiem: jest wielka nagroda i pytanie! inne rzeczy przedstawiają związek matematyki z informatyką, takie jak: rozwiązywanie równań, sprawdzanie rozwiązań za pomocą komputerów.

inne rzeczy, które zasugerowałem, to przedstawienie Alana w roli „ojca informatyki” i opowiedzenie jego historii. ostatnią rzeczą, którą sugeruję, jest zero dowodów wiedzy i gra „gdzie jest waldo?” i granie bez oszukiwania, kryptografii i cyberataków.

Fayez Abdlrazaq Deab
źródło
-2

Rób wszystko z Facebookiem, uwielbiają to. Być może jest to trudne dla początkujących, ale możesz pozwolić im rysować wykresy połączeń, które pokazują, w jaki sposób ich profile są ze sobą połączone. Poleciłbym Javascript jako język programowania.

użytkownik8836
źródło