Подтвердить что ты не робот

Какой лучший способ представить не-майоры для HTML/программирования?

В течение последних двух месяцев у меня был следующий вопрос. После свидетельства качества ответов здесь я надеюсь, что здесь я получу отличные ответы.

Я направляю курс в отделе ЕЭК под названием "" Изучение цифровых информационных технологий ", предназначенный для не-майоров, чтобы их ноги мокрый с целым" как работают компьютеры". Будучи студентом-градиентом в компьютерной архитектуре, мой опыт в области значительно отличается от моего ученика (многие из них - первокурсники, не имеющие опыта работы с компьютером за пределами Word и YouTube), но мой весь образ мышления, по-видимому, принципиально отличается. У меня была большая степень успеха. Тренировка более технических курсов раньше, когда у студентов не было никакого фона в точном материале, но они были ориентированными на детали, технически настроенными людьми, которые сталкивались с такими вещами, как переменные, массивы, индексирование, косвенность, функции и т.д. У меня было необычно сложное время с первой частью курса, которая по существу охватывает HTML, JavaScript и Интернет (топологии сети, IP-адреса и т.д.).

Мои вопросы для сообщества SO - это много, но я начну с нескольких:

  • На самом высоком уровне, если вы пытались научить кого-то мыслить как программист (разбить алгоритмы человеческого уровня на простые шаги, которые могут быть переведены на функции, процедурные утверждения, инструкции if-then-else, и петли), будет ли HTML и JavaScript вашим подходом? Это дает результаты, которые являются релевантными (например, веб-страница, которая делает полезные вещи) быстрее, чем другие подходы, но разделение и интеграция HTML и JavaScript, а также весь "декларативный HTML, говорящий с процедурным JavaScript", кажется, забивают слишком много абстрактные понятия слишком скоро.

  • Если вы хотите научить HTML и JS новичку (кто-то, кто с трудом мыслит алгоритмически), какие ресурсы вы бы использовали, какие проекты вы бы назначили и т.д.? Я нахожу, что даже когда я разбиваю понятия, подобные циклу for, насколько я могу судить, это все еще немного. Есть ли где-то там, которые начинаются с первых принципов и действительно могут помочь истинному начинающему grok, почему нужны скобки и точки с запятой, какие аргументы функции и т.д.?

У меня, честно говоря, есть еще много вопросов, но я думаю, что это хорошее место для начала. Я с нетерпением жду возможности компилировать ваши результаты во что-то, что можно использовать не только для будущих итераций этого курса, но также и в моих личных "технологических евангелизации". Я читал другие вопросы "Как научить новичку делать X" здесь, но они, похоже, нацелены на совершенно другой класс "новичка": люди, которые математически настроены и очень заинтересованы в изучении программирования, но не знаю с чего начать. Я чувствую, что ответы для этой группы будут существенно отличаться от ответов с теми, у кого другое мышление и, возможно, менее внутренняя мотивация для изучения.

4b9b3361

Ответ 1

HTML и JavaScript определенно не будут моим подходом. Разметка и программирование - это две разные вещи. Бросать JavaScript в микс, это как-то справиться с этим, но это также усложняет ситуацию. Вы имеете дело с двумя разными синтаксисами, работающими с двумя различными концептуальными моделями, а мост между ними не прозрачен. Вам нужно иметь дело с моделью событий для таких основных вещей, как вход. Отвлекающие накладные расходы неизбежно мешают изучению основ.

Как вы привязаны к HTML/JavaScript? Поскольку вообще отказаться от HTML и работать с более традиционной моделью программирования, это выглядит гораздо лучше. В этой области была значительная работа с Python, поэтому вы должны проверить Python в образовании.

Ответ 2

Я согласен с @Jim.

Думали ли вы о попытке чего-то вроде Lego Mindstorms. Вы получаете очень интуитивный визуальный пользовательский интерфейс, который позволяет пользователям создавать фундаментальные структуры программирования без написания строки кода (т.е. циклов, условных обозначений и т.д.).

Конечно, обратная связь есть в виде рабочих машин/роботов. Это, безусловно, укрепило бы концепции программирования, которые использовались очень хорошо.

Ответ 3

По моему опыту, С++ - это классный язык корневого уровня, его трудно изучить, но не так громоздко, как некоторые из более поздних языков. Логика является сырой, это отличное введение в программирование, и это заставило меня полюбить науку и хотеть узнать больше.

Ответ 4

Мое первое знакомство с миром программирования было Visual Basic. Я помню, как создавали на них аккуратные маленькие формы и кнопки. Я нашел это довольно интересным и намного лучше, чем делать C.I до сих пор помню, как создавал свой собственный калькулятор и блокнот в VB, а затем систему бронирования железных дорог.

Обычно в большинстве случаев курсы программирования начинаются с вникания в C. Обучение тому, как писать алгоритмы и рисовать блок-схемы. Это хорошая идея начать с алгоритмов и блок-схем по мне. Он учит основам программирования и заставляет разум мыслить логически.

Мне не хотелось бы слишком много ходить в HTML и Javascript. Изучение кода в HTML не полезно для обучения любым структурам программирования или логике.

Ответ 5

Существует исследование, обсуждаемое здесь , которое является актуальным для чтения, чтобы избежать слишком депрессии, когда вы понимаете, что некоторые из этих людей фактически не смогут научиться программировать.

Тем не менее, я думаю, что если вы останетесь с HTML/JS (не обязательно хорошим выбором), я бы подготовил весь HTML-код, с которым они будут работать, и заставит их настроить его через JavaScript. Таким образом, им не придется искать две разные модели, но те, которые склонны и достаточно заинтересованы, могут.

Ответ 6

Я бы сказал, что самое важное, что нужно сделать с этой группой, - сделать материал интересным или, по крайней мере, интересным. Поскольку это первое воздействие программирования или цифровых вычислений, вы можете захотеть уклониться от обучения html и javascript вместе, поскольку они представляют собой разные концепции. Вы не собираетесь преподавать не программистам, чтобы стать программистами в семестре, но вы можете вызвать интерес, который может привести к будущему в программировании или чем-то связанном. Я попытался бы осветить некоторые основы и аппаратного и программного обеспечения, и то, как они связаны и как они взаимодействуют. Прежде чем вы даже начнете писать код, они должны хотя бы понять некоторые термины (компилятор, сервер, клиент, сеть и т.д.). Затем вы можете проделать свой путь до кодирования, надеюсь, что-то интерактивное или интересное, как простая игра, калькулятор или дополнения к их странице "Мое пространство".

Ответ 7

Я бы дал им Head First HTML и пусть они на нем в своем собственном темпе. Я не думаю, что что-то улучшит работу по внедрению технологий, чем эта серия.

Ответ 8

Один из подходов, который я принял, когда преподавал занятия, заключался в том, чтобы немного ввести "песок на пол, нарисовать забор" от каратэ-кида. Я заставил их ввести (вручную) двухстраничное веб-приложение, состоящее из HTML и JavaScript, на основе распечатки, которую я им дал.

Упражнение расстроило многих людей, потому что это казалось таким тяжелым делом, особенно когда я мог просто дать им приложение в виде файлов. Но поскольку они должны были исследовать каждого персонажа, чтобы увидеть, где они могли совершить ошибку, они также должны были обратить внимание на каждого персонажа.

Классы, в которых я назначил это упражнение в начале семестра, определенно подошли к вещам быстрее, чем те, где все ресурсы были предоставлены в виде файлов.

Ответ 9

Я нашел важным, чтобы они заинтересовались конечным продуктом того, над чем они работают. Трудность и анал-retentiveness разметки и программирования могут быть действительно разочаровывающими для людей, которые к этому не привыкли. Но если вы назначаете им проекты, где они могут быстро увидеть результаты и гордиться тем, что они делают, вы, вероятно, сохраните их интерес.

Большинство заданий в учебниках (в Интернете) являются скучными и повторяющимися в мозгу. Я бы посоветовал придумать свои собственные задания, в которых представлены важные новые темы, а также основываться на том, что они уже узнали. Но постарайтесь сделать их короткими и простыми, чтобы они не чувствовали себя полностью занятыми.

Ответ 10

Для первого вопроса:

Нет. Я бы не использовал HTML и Javascript для обучения концепциям программирования. Я бы, вероятно, рассмотрел язык .NET, такой как С#, который скрывает боль управления памятью, давая начинающему отличную основу для начала. Есть много полезных вещей, которые нужно сделать на стороне клиента, и я чувствую, что безгражданный характер сети действительно может сделать больше, чтобы запутать новичка. Основные понятия, такие как присвоение, ввод текста, логика, циклизация, - это то, что вы хотите учить, а затем - концепции OO, такие как классы, полиморфизм и наследование. Я чувствую, что студент должен беспокоиться о том, что разметка просто мешает. Держите его просто перед собой.

Второй вопрос.

Так как HTML + JS (и я бы добавил CSS в эту кучу), это скорее о представлении, и я начинаю начинать с использования инструмента, обеспечивающего разделенное представление между поверхностью дизайна WSYWIG и XHTML. Очевидно, что созданный XHTML должен быть чистым, поэтому требуется тщательный выбор такого инструмента. Аптана не так уж плохо, я чувствую. Затем начните сверлить ученика с помощью простых задач, таких как divs и tables. Попросите их изучить изменения в разметке. Затем ознакомьтесь с техникой CSS. В конечном итоге они составят ментальную карту того, как XHTML/CSS влияет на веб-страницу.

Наконец, чтобы собрать все вместе, с некоторыми методами OO под их поясом, а знание XHTML/CS представляет javascript как глазурь на подарочном пироге, чтобы сделать более сложные вещи. Научите их DOM и т.д.

Ответ 11

Если вы хотите научить людей HTML, пойдите с ним. Если вы хотите научить их программированию, начните с простого процедурного языка, например Basic или Pascal. Если вы хотите научить ООП - Smalltalk - это путь.

Что касается HTML, это довольно широкий материал. Я бы выполнил следующие шаги:

1) макет
2) формы/основные элементы управления
3) стили
4) скриптинг

Ответ 12

Я порезал зубы по HTML и JavaScript. (На самом деле он был сохранен в текстовом документе как HTML, а затем пытался расшифровать то, что было, но это другой вопрос). Я думаю, что есть несколько разных преимуществ. Сначала вы можете легко и легко создать основную страницу. Во-вторых, большинство HTML-тегов очевидны, и просто получить JavaScript для изменения страницы и запуска пользовательских событий. Преподавание и демонстрация рекурсии, простые функции функций ООП, типы данных и т.д. Все довольно просто.

Кроме того, вы можете записать его в блокнот так же хорошо, как и все остальное, и проверить его с помощью кнопки обновления. Мгновенная причина и следствие, изменить код: обновить страницу: посмотреть, что нового!

Я бы оставил его простым в HTML (я бы даже не упомянул CSS/AsyncXML/и т.д.) и основывался на основах JavaScript.

Удачи.

Ответ 13

Я делаю HTML-семинары для студентов, которые обычно являются специалистами в области связи. Обычно это начинается с базового обзора того, что на самом деле есть на веб-страницах. Затем я вытаскиваю блокнот и удаляю основную HTML-страницу. В этот момент у некоторых людей появляются пустые взгляды, но есть также много "AHA!". моменты. У меня есть только полтора часа, чтобы втиснуть все основы, хотя я бы, вероятно, сделал больше абстрактных понятий в Интернете, если бы у меня было время.

Наверное, самым важным для их внимания было бы заставить их выполнять примеры, когда вы их учите, а также сами настраивать их. Дайте им цикл for, который печатает информацию на странице несколько раз, затем они меняют вещи и видят, что происходит. Я не уверен, что вы в лаборатории, но это было бы идеально. У них также будут образцы, которые они могут взять домой.

Я думаю, что это определенно ценно, чтобы научить обычного человека HTML, чтобы у них было некоторое представление о том, что происходит за кулисами вещей, с которыми они взаимодействуют ежедневно. Кроме того, у них уже есть все необходимое для начала создания - текстовый редактор и браузер. Это также то, что они с большей вероятностью найдут полезными позже в жизни, для личных сайтов и даже образуют поля, подобные этому.

Ответ 14

Если ваша цель - научить людей основам программирования, почему бы не использовать визуальный язык, например Alice? Это может быть не самое традиционное, но это может позволить вам сосредоточить больше времени на обучении, если /then и петли, в отличие от синтаксиса.