Re: Какой язык программирования нужно изучать в школе
От: Sinclair Россия https://github.com/evilguest/
Дата: 17.01.12 08:09
Оценка: 14 (7) +8
Здравствуйте, Аноним, Вы писали:
А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/
Лично меня к изучению программирования подвигла возможность нарисовать на экране.
Вот это и есть главный источник азарта: ты чего-то пишешь, какие-то буковки, а потом запускаешь — и оно рисует ракету!
К тому моменту, как у нас началась официальная информатика, я знал про неё больше, чем наша несчастная учительница. На практических занятиях я по полчаса тратил на написание арканоида (Ямахи, стоявшие тогда у нас, дисководами не комплектовались, так что сохранять было некуда), а остальные полтора часа играл в этот арканоид.

Имхо, ребёнку важно получить некоторый результат своего труда. И уроки программирования должны давать это почувствовать.
Это в моём возрасте можно получать удовольствие от того, что написал красивый, компактный, корректный и быстрый код. А в детстве главное — эффект.
Чтобы человек понимал, что программирование — это не какая-то заумь, типа "полтора года по 16 часов в день сидеть перед чёрно-зелёным монитором, чтобы в конце сказать: о, я понял, ошибка в строке 162117".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Какой язык программирования нужно изучать в школе
От: abibok  
Дата: 16.01.12 22:50
Оценка: 1 (1) +6 -1
Либо что-то совсем примитивное для иллюстрации работы циклов, условий и вызова функций. Либо вообще ничего. Учить школьников промышленному программированию — вредительство. Вместо этого их нужно учить прикладной информатике и общей компьютерной грамотности (интернет, офис, простейший графический редактор, умение пользоваться инфраструктурой — Wi-Fi, принтер, сканер, факс).
Re: Какой язык программирования нужно изучать в школе
От: dmitryalexeeff  
Дата: 17.01.12 04:28
Оценка: 1 (1) +1 -2
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


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


ИМХО, информатика сегодня разделилась на несколько слабо пересекающихся областей. Программирование также разделено:
1. Программирование от железа. Память, регистры, стек, указатели, ООП как набор готовых технических решений по организации кода.
2. Программирование от теории и алгоритмов. Математика, алгоритмы, языки с невообразимым синтаксисом, олимпиадные задачи, ООП как панацея и средство моделирования.
3. Прикладнейшее программирование. Веб, парсеры страниц, ддосеры, сайты на пыхе. Здесь неважны не технические подробности ни алгоритмика.


Для каждого направления есть наиболее подходящие языки.
1. от железа — C,C++,asm
2. от алгоритмов — какой-нибудь maple/mathlab, python
3. прикладнейшее — C#,жабка,рубин,пых
Re: Какой язык программирования нужно изучать в школе
От: BrainSlug Израиль  
Дата: 17.01.12 06:38
Оценка: +4
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/

Видится мне, что нужно решать насущные проблемы в образовании, а потом выбирать язык программирования. Также считаю, — изучение практики решения задач, алгоритмов и прочего, полезнее, чем изучение операторов ветвления, циклов, массивов в плохом преподавании в школе. Наивно думать, что какой бы то ни было язык в школе в ближайшее время будут хорошо преподавать (да и не нужно многим). Я думаю псевдокода с блок схемами достаточно. Главная задача научить неплохо думать.
.
бы
Re: Какой язык программирования нужно изучать в школе
От: Grizzli  
Дата: 03.09.13 13:24
Оценка: +1 -3
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Смысл изучения языка программирования в школе вообще не понятен, учитывая, что большей части деток все что светит с современными тенденциями — это потребление контента, из серии планшетов и игровых приставок.
Re[4]: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 03.09.13 14:25
Оценка: +4
Здравствуйте, Grizzli, Вы писали:

G>Здравствуйте, LaptevVV, Вы писали:


LVV>>Во интересно, а почему же математику дают "для общего развития" фиг знает сколько!

LVV>>Все эти уравнения, системы уравнений, синусы, косинусы... А раньше еще и производные с интегралами...
LVV>>А еще геометрия отдельно есть — во укак!

G>А я кстати, тоже не понимаю, зачем ее столько. У меня большинство знакомых с вышкой даже школьного курса математики не помнят(кроме первых классов 4, максимум 5), потому что после школы и универа "сдали на пять свои знания преподу", выдохнули, и в реально жизни вообще никак и нигде этих знаний не применяли(и применять не будут), за сим все забылось очень быстро.

Потому что пока детишки решают эти "не нужные никому задачи" — их мозги успешно развиваются.
Причем намного лучше, чем у "гуманитариев".
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Какой язык программирования нужно изучать в школе
От: Аноним  
Дата: 17.01.12 19:08
Оценка: 2 (2) +1
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


В школе изучать C++? Что, простите? Теперь что, каждый человек, закончивший среднюю школу, будет знать C++?

Сдается мне, это стеб.

Да и зачем всем подряд изучать программирование? Чтобы оно совсем превратилось в доширачную профессию?

При этом я думаю, что и так главная проблема в современном программировании — недоученные программисты. Да, давайте еще подбавим безграмотных самоучек.
Re: Какой язык программирования нужно изучать в школе
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 17.01.12 09:42
Оценка: +3
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


C/C++ на первом месте! При этом голосование про первый язык программирования. Я бы еще понял, если бы C/C++ был в качестве электива для особо продвинутых.

Вообще, не столь важен язык, а цели которые мы хотим достигнуть. А потом уже нужно выбирать, какой язык для достижения этих целей лучше подойдет.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[5]: Какой язык программирования нужно изучать в школе
От: Grizzli  
Дата: 03.09.13 14:53
Оценка: -2 :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Потому что пока детишки решают эти "не нужные никому задачи" — их мозги успешно развиваются.

LVV>Причем намного лучше, чем у "гуманитариев".

Честно? Фигня это все. Зачем домохозяйке развивать мозги? Зачем слесарю развивать мозги?
Re: Какой язык программирования нужно изучать в школе
От: SingleUseAccount  
Дата: 22.01.12 10:35
Оценка: 1 (1) +1
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Python будет в самый раз. Минимум синтаксических заморочек. Нет притянутости за уши к ООП, т.е. не надо для hello world создавать класс, чтобы спрятать в него какой-нибудь public static void main(String[] args). Нет возни с указателями.

На Python можно на пальцах показать и модульность (настоящую), и интроспекцию, и ООП, и потуги на функциональное программирование.
Re: Какой язык программирования нужно изучать в школе
От: dilmah США  
Дата: 17.01.12 04:57
Оценка: +1 :)
unix shell/awk
Re[5]: Какой язык программирования нужно изучать в школе
От: dmitryalexeeff  
Дата: 17.01.12 07:09
Оценка: -2
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, dmitryalexeeff, Вы писали:


D>>Здравствуйте, LaptevVV, Вы писали:



LVV>>>Во интересно, а почему же математику дают "для общего развития" фиг знает сколько!

LVV>>>Все эти уравнения, системы уравнений, синусы, косинусы... А раньше еще и производные с интегралами...
LVV>>>А еще геометрия отдельно есть — во укак!
LVV>>>Когда на практике достаточно уметь считать и таблицу умножения знать...
D>>Да, достаточно знать таблицу умножения, но назубок, чтобы и в 50 лет ночью разбуди — ответил.
D>>Функции, уравнения, косинусы — в том виде в котором даются в школе — только голову забивают.
D>>7*6, 5*8, 3*8 ?
D>>вспомнили или подсчитали по-быстрому?
LVV>Я помню с 3 класса, когда мы ее учили.
LVV>Но вы, наверное, никогда не преподавали.
LVV>Если всему в школе не учить — программистов не станет очень скоро...
LVV>Уже сейчас у нас 50% студентов отсеиваются послде 1-2 курса. И на специальности остается не более 10 человек. А в 90-х выпусков менее 45-40 не было. А было и по 50...
D>>>>Кто сказал что на информатике в школе нужно давать программирование? Пусть лучше в фотошопе коллажи делают. И интереснее и полезнее.
LVV>>>Вот как раз программирование очень практичный предмет — дает отличный навык планирования своих действий. А коллажи — это они и сами могут научиться...
D>>Сами не научатся, чтобы нормально работать в фотошопе нужно долго и нудно выполнять тупые практические задания, руку набивать. Детям лень этими вещами заниматься, скучно. Да и фотошоп это только пример чего-то более прикладного и приземлённого нежели программирование.
LVV>Вот навык программирования как раз более общепригодящийся, чем фотошоп или любые другие специализированные вещи.
LVV>Как таблица умножения...

А у вас вероятно красивые синие тентакли, милые фасеточные глаза и вы великолепно умеете рисовать картины в стиле кубизма. Приятно познакомиться.
Re: Какой язык программирования нужно изучать в школе
От: TimurSPB Интернет  
Дата: 17.01.12 08:45
Оценка: -1 :)
Nemerle!
Make flame.politics Great Again!
Re[4]: Какой язык программирования нужно изучать в школе
От: Grizzli  
Дата: 03.09.13 13:25
Оценка: +2
Здравствуйте, Alexey931, Вы писали:

A>Это-то вообще зачем? Детки прекрасно разбираются в своих смартфонах, не требуя, чтоб их обучали. Как раз уровень офиса-принтера-сканера, не говоря уж про Wi-Fi . Боюсь, тут речь идет о праве гордо заявлять: "не знаю вашего ?&*((& офиса, в школе не учили".


Нихрена они не разбираются. Запустить игрушку, — все что они разбираются. А почему вот тут диаложек от системы с ошибкой выскакивает — они даже не думают о этом, быстренько на ок жмут, и все. Уживаются с вирусами, а не удаляют их, ну и т.д. и тп.
Re: Какой язык программирования нужно изучать в школе
От: Аноним  
Дата: 03.09.13 14:21
Оценка: :))
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/

Немерле уже советовали?
Re[2]: Какой язык программирования нужно изучать в школе
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.09.13 15:47
Оценка: +1 :)
Здравствуйте, Grizzli, Вы писали:
G>Смысл изучения языка программирования в школе вообще не понятен, учитывая, что большей части деток все что светит с современными тенденциями — это потребление контента, из серии планшетов и игровых приставок.
Смысл изучения анатомии в школе вообще не понятен, учитывая, что большей части деток всё, что светит с современными тенденциями — это потребление медицинских услуг, из серии лапароскопии и остеопатии.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 17.01.12 06:12
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/

Давать нужно современный компонентный паскаль в замечательной среде: школьной сборке от Ткачева.
Школьное обучение не должно ставить цель профессионального обучения программиста.
Только основы — чтобы понять принципы.
И развитие мозгов. Программирование для этого подходит как нельзя лучше.
А в школьной сборке Ткачевым учтен опыт обучения пятиклассников!
Впервые в России (и как бы не в мире).
И достаточно успешный опыт, между прочим.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Какой язык программирования нужно изучать в школе
От: __kot2  
Дата: 17.01.12 04:16
Оценка: :)
Здравствуйте, Аноним, Вы писали:
А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/
можно любой давать, лишь бы препод его умел преподавать
а то я помню свое обучение в школе — контрольная, достаю шпоры. среди них на одной — поиск максимального элемента, на другой — минимального
Re[2]: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 17.01.12 06:46
Оценка: +1
Здравствуйте, BrainSlug, Вы писали:

BS>Здравствуйте, Аноним, Вы писали:


А>>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/

BS>Видится мне, что нужно решать насущные проблемы в образовании, а потом выбирать язык программирования. Также считаю, — изучение практики решения задач, алгоритмов и прочего, полезнее, чем изучение операторов ветвления, циклов, массивов в плохом преподавании в школе. Наивно думать, что какой бы то ни было язык в школе в ближайшее время будут хорошо преподавать (да и не нужно многим). Я думаю псевдокода с блок схемами достаточно. Главная задача научить неплохо думать.
Псевдокод — русский язык — уже реализован не менее чем в двух системах: Кумир и школьная сборка БлэкБокса от Ткачева.
Ткачев, кстати, и писал, что с русскими операторами школьникам проще и понятнее. А на английский — одной кнопочкой переключается...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Какой язык программирования нужно изучать в школе
От: Аноним  
Дата: 17.01.12 10:20
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Доктор ТуамОсес: "Нужно в первую очередь изучать теорию: алгоритмы, вычислительную математику, информатику и т.п."
Re: Какой язык программирования нужно изучать в школе
От: Pavel Dvorkin Россия  
Дата: 18.01.12 14:59
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Для большинства — никакой.
Для тех, кто имеет шансы стать программистом — Паскаль.
With best regards
Pavel Dvorkin
Re[3]: Какой язык программирования нужно изучать в школе
От: Alexey931  
Дата: 03.09.13 08:26
Оценка: -1
Здравствуйте, abibok, Вы писали:

A>Либо что-то совсем примитивное для иллюстрации работы циклов, условий и вызова функций. Либо вообще ничего. Учить школьников промышленному программированию — вредительство. Вместо этого их нужно учить прикладной информатике и общей компьютерной грамотности (интернет, офис, простейший графический редактор, умение пользоваться инфраструктурой — Wi-Fi, принтер, сканер, факс).


Это-то вообще зачем? Детки прекрасно разбираются в своих смартфонах, не требуя, чтоб их обучали. Как раз уровень офиса-принтера-сканера, не говоря уж про Wi-Fi . Боюсь, тут речь идет о праве гордо заявлять: "не знаю вашего ?&*((& офиса, в школе не учили".
Re: Какой язык программирования нужно изучать в школе
От: DmitrySpb79 Голландия  
Дата: 03.09.13 09:22
Оценка: +1
Помнится, мы в школе начинали изучать с Бейсика.
И кстати не зря, гениальный ведь язык был: простой, понятный, абсолютно ничего лишнего. Надо например, нарисовать окружность — ввел CIRCLE 100,100,100 и все, никаких циклов обработки сообщений и освобождений контекста устройства И что важно заметить, для компьютеров того времени и их возможностей, язык был вполне современный.

Имхо, современный язык должен быть:
— простым и позволяющий быстро получить результат с минимумом кода
— современным: ученик должен не писать нечто в древней консоли или самопальной среде, а иметь возможность получить результат в виде полноценной программы, которую можно запустить, показать друзьям и пр
— (как следствие предыдущего пункта) должна быть минимальная поддержка объектов, позволяющих использовать компоненты GUI хотя бы на базовом уровне (нарисовали кнопку, картинку, кликнули, добавился обработчик). Разумеется никаких конструкторов/деструкторов для начала, а что-то базовое и полуавтоматическое, типа есть объект label1, написали label1.caption = "Hello World", поменяли текст.

В общем, вырисовывается что-то типа Visual Basic, C# или что-то в этом роде, может с каким-то упрощенным интерфейсом, не знаю, существуют ли какие-то "школьные" версии.

Кстати. Ребенок в 7м классе, программирования у них нет совсем, на информатике только основы работы с ПК (файлы, папки, Ворд, Фотошоп и пр).
Re[4]: Какой язык программирования нужно изучать в школе
От: Vzhyk  
Дата: 03.09.13 13:47
Оценка: -1
03.09.2013 16:28, Grizzli пишет:

> А я кстати, тоже не понимаю, зачем ее столько.

Фетиш.
Posted via RSDN NNTP Server 2.1 beta
Re: Какой язык программирования нужно изучать в школе
От: alpha21264 СССР  
Дата: 03.09.13 15:02
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Лучше бы логику вернули. Обычную человеческую логику.

Течёт вода Кубань-реки куда велят большевики.
Re[2]: Вот именно так!
От: Basil2 Россия https://starostin.msk.ru
Дата: 03.09.13 15:39
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

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

S>Это в моём возрасте можно получать удовольствие от того, что написал красивый, компактный, корректный и быстрый код. А в детстве главное — эффект.

Я когда немного преподавал 11-14 летним ребятам Питон, тоже в качестве первой программы делал простенький междукомповый чат (благо на питоне там полстраницы кода для этого достаточно). Радости у пацанов были полные штаны!
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[6]: Какой язык программирования нужно изучать в школе
От: iLikeCookies  
Дата: 04.09.13 10:55
Оценка: +1
Здравствуйте, Grizzli, Вы писали:

G>Честно? Фигня это все. Зачем домохозяйке развивать мозги? Зачем слесарю развивать мозги?


Потому что это то, что нас делает homo sapiens'ами, со стремлением к постоянному развитию и с природной любознательностью. Именно поэтому, среди домохозяек так популярны кроссворды и сканворды, среди слесарей есть отличные шахматисты и начитанные интеллектуалы.
Re[5]: Какой язык программирования нужно изучать в школе
От: Grizzli  
Дата: 04.09.13 12:48
Оценка: :)
Здравствуйте, iLikeCookies, Вы писали:

LC>Рискнешь забрать своих детей после 4-5 класса из школы? Ведь читать, писать и считать могут, как ты писал ниже, мозги им развивать будешь шарадами и головоломками.


Если они будут ходитт в кружки, и ясно было бы, в каком направлении их развитие двигать — конечно "рискнул".
как понять, "рискнешь"??? риск в чем? Что в одном случае(ребенок будет учиться нафиг не нужным ему предметам), что в другом(ребенок не будет учиться не нужным ему предметам, а только тем в которых у него явные способности + предметы, кружыки и секции по интересу) — результат будет абсолютно одинаков — через 5(да что там, в общем случае — через пару лет) после школы — в голове по ненужным предметам — практически полный ноль(если память обычная средняя).
Re[2]: Какой язык программирования нужно изучать в школе
От: AlexRK  
Дата: 10.09.13 17:25
Оценка: +1
Здравствуйте, velkin, Вы писали:

V>Basic, Pascal, Delphi (производный от Object Pascal)

V>Не вижу преимуществ изучения в сравнении с Си и С++. Взять хотя бы C++, разве он сложнее, чем Pascal, если использовать его на школьном уровне? Всё тоже самое, только синтаксис другой.

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

V>С или C++

V>Это классика, которая не потеряла актуальность спустя много лет.

Начинать обучение с этой классики точно не стоит.

V>Python, Java

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

Пожалуй, да.
Какой язык программирования нужно изучать в школе
От: Аноним  
Дата: 16.01.12 18:14
Оценка:
Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/
Re: Какой язык программирования нужно изучать в школе
От: Аноним  
Дата: 16.01.12 19:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


В рамках общей програмы, древнию асемблероподобоную версию Бейсика, ну там где GOTO 110, GOSUB 2020 и т.д. и т.п.
Для продвинутых Паскаль, особо продвинутых оставить в покое, сами выучат что хотят.
Re[2]: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 17.01.12 06:10
Оценка:
Здравствуйте, dmitryalexeeff, Вы писали:

D>Здравствуйте, Аноним, Вы писали:


А>>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


D>Изучать программирование просто для общего развития глупо. Никто-же в школе не изучает на таком уровне электронику или сопромат. Вспомните, как на уроках физики дается транзистор? В обзорном уроке, только биполярный, про полевой молчат. О таких важных вещах как ПЛИС, микропроцессоры тоже особо не рассказывают.

Во интересно, а почему же математику дают "для общего развития" фиг знает сколько!
Все эти уравнения, системы уравнений, синусы, косинусы... А раньше еще и производные с интегралами...
А еще геометрия отдельно есть — во укак!
Когда на практике достаточно уметь считать и таблицу умножения знать...
D>Кто сказал что на информатике в школе нужно давать программирование? Пусть лучше в фотошопе коллажи делают. И интереснее и полезнее.
Вот как раз программирование очень практичный предмет — дает отличный навык планирования своих действий. А коллажи — это они и сами могут научиться...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Какой язык программирования нужно изучать в школе
От: dmitryalexeeff  
Дата: 17.01.12 06:26
Оценка:
Здравствуйте, LaptevVV, Вы писали:


LVV>Во интересно, а почему же математику дают "для общего развития" фиг знает сколько!

LVV>Все эти уравнения, системы уравнений, синусы, косинусы... А раньше еще и производные с интегралами...
LVV>А еще геометрия отдельно есть — во укак!
LVV>Когда на практике достаточно уметь считать и таблицу умножения знать...
Да, достаточно знать таблицу умножения, но назубок, чтобы и в 50 лет ночью разбуди — ответил.
Функции, уравнения, косинусы — в том виде в котором даются в школе — только голову забивают.
7*6, 5*8, 3*8 ?
вспомнили или подсчитали по-быстрому?

D>>Кто сказал что на информатике в школе нужно давать программирование? Пусть лучше в фотошопе коллажи делают. И интереснее и полезнее.

LVV>Вот как раз программирование очень практичный предмет — дает отличный навык планирования своих действий. А коллажи — это они и сами могут научиться...
Сами не научатся, чтобы нормально работать в фотошопе нужно долго и нудно выполнять тупые практические задания, руку набивать. Детям лень этими вещами заниматься, скучно. Да и фотошоп это только пример чего-то более прикладного и приземлённого нежели программирование.
Re[4]: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 17.01.12 06:40
Оценка:
Здравствуйте, dmitryalexeeff, Вы писали:

D>Здравствуйте, LaptevVV, Вы писали:



LVV>>Во интересно, а почему же математику дают "для общего развития" фиг знает сколько!

LVV>>Все эти уравнения, системы уравнений, синусы, косинусы... А раньше еще и производные с интегралами...
LVV>>А еще геометрия отдельно есть — во укак!
LVV>>Когда на практике достаточно уметь считать и таблицу умножения знать...
D>Да, достаточно знать таблицу умножения, но назубок, чтобы и в 50 лет ночью разбуди — ответил.
D>Функции, уравнения, косинусы — в том виде в котором даются в школе — только голову забивают.
D>7*6, 5*8, 3*8 ?
D>вспомнили или подсчитали по-быстрому?
Я помню с 3 класса, когда мы ее учили.
Но вы, наверное, никогда не преподавали.
Если всему в школе не учить — программистов не станет очень скоро...
Уже сейчас у нас 50% студентов отсеиваются послде 1-2 курса. И на специальности остается не более 10 человек. А в 90-х выпусков менее 45-40 не было. А было и по 50...
D>>>Кто сказал что на информатике в школе нужно давать программирование? Пусть лучше в фотошопе коллажи делают. И интереснее и полезнее.
LVV>>Вот как раз программирование очень практичный предмет — дает отличный навык планирования своих действий. А коллажи — это они и сами могут научиться...
D>Сами не научатся, чтобы нормально работать в фотошопе нужно долго и нудно выполнять тупые практические задания, руку набивать. Детям лень этими вещами заниматься, скучно. Да и фотошоп это только пример чего-то более прикладного и приземлённого нежели программирование.
Вот навык программирования как раз более общепригодящийся, чем фотошоп или любые другие специализированные вещи.
Как таблица умножения...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Какой язык программирования нужно изучать в школе
От: __kot2  
Дата: 17.01.12 06:45
Оценка:
Здравствуйте, LaptevVV, Вы писали:
LVV>Школьное обучение не должно ставить цель профессионального обучения программиста.
LVV>Только основы — чтобы понять принципы.
LVV>И развитие мозгов. Программирование для этого подходит как нельзя лучше.
я вообще считаю, что школа должна заинтересовать человека на самостоятельное глубокое изучение чего-либо. то есть она должна вкратце и интересно рассказать про разные области программирования, правда не в виде неделя — технология, а все-таки так, чтобы в голове хоть что-то осталось. ну а на спецкурсах уже можно и на должном уровне C/C++ толкать.
Re[2]: Какой язык программирования нужно изучать в школе
От: robesh Россия http://flyingcow.ucoz.ru
Дата: 17.01.12 08:02
Оценка:
Я так думаю, какой бы язык в школе не изучали в школе, после поступления в институт эти знания будут бесполезны. Когда я поступил на программиста чтобы научиться программировать выяснилось, что я уже должен был уметь это делать. Надо согласовать учебные программы чтобы потом первокурсникам не приходилось на парах по программированию помимо самого предмена изучать ещё и базовые составляющие.
Re[2]: Какой язык программирования нужно изучать в школе
От: __kot2  
Дата: 17.01.12 08:27
Оценка:
Здравствуйте, Sinclair, Вы писали:
S>К тому моменту, как у нас началась официальная информатика, я знал про неё больше, чем наша несчастная учительница. На практических занятиях я по полчаса тратил на написание арканоида (Ямахи, стоявшие тогда у нас, дисководами не комплектовались, так что сохранять было некуда), а остальные полтора часа играл в этот арканоид.
+1
аналогично, только про бомбермена
Re[2]: Какой язык программирования нужно изучать в школе
От: Аноним  
Дата: 17.01.12 10:34
Оценка:
Доктор ТуамОсес: "Ну если уж и изучать в школе какой-нибудь ЯВУ, то это должен быть какой-нибудь Пролог или ЛИСП. Т.е. языки для разработки искусственного интеллекта"
Re[2]: Какой язык программирования нужно изучать в школе
От: Denis Mingulov Финляндия http://denis.mingulov.com
Дата: 17.01.12 17:41
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Вот это и есть главный источник азарта: ты чего-то пишешь, какие-то буковки, а потом запускаешь — и оно рисует ракету!

S>Имхо, ребёнку важно получить некоторый результат своего труда. И уроки программирования должны давать это почувствовать.
Лого? Имеет смысл для начальной школы.
Re: Какой язык программирования нужно изучать в школе
От: anonymouss  
Дата: 17.01.12 19:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Офис с бейсиком. Многим в работе потом пригодится.
А для продвинутых Lisp в AutoCad'e. Дети любят рисовать
Re: Какой язык программирования нужно изучать в школе
От: klopodav  
Дата: 19.01.12 10:08
Оценка:
Для начала выскажу основной тезис, от которого можно дальше плясать:
Цель обучения в школе или вузе — не научить человека делать что-то конкретное, а научить его думать в правильном направлении.

Школы бывают разные, и программирование в них тоже можно изучать по-разному.

1) Для особо интересующихся (т.е. для спецшкол, специализированных классов в школе или каких-нибудь факультативных занятий)
Вот, например, последние два класса я учился не в обычной школе, а в специализированном лицее с уклоном в ИТ (было это в середине 90-х, ИТ были тогда не так развиты, но значительный интерес к ним уже наблюдался). Там применялся такой подход, который я считаю очень правильным.
Сначала программирование объясняли на простеньком эмуляторе. Этакая виртуальная машина, которая умела выполнять 16 команд и имела чуть-чуть памяти. Дальше изучали обычный Си — ваяли на нем всякие небольшие программки а-ля игра "жизнь". И под конец изучали ассемблер x86 (естественно, в самом упрощенном виде — основные команды, только самые простые программы). Такой метод обучения хорошо способствует пониманию "откуда ноги растут".

2) Для всех (т.е. для обычного класса в обычной школе)
Тут на уроках информатики основной упор делается не на программирование, а на работу на уровне пользователя. Т.е. по-хорошему ученик должен уверенно освоиться с такими понятиями как "приложение", "окно", "файл" и т.п., не пугаться компьютера и не воспринимать его как непонятную шайтан-машину.
И с языком программирования тут несколько сложнее. Давать какой-то "игрушечный" язык типа Лого с рисующей черепашкой? Плохо, потому что с реальной жизнью вообще никак не стыкуется. Какой-то "нормальный" язык типа Паскаля? Тоже не очень, потому что многие так сразу не поймут.
Плюс еще, что важно — чтобы ученик, придя домой, мог на домашнем компе попробовать что-то из того, что изучил в школе.
Поэтому, я считаю, для начального обучения программированию идеально подошел бы какой-нибудь скриптовый язык ОС. Соответственно, задания могут быть такими: насоздавали в ворде файлов, сохранили, потом написали скриптик, который эти файлы разложит по нескольким директориям по какому-то хитрому критерию. Плюс к этому написать какой-то "фреймворк" — напирмер, рисовалку, которую можно вызывать из командной строки с параметрами и таким образом из скрипта дергать графику.
Но какой именно скриптовый язык — тут проблема, все имеют свои недостатки. Досовские bat-файлы? Слишком мало возможностей; что-то путное на них сделать, конечно, можно, но приходится много думать и извращаться — как уложить свой алгоритм в ограничения синтаксиса. bash? Но линуксовые системы изучаются далеко не во всех школах, да и синтаксис довольно экзотический. WSH? Есть риск закопаться в API. PowerShell? Чересчур сложно для начинающих и далеко не везде есть. В общем, надо как-то выбрать меньшее из этих зол
А вот дальше, например, в следующем классе, после того, как ученик освоился и научился скриптики писать — можно уже давать Паскаль, Си или что-то подобное
Re[2]: Какой язык программирования нужно изучать в школе
От: Mamut Швеция http://dmitriid.com
Дата: 21.01.12 13:40
Оценка:
А>>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/
LVV>Давать нужно современный компонентный паскаль в замечательной среде: школьной сборке от Ткачева.
LVV>Школьное обучение не должно ставить цель профессионального обучения программиста.
LVV>Только основы — чтобы понять принципы.
LVV>И развитие мозгов. Программирование для этого подходит как нельзя лучше.
LVV>А в школьной сборке Ткачевым учтен опыт обучения пятиклассников!
LVV>Впервые в России (и как бы не в мире).
LVV>И достаточно успешный опыт, между прочим.

Опыт обучения детей учтен в Scratch'e. И я сильно сомневаюсь пользе компонентного Паскаля в како-либо сборке.


dmitriid.comGitHubLinkedIn
Re[3]: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 21.01.12 15:45
Оценка:
Здравствуйте, Mamut, Вы писали:

А>>>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/

LVV>>Давать нужно современный компонентный паскаль в замечательной среде: школьной сборке от Ткачева.
LVV>>Школьное обучение не должно ставить цель профессионального обучения программиста.
LVV>>Только основы — чтобы понять принципы.
LVV>>И развитие мозгов. Программирование для этого подходит как нельзя лучше.
LVV>>А в школьной сборке Ткачевым учтен опыт обучения пятиклассников!
LVV>>Впервые в России (и как бы не в мире).
LVV>>И достаточно успешный опыт, между прочим.

M>Опыт обучения детей учтен в Scratch'e. И я сильно сомневаюсь пользе компонентного Паскаля в како-либо сборке.

Дело в том, что означенную систему некоторые НЕ программисты, тусующиеся на oberoncore.ru, рассматривали. Пробовали.
И мнение сложилось такое. Да, интересно. Один день. Потом сильно надоедает, как яркая игрушка.
То есть, перебрали в этой системе с завлекательностью.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Какой язык программирования нужно изучать в школе
От: Mamut Швеция http://dmitriid.com
Дата: 21.01.12 16:05
Оценка:
M>>Опыт обучения детей учтен в Scratch'e. И я сильно сомневаюсь пользе компонентного Паскаля в како-либо сборке.
LVV>Дело в том, что означенную систему некоторые НЕ программисты, тусующиеся на oberoncore.ru, рассматривали. Пробовали.
LVV>И мнение сложилось такое. Да, интересно. Один день. Потом сильно надоедает, как яркая игрушка.
LVV>То есть, перебрали в этой системе с завлекательностью.

Были ли среди этих непрограммистов дети?


dmitriid.comGitHubLinkedIn
Re[5]: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 21.01.12 16:12
Оценка:
Здравствуйте, Mamut, Вы писали:


M>>>Опыт обучения детей учтен в Scratch'e. И я сильно сомневаюсь пользе компонентного Паскаля в како-либо сборке.

LVV>>Дело в том, что означенную систему некоторые НЕ программисты, тусующиеся на oberoncore.ru, рассматривали. Пробовали.
LVV>>И мнение сложилось такое. Да, интересно. Один день. Потом сильно надоедает, как яркая игрушка.
LVV>>То есть, перебрали в этой системе с завлекательностью.

M>Были ли среди этих непрограммистов дети?

У одного мужика, который сам пробовал и детям подсунул. Но дети были уже большие — выпускной класс...
Говорят — не фонтан. Интересно первое время, но надоедает быстро.
Может быть, надо было раньше пробовать? Классе в 5-6-7 максимум?
Ткачев вполне успешно пятиклашек обучал — богатый опыт описал на сайте информатики-21.
Он на основании обучения пятиклашек и сделал вывод о необходимости русского языка.
Собственно, школьная сборка появилась как результат этого опыта.
ИМХО, работа — отличная. А главное — в рамках одной среды = все в одном.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Какой язык программирования нужно изучать в школе
От: Mamut Швеция http://dmitriid.com
Дата: 21.01.12 19:21
Оценка:
M>>Были ли среди этих непрограммистов дети?
LVV>У одного мужика, который сам пробовал и детям подсунул. Но дети были уже большие — выпускной класс...
LVV>Говорят — не фонтан. Интересно первое время, но надоедает быстро.
LVV>Может быть, надо было раньше пробовать? Классе в 5-6-7 максимум?

Ну, Scratch как раз для достаточно маленьких детей, хотя у них на сайте написано 8-6 лет

LVV>Ткачев вполне успешно пятиклашек обучал — богатый опыт описал на сайте информатики-21.

LVV>Он на основании обучения пятиклашек и сделал вывод о необходимости русского языка.
LVV>Собственно, школьная сборка появилась как результат этого опыта.
LVV>ИМХО, работа — отличная. А главное — в рамках одной среды = все в одном.

Ну, возможно, хотя я достаточно скептически к этому отношусь.


dmitriid.comGitHubLinkedIn
Re: Какой язык программирования нужно изучать в школе
От: Аноним  
Дата: 02.09.13 20:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Поверьте моему опыту. В школе не нужно преподавать устаревшие языки программирования. От этого ученики начинают ненавидеть предметы информатики и вычислительной техники. Язык программирования должен быть не сложный и в тоже время, современным. Учеников нужно заинтересовать предметом и они его будут изучать с удовольствием.
Одним из лучший языков программирования для изучения в школе я считаю PureBasic, потому что он обладает всеми необходимыми качествами — простотой и увлекательностью для учащихся. Для него имеются компиляторы под многие системы в том числе и бесплатные (Linux) что актуально в наших школах.
Re[2]: Какой язык программирования нужно изучать в школе
От: Alexey931  
Дата: 03.09.13 08:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


А>В рамках общей програмы, древнию асемблероподобоную версию Бейсика, ну там где GOTO 110, GOSUB 2020 и т.д. и т.п.


В наши дни Питон для этого есть. Конструкция

>>> "улыбок тебе казак"[::-1]


Всем же понравится.
Re[3]: Какой язык программирования нужно изучать в школе
От: Grizzli  
Дата: 03.09.13 13:28
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Во интересно, а почему же математику дают "для общего развития" фиг знает сколько!

LVV>Все эти уравнения, системы уравнений, синусы, косинусы... А раньше еще и производные с интегралами...
LVV>А еще геометрия отдельно есть — во укак!

А я кстати, тоже не понимаю, зачем ее столько. У меня большинство знакомых с вышкой даже школьного курса математики не помнят(кроме первых классов 4, максимум 5), потому что после школы и универа "сдали на пять свои знания преподу", выдохнули, и в реально жизни вообще никак и нигде этих знаний не применяли(и применять не будут), за сим все забылось очень быстро.
Re: Какой язык программирования нужно изучать в школе
От: warhast Россия  
Дата: 03.09.13 14:58
Оценка:
2. Офисный бейсик — больше шансов что пригодится чем что-то С-подобное. Даже будущему менеджеру кассового аппарата может быть полезно знать, что распечатать сотню таблиц можно скриптом в пару строчек.
1. Питон + подборка библиотек, дающих возможность после однострочной инициализации что-то нарисовать примитивами, графики там построить и одной же командой без параметров все это распечатать. Пригодится и в учебе для математики/физики/химии (хотя видел полгода назад что задают в 8 классе по физике — не то анкета не то кроссворд, запомнилась задача о способах определения площади человеческого тела).
Re[6]: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 03.09.13 15:01
Оценка:
Здравствуйте, Grizzli, Вы писали:

G>Здравствуйте, LaptevVV, Вы писали:


LVV>>Потому что пока детишки решают эти "не нужные никому задачи" — их мозги успешно развиваются.

LVV>>Причем намного лучше, чем у "гуманитариев".

G>Честно? Фигня это все. Зачем домохозяйке развивать мозги? Зачем слесарю развивать мозги?

А ты откуда знаешь, кем дите станет?
Или ты заранее решил, что вот этот будет слесарем и ему математика ни к чему?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Какой язык программирования нужно изучать в школе
От: Grizzli  
Дата: 03.09.13 15:09
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>А ты откуда знаешь, кем дите станет?

LVV>Или ты заранее решил, что вот этот будет слесарем и ему математика ни к чему?

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

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

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

Если есть задача просто мозг развивать — можно шарады и головоломки преподавать. Ничем не хуже будет, с абсолютно тем же результатом.
Re[8]: Какой язык программирования нужно изучать в школе
От: LaptevVV Россия  
Дата: 03.09.13 15:18
Оценка:
Здравствуйте, Grizzli, Вы писали:

G>Здравствуйте, LaptevVV, Вы писали:


LVV>>А ты откуда знаешь, кем дите станет?

LVV>>Или ты заранее решил, что вот этот будет слесарем и ему математика ни к чему?

G>Не, ну давай забивать голову детям тоннами ненужных знаний. Этоже какой оверхед получается, и все — пшик, все усилия на ветер.

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

G>Детей нужно развивать — это несомненно. Но это нужно делать, постепенно, последовательно, добавляя, в зависимости от интересов и способностей факутальтивы и отправляя учиться в спец классы/заведения.

Это и делается плостепенно. Алгебру с геометрией начинают учить после начальной школы. А программирование вообще в 7-8 классе.
G>А преподавать начала анализа вообще ВСЕМ — это как из пушки по воробьям. Сотни часов потерянных, в жизни детей, и миллионы потраченного ни на что финансирования.
Начала анализа — это перебор, естественно. Это в СССР такое поветрие возникло — Колмогоров постарался.
G>Если есть задача просто мозг развивать — можно шарады и головоломки преподавать. Ничем не хуже будет, с абсолютно тем же результатом.
Читать, писать и считать на шарадах и головоломках не научишь.
Кроме того, имею опыт общения с программистами, воспитанными на "шарадах и головоломках" (олимпиадники).
Шарады и головоломки они решают, а на обычной рутинной программистской работе — тупят...
Так что все хорошо в меру.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Какой язык программирования нужно изучать в школе
От: iLikeCookies  
Дата: 04.09.13 10:46
Оценка:
Здравствуйте, Grizzli, Вы писали:

G>А я кстати, тоже не понимаю, зачем ее столько. У меня большинство знакомых с вышкой даже школьного курса математики не помнят(кроме первых классов 4, максимум 5), потому что после школы и универа "сдали на пять свои знания преподу", выдохнули, и в реально жизни вообще никак и нигде этих знаний не применяли(и применять не будут), за сим все забылось очень быстро.


Рискнешь забрать своих детей после 4-5 класса из школы? Ведь читать, писать и считать могут, как ты писал ниже, мозги им развивать будешь шарадами и головоломками.
Re: Какой язык программирования нужно изучать в школе
От: iLikeCookies  
Дата: 04.09.13 11:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Язык программирования вторичен. В школе не надо изучать ЯП (имеется ввиду досконально, зубрить стандарт С++, например). Нужно научить детей решать практические задачи и научить мыслить как computer scientist.

А что касается ЯП, то я думаю, что Python отлично подходит. Код на нем очень похож на псевдокод. Логичен и последователен. На нем можно демонстрировать простые алгоритмы, функции, ООП и даже ФП.
Re[7]: Какой язык программирования нужно изучать в школе
От: Grizzli  
Дата: 04.09.13 12:50
Оценка:
Здравствуйте, iLikeCookies, Вы писали:

LC>Потому что это то, что нас делает homo sapiens'ами, со стремлением к постоянному развитию и с природной любознательностью. Именно поэтому, среди домохозяек так популярны кроссворды и сканворды, среди слесарей есть отличные шахматисты и начитанные интеллектуалы.


ну не начала же анализа им преподавать? я и писал тут — головоломок и щахмат в общем случае хватит. А стать начитанным по какимто сторонним веткам знаний — всегда сам успеет.
Re[7]: Какой язык программирования нужно изучать в школе
От: Grizzli  
Дата: 04.09.13 13:00
Оценка:
Здравствуйте, iLikeCookies, Вы писали:

LC>Потому что это то, что нас делает homo sapiens'ами, со стремлением к постоянному развитию и с природной любознательностью. Именно поэтому, среди домохозяек так популярны кроссворды и сканворды, среди слесарей есть отличные шахматисты и начитанные интеллектуалы.


И вот опять же, ты очень правильно написал: сканворды, и кроссворды. Т.е. нет развития и любознательности. есть скука, и желание себя развлечь. Предложи позаниматься домохозяйке какой нибудь географией, математикой, историей, и прочим — она тебя нафиг пошлет — т.к. один раз в школе намучилась, и больше ей эта "стремление к развитию и любознательности" именно в такой вот форме — нафиг не нужно. И пойдет сериальчик смотреть, или там донцову почитает.
Re: Какой язык программирования нужно изучать в школе
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 09.09.13 01:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Лого, Scratch
Так и хочется спросить, что это такое?

Basic, Pascal, Delphi (производный от Object Pascal)
Не вижу преимуществ изучения в сравнении с Си и С++. Взять хотя бы C++, разве он сложнее, чем Pascal, если использовать его на школьном уровне? Всё тоже самое, только синтаксис другой.

С или C++
Это классика, которая не потеряла актуальность спустя много лет.

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

Если бы я учил детей, то в нынешних реалиях поставил бы Qt Creator с MinGW или GCC в зависимости от ОС, и давал бы им простейшие задания в процедурном стиле для проектов консольных приложений. Первые мои языки это Basic, Pascal, с них начинал я сам ещё в далёкие школьные годы, а было это в прошлом тысячелетии. Но в реальной жизни для тех, кто зарабатывает программированием деньги они не нужны. И не очень приятно натыкаться на ограничения в связи с отсутствием нужных библиотек и т.д.
Re[2]: Какой язык программирования нужно изучать в школе
От: uncommon Ниоткуда  
Дата: 09.09.13 03:39
Оценка:
Здравствуйте, Аноним, Вы писали:

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


Т.е. надо изучать Python.
Re[2]: Какой язык программирования нужно изучать в школе
От: DmitrySpb79 Голландия  
Дата: 10.09.13 06:15
Оценка:
Здравствуйте, velkin, Вы писали:

V>Если бы я учил детей, то в нынешних реалиях поставил бы Qt Creator с MinGW или GCC в зависимости от ОС, и давал бы им простейшие задания в процедурном стиле для проектов консольных приложений.


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

Среда разработки должна позволять ученику быстро и легко сделать полноценную программу, которую можно выложить в Инете, показать друзьям, использовать для каких-то задач и пр. Сейчас дети в 6-7 классе изучают Ворд и Фотошоп, и думаю, освоить простейшие операции с контролами в IDE труда не составит. А уж дальше, накидали формочку, повесили обработчик, и пишем те же любимые начинающими FOR и GOTO

Среды типа Scratch непонятны тем, что маленьким детям они не нужны (вряд ли ребенок в 8 лет заинтересуется программированием), а после 12-14лет проще уже нормальный язык программирования учить.
Re[3]: Какой язык программирования нужно изучать в школе
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 10.09.13 17:11
Оценка:
Здравствуйте, DmitrySpb79, Вы писали:

DS>Здравствуйте, velkin, Вы писали:


V>>Если бы я учил детей, то в нынешних реалиях поставил бы Qt Creator с MinGW или GCC в зависимости от ОС, и давал бы им простейшие задания в процедурном стиле для проектов консольных приложений.


DS>Не нужны никому сейчас консольные приложения. Hint: 21й век на дворе Ученик должен чувствовать практическую значимость своих уроков, иначе это будет некая абстракция, которая будет тут же забыта.


Вот именно поэтому бы и взял Qt Creator вместе с Qt SDK. В консоли бы дети попробовали простейшие инструкции, на вроде ветвления, циклов и тому подобных. А потом если надо они бы здесь же выбрали создать не консольный проект, а gui приложение и получили сам Qt SDK, и всю мощь современного программирования, т.е. возможность подключать c/c++ библиотеки алгоритмов.

DS>А уж дальше, накидали формочку, повесили обработчик, и пишем те же любимые начинающими FOR и GOTO


Надо только не забыть научить именовать обработчики событий. А то потом из детей вырастают взрослые дяди у которых в проекте button1, button2, button100500 и они будут доказывать, что так и надо делать ради "экономии времени". Я сам люблю формошлёпство, но в некоторых случаях лучше спроектировать и написать классы без него, ну или хотя бы не формошлёпить всё что под руку подвернётся.

И наверное не стоит особо заморачиваться на то, что людям покажется умение программировать незначимым. Обучая девочек всё равно получим по большей части бесполезный выхлоп. В лучшем случае училок, которые никогда не использовали свои умения на практике. И только мизерное количество станет практиками. Мальчики заинтересуются в гораздо большей степени, КПД выше. И естественно огромная часть из них тоже выберут совершенно другие специальности.

По прошествии огромного количества времени я вообще склоняюсь к тому, что учить нужно прежде всего грамотно излагать и записывать свои мысли. Кто-то говорит на английском, кто-то на русском, а кто-то на китайском, а мысли могут быть одними и теми же. Мы можем схватить и перетащить кнопку на форму, а можем нарисовать всё это на бумаге. В некоторых случаях второе может оказаться гораздо полезнее.
Re[3]: Какой язык программирования нужно изучать в школе
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.09.13 05:45
Оценка:
Здравствуйте, DmitrySpb79, Вы писали:

V>>Если бы я учил детей, то в нынешних реалиях поставил бы Qt Creator с MinGW или GCC в зависимости от ОС, и давал бы им простейшие задания в процедурном стиле для проектов консольных приложений.

DS>Не нужны никому сейчас консольные приложения. Hint: 21й век на дворе Ученик должен чувствовать практическую значимость своих уроков, иначе это будет некая абстракция, которая будет тут же забыта.

Как раз именно консольные лучше для обучения. Потому что в тексте можно представить информацию любой мощности простейшими средствами, доступными школьнику, и эта информация будет восприниматься каналами, которыми думают (простите за ламерские формулировки). В случае использования графических средств слишком много внимания будет уделено или качеству графики, или её отсутствию. В первом случае затраты сил будут неподъёмны для школьника, во втором — никакая "практическая значимость" не будет ощущаться.

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

IMHO, одной из причин нынешнего кризиса компетентности исполнителей в IT как раз является переход на графику в качестве основного интерфейса. Она отучает думать.

DS>Среда разработки должна позволять ученику быстро и легко сделать полноценную программу, которую можно выложить в Инете, показать друзьям, использовать для каких-то задач и пр. Сейчас дети в 6-7 классе изучают Ворд и Фотошоп, и думаю, освоить простейшие операции с контролами в IDE труда не составит. А уж дальше, накидали формочку, повесили обработчик, и пишем те же любимые начинающими FOR и GOTO


Ворд и Фотошоп — замечательно, но откуда идея, что это поможет создать программу? Для программы нужна в первую очередь идея и желание реализации, а названные инструменты слишком склоняют наплевать на программу, зато написать фанфик или сделать демотиватор из понравившейся картинки;(
Для написания программы надо очистить хотя бы ближнее поле сознания от подобных раздражителей.
The God is real, unless declared integer.
Re[2]: Какой язык программирования нужно изучать в школе
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.09.13 06:10
Оценка:
Здравствуйте, velkin, Вы писали:

V>Basic, Pascal, Delphi (производный от Object Pascal)

V>Не вижу преимуществ изучения в сравнении с Си и С++. Взять хотя бы C++, разве он сложнее, чем Pascal, если использовать его на школьном уровне? Всё тоже самое, только синтаксис другой.

Преимущества колоссальные за счёт именно того, что у средства нет неожиданных побочных эффектов, которые надо постоянно держать в сознании при программировании на C/C++. Берёшь любую реальную программу, и начинается: в Паскале, например, for i:=1 to len(a); в Си — for(i=1; i<=len(a); i++) — что такое i++? Почему оно тут работает? Когда начинаешь объяснять, что тут побочный эффект выражения... что это ещё за побочный эффект, и как можно вообще работать, например, с присвоениями, когда у них масса побочных эффектов, за которыми ещё надо уследить? А необходимость break в switch? А Duff's device? А ужасные средства работы со строками (в Си)? А препроцессор? А почему нельзя записать число как 0020? Чтобы понять Си, надо преодолеть одним махом (от начала обучения до формирования целостной картины) барьер, который значительно выше, чем для Паскаля или аналога, и если кому-то не хватает сил или времени его преодолеть — язык так и не будет освоен. У меня перед глазами много примеров, как люди не могли пройти этот барьер, и не было адекватного учителя, который бы провёл их медленно и аккуратно, как слепых котят. Да ассемблеры и то проще — там у каждого действия свой чётко расписанный документированный набор эффектов, и если кто-то вообще смирился с тем, что надо всё разжёвывать на уровне регистров — он это пройдёт.

V>С или C++

V>Это классика, которая не потеряла актуальность спустя много лет.

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

Я тоже освоил Си влёгкую (хотя мне, наверно, помог присутствовавший уже тогда фортраново-ассемблерный бэкграунд). Но сейчас дочка (12 лет) развлекается задачами с acmp.ru и аналогов, а жена ей помогает. У обеих минимальные проблемы с Питоном, но в случае Си они каждый раз спрашивают меня, как записать простой fscanf для ввода значения из файла, понимают и... забывают до следующего раза. Слишком сложные концепции не держатся долго в памяти, а для обычных задач им и эти указатели и особенности работы с ними, и особенно правила типа "а тут не может быть ничего меньше int! да, я знаю, что в аналоге применён short, но вам нужна ещё конверсия" — то, что вылетает из памяти сразу после сдачи. И это только один ближайший пример перед глазами.

V>Python, Java

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

Именно Python (не Java!!!) — один из лучших языков именно для обучения прикладного программиста. Простая структура (никакой тебе обязанности делать какие-то непонятные классы). Предельно высокоуровневые средства всех видов, от целых чисел (до 2**1016!!) до строк (никаких мучений с буферами!), простые функции и методы получить что надо. Ненавязчивое вхождение в ООП, когда постепенно раскрывается, что стоит "внутри" за каким-нибудь "{0} {1}".format(x, y), даже без необходимости писать своё (просто, стиль, когда создаётся объект, чем бы он ни был, а дальше используется дёрганием методов, становится очевидным). Удобные структуры данных для основных применений, нет необходимости лезть внутрь хитрых алгоритмов. Простой синтаксис без излишеств (в отличие от Perl или Java). Предельно логичная работа >99% средств, соответствующая стандартным ожиданиям (в отличие, например, от PHP, JavaScript, Perl).

V>Если бы я учил детей, то в нынешних реалиях поставил бы Qt Creator с MinGW или GCC в зависимости от ОС, и давал бы им простейшие задания в процедурном стиле для проектов консольных приложений.


Что нужны консольные для такого обучения, по крайней мере большинству — я согласен (см. предыдущее по времени сообщение в эту тему). А вот Си — в дальний лес, к самому старому и плешивому лешему.

V> Первые мои языки это Basic, Pascal, с них начинал я сам ещё в далёкие школьные годы, а было это в прошлом тысячелетии. Но в реальной жизни для тех, кто зарабатывает программированием деньги они не нужны. И не очень приятно натыкаться на ограничения в связи с отсутствием нужных библиотек и т.д.


В качественном учебном комплекте (а не собранном на коленке учителем в свободное время) не будет проблем с библиотеками.
The God is real, unless declared integer.
Re[3]: Какой язык программирования нужно изучать в школе
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.09.13 06:13
Оценка:
Здравствуйте, Sinclair, Вы писали:

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

S>Смысл изучения анатомии в школе вообще не понятен, учитывая, что большей части деток всё, что светит с современными тенденциями — это потребление медицинских услуг, из серии лапароскопии и остеопатии.

Ну, таки анатомия в нынешнем виде, когда подробно изучают скелет и потом галопом по Европам — всё остальное, таки имеет мало смысла. Её надо изучать комплексно и на живых примерах самих же учеников (с практическим тестом в виде массажа спины одноклассника, скрючившегося от сумки, перегруженной учебниками). Утрирую, конечно, но направление должно быть где-то такое: основное — понимание собственного тела в здоровой обстановке.
Но это же надо толкового учителя (не за 200$/месяц), оборудование (хотя бы где переодеться и искупаться)...
The God is real, unless declared integer.
Re[8]: Какой язык программирования нужно изучать в школе
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.09.13 06:25
Оценка:
Здравствуйте, Grizzli, Вы писали:

G>И вот опять же, ты очень правильно написал: сканворды, и кроссворды. Т.е. нет развития и любознательности. есть скука, и желание себя развлечь.


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

G> Предложи позаниматься домохозяйке какой нибудь географией, математикой, историей, и прочим — она тебя нафиг пошлет — т.к. один раз в школе намучилась, и больше ей эта "стремление к развитию и любознательности" именно в такой вот форме — нафиг не нужно. И пойдет сериальчик смотреть, или там донцову почитает.


Потому что есть эмоциональная реакция на силовое привитие. Но относится она только к тому материалу, который в школе. География на уровне расположения огородов в селе или поиска оптимальных автобусных маршрутов между базарами может быть освоена домохозяйкой лучше, чем коллективом профессоров. Аналогично с историей на уровне семейного альбома или "а этот балкон построил в 69-м году дед соседа Васи, который в прошлом году задавил собаку". Чем это не история?
The God is real, unless declared integer.
Re[2]: Какой язык программирования нужно изучать в школе
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.09.13 06:29
Оценка:
Здравствуйте, iLikeCookies, Вы писали:

А>>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/

LC>Язык программирования вторичен. В школе не надо изучать ЯП (имеется ввиду досконально, зубрить стандарт С++, например). Нужно научить детей решать практические задачи и научить мыслить как computer scientist.

Невозможно научить решать практические задачи, не используя для этого конкретные средства. Для математика высокого уровня этим средством может быть машина Тьюринга, но она всё равно остаётся ключевым элементом конкретики. А для массовой школы нужен конкретный язык, библиотеки и даже внешние устройства, и основной критерий выбора — хоть какая-то перспективность их (используются где-то на практике и не умрут в ближайшие 5 лет) и отсутствие существенных затрат на посторонние факторы в самих средствах.

LC>А что касается ЯП, то я думаю, что Python отлично подходит. Код на нем очень похож на псевдокод. Логичен и последователен. На нем можно демонстрировать простые алгоритмы, функции, ООП и даже ФП.


+100
The God is real, unless declared integer.
Re: Какой язык программирования нужно изучать в школе
От: elmal  
Дата: 11.09.13 06:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/

Мое ИМХО:
1) Первый язык программирования должен быть интерактивным. То есть интерпретатором. Набрал команду, увидел результат. ИМХО к компиляторам нужно переходить позднее;
2) При этом должна обеспечиваться достаточная гибкость и сам язык должен при необходимости поддерживать максимум современных конструкций.

Теперь смотрим.

Всякие бейсики 80-х годов, это отстой еще тот. Гибкости никакой, синтаксис ужасен, смотрится хуже ассемблера. Мне в свое время на ассемблере было легче писать, чем на этом бейсике.
Лисп и Scheme — не очень приятный синтаксис со скобочками. Пролог — слишком сложно для первого языка, сложно понять как это все внутри работает, да и даже при понимании от некоторых задач голову сломаешь. Лого — в принципе весьма неплохой интересный вариант.

Мое ИМХО — лого и питон главные кандидаты. Из компилируемых можно в принципе VB взять позже этих языков, по той причине, что они встроены в офис и возможно кому придется с ними потом работать в жизни.
Re[2]: Какой язык программирования нужно изучать в школе
От: elmal  
Дата: 11.09.13 06:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>В рамках общей програмы, древнию асемблероподобоную версию Бейсика, ну там где GOTO 110, GOSUB 2020 и т.д. и т.п.

Это называется издевательство над школьниками. Типа сами жрали кактус в свое время — пусть детишки тоже помучаются, чтоб им жизнь медом не казалась.
Re: Какой язык программирования нужно изучать в школе
От: jeeist  
Дата: 11.09.13 10:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Эпический ср^H^Hдискуссия на хабре: http://habrahabr.ru/blogs/study/136272/


Как-то сразу возникает вопрос — а какой процент способен понять 1) программирование с рекурсией (если не ошибаюсь, кто-то из гуру рассуждал на эту тему, что бОльшая часть программистов не способна) 2) "простое" производственное программирование 3) какой-то скриптинг 4) вообще что-то ?

Если хочется предподавать то, на что способен 1 да и не в каждом классе, то для этого — специальные курсы.

И даже если 50% способны понять, то что делать остальным?

Так что не совсем ясно, нужно ли вообще предподавать, а может лучше финансирование направить на какие-то факультативы, курсы, кружки?
Re[2]: Какой язык программирования нужно изучать в школе
От: jeeist  
Дата: 11.09.13 10:22
Оценка:
Лучше тогда просто какой-то образ мышления — например, то, чего не хватает у пенсионерок, чтобы разобраться в возможностях мобильного телефона.

Или как обращаться с ИТ-шником, как понимать его ход мыслей, как дать задание так, чтобы программист понял и при этом было решено бизнес-задание

Короче, обучать профессии системного и прочего аналитика.
Re[3]: Какой язык программирования нужно изучать в школе
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 11.09.13 22:46
Оценка:
Здравствуйте, netch80, Вы писали:

N>Преимущества колоссальные за счёт именно того, что у средства нет неожиданных побочных эффектов, которые надо постоянно держать в сознании при программировании на C/C++. Берёшь любую реальную программу, и начинается: в Паскале, например, for i:=1 to len(a); в Си — for(i=1; i<=len(a); i++) — что такое i++? Почему оно тут работает? Когда начинаешь объяснять, что тут побочный эффект выражения... что это ещё за побочный эффект, и как можно вообще работать, например, с присвоениями, когда у них масса побочных эффектов, за которыми ещё надо уследить? А необходимость break в switch? А Duff's device? А ужасные средства работы со строками (в Си)? А препроцессор? А почему нельзя записать число как 0020? Чтобы понять Си, надо преодолеть одним махом (от начала обучения до формирования целостной картины) барьер, который значительно выше, чем для Паскаля или аналога, и если кому-то не хватает сил или времени его преодолеть — язык так и не будет освоен. У меня перед глазами много примеров, как люди не могли пройти этот барьер, и не было адекватного учителя, который бы провёл их медленно и аккуратно, как слепых котят. Да ассемблеры и то проще — там у каждого действия свой чётко расписанный документированный набор эффектов, и если кто-то вообще смирился с тем, что надо всё разжёвывать на уровне регистров — он это пройдёт.


Давайте возьмём для примера цикл for. Не заглядывая в книжки я бы объяснил это так:

Существуют основные виды циклов:
1. for — цикл со счётчиком
2. while — цикл с предусловием
3. do while — цикл с постусловием

И кратко про цикл со счётчиком
for — ключевое слово языка C++ для обозначения цикла со счётчиком
дальше задаётся
(инициализация счётчика; условие выхода из цикла по счётчику; изменение счётчика)
и под конец повторяемая инструкция которая естественно заканчивается ";"
или стандартный блок повторяемых инструкций в фигурных скобках {} (прим. который можно использовать и без цикла)
подводных камней мне кажется не так много:
например, выражение условия пересчитывается каждый раз, то есть если это долго, может быть лучше создавать переменную до цикла и сравнивать счётчик с ней
или про изменение счётчика, использовать ++counter, если это надо, вместо counter++
можно, конечно, ещё рассказать про то, что этот вид цикла хорошо сочетается с итераторами, а можно не рассказывать, так как итераторы относятся к паттернам проектирования
ну и break тоже объяснить применительно к блоку инструкций в цикле

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

N>В качественном учебном комплекте (а не собранном на коленке учителем в свободное время) не будет проблем с библиотеками.


Как вам сказать. Предположим я ребёнок, побаловался консольными приложениями. Мозги мне это немного вправило. И вдруг мне это стало интересно. Захотел высокоскоростные графические интерфейсы, а не как в той же Java. Кстати, в Java иногда встречаюсь с очень продуманными программами, видимо общая концепция способствует, но как с ними работать если они тормозят и их не прокачивали на скорость. Потом захотел быструю отрисовку 2D или 3D графики, причём самому мне писать может быть и лень, а вот взять готовый движок другой дело. Может быть я захочу со временем работать со скоростной криптографией, скоростными tcp/ip серверами, скоростными видеопотоками, компьютерным зрением, управлять силовым оборудованием и так далее. Ключевая особенность это скорость раз, огромное количество готовых библиотек два.

Но в принципе я не настроен радикально, что надо начинать именно с С++. В конце концов всё сведётся к целям и задачам под который будет выбран язык так сказать по жизни. А основные принципы и синтаксис можно изучить на любом языке.
Re[4]: Какой язык программирования нужно изучать в школе
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 12.09.13 05:19
Оценка:
Здравствуйте, velkin, Вы писали:

V>Давайте возьмём для примера цикл for. Не заглядывая в книжки я бы объяснил это так:

V>Существуют основные виды циклов:
V>1. for — цикл со счётчиком
V>2. while — цикл с предусловием
V>3. do while — цикл с постусловием

Нет. Тут уже принципиальная методологическая ошибка (не для объяснения уже готовому программисту, а для начального обучения). Вы говорите про типовое использование для 99% случаев, и про переход от задачи (сделать цикл по счётчику) к её реализации (конструкция for). Но for — это не цикл со счётчиком! Это может быть циклом с двумя счётчиками:

for (i = 0, j = strlen(s) - 1; i > j; i++, j--) {
    t = s[i]; s[i] = s[j]; s[j] = t;
}


Это может быть циклом со счётчиком и дополнительным параметром:

for (i = 0, w = 1; i < 32; i++, w <<= 1) {
   if (a & w) { r = i; break; }
}


и ещё массой вариантов. И вообще не циклом, строго говоря (случаи использования do-while как групповых скобок в препроцессоре, while как замены цепочки проверок с goto на выход).

Далее, кто сказал, что for — это цикл со счётчиком, если while — может быть циклом со счётчиком?

i = 1;
while (i <= 1000) {
  a[i] = b[i];
  i++;
}


Проблема здесь та, что отображение конструкций абстрактно-алгоритмического уровня (таких, как "повторить для каждого элемента массива") на конструкции языка 1) неоднозначно, 2) вводит массу дополнительных деталей. И вот тут возникает проблема, когда обучаемый отклоняется от шаблона "сначала запомнить конструкцию целиком как штамп, освоить её и только потом начать разбираться в деталях". Если он... мнээээ... сильно умный, он запомнит глубинный смысл цикла for и будет применять его уже в школе таким образом, какой пугает учителя. Если он не способен разделить запоминание шаблона целиком и отдельных его конструкций в разные когнитивные акты (извините за высокий слог), то ему будет крайне трудно преодолеть этап "за деревьями леса не видно", а если ещё и будет учитель, которому лишь бы оттарабанить свои часы — не будет обучения. Как оно и происходит в типичном случае.

(А ещё страннее получается, если ученик уровнем выше — ему никто не говорит, что в том и ценность "ограниченных" конструкций, что их значительно сложнее сломать; а он сам обычно не в состоянии ещё оценить эту простоту. Именно отсюда берётся типовой школьный апологет Си, как я в 1990-м году)

В том полезность языков с более "прямым" отображением алгоритмической логики на языковую (как Паскаль по сравнению с Си), что этот этап в них проходится более линейно: идиома чётко соответствует цели. Уже закрепив это, можно приступать к следующему этапу — замене идиомы (например, с паскалевской на сишную) и дальше — превращению заученной идиомы в частный случай гибкой конструкции.
В случае обучения начиная с Си, приходится действовать в духе "вы сначала это запомните со всеми странными значками как есть, а затем мы будем постепенно развивать понимание, что же за этими значками стоит". А это уже типичный вариант плохого обучения иностранному языку, когда бьют по голове новыми конструкциями без внятного объяснения. В правильных школьных курсах иностранного новые слова, конструкции, методы вводятся очень медленно и исподволь, чтобы понимание не трескалось на ходу.

(А ещё лучше, конечно, в большинстве случаев использовать не for, а foreach, map(), list comprehensions и тому подобные средства. Но это уже как минимум STL, если в линии C++, а у неё свои проблемы — грамотно проецировать свою задачу на набор и сигнатуры применяемых функций это задача, требующая опыта и зубрёжки.)

V>И кратко про цикл со счётчиком

V>for — ключевое слово языка C++ для обозначения цикла со счётчиком
V>дальше задаётся
V>(инициализация счётчика; условие выхода из цикла по счётчику; изменение счётчика)
V>и под конец повторяемая инструкция которая естественно заканчивается ";"

Никакое из этих "естественно" не естественно для того, кто только начал учиться языку. Это загадочные слова, возникшие из ниоткуда и которые надо зубрить.

V>или стандартный блок повторяемых инструкций в фигурных скобках {} (прим. который можно использовать и без цикла)


И необязательность скобок — ещё одна убойная грабля. Не зря Вирт в потомках Паскаля сделал их обязательными, это резко сокращает проблемы при обучении — запомнить один вариант конструкции легче, чем несколько в зависимости от условия, которое далеко не всегда хорошо ловится глазами.

V>подводных камней мне кажется не так много:

V>например, выражение условия пересчитывается каждый раз, то есть если это долго, может быть лучше создавать переменную до цикла и сравнивать счётчик с ней
V>или про изменение счётчика, использовать ++counter, если это надо, вместо counter++

И это тоже! Но до уровня, на котором эти условия начинают играть заметную роль, ещё надо дойти.

V>Что касается Си, то в современном программировании это те же программисты драйверов. Я бы даже сказал, что использовать С++ строки тоже уже не совсем хорошо.


Назовите и опишите замену, пожалуйста.

N>>В качественном учебном комплекте (а не собранном на коленке учителем в свободное время) не будет проблем с библиотеками.

V>Как вам сказать. Предположим я ребёнок, побаловался консольными приложениями. Мозги мне это немного вправило. И вдруг мне это стало интересно. Захотел высокоскоростные графические интерфейсы, а не как в той же Java. Кстати, в Java иногда встречаюсь с очень продуманными программами, видимо общая концепция способствует, но как с ними работать если они тормозят и их не прокачивали на скорость. Потом захотел быструю отрисовку 2D или 3D графики, причём самому мне писать может быть и лень, а вот взять готовый движок другой дело. Может быть я захочу со временем работать со скоростной криптографией, скоростными tcp/ip серверами, скоростными видеопотоками, компьютерным зрением, управлять силовым оборудованием и так далее. Ключевая особенность это скорость раз, огромное количество готовых библиотек два.

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

V>Но в принципе я не настроен радикально, что надо начинать именно с С++. В конце концов всё сведётся к целям и задачам под который будет выбран язык так сказать по жизни. А основные принципы и синтаксис можно изучить на любом языке.


Нет, не на любом. Даже не впадая в маргинальные примеры (выучите-ка "основные принципы и синтаксис" на Форте... что, сложновато?), по описанному выше, я надеюсь, понятно, чего и где можно ожидать и к каким последствиям можно прийти.
The God is real, unless declared integer.
Re[5]: Какой язык программирования нужно изучать в школе
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 12.09.13 20:40
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, velkin, Вы писали:


V>>Давайте возьмём для примера цикл for. Не заглядывая в книжки я бы объяснил это так:

V>>Существуют основные виды циклов:
V>>1. for — цикл со счётчиком
V>>2. while — цикл с предусловием
V>>3. do while — цикл с постусловием

N>Нет. Тут уже принципиальная методологическая ошибка (не для объяснения уже готовому программисту, а для начального обучения). Вы говорите про типовое использование для 99% случаев, и про переход от задачи (сделать цикл по счётчику) к её реализации (конструкция for). Но for — это не цикл со счётчиком! Это может быть циклом с двумя счётчиками:

N>Это может быть циклом со счётчиком и дополнительным параметром:
N>и ещё массой вариантов. И вообще не циклом, строго говоря (случаи использования do-while как групповых скобок в препроцессоре, while как замены цепочки проверок с goto на выход).

Масса вариантов это как раз итераторы. Да и в целом мне думается не важно сколько счётчиков, пусть даже цикл бесконечен. Нельзя же всё так сразу взять и вывалить детям, которые вполне возможно не знакомы не только с синтаксисом конкретного языка, но и даже основными принципами работы алгоритмов.

N>Далее, кто сказал, что for — это цикл со счётчиком, если while — может быть циклом со счётчиком?


Существует функциональное назначение, наилучший способ использования конструкций. Когда люди читают код и видят цикл, они же заранее уже ждут от алгоритма заключённого в for одного поведения, а от while другого. Здесь дело не в эквивалентности кода.

N>В случае обучения начиная с Си, приходится действовать в духе "вы сначала это запомните со всеми странными значками как есть, а затем мы будем постепенно развивать понимание, что же за этими значками стоит". А это уже типичный вариант плохого обучения иностранному языку, когда бьют по голове новыми конструкциями без внятного объяснения. В правильных школьных курсах иностранного новые слова, конструкции, методы вводятся очень медленно и исподволь, чтобы понимание не трескалось на ходу.


Так никто не говорит, что нужно рассказывать сразу про всё. Почему если бы я начинал обучать других с Qt, то не стал бы давать им как первый проект GUI, а использовал бы консоль. Всё очень просто, в консоли можно начать с процедурного стиля и двигаться к функциональному, объектно-ориентированному, обобщённому. К примеру, если мы сразу начнём с Qt, то там многие проблемы решаются наследованием. И паттерны проектирования реализованы в объектно-ориентированной парадигме программирования. А к примеру в STL паттерны проектирования реализованы в парадигме обобщённого программирования, то есть в нашем случае шаблонами C++.

Мысль в том, что если начинать обучение в процедурной парадигме программирования, то использование того же Pascal не даёт преимуществ. И точно так же придётся запоминать синтаксис:
{} против begin end
= против :=

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

N>(А ещё лучше, конечно, в большинстве случаев использовать не for, а foreach, map(), list comprehensions и тому подобные средства. Но это уже как минимум STL, если в линии C++, а у неё свои проблемы — грамотно проецировать свою задачу на набор и сигнатуры применяемых функций это задача, требующая опыта и зубрёжки.)


Уровень STL это скорее итераторы в сочетании с контейнерами и алгоритмами. Причём если начнём с STL, то получается сразу перескакиваем на обобщённое программирование. Может быть со мной не все согласятся, но по мне это самая сложная парадигма программирования реализуемая C++, взамен она даёт наивысшую скорость при высокоуровневом программировании нисколько не уступающую в скорости низкоуровневому программированию, но детям то это зачем.

V>>И кратко про цикл со счётчиком

V>>for — ключевое слово языка C++ для обозначения цикла со счётчиком
V>>дальше задаётся
V>>(инициализация счётчика; условие выхода из цикла по счётчику; изменение счётчика)
V>>и под конец повторяемая инструкция которая естественно заканчивается ";"

N>Никакое из этих "естественно" не естественно для того, кто только начал учиться языку. Это загадочные слова, возникшие из ниоткуда и которые надо зубрить.


Да, надо зубрить, причём это касается всех языков программирования.

V>>или стандартный блок повторяемых инструкций в фигурных скобках {} (прим. который можно использовать и без цикла)


N>И необязательность скобок — ещё одна убойная грабля. Не зря Вирт в потомках Паскаля сделал их обязательными, это резко сокращает проблемы при обучении — запомнить один вариант конструкции легче, чем несколько в зависимости от условия, которое далеко не всегда хорошо ловится глазами.


V>>Что касается Си, то в современном программировании это те же программисты драйверов. Я бы даже сказал, что использовать С++ строки тоже уже не совсем хорошо.


N>Назовите и опишите замену, пожалуйста.


Зависит от используемой библиотеки, так как любые строки не являются встроенными типами. В моём случае при использовании Qt это была бы QString. Речь сейчас конечно не о Си, да и строки там имеют другой назначение.

N>>>В качественном учебном комплекте (а не собранном на коленке учителем в свободное время) не будет проблем с библиотеками.

V>>Как вам сказать. Предположим я ребёнок, побаловался консольными приложениями. Мозги мне это немного вправило. И вдруг мне это стало интересно. Захотел высокоскоростные графические интерфейсы, а не как в той же Java. Кстати, в Java иногда встречаюсь с очень продуманными программами, видимо общая концепция способствует, но как с ними работать если они тормозят и их не прокачивали на скорость. Потом захотел быструю отрисовку 2D или 3D графики, причём самому мне писать может быть и лень, а вот взять готовый движок другой дело. Может быть я захочу со временем работать со скоростной криптографией, скоростными tcp/ip серверами, скоростными видеопотоками, компьютерным зрением, управлять силовым оборудованием и так далее. Ключевая особенность это скорость раз, огромное количество готовых библиотек два.

N>Извините, всё описанное таки уже не школьный уровень. Тот, кто до этого добрался, получит столько нового материала для освоения, что по сравнению с ним даже замена языка будет мелочью.


В том то и дело, что мне сейчас любая смена языка не кажется чем-то важным. Гораздо сложнее менять библиотеки алгоритмов к которым привыкаешь.

V>>Но в принципе я не настроен радикально, что надо начинать именно с С++. В конце концов всё сведётся к целям и задачам под который будет выбран язык так сказать по жизни. А основные принципы и синтаксис можно изучить на любом языке.


N>Нет, не на любом. Даже не впадая в маргинальные примеры (выучите-ка "основные принципы и синтаксис" на Форте... что, сложновато?), по описанному выше, я надеюсь, понятно, чего и где можно ожидать и к каким последствиям можно прийти.


Имеется в виду на любом из предложенных (исключая Лого и Scratch, так как я о них ничего не знаю и судить не берусь).

И ещё один вопрос, стоит ли использовать IDE, или обучать детей на первых порах при помощи простейшего текстового редактора и компилятора. Я то, конечно, за IDE, но если так делать, в итоге получится другой программист. Как бы это сказать, может быть с меньшим уровнем самоконтроля.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.