В некоторых местах в мире люди обычно не имеют доступа к компьютерам (и, следовательно, мало знают о них), и даже если они есть, аппаратное и программное обеспечение устарели, а использование из-за перебоев в подаче электроэнергии и тому подобного. Доступ к (хорошим) книгам также, как правило, отсутствует. Как я могу преподавать информатику в таких условиях?
Я беспокоюсь, что, не имея возможности проводить эксперименты и применять то, что они изучают, они не будут учиться (хорошо) вообще, даже если они невероятно мотивированы и посвящают большую часть своего времени этому хобби. Можно ли преподавать КС только теоретически?
Ответы:
Спрашивать, как вы можете изучать информатику без компьютеров, все равно, что спрашивать, как вы можете изучать космологию без телескопов. Конечно, приятно смотреть на вещи, которые ты изучаешь, и часто очень полезно играть с вещами. Но есть много всего, что вы можете сделать без доступа к компьютеру: в крайнем случае , вы, вероятно, могли бы пройти почти весь курс обучения без компьютера.
С практической точки зрения доступ к компьютерам помогает закрепить многое из того, что вы изучаете в курсе информатики. Курсы программирования, очевидно, гораздо более естественны с доступом к компьютеру. С другой стороны, принуждение писать код на бумаге действительно побуждает людей задуматься о своем коде и убедиться, что он действительно работает, а не просто запускать его через компилятор снова и снова, пока он не скомпилируется, а затем снова и снова запускать тривиальные тестовые примеры пока очевидные ошибки не исчезнут.
Темы, которые были бы наиболее естественными без компьютеров, были бы более математическими. Все фоновые математики, такие как комбинаторика и вероятность. Вычислимость, формальные языки, логика, теория сложности, разработка и анализ алгоритмов, теория информации и кодирования. Все, что связано с квантовыми вычислениями!
источник
Существует очевидное использование бумаги и карандаша. Когда меня учили обрабатывать сигналы, специальный процессор сигналов не был нам непосредственно доступен, и мы просто передавали бумажные отчеты.
Обратите внимание, что великий компьютерщик Дейкстра, по-видимому, не очень много использовал компьютеры:
Цитируется из Мемориала Дисжкстры
Это показывает, что вы можете делать большие компьютерные науки без компьютера!
Помимо бумажной и карандашной информатики, проблемы могут быть решены «в реальном мире», например, демонстрация алгоритмов сортировки с карточками или - что более необычно - танцами, как это было сделано в университете Sapientia .
источник
Многие теории информатики носят чисто теоретический характер и могут быть решены с помощью ручки (cil) и бумаги. Получение информации о них и передача их во внешний мир требует компьютера.
источник
Смотрите http://csunplugged.org/ для некоторых замечательных идей. Google является одним из спонсоров.
С сайта:
источник
Вы можете, это довольно очевидно, как вы это сделаете. Я не уверен, насколько это было бы полезно для людей, но вы можете.
Но я даже не знаю, как бы преподаватель информатики мог спросить, как можно преподавать информатику без компьютера.
Потому что, если вы можете преподавать информатику, то знаете, как.
Если вы знаете, что
Изучение нормализации, структуры таблиц данных для баз данных, можно сделать на ручке и бумаге. (Я делал это только на ручке и бумаге, когда изучал реляционные базы данных)
Учебники информатики не требуют компьютера.
Если вы когда-нибудь брали учебник по информатике и изучали его в библиотеке, вы бы знали, что вам не нужен компьютер для его понимания.
Но вы должны знать, что любой, кто сидел на уроке информатики, может видеть, что большинство людей не могут программировать, это просто за их пределами. Слишком абстрактно для людей. Это даже верно на уровне университета.
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
Я бы добавил, что называть это существенным меньшинством - это преуменьшение. Это небольшое меньшинство, которое может запрограммировать.
Я хотел бы отметить, однако, причину упадка, свидетелем которого он стал. По мере того, как компьютеры становились все более популярными, например, между 2000 и 2010 годами (он писал это в середине этого десятилетия), все больше волли интересовались изучением «информатики». До этого только более фанатичные люди были заинтересованы. Раньше использование компьютеров было более техническим, но поскольку обычным людям стало легче пользоваться компьютерами, и они стали более мощными в приложениях, которые они могли запускать, то их использовали все больше волли и больше людей, которые интересовались только тем, что они могли сделать. а не как они это делают и как это сделать.
источник
Было бы возможно преподавать понятия информатики без компьютера. Конечно, без доступа к компьютеру какая польза от изучения компьютерных наук?
Когда я изучал информатику в старшей школе, наши первые несколько уроков вообще не были связаны с компьютерами. Вместо этого мы работали с книгой под названием Karel ++ , в которой обучались объектно-ориентированные концепции. Придуманный язык можно довольно легко «запустить» на доске или доске, потому что весь код выполняет действия на графике. Наши первые несколько заданий были написаны от руки, и профессор продемонстрировал правильное решение на доске в начале следующего урока.
Когда мы начали обсуждать алгоритмы, наш профессор позвал нас всех впереди комнаты и велел нам встать в очередь. Он продолжил демонстрировать несколько различных алгоритмов сортировки - начиная с чего-то глупого, который он назвал «сортировкой обезьян», где он случайным образом обменивался двумя из нас, а затем проверял, сортировались ли мы на каждой итерации, но затем выполнял пузырьковую сортировку и сортировку оболочки по - «бегом» их на нас.
На доске он рисовал диаграммы, объясняющие основы работы компьютерной памяти и стека. Он продемонстрировал переменные и указатели (это был класс C ++) и оттуда к связанным спискам и деревьям ...
Я мог бы добавить к этому, если бы пролистал записи, которые я хранил в этом классе, но это все, что я сейчас помню. Если эти предложения интересны, я могу расширить этот ответ.
источник
Я получил степень по информатике и думал, что нас много учат программированию (на разных языках), а также многим математическим аспектам (и некоторым аппаратным средствам).
Математические части были более важны для первого года - подумайте о математике, которая важна для трехмерной графики (как вы вычисляете нормаль поверхности для освещения вершины? ). Мы выполнили большое количество статистических данных - подумайте, анализ производительности работы, какую скорость работы вы можете передать в систему, прежде чем она засорится? Это очень важно для многих централизованных систем и сетей.
Вы можете научить многим алгоритмам, один из которых упоминается здесь, давая каждому студенту номер, а затем заставляя их сортировать себя, используя различные алгоритмы (это активные и информационные). Фактически, любой алгоритм, который может быть описан в анимированном изображении в Интернете, может быть обучен таким образом. Точно так же основы вычислений - счетчик программ, аккумулятор и регистрыможно научить таким же образом или на бумаге. Как насчет многопоточности на основе учеников - установите для группы учеников карточную игру со стеком между ними в классическом многопоточном упражнении (или задаче с одной общей ложкой). Или шаблоны проектирования, я могу подумать, что архитектура классной доски идеально подходит для студентов, чтобы узнать, как может быть реализована многопроцессорная коммуникация, или n-уровневая архитектура, описываемая как своего рода игра с китайским шепотом или машины с конечным состоянием, подойдет студентам, выступающим в качестве модули в «живом компьютере». Вы можете учить двоичную математику или выполнение на основе стека (т.е. обратная полировка).
Конечно, если у вас есть доступ к электронике, вы можете создать аналоговый компьютер из операционных усилителей. Они классные.
К сожалению, все это больше похоже на математику, чем на вычисления, но многое из этого останется, и однажды они поймут, почему их этому научили (при условии, что они пойдут в компьютерную индустрию). Помните, что все, что может сделать компьютер, может сделать человек - ему потребуется гораздо больше времени и скуки, чтобы достичь того же результата. Вам просто нужно взять простые примеры, чтобы продемонстрировать, что будет делать компьютер, и воображение, чтобы описать основы вычислений менее сухим способом, которому меня учили, еще :)
источник
Я в основном отвечаю только для того, чтобы отреагировать на это утверждение и потому что я категорически не согласен с другими ответами. Правильное сравнение будет по моему мнению
Компьютеры Наука о компьютерах, а не просто использовать их. Да, во многом информатика основана на математике, поэтому математические части можно изучать без компьютеров (то есть вы учите математику), точно так же, как вместо космологии вы можете изучать физику, которая будет полезна, когда появится космос (или есть доступ к телескопам), но в конце концов вы изучаете физику.
Теперь, что все делают в ответах здесь, отметьте, что компьютерная наука на уровне бакалавра в основном теоретическая и не требует компьютеров, что люди забывают о том, что одни и те же люди широко использовали компьютеры до этого момента. Без естественного понимания, непосредственно углубляющегося в теоретические вещи, просто многие студенты либо сдаются, либо имеют совершенно несовпадающее представление о компьютерных науках. Так что учите программированию, понимаете, что такое компьютеры первыми, и только потом переходите к теоретическим вещам.
Зависит от бюджета:
Итак, позвольте мне прояснить: я не говорю, что компьютерные науки нельзя преподавать без компьютеров, просто вам нужно привыкнуть к компьютерам и знать их достаточно хорошо, прежде чем вы начнете думать об этом.
источник
Информатика - об алгоритмах, а не (строго) о компьютерах (и электронике).
Таким образом, изучение алгоритмов (даже элементарной арифметики) может привести к пониманию информатики и программирования. Помните, что даже термин «алгоритм» является перефразировкой автора книги по арифметике ( аль-Хваризми , около 9 в. Н. Э.).
Изучение алгоритмов может быть выполнено с использованием элементарных средств, но оно должно обеспечить охват того, почему алгоритм работает, как он появился и как на самом деле можно продемонстрировать, что он работает правильно.
Нельзя недооценивать историю развития компьютерных наук, алгоритмов и программирования. Например, калькулятор Бэббиджа / Ады, машина Enigma, планкалкул Конрада Цузе , ENIAC и т. Д.
Затем можно ввести программирование (и языки программирования) как способ формализации алгоритмов. Это также может быть сделано (в значительной степени) с использованием элементарных средств.
Обратите внимание , что некоторые исследования показали, что программирование обучения людей имеет две основные трудности в понимании (связано с перегрузкой символов, например, тестом присвоения или равенства и работой машины с ОЗУ).
Таким образом, можно убедиться, что они ясно поняты и понятны людям.
Более того, если к любому компьютеру можно получить доступ (даже к калькулятору, который можно запрограммировать), это можно использовать для предоставления примеров применения и практического опыта. Еще можно использовать симулированный компьютер. Это может быть сделано различными способами, например, группа людей может смоделировать части компьютера, а класс может разработать алгоритмы для решения различных задач для этого смоделированного компьютера и посмотреть, как он работает. Это также можно рассматривать как игру, проявлять творческий подход и придумывать.
Затем некоторые (абстрактные) вычислительные модели (например, машины Тьюринга). могут быть введены ), связанные с предыдущим материалом об алгоритмах и формализации на (программировании) язык.
Если кто-то хочет представить электронику реального компьютера, это можно сделать также в двух частях.
Помните, что даже в университетах некоторые курсы по электронике и компьютерной архитектуре носят теоретический характер (на самом деле они не соприкасаются с процессором и не занимаются проектированием).
Таким образом, могут быть введены некоторые принципы работы электроники (и основополагающей физики), связанные с компьютерной архитектурой ( полупроводники , твердотельные энергетические зоны, p-np вентили и т. Д.).
Затем можно использовать предыдущий материал о программировании и алгоритмах и представить (современные) методы проектирования ЦП (и описания), которые используются в промышленности ( логические элементы , триггеры , FPGA , VHDL , схемы CMOS и т. Д.).
Это может быть дополнительно рассмотрено в таких проблемах архитектуры проектирования ЦП, как параллелизм, конвейерная обработка, кэш-память, векторная адресация, микропрограммирование, DMA и т. Д.
Ну, хорошо, может быть, это может быть слишком много, но добавлено для того, чтобы сделать ответ самодостаточным.
источник
Вы хотите преподавать программирование?
Когда я был ребенком, мы отправились в поход, и я взял с собой компьютерное руководство. Мне удалось написать простую игру, используя ручку и бумагу.
Я думаю, это была моя первая настоящая программа, поэтому пришлось много учиться. Я знал, что я хотел сделать, но было много неудачных попыток, пока я понял это. Но в конце концов я смог написать весь код.
Я предполагаю, что говорю о том, чтобы начать с псевдокода и \ или блок-схем для планирования проекта, а затем перевести в код. Я смог отладить большую часть своего кода, просто прочитав его. Вы также можете использовать рецензии здесь.
источник
Повторяя предыдущие ответы: многому можно научиться, просто читая и выполняя упражнения с ручкой и бумагой. Если вы можете решить эту проблему на бумаге, у вас сложная задача. Тем не менее, я также хочу упомянуть о существовании довольно дешевых способов подвергнуть студентов воздействию CS. Вы знакомы с проектом Raspberry Pi ? Даже если несколько человек должны поделиться, или вы можете позволить себе получить только 1 или 2 единицы, все равно стоит рассмотреть возможность ознакомления ваших студентов с этой технологией.
источник
Я собираюсь попробовать поиграть на этом немного и "думать нестандартно". Полноценные компьютеры действительно дороги, иногда требуют больших ресурсов и сложны в обслуживании. но есть много недорогих электронных систем, которые имитируют полноценные компьютеры, например, с жидкокристаллическими экранами и т. д. и которые могут быть применены многие основные принципы программирования, многие из которых работают от батарей. также существует тесная связь принципов ЭЭ с вычислениями, такими как построение бинарных логических схем и т. д .; также в настоящее время некоторые игрушки имеют возможности программирования.
программируемые калькуляторы . в некоторых есть встроенные языки программирования (не такого высокого уровня, как языки ассемблера). некоторые поддержали бы продвинутые программы.
Raspberry Pi компьютер / микроконтроллер был разработан для этой цели и работает под управлением Linux. менее 40 долларов во многих случаях.
Для микроконтроллера набора параллакс STAMP требуется USB-соединение, но, возможно, Raspberry pi будет достаточно. смотрите также микроконтроллер PIC
робототехнические системы. Есть много недорогих, которые имеют некоторую программируемую логику.Lego robotics mindstorms / nxt - одна из лучших и есть менее дорогие модели.
некоторые консольные игры имеют встроенные в них принципы программирования. например Маленькая Большая Планета имеет удивительные возможности программирования, встроенные в него. Есть несколько портативных версий программируемых игр. есть много видео YouTube о сложных конструкциях для вдохновения.
смартфоны - это новый мир программирования. у них есть браузеры, которые запускают javascript, и есть много приложений, связанных с программированием, и можно даже просматривать сайты программирования с подключением к интернету (включая wifi).
также предложите, как в комментариях, создавать программы ТМ, например, для добавления и т. д. и пытаться следовать им вручную.
источник