Блог Wizual

Это блог проекта Wizual, здесь освещаются все новости проекта, а также новости из области образования детей и визуального программирования.

NAVIGATION - SEARCH

Ликвидируем алгоритмическую неграмотность

Мы живем в обществе знаний. Носителями профессиональных знаний являются специалисты, например, агрономы, нефтяники, микробиологи, технологи, экономисты, химики, врачи. Парадокс в том, что эти люди прекрасно знают свою работу. Они четко знают последовательность выполняемых ими действий, то есть алгоритмы своей работы. А также, что очень важно, алгоритмы предметной области. Но они, увы, не знают, что их знания называются алгоритмами. Эти замечательные специалисты не умеют описывать алгоритмы. Они не умеют расчленять свои знания и выделять среди них алгоритмическую (процедурную) часть. Они не в состоянии выразить свои знания на бумаге в форме алгоритмов. Хорошо ли это? Допустима ли подобная алгоритмическая неосведомленность?

На этот вопрос обычно отвечают так: Конечно, хорошо. Потому что существует разделение труда. Каждый должен заниматься своим делом. Алгоритмы – дело математиков и программистов. А нефтяники, химики, врачи и экономисты совершенно не обязаны знать алгоритмические тонкости. У них, слава богу, своих забот хоть отбавляй! Данная точка зрения требует непредвзятого анализа. Прежде всего, надо ответить на вопрос. В чем причина повсеместно распространенной алгоритмической неграмотности? Неграмотности подавляющего большинства специалистов?

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

Разработка алгоритмов – это труд, производительность которого играет важную роль. Если труд слишком сложен (производительность труда мала), то алгоритмизацию могут выполнять только опытные специалисты. При таких условиях массовая работа с алгоритмами невозможна. И наоборот, если данный труд удастся резко облегчить, алгоритмизация станет посильной почти для каждого. В этом случае создаются необходимые предпосылки для массового овладения методами алгоритмизации.

Многие группы учащихся по разным причинам не знакомы с алгоритмами и не умеют с ними работать. Они не могут быстро и безошибочно записывать свои знания в форме алгоритмов. Этот недостаток можно устранить. Алгоритмы можно и нужно сделать дружелюбными с помощью когнитивно-эргономических методов. И тогда трудоемкость изучения, разработки и понимания алгоритмов значительно уменьшается. Алгоритмическое мышление становится доступным для всех желающих. Учащиеся приобретают необходимые знания и умения, позволяющие писать, читать, понимать и использовать алгоритмы.

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

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



Часть материала позаимствована из книги:
Паронджанов В. Д. "Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации." – М.: ДМК Пресс; 2012

Чашка чая. Вроде бы все просто, да?

Что может быть проще, чем заварить чашку чая, скажете вы. Но, если это настолько простой процесс, давайте попробуем описать его. Итак, задача: объяснить человеку, как заварить чашку чая.

Заглянем в один из блогов Живого Журнала. Нас встречает хозяин блога Митрич (meatreach).
Лукаво улыбаясь, Митрич говорит:
– Объясните мне, как приготовить чашку чая? По-простому, из пакетика. Я задавал этот вопрос разным людям. И все время повторял: «дайте мне инструкцию, научите меня».
Чаще всего ответ выглядел так:
– Берем чашку, берем пакетик, кладем в чашку. Заливаем водой из
чайника.
– А если в чайнике вода холодная?
– Ну, тогда сначала кипятим.
– А если там воды нет?
– Тогда наливаем воду, потом кипятим, потом наливаем в чашку. Но если ты хочешь, чтобы чай был «правильный»,  сначала надо, чтобы чашка была горячая.

Что же получается? Действуя по такой инструкции, я сначала залью пакетик холодной водой. Потом сожгу чайник, включив его без воды. Потом все-таки заварю чашку чая. И тут же выясню, что чай получился «неправильный». И надо все начинать сначала. А ведь задачка не такая уж и сложная.

Беда в том, что обычный человек не способен сформулировать простой пошаговый алгоритм.

Как же выглядит правильный алгоритм заваривания чашки чая? А вот так:

Шаг 1. Если в чайнике вообще нет или слишком мало воды, надо налить ее.
Шаг 2. Если вода в чайнике холодная, надо вскипятить ее.
Шаг 3. Если нет чистой чашки, надо вымыть грязную.
Шаг 4. Взять чистую чашку.
Шаг 5. Налить полчашки горячей воды, чтобы чашка согрелась.
Шаг 6. Положить в чашку пакетик, долить водой.
Шаг 7. Ждать минуту, помешивать пакетик ложкой.
Шаг 8. Выкинуть пакетик.

Вывод: далеко не каждый человек сможет правильно и конкретно сформулировать алгоритм даже такой простой задачи, как заваривание чашки чая. А что тогда говорить о технических заданиях, технических проектах, инструкциях и законах?


Часть материала позаимствована из книги:
Паронджанов В. Д. "Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации." – М.: ДМК Пресс; 2012

Обзор Scratch

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


Скретч идеально подходит для обучения детей, хотя в этой среде можно писать и настоящие программки, например, для управления роботами. На официальном сайте сказано, что среда программирования создавалась для детей 8-16 лет, но использовать ее могут все, в том числе дети более младшего возраста вместе с родителями: «Способность программировать — важная составляющая грамотности в современном обществе. Когда люди учатся кодировать в Скретч, они осваивают важные стратегии решения проблем, разработки проектов, обмена идеями», — с этими словами нельзя не согласиться. Основной проблемой Scratch является то, что для обучения ребенку все-равно требуется присутствие родителей.

Запустить Скретч можно непосредственно в браузере. Вторая версия требует наличия относительно нового браузера (Chrome 7+, Firefox 4+, IE 7+) и Adobe Flash, а также монитора с разрешением от 1024х768. Если компьютер не удовлетворяет этим требованиям, то в открытом доступе осталась старая версия редактора Скретч 1.4, созданные в нем проекты тоже можно публиковать на сайте Скретча 2. А вот новые проекты открывать в старой версии уже не получится, потому что введен новый формат файлов .sb2.

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

Запуск кампании по сбору средств на среду обучения программированию KitCode


Совсем недавно началась кампания по сбору инвестиций на проект KitCode.

KitCode - это проект, нацеленный на обучение программированию с нуля.  В разработанной ими среде вы можете научиться:
  • JavaScript
  • jQuery
  • PHP
  • Ruby
  • Python
  • Java
Как заявляют авторы: "В настоящий момент наш проект находится на стадии бета-тестирования, где добавлен пока только один курс – по основам HTML. Работает интерактивный текстовый редактор (его вы можете увидеть чуть ниже), авторизация через соц. сети, запуск кода. В бета-тестировании уже приняли участие более 560 человек и их количество растет с каждым днем. А еще у нас сформировалось уютное сообщество в контакте. :)
Развитие проекта тормозится необходимостью наличия основной работы".




Руководители оценили проект в $1 000 000 (один миллион долларов США), и готовы выделить инвесторам долю до пяти процентов. Всего за несколько дней, KitCode  получил достаточно хорошие оценки. 30 человек из 36 оценили проект оценкой "Круто".

Страница кампании по сбору инвестиций: https://vcstart.com/project/kitcode--nauchites-programmirovat
Страница проекта KitCode: http://kitcode.org

Введение в визуальное программирование

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

Самыми известными примерами стали графические редакторы разметки Borland Delphi и MS VisualStudio.



В этих средах разработки можно редактировать разметку форм перетаскиванием компонентов, изменением их размеров, удалением и добавлением новых компонентов.

Но существует также  и средства редактирование исходного кода программ в графическом представлении. Одними из самых известных инструментов являются Google Blockly и Scratch.



Эти инструменты демонстрируют новый формат программирования, хотя все новое - это хорошо забытое старое. Одним из самых первых решений в этой области является язык программирования ДРАКОН.
ДРАКОН - это разработка российских ученых, разработанный аж в 1996 году для облегчения разработки программ для космического корабля "Буран". Страшное название расшифровывается вполне нетривиальным образом: «Дружелюбный русский алгоритмический, который обеспечивает наглядность».


Мы же разрабатываем Wizual - визуальную среду разработки для обучения детей программированию, работающую посредством бесконтактных сенсорных контроллеров: Kinect и LeapMotion и планшетных устройств.







Итак, визуальное программирование уже стоит на одной полке с другими популярными методами разработки и очень быстро развивается.