Дано: оболтус 10 лет с уверенными навыками пользования всеми доступными гаджетами, устройствами, компами и проч.
Требуется: научить программировать
Вопрос Как это сделать, с чего начать?
Дано: оболтус 10 лет с уверенными навыками пользования всеми доступными гаджетами, устройствами, компами и проч.
Требуется: научить программировать
Вопрос Как это сделать, с чего начать?
Как обучали меня в школе:
2 класс Роботландия: перевозчик, автомат и т.п.
3 класс Роботландия: Кукарача — заставлять бегать и двигать буквы таракана по полю 10x10 с помощью процедурного программирования.
5-6 класс QBasic — простые программы: от игры «Угадайка» до простой анимации. Устройство компьютера (процессор — обрабатывает данные, оперативная память — хранит данные, устройства ввода-вывода ...).
7-9 класс Pascal. Системы счисления, булева логика... — то что называют "информатика" в очень сжатом виде. Вообще с седьмого класса началось обучение программированию, в том числе мы решали много олимпиадных задачек разной сложности. Структурное программирование.
10 класс Delphi — оконные программы от простых до сложных. Годовая работа — качественное построение графиков (с учетом разрывов как у функции y = tg(x), и т.п.).
11 класс C. Одно из зачетных заданий — написать архиватор и разархиватор с алгоритмом Хаффмана (который, к слову, мы проверяли так: прогоняли в обе стороны photoshop.exe, подменяли его в папке Program files и запускали :-)
Параллельно в 9-11 классе вне школы (курсы в местном вузе и самостоятельно) изучал C++, немного Javascript и Python.
Ну а дальше я поступил в университет по специальности «прикладная математика и информатика».
UPD совсем забыл написать — это все было на фоне обучения в физмат школе.
UPD 2 не забывайте про дополнительное образование (например, музыкальная школа, художественная, спортивная секция и т.д.) и здоровье ребенка.
2 класс Устройство компьютера (процессор, оперативная память, устройства ввода-вывода ...)
мы во втором классе кружки с квадратами складывали...
– teanЫЧ Apr 27 '12 at 07:51Хотя я Вам очень сильно завидую... начал бы я хотя бы с 8-го класса...
– megacoder Apr 28 '12 at 20:34 все знакомые кто начинал на Pascal, Delphi с легкостью схватывают любой язык программирования!
Брехня ((c) С.Краморов, х/ф "Неуловимые мстители")). А если серьёзно -- для некоторых языков это справедливо, для некоторых -- совсем наоборот.
@Сахарок А чем плохо обучение письму с помощью перьевых (ручки, перья "Пионер" и чернильницы-непроливайки)? Век другой, время ушло. Задачи другие.
– alexlz Feb 22 '13 at 10:17Т.е. старт с Pascal в таких случаях принесёт только вред.
соглашусь только, "старт с Pascal в некоторых случаях принесет только вред"
– IVsevolod Feb 22 '13 at 13:34И какие это новые задачи не требуют традиционного алгоритмического мышления (как я понимаю Pascal разработан именно для таких задач).
– avp Feb 22 '13 at 13:54@avp Pascal разработан для обучения программированию (так же, как ранее -- Basic). Это были славные времена ("Если человек понял, что переменная меняет своё занчение -- то он понял программирование". возможно Дейкстра). А когда это понимание укоренилось, попробуйте переучить человека на работу с переменными, которые своих значений не меняют... (имеются в виду декларативные языки программирования). sicp и htdp таких травм вроде не делают, там разные вещи изучаютс
– alexlz Feb 22 '13 at 14:19Неужели в этом диалекте лиспа нет переменных (в т.ч. глобальных), которым можно присваивать разные значения?
– avp Feb 22 '13 at 17:22(2) sicp в MIT уже вроде на python'е преподают. Вроде видел тексты программ где-то. Но сейчас не уверен.
htdp просматривал мельком, а в sicp рассматривалось и императивное, и функциональное программирование. Т.е. можно и так, и эдак. Это, по-моему, правильней, чем изучать только один стиль программирования, а потом от него мучительно отвыкать.
– alexlz Feb 22 '13 at 17:32Добрый день. Мне самому 12 лет, но помимо того, что я отличник , я ещё занимаюсь изучением языков программирования и web-дизайна. Я уже знаю HTML, JavaScript, Css, PHP и сейчас учу C++. В будущем планирую поступить в Высшее Учебное Заведение(вуз)на информатико- математический факультет, кафедра: навыки работы с вычислительной техникой.
Пусть лет до 15 лучше книжки умные читает. И в школе хорошо учится. (Если, конечно, ему самому не невтерпеж).
Лично я бы посоветовал капнуть в сторону логического мышления!
Давать интересные и простые задачи на логику.
Допустим: Нужно поджарить котлету, а для этого нужно купить мясо в магазе, сделать фарш, зажечь газ на плите, поставить сковороду и т.д.
Такие задачи научат логически мыслить.
Далее, а лучше параллельно давать читать соответствующую литературу. Какой именно язык начать тут даже не могу подсказать, я столкнулся с бейсиком в 6м классе, примерно на полгода, потом в колледже 3года паскаля, потом был делфи года 1,5-2, потом пхп и прочие языки.
Раз хорошо владеет с компом, поставьте ему на какую-нить железяку Unix в нем его логика и проявится + начитается много инфы в нете по тому как что устанавливать на него. быть может и перейдет на программирование на С(#,++) и прочие версии С :)
Но логика в программирование, на мой взгляд, это самое главное, если этого нет, то ничего путного не получится. Посмотри сам на вопросы на форуме, кто их и как задает, и что за вопросы. Без логики ребята садятся программировать :)
у меня все
Так что тут либо самообучение, либо отдать в колледж там его натаскают преподы. В питере могу подсказать такой. Там отличные преподы по програмимрованию и сетям.
– Artem Apr 27 '12 at 06:29Ну тогда давай ему задачки сам, напиши ему что-нибудь интересное. Кстати было бы, я считаю неплохо, дать ему попробовать понять принцип создания структур БД - это логика на "ура"!
– Artem Apr 27 '12 at 08:38Disclaimer: ничего не понимаю в воспитаниях детей. Но в книжном шкафу у меня в детстве было чего почитать.
Литературу в доступном месте держите, чтобы ее было видно. Немного, чтобы глаза не разбегались, но с разными подходами, чтобы если одна «не пойдет» всегда была альтернатива. Не стоит держать только примтивный уровень «бейсик для чайников за 21 день» — более фундаментальным вещам типа SICP тоже найдется место. По крайней мере, я, помнится, будучи младшей школотой, листал и достаточно «серьезный» научпоп — в силу отсутствия образования понималось все смутно и ограниченно, но читать это никак не мешало — интересно же было.
Заинтересуется — сам увидит, откроет, прочитает, попробует и так далее во все тяжкие. Не заинтересуется — как известно, насильно мил не будешь.
По крайней мере, мне никогда ничего не навязывали и даже, в общем-то, не предлагали. Отец собрал компьютер (ZX Spectrum 48k), показал в духе «смотри какую штуковину собрал!» и все. Сомневаюсь, что если бы мне навязывали с этим возиться, мне бы было это интересно.
Про Лого все уже забыли? А язык, тем не менее, мощный. И мозги не калечит, как всякие бейсики-паскали.
len('...........') в питоне. copy-paste однако.
– alexlz
Apr 27 '12 at 11:10
http://dl.gsu.by/
Много задач для разного уровня. Благодаря этим курсам и некоторому вмешательству преподавателей, школьники прекрасно усваивают материал. Смысл заключается в том, чтобы решать сотни легких задач и посложнее. Также в том, чтобы научиться самостоятельно работать. В общем, ориентировано на большое количество практики.
Приучить к чему-то гиблое дело, если вы пробуете, а он не хочет, возможно его призвание в чем-то другом. Попробуйте разные виды спорта, музыкальное образование, может быть театральный кружок. Он сам определит, что ему нужно, но показать должны вы - потому что дети сами не часто пробуют, о существовании каких-то направлений они могут просто не знать, либо знать, но иметь мнение, что они не интересные
Не секрет, что в школе и университете наиболее хорошо усваиваются те предметы, преподаватели коих являются фанатами данной области и буквально заражают учеников интересом к данным предметам. В связи с этим, если Вы хотите, чтобы Ваш ребенок программировал,- рассказывайте ему побольше интересных моментов из Вашего опыта программирования доступным языком, чтобы он мог принимать участие в дискуссии.
Не маловажную роль играет так же тип восприятия ребенком информации. Есть тип людей, для которых звуки и речь являются самым доступным видом информации - аудиалы,- дискуссии на тему программирования вполне смогут их заинтересовать. Однако в процентном соотношении большинство - визуалы,- изображение воспринимается ими легче, и если Ваш ребенок относится к этому типу, его более заинтересует, если Вы сможете показать ему программирование, его результаты, отвечая на его вопросы - рисовать схемы и приводить визуальные примеры, которые можно представить (к примеру, обьяснять ТОЭ можно на примере воды, текущей по трубам).
Можно попробовать заинтересовать ребенка программируемыми игрушками, коих сейчас обширное количество по доступным ценам, к примеру такими, - я подобный вариант брату покупала - заинтересуетесь не меньше ребенка и будете вдвоем с ним монстрика ваять :)
Не стоит ему навязывать программирование. Если он сам спросил как это и что это, то другой вопрос.
Я учился так:
Но опять же -- я учился по наитию. Меня лично никто не обучал. Я все искал С.А.М.
Наткнулся недавно на такую статейку: Learnable programming
Она меня очень заинтересовала своей наглядностью, я почти не читал, а просто смотрел, как люди просто передают алгоритмы визуально. Меня это сначала задело лишь на уровне реализации такого «ядра», которое может так просто представлять «расшифровку» кода. Обычно мне такое не по нраву, но здесь — понравилось.
Потом каким-то образом я попал на сайт khanacademy.org (в вашем случае будет интересен раздел https://www.khanacademy.org/cs/tutorials/programming-basics), где как оказалось, можно научиться очень-очень многому, что связано с основами инженерии. Этот ресурс отличается от других тем, что здесь самое главное — наглядность. Посмотрите на «карту знаний».
Я нашел очень много того, что упустил/проспал/пропасовал на парах. Теперь-то я точно завистую и сам тоже подучусь :)
Ребёнок не хочет - не учить. Всё равно толку будет ноль. Впрочем можно разве что только подтолкнуть: задается вопрос - "Хочешь сам сделать такую игру/сайт, только лучше" - иногда работает
ребенку нужно во всем давать возможность себя попробовать: и в футболе, и в танцах, и в творчестве, и в программировании....а там он сам вам подскажет, что ему больше нравиться и к чему у него склонности...нельзя навязывать детям то, что хочешь делать сам!!!
Можно дать и другие советы: например, не заводить детей, если не знаешь, как их воспитывать.
Человек задал конкретный вопрос, не надо подозревать егов том, что он глупее вас.
– neofit Aug 29 '13 at 11:29Теория "ребенок цветок" - пусть делает что хочет, к чему у него есть склонности тем пусть и занимается
Теория "ребенок чистый лист бумаги" - ребенок вырастет тем кого из него воспитали.
Я придерживаюсь 2-й теории. Г-жа Булавина, очевидно, сторонник 1-й теории. Я прекрасно помню как в меня "вбивали" музыку, математику и физику, чуть позже финансы, еще чуть позже менеджмент. Получилось вроде неплохо :) - не жалуюсь. А те мои сверстники которые росли "как цветы" - не буду комментировать...
– Barmaley Aug 29 '13 at 13:20Моими первыми книгами по программированию были толстенные тома по Visual Basic. Я бы и сейчас продолжал им заниматься, но маловат он уже для меня, не расширяют его, заточен изначально под мелкие учебные программки. Потом были книги по html. Много книг. Все это было безумно интересно. Ходил на бесплатные компьютерные курсы. Затем начали изучать Pascal в физмат лицее в классе информатики. Вот там уже были сложные алгоритмы, но с ними тоже справлялся на ура. С тех пор много воды утекло, многое было опробовано, а сейчас остановился на C# из-за его сильной схожести с Pascal, который я отлично понимал. К слову, изучение С/С++ в университете было для меня самым неблагодарным делом, и это стало худшим моим опытом в программировании. Начинать надо с того, чтобы ребенок сам взял самое простое обучающее пособие, будь то фильм или брошюра, и досканально освоил его, чтобы уже не мог в этой области наступить на грабли, а дальше уже сам сможет ориентироваться.
но маловат он уже для меня, не расширяют его, заточен изначально под мелкие учебные программки.
Ежели мне не изменяет склероз, то Рацональная Рожа (Rational Rose) на VB и написана. Когда-то было культовое (среди ООПеров) приложение. И не маленькое.
– alexlz Aug 30 '13 at 00:28Я бы сказал так: если у Вашего ребёнка есть тяга к кодингу, то он вполне может разобраться сам! Не нужно навязывать ему это силой! По моему мнению, пусть лучше уж картоху на огороде копает.
Мне самому 14 (в принципе, это легко определить по моим тупым вопросам :) ), я очень ленив, но смог побороть лень и начал кодить под Android в июле этого года. В итоге имею кучу утилит собственного производства и одну популярную игру в топе гугл плея (название не скажу, ибо здесь сие творение очень не оценят). Я даже не заметил, как постепенно научился кодить (наверно благодаря ХэшКоду). Самое главное для меня при кодинге - лучше хороший ум и соображалка, чем быстрая скорость печати и принцип "расслабься, это надолго".
Я в 6-7 лет определился кем хочу стать, конечно специальность я в то время не выбрал :), но уже конкретно отвечал на вопросы кем ты хочешь стать? - компьютерщиком :) В лет 10 я уже определился что буду писать прикладные программы. Учился писать код, бегал в компьютерные клубы, читал литературу и практиковался. Вскоре я понял, web это моё!) Сначала html&css, потом PHP&JavaScript. Сейчас мне 17 и на PHP пишу года 4 точно, помимо этого, иногда втыкаю в СИ. Кстати, учился я в школе так себе - 3,4. Вечно сидел и мечтал на уроках, ну и времени не было учить что-то дома, приходил что-то вечно писал. Сколько себя помню, играл в пару игр и через пару дней удалял. Всегда казалось что игра - пустая трата времени.
Вдогонку:
-- Ты суслика видишь?
-- Нет.
-- И я -- нет. А он есть.
(там интересные бенчмарки)
– alexlz Feb 23 '13 at 06:44Почему-то кажется, что пишите "для души", а не "что вам хочется" за деньги.
– avp Feb 23 '13 at 09:14А не лучше отправить его на футбол/борьбу/танцы/ещё куда-нибудь? Может не стоит в таком возрасте лишний раз портить ему зрение компом и забивать мозг технологиями, которые 3 раза поменяются до того, как он повзрослеет?
Можете назвать хоть две-три действительно новые, которые появились за последние 10 лет? (не то, чтобы поменялись, а просто появились)?
– avp Mar 11 '13 at 20:06Меня именно игры привели к этому.
Правда не уверен что современные компьютерные игры могут подтолкнуть к программированию.
Я начинал с dendy, sega.
Был компьютер клавиатура по моему российский, где можно было заставить появляться на экране Марио и двигаться в разных направлениях, с указанной скоростью.
Еще помнится была электрическая иностранная игрушка с пружинами, со всякими трансформаторами, схемами электрической цепи. И книжка где говорилось, что куда подключить чтобы создать звук самолета, что куда чтобы лампочки мигали в определенном порядке.
Правда не уверен что современные компьютерные игры могут подтолкнуть к программированию
Могут. Меня подтолкнул Stalker.
– nitrocaster Feb 23 '13 at 05:43В 10 лет ещё рановато таким заниматься, но если есть бурное желание...
Microsoft есть книжка c# для школьников. Думаю C# очень прост в изучении и понимании, т.к. сам преподаю его старшеклассникам.Репетитора на дом можно пригласить...
дети не будут сами читать сложную книжку. А книг комиксов по программированию на русском не встречал. (нарпимер как здесь http://omega-it.blogspot.ru/2009/03/blog-post.html)
Культура разработки может сразу быть заложена.(если препод адекватный)
Математике учат, и ничего.
Репетитор может сэкономить много человеко-месяцев, за 1 минуту объясняя то, что ребенок может месяцами искать или делать.
Ребенок может скрытно хотеть учится, но не знать об этом.
дети не будут сами читать сложную книжку
Я наверное был ненормальным ребенком:) Лет в 10 мне например были интересны книги "ЭВМ своими руками", "Посвящение в радиоэлектронику", само собой книги по ZX Spectrum... Думаю на этом форуме я не один такой.
– insolor Aug 29 '13 at 08:25