OberonCore
https://forum.oberoncore.ru/

Лебедь, Рак и Щука
https://forum.oberoncore.ru/viewtopic.php?f=7&t=43
Страница 1 из 1

Автор:  starant [ Четверг, 01 Декабрь, 2005 11:04 ]
Заголовок сообщения:  Лебедь, Рак и Щука

Несколько лет назад я захотел научиться программировать. Просто было интересно:
как научить такую железяку как компьютер выполнять твои команды? После нескольких часов игры в какую-нибудь компьютерную
игрушку задавал себе вопрос: а чем я хуже, неужели я не смогу создать подобную вещь?
Дальше, поход в библитеку... а здесь... пустота. Я не нашел ни одной книги, которая бы учила составлению программ.
Что-то нашел по БЕЙСИКУ и то для каких-то совдеповских компьютеров. В общем, с горем пополам
запустил КУБЕЙСИК и запустил простейшую программку, уже не помню что она делала.
Дальше, столкновение с ПАСКАЛЕМ. Не просто столкновение, а разрушительный удар.
Непонятные названия, какие-то разделы, объявления - это ПАСКАЛЬ после БЕЙСИКА.
Учил ПАСКАЛЬ просто по ужасной книге - в ней давалось определение оператора и дальше шёл пример программы.
В ней не объяснялось как устранять ошибки, как работать с отладчиком, что означают сообщения, которые выдавал компилятор.
С потом и кровью мне удавалось откомпилировать программу, учился только на своих ошибках.
Где-то с двадцатой удачно компилированной программой стало что-то проясняться.
Дальше стало гораздо легче. Через три года познакомился с Дельфи, но не мог понять, почему бы
не связать строковую переменную с полем ввода. Измени, например, значение переменной - поменлось текстовое поле,
поменял бы что-то в поле - изменилось значение переменной.
Ну, ладно кое-как разобрался. После Дельфи познакомился с Питоном - теперь я понял:
изучи ПАСКАЛЬ, а другой язык возьмешь с такой-же легостью как и пересадка с велосипеда на мотоцикл.
Сейчас книжек по программированию просто куча, однако, "воз и ныне там". Я не нашел ни одной, которая бы учила
САМОСТОЯТЕЛЬНО составлять правильные алгоритмы."Искусство программирования" Кнута для новичка, что
высшая математика для первоклассника. Основная мысль, которая в них наблюдается -
делай как "я" и будет все прекрасно. Ещё ужаснее, когда половина книги посвящена изучению среды разарботки, а не составлению алгоритмов.
И ещё парадокс: никто не учит методике составления алгоритмов - программы берутся из пустоты.
Что будет дальше?

Автор:  Anton [ Четверг, 01 Декабрь, 2005 13:07 ]
Заголовок сообщения: 

А как же классика в лице "Алгоритмы и структуры данных" Н.Вирт :D

Автор:  Anton [ Четверг, 01 Декабрь, 2005 13:22 ]
Заголовок сообщения:  Еще почти в тему

Почти в тему. :)

На одном форуме (Clarion) был задан вопрос. "Как программировать базу данных?" Ответ был дан примерно в том же духе. "Берешь программатор и программируешь, программируешь, программируешь" :D

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

А когда уровень владения языком как у Виктора Степановича :) "Эт сам, мы тут вот" О чем может идти речь? Я когда-то детей учил азам программирования. Так вот пришлось тратить несколько занятий, на то чтобы научить их развернуто описывать русским языком те явления жизни которые им кажутся вроде как понятными. А иначе условные и циклические операции (не говоря уж о каких то более сложных проектных схемах, как например "событийное управление") остаются для них голыми абстракциями.

Автор:  А.П. [ Четверг, 01 Декабрь, 2005 15:04 ]
Заголовок сообщения:  Есть такая проблема - учить алгоритмизации с нуля

Уровень учебника должен соответствовать математическому уровню и уровню общего развития обучаемого. Учить началам алгоритмизации пятиклассника, девятиклассника и первокурсника по одной и той же книжке, видимо, невозможно. Для этих категорий должны быть разные книжки. Значительный объем их должны составлять формулировки доступных задач, приемы построения опорных схем ("разрисуем задачу" говорю я своим ученикам, зачитав текст задачи), наброски идей решений, подробный расклад решений на русском (национальном) языке с пошаговым переводом на ЯП, деление задачи на подзадачи. Обязательно должно быть присутствовать множество идеально выписанных, прокомментированных решений нескольких сотен задач и примеров, начиная с самых элементарных типа "Hello, world!". Попутно должны быть рассмотрены приемы управления средой программирования и борьбы с ошибками, привиты навыки внимательного анализа текстов задач, экономии физических усилий (копирования фрагментов, быстрого набора конструкций, отката, подбора подходящего прототипа, использования складок и т.п.), обращения к готовым алгоритмам.
Написать хорошую книжку-самоучитель (допустим, под КП/ББ и конкретную категорию учащихся) - очень кропотливая и очень трудоемкая задача. От писателя требуется высокая квалификация в нескольких областях. А писателю нужна ясная перспектива с финансированием и гарантией публикации.
Вот и имеем состояние литературы по алгоритмизации... далекое от желаемого начинающими программистами.

Автор:  Илья Ермаков [ Четверг, 01 Декабрь, 2005 17:41 ]
Заголовок сообщения: 

Есть хороший задачник по программированию А. Шеня. Сейчас он, кстати, переиздан. У меня есть старое издание в компьютерном варианте. Очень хорошая вещь, рассматриваются на примерах как начальные, так и серьезные алгоритмы (и синтаксичекий разбор, и комбинаторные задачи, и много чего еще).

А при обучении школьников еще очень полезно регулярно показывать "вживую", как пишутся программы. Не рассказывать о решении, а специально брать задачу, которую еще не решал, включать проектор (если он, конечно, есть), и на глазах у них составлять. Размышляя вслух, исправляя, комментируя. Главное, чтобы у преподавателя был хороший отточенный стиль, большой опыт программирования, и каждый свой шаг он подробно объяснял - почему сделал так, а не иначе.

Автор:  Anton [ Четверг, 01 Декабрь, 2005 17:55 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Есть хороший задачник по программированию А. Шеня. Сейчас он, кстати, переиздан. У меня есть старое издание в компьютерном варианте.

А можно мне его? :)

Автор:  Илья Ермаков [ Четверг, 01 Декабрь, 2005 18:08 ]
Заголовок сообщения:  Re: Еще почти в тему

Anton писал(а):
А иначе условные и циклические операции (не говоря уж о каких то более сложных проектных схемах, как например "событийное управление") остаются для них голыми абстракциями.

Вы не поверите, на том диске для школ от 1С-Microsoft, о котором я в соседней ветке тут писал, обучение языку Visual Basic начинается с ООП и модели событийного программирования. Потом идет изучение кликанья мышкой по формам. Ну, на 15 уроке (я не шучу!) обясняется оператор присваивания. Дальше 3 урока - ветвление, цикл, подпрограммы. Все. Курс окончен. Далее идет переход к изучению 1С Предприятие и Борланд Дельфи (На 2-м занятии там пишется рисование на канве формы - это, типа, так освоили машинную графику, а на 10 занятии школьникам предлагается программировать приложение баз данных. Ну нет, не через SQL, конечно, это так низко ведь, фи... Покидать мышкой контролы на формы под умные слова о первичных и внешних ключах, индексах и т.д.)

Автор:  Илья Ермаков [ Четверг, 01 Декабрь, 2005 18:09 ]
Заголовок сообщения: 

Вот он, задачник Шеня:
http://ermakov.metasystems.ru/shen.rar
Выкладывать на сайт не буду, все ж таки книга с авторскими правами, хоть и 96 года.

Автор:  Иван Горячев [ Пятница, 02 Декабрь, 2005 02:14 ]
Заголовок сообщения: 

В самостоятельном "дохождении" есть и свои плюсы. Человек совершенно точно знает, почему алгоритм получился именно такой, какой получился. Хотя конечно потом с удивлением обнаруживаешь, что твоё решение, которым ты так гордился, давно описано в какой-то книжке :)

Автор:  А.П. [ Пятница, 02 Декабрь, 2005 08:06 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
еще очень полезно регулярно показывать "вживую", как пишутся программы.


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

Цитата:
...Дальше 3 урока - ветвление, цикл, подпрограммы. Все. Курс окончен.


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

Перечисленное называют в целом "мелкой" техникой. Ей можно начинать учить в 5-6 классе. Тогда в старших классах реально будет перейти к "крупной" технике и сложным задачам олимпиадного уровня.

Автор:  Руслан Богатырев [ Пятница, 02 Декабрь, 2005 13:49 ]
Заголовок сообщения: 

Anonymous писал(а):
Илья Ермаков писал(а):
еще очень полезно регулярно показывать "вживую", как пишутся программы.


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


Нужны классические учебники по программированию. "Алгоритмы и структуры данных" Вирта в варианте 2004 г. (на Обероне) -- это лишь приближение к идеалу.

Цитата из выступления Вирта в Аархусе (2002) "Преподавание информатики: потерянная дорога":

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


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

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

Автор:  starant [ Пятница, 02 Декабрь, 2005 14:33 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Есть хороший задачник по программированию А. Шеня. Сейчас он, кстати, переиздан.

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

Автор:  starant [ Пятница, 02 Декабрь, 2005 14:40 ]
Заголовок сообщения: 

Anton писал(а):
А как же классика в лице "Алгоритмы и структуры данных" Н.Вирт :D

"Евгений Онегин" - тоже классика русской литературы, но учимся читать по Букварю

Автор:  starant [ Пятница, 02 Декабрь, 2005 14:52 ]
Заголовок сообщения:  Re: Еще почти в тему

Anton писал(а):
Почти в тему. :)

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

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

Автор:  sacred [ Пятница, 02 Декабрь, 2005 15:47 ]
Заголовок сообщения:  книги

Для совсем начинающих, я бы посоветовал книгу К.Боон "Паскаль для всех". Очень доходчиво написано, с картинками :). Никаких кликов мышкой, только по делу.

Автор:  Сергей Оборотов [ Суббота, 03 Декабрь, 2005 14:31 ]
Заголовок сообщения: 

Ivor писал(а):
В самостоятельном "дохождении" есть и свои плюсы. Человек совершенно точно знает, почему алгоритм получился именно такой, какой получился. Хотя конечно потом с удивлением обнаруживаешь, что твоё решение, которым ты так гордился, давно описано в какой-то книжке :)
В самостоятельном решении есть только один плюс. Когда нужно найти решение, которое не могло было известно никому. Иначе пустая трата времени.

Автор:  Иван Горячев [ Суббота, 03 Декабрь, 2005 16:35 ]
Заголовок сообщения: 

GUEST писал(а):
В самостоятельном решении есть только один плюс. Когда нужно найти решение, которое не могло было известно никому. Иначе пустая трата времени.

Есть такая штука - опыт. Получается как раз из бесполезных трат времени :)

Автор:  Сергей Оборотов [ Суббота, 03 Декабрь, 2005 21:37 ]
Заголовок сообщения: 

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

Автор:  Илья Ермаков [ Воскресенье, 19 Февраль, 2006 13:15 ]
Заголовок сообщения: 

ОТ МОДЕРАТОРА

Создал отдельную ветку "Школьный Алгоритмический Комплекс"

http://blackbox.metasystems.ru/forum/vi ... .php?t=118

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/