Zaproponowano mi nauczenie nowatorskiego programu szkoły średniej TCS, który wymaga opracowania programu nauczania. Bardzo chciałbym usłyszeć opinie i sugestie dotyczące tego.
Po pierwsze, czy ktoś wie o szkołach średnich, w których program TCS był nauczany z powodzeniem (lub bez powodzenia)?
Chodzi o 3-letni program (10-12 klas, w wieku 16-18 lat), około 8 godzin tygodniowo, dla wybranych wybitnych studentów, co oznacza, że może i powinien być wymagający. W przeciwieństwie do standardowego programu „komputerowego”, program ten nie powinien koncentrować się na programowaniu, ale raczej na wybranych tematach w CS, głównie w TCS. Tematy, które do tej pory mamy na myśli, to:
- Analiza asymptotyczna
- Podstawowe struktury danych i algorytmy (listy, tablice)
- Algorytmy graficzne, również jako demonstracja zachłannych algorytmów vs programowanie dynamiczne.
- Inne algorytmy (np. Probabilistyczne)
- Obliczalność - koncepcja TM, redukcja, rozstrzygalność.
- Złożoność - NP, P, być może PSPACE i NL. Kompletność.
- Teoria automatów
Zasadniczo, obejmuje to część TCS pierwszych dwóch lat licencjata w CS. Musimy jednak pamiętać, że uczniowie ci nie mają podstaw matematycznych potrzebnych do większości tego materiału. W szczególności takie rzeczy, jak teoria mnogości, kombinatoryka, prawdopodobieństwo i artiometria modularna nie są nauczane w szkole średniej (niestety).
Podsumowując i zadając dokładne pytania:
- Czy ktoś zna podobny program gdziekolwiek?
- Czy istnieją sugestie dotyczące konkretnych / ogólnych tematów, które Twoim zdaniem można i należy uczyć w uzupełnieniu / zamiast powyższych tematów, jednocześnie utrzymując program interesujący, a także ważny i bezpośrednio istotny (np. Teoria grup jest ważna i interesująca, ale niewystarczająco istotna uzasadnić czas zajmie)
- Z przyjemnością przedstawiłbym uczenie maszynowe w jakiejś formie, ponieważ jest to obecnie bardzo gorący temat. Mile widziane są wszelkie pomysły na to, jak uczenie maszynowe może być prezentowane bez narzędzi takich jak twierdzenia o koncentracji miar.
Odpowiedzi:
Wiele krajów organizuje szkoły letnie dla swoich zespołów IOI (składających się z uczniów szkół średnich w wieku około 16 lat IIRC). Ten, który mamy w Iranie, miał następujące kursy:
Myślę, że Stowarzyszenie Nauczycieli Informatyki ACM ma program nauczania K12 na stronie Zasoby programu nauczania, chociaż jest to prawdopodobnie zbyt lekkie dla utalentowanych nastolatków.
Myślę, że programowanie musi zdecydowanie stanowić część programu nauczania. Python powinien być dobrym pierwszym językiem do nauki.
Możesz także omówić niektóre dostępne tematy z aplikacjami (radość z budowania czegoś fajnego może mieć duży wpływ na ich zainteresowanie). Myślę, że kurs ML Andrew Andrew na Coursera powinien być dostępny dla utalentowanych studentów (szczególnie dla tych w krajach takich jak twój, gdzie istnieje poważniejszy program nauczania matematyki K12).
Niestandardowym tematem, który możesz rozważyć, jest kombinacyjna teoria gier, może być niezbyt interesująca w wieku 16 lat (nie mam na to doświadczenia), ale z mojego doświadczenia działa całkiem dobrze.
Osobiście uważam, centralny i podłączenie motyw powinna wynosić około algorytmy, myślę, że byłoby lepiej niż automatów teorii jako główny temat i prawdopodobnie algorytmicznego punktu widzenia (nie Maszyna Turinga, automaty, etc.) Istotą informatyki.
źródło
Co ciekawe, jest ktoś, kto twierdził, że uczenie maszynowe jest wyjątkowo odpowiedniewśród tematów informatyki do nauczania dla uczniów szkół średnich, ponieważ podobno jest to jedna z niewielu dziedzin, w których podstawowa matematyka może pomóc ci zrozumieć wystarczająco dużo, aby docenić ważne wyzwania. Nie zgadzam się z tym twierdzeniem - podstawowe algorytmy (powiedzmy do wyszukiwania, sortowania) mogą być przedstawione jako zagadki, i bardzo szybko można przejść do bardzo prostego stwierdzenia, ale podstawowe otwarte problemy, takie jak „można powielać za pomocą zasadniczo takiej samej liczby operacji jako dodatek ”, sortowanie liczb całkowitych w czasie liniowym lub faktoring (zakładam, że koncepcja liczb pierwszych nie byłaby nowa dla wybranej grupy uczniów szkół średnich?). Z drugiej strony dużo uczenia maszynowego byłoby trudne do zrozumienia bez dobrego doświadczenia w statystyce i teorii prawdopodobieństwa. Niemniej jednak,
Jeśli chodzi o program nauczania, istnieje bardziej szczegółowy program Essinger i Rosen w Drexel.
Oprócz tego sądzę, że można spróbować naszkicować niektóre bardziej zaawansowane pomysły teorii uczenia się:
Inną sugestią jest wprowadzenie obwodów i próba szkicu dolnej granicy Shannona. Zależy, jak wygodni są uczniowie z liczeniem. Jeśli jest to zbyt ciężkie, może nadal pomóc w dyskusji, gdy uczniowie sami liczą obwody na wiarę. Myślę, że idea „większość problemów wymaga dużych obwodów, ponieważ jest zbyt wiele problemów i zbyt mało małych obwodów” będzie uderzająca. Ta idea jest ważna i wszechobecna w złożoności.
źródło
Oto jeden obiecujący kierunek, w którym należy pójść w tym kierunku. AP / NSF ogłosił niedawno nową inicjatywę programu CS dla zaawansowanych uczniów szkół średnich. korzystanie z takiego programu będzie miało wiele zalet, takich jak ustandaryzowany plan lekcji, akredytacja uczelni itp.
jest obecnie w fazie rozwoju i ma być gotowy na 2016 r. Wstępny program kursu i materiały są dostępne online. (w przypadku ekspertów akademickich może być w tym momencie nawet możliwość wpłynięcia na przyszłe treści poprzez współpracę typu „kolektywna inteligencja”).
istniejący program nosi nazwę AP Computer Science A, a nowy program nosi nazwę AP Computer Science Principles. istniejąca klasa istnieje od wielu lat i jest również pomocna jako model dla nauczycieli opracowujących program nauczania.
źródło
Pomysł, który ostatnio skopałam, polega na tym, jak nauczyć studentów HS pojęcia redukcji między problemami. Uznałem, że jest to jeden z najciekawszych, ale i najtrudniejszych tematów, kiedy zapoznałem się ze złożonością, ponieważ dość trudno (przynajmniej początkowo) owinąć głowę faktem, że problem taki jak 3-SAT jest „tak samo trudny” jako osłona wierzchołka.
Przykładem, który wymyśliłem, była redukcja między Cover Vertex (VC) a Independent Set (IND-SET), sformułowanymi w następujący sposób;
„Jesteś dyrektorem muzeum i masz za zadanie zatrudnić ochronę do pilnowania korytarzy. Gdy zostanie umieszczony na skrzyżowaniu korytarzy, strażnik może mieć oko na WSZYSTKIE korytarze przylegające do niego. Jaka minimalna liczba potrzebnych strażników patrolować całe muzeum? ”
„Nieco później niektóre dzieci decydują się na zabawę w chowanego w muzeum. Ich celem jest ukrycie się tak, aby żadne inne dziecko ich nie widziało. Jednak strażnicy nie chcą, aby biegali po korytarze, więc są sprowadzeni do „ukrywania się” na skrzyżowaniach. Jaka jest największa liczba dzieci, które mogą ukryć się w muzeum, nie widząc się nawzajem? ”
źródło