Мне предложили преподавать новую программу средней школы TCS, которая требует составления учебного плана. Мне бы очень хотелось услышать мнения и предложения по этому поводу.
Во-первых, кто-нибудь знает о средних школах, где программа TCS преподавалась успешно (или безуспешно)?
Идея предназначена для трехлетней программы (10-12 классы, возраст 16-18 лет), около 8 часов в неделю, для отобранных выдающихся учеников, что означает, что она может и должна быть сложной. В отличие от стандартной программы «компьютеры», эта программа должна быть ориентирована не на программирование, а на отдельные темы в CS, в основном в TCS. На данный момент мы имеем в виду следующие темы:
- Асимптотический анализ
- Основные структуры данных и алгоритмы (списки, массивы)
- Графовые алгоритмы, также как демонстрация жадных алгоритмов против динамического программирования.
- Другие алгоритмы (например, вероятностные)
- Вычислимость - понятие ТМ, редукция, разрешимость.
- Сложность - NP, P, возможно, PSPACE и NL. Полнота.
- Теория автоматов
По сути, это охватывает часть TCS первых двух лет бакалавриата в области CS. Однако мы должны помнить, что этим студентам не хватает математической базы, необходимой для большей части этого материала. В частности, такие вещи, как теория множеств, комбинаторика, вероятность и модульная артистика, не преподаются в средней школе (к сожалению).
Подводя итоги и задавая точные вопросы:
- Кто-нибудь знает подобную программу где-нибудь?
- Существуют ли предложения по конкретным / общим темам, которые, по вашему мнению, можно и нужно преподавать в дополнение / вместо тем выше, сохраняя при этом программу интересной, а также важной и непосредственно актуальной (например, теория групп важна и интересна, но недостаточно актуальна оправдать время, которое потребуется)
- Я был бы счастлив представить машинное обучение в некоторой форме, поскольку это действительно горячая тема в наше время. Любые идеи относительно того, как машинное обучение может быть представлено без таких инструментов, как теоремы измерения меры, приветствуются.
Ответы:
Многие страны организуют летние школы для своих команд IOI (состоящих из учащихся старших классов в возрасте примерно 16 лет IIRC). У того, что у нас в Иране, были следующие курсы:
Я думаю, что Ассоциация учителей информатики ACM имеет учебный план K12 на своей странице ресурсов по учебным программам, хотя, вероятно, она слишком легкая для талантливых подростков.
Я думаю, что программирование обязательно должно быть частью учебной программы. Python должен быть хорошим первым языком для изучения.
Вы можете также охватить некоторые доступные темы приложениями (радость от создания чего-то интересного может сильно повлиять на их интерес). Я думаю, что курс ML Andrew Ng по Coursera должен быть доступен для талантливых студентов (особенно для таких стран, как ваша, где существует более серьезная учебная программа по математике K12).
Нестандартная тема, которую вы, возможно, захотите рассмотреть, - это теория комбинационных игр, она может быть не очень интересной для 16-летнего возраста (у меня нет опыта для этого), но, по моему опыту, она работает довольно хорошо для немного младших школьников.
Я лично считаю , что центральная и присоединительные тема должна быть вокруг алгоритмов, я думаю , что это будет работать лучше , чем теории автоматов в качестве центральной темы и , возможно , алгоритмической точки зрения (не Тьюринг машины, автоматы и т.д.) является сущность информатики.
источник
Любопытно, что есть кто-то, кто утверждал, что машинное обучение уникально подходитсреди тем информатики, чтобы преподавать учащимся старших классов, потому что, предположительно, это одна из немногих областей, где базовая математика может помочь вам понять достаточно, чтобы оценить важные задачи. Я не согласен с этим утверждением - базовые алгоритмы (скажем, для поиска, сортировки) могут быть представлены в виде головоломок, и вы можете очень быстро добраться до очень простых формулировок, но фундаментальные открытые проблемы, такие как «умножение, можно выполнить по существу с таким же количеством операций как сложение », или сортировка целых чисел по линейному времени, или факторинг (я предполагаю, что концепция чисел простых чисел не была бы новой для избранной группы учащихся средней школы?). С другой стороны, много машинного обучения было бы трудно понять без хорошего уровня статистики и теории вероятностей. тем не менее,
Что касается учебной программы, то есть более детальная Essinger и Rosen в Drexel.
В дополнение к этому, я думаю, можно попытаться набросать некоторые из более высокоуровневых идей теории обучения:
Другое предложение состоит в том, чтобы ввести схемы и попытаться сделать набросок нижней границы Шеннона. Зависит от того, насколько комфортно учащимся считать. Если это слишком тяжело, это все равно может помочь в аргументации, в то время как ученики сами начнут считать контуры на вере. Я думаю, что идея «большинство проблем требует больших цепей, потому что есть слишком много проблем и слишком мало маленьких цепей» будет поражать. Эта идея важна и распространена по сложности.
источник
Вот одно из многообещающих направлений для этого. AP / NSF недавно объявили о новой инициативе CS по программе повышения квалификации. использование такой программы будет иметь много преимуществ, таких как стандартизированный план урока, аккредитация колледжа и т. д.
В настоящее время он находится в стадии разработки и будет готов к 2016 году. Предварительная программа курса и материалы доступны онлайн. (для академических экспертов на этом этапе может даже существовать некоторая возможность повлиять на будущее содержание посредством сотрудничества типа «коллективного разума».)
существующая программа называется AP Computer Science A, а новая программа называется AP Computer Science Principles. Существующий класс существует уже много лет и также полезен в качестве модели для преподавателей, разрабатывающих учебную программу.
источник
Идея, о которой я недавно догадался, заключается в том, как научить студентов ГС понятию сокращения проблем. Я обнаружил, что это одна из самых интересных, но наиболее сложных тем, когда я познакомился со сложностью, поскольку довольно сложно (по крайней мере, на начальном этапе) обдумать тот факт, что такая проблема, как 3-SAT, «столь же сложна» как Vertex-Cover.
В качестве примера я привел сокращение между Vertex Cover (VC) и Independent Set (IND-SET), сформулированное следующим образом;
«Вы - директор музея, и вам поручено нанять охрану для охраны прихожих. Когда их помещают на перекрестке прихожих, охранник может следить за ВСЕМИ прихожими, находящимися рядом с ним. Какое минимальное количество охранников требуется? патрулировать весь музей?
«Чуть позже некоторые дети решают поиграть в прятки в музее. Их цель - спрятаться так, чтобы ни один ребенок их не увидел. Однако охранники не хотят, чтобы они бегали в в коридорах, поэтому их «прячут» на перекрестках. Какое наибольшее количество детей может спрятаться в музее, не видя друг друга? »
Основная цель для студентов состоит в том, чтобы сформулировать и доказать следующую теорему, которая является центральной для сокращения, показывающегоV C≤пIND-SET ;
Теорема: дляG = ( V, E) , S⊆ V это независимый набор ⟺ В∖ S это вершинное покрытие (где ∖ обозначает установленную разницу).
Причина я выбрал VC & IND-SET является то , что это не слишком трудно понять , что проблемы тесно связаны между собой ; всякий раз, когда есть независимый наборS , это вызывает покрытие вершины В∖ S в грамм ,
источник