2008-09-23 3 views
12

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

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

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

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

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

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

+0

Хммм, HTML не является двусмысленным для программирования. Это вовсе не требует логики. –

+0

Что значит «не двусмысленный»? Я согласен с тем, что его декларативный характер очень сильно отличается от традиционного процедурного языка, но кажется, что есть, по крайней мере, * некоторая * ценность в предоставлении компьютера специально форматированного открытого текста для получения более сложного результата. –

+0

Я думаю, он имел в виду «аналогичный». – Ash

ответ

9

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

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

+0

Я вообще не привязан к HTML/JS. Это потребует больше работы по переосмыслению курса с Python, но я склонен согласиться с тем, что более традиционная среда программирования выгодна из-за того, что не нужно смешивать декларативные и процедурные миры. Я обязательно посмотрю на PiE, спасибо! –

+0

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

1

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

+0

Преподавание C++ для начинающих было бы «интересным». Даже в моем курсе по информатике было принято решение преподавать Java вместо этого. Считалось, что C++ допускает слишком много возможностей для студентов, чтобы они попали в проблему (например, указатели и т. Д.). – Ash

+0

Как вы думаете? Я взял его в старшем году HS, я думаю, что более высокая функциональность является грубой для новичков, но общие концепции - отличная основа. –

+0

Я тоже учил курс C++ в средней школе, и я подумал, что это здорово, и большая часть «нас», вероятно, была бы, но я думаю, что исследование, на которое ссылается Винько Врсалович, утверждает, что существует класс человека, для которого даже Java является слишком много. Что вы оба думаете? –

5

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

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

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

+0

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

1

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

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

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

1

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

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

1

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

0

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

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

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

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

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

0

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

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

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

1

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

0

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

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

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

Удачи.

0

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

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

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

0

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

1

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

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

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

1

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

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

Смежные вопросы