Re[2]: Учебный язык программирования
От: LaptevVV Россия  
Дата: 08.11.12 12:12
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Мне кажется идейка с языком заведомо тупиковая и причиной тому недостаточная мотивация у студентов и необходимость давать кроме языка еще чтото.

1. Какой-то язык должен быть все равно.
2. Брать майнстримовский язык — значит:
— выделять минимально-необходимое для обучение подмножество;
— создавать для него собственные компилятор|интерпретатор.
Проще сделать с нуля...
I>Если глянуть на самые толковые буквари по программированию, навроде sicp, то заметно, что там идет подача материала не от языка, а от задач.
I>То есть, нужно подготовить набор задач, которые 1 интересны 2 актуальны 3 раскрывают возможности языка
1. Для студентов, которые СОВСЕМ НЕ ЗНАКОМЫ с программированием интересными являются задачи, намного превышающие их возможности. Например, написание игры с графикой...
2. Актуальность — понятие относительное. Вот например, актуальна задача оценивать качество кода программы.
Опять же студенты, не знакомые с программированием, не в состоянии это сделать даже за семестр.
3. Язык не должен быть сложным.
I>сам же язык нужно брать из мейнстрима, только попроще. Собственно с языком никогда не бывает сложностей, если есть хорошие задачи.
Еще как бывает — см. новый стандарт С++. И шаблоны того же С++...
I>Еще интересная идейка у мит, это подача материала на заранее заготовленых библиотеках. Т.е. студент не пишет полностью всю задачу, а дописывает имеющиеся.
Смотри книгу Бертрана Мейера "Почувствуй класс". Кто у кого спер идею?
Эта идея — развитие нашей разработки. В будущем. Держим в уме и не забываем.
Пока только фундамент, да и то еще не весь...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Учебный язык программирования
От: LaptevVV Россия  
Дата: 08.11.12 12:13
Оценка:
Здравствуйте, boot, Вы писали:

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


LVV>>Вы забываете все время, что народ учит "таблицу умножения"...


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

ЕЕ еще не было... Она появилась ПОСЛЕ него. Но раз уж она появилась — ее надо знать.
И не сравнивайте гения и студента 1 курса...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Учебный язык программирования
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.11.12 12:24
Оценка:
Здравствуйте, LaptevVV, Вы писали:

I>>Мне кажется идейка с языком заведомо тупиковая и причиной тому недостаточная мотивация у студентов и необходимость давать кроме языка еще чтото.

LVV>1. Какой-то язык должен быть все равно.
LVV>2. Брать майнстримовский язык — значит:
LVV>- выделять минимально-необходимое для обучение подмножество;
LVV>- создавать для него собственные компилятор|интерпретатор.

А почему готовый нельзя взять ?

I>>Если глянуть на самые толковые буквари по программированию, навроде sicp, то заметно, что там идет подача материала не от языка, а от задач.

I>>То есть, нужно подготовить набор задач, которые 1 интересны 2 актуальны 3 раскрывают возможности языка
LVV>1. Для студентов, которые СОВСЕМ НЕ ЗНАКОМЫ с программированием интересными являются задачи, намного превышающие их возможности. Например, написание игры с графикой...

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

У бертрана мейера тупиковая ветка развития — обучение "от языка" хотя выглядит будто с задач начинает.
Re[7]: Учебный язык программирования
От: boot  
Дата: 08.11.12 12:24
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

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


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


LVV>>>Вы забываете все время, что народ учит "таблицу умножения"...


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

LVV>ЕЕ еще не было... Она появилась ПОСЛЕ него. Но раз уж она появилась — ее надо знать.

А вот преподаватель тот считал иначе, что даже ее надо _понимать_, и я с ним согласен. Только он посвятил этому жизнь, а я только мнение.

LVV>И не сравнивайте гения и студента 1 курса...


Понимаю, что сырье Вам попадает совсем "сырое", и направить его в другое русло проблемно. Программист еще как-то может выбирать с кем ему работать, а преподаватель увы.
Жизнеспособность прямо пропорциональна простоте!
Re: Учебный язык программирования
От: Vlad_SP  
Дата: 08.11.12 12:31
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>- конструкции языка должны удовлетворять принципам структурного программирования (единственный вход и единственный выход);


Означает ли это, что ни один "оператор" (правильнее, как мне кажется, термин "предложение" aka statement) в блоке не имеет права выбросить исключение?
Re[4]: Учебный язык программирования
От: LaptevVV Россия  
Дата: 08.11.12 13:12
Оценка:
Здравствуйте, Ikemefula, Вы писали:

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


I>А почему готовый нельзя взять ?

Потому как нам нужно кое-что делать со внутренней структурой программы.
Опять же
— либо копаться в чужой разработке, чтобы вклеиться в нужные места
— либо делать самим именно так, как нам надо.
Опыт первого имеем. На примере полного анализа C# от исходного кода до кода сборки. Больше не хотим.
I>>>Если глянуть на самые толковые буквари по программированию, навроде sicp, то заметно, что там идет подача материала не от языка, а от задач.
I>>>То есть, нужно подготовить набор задач, которые 1 интересны 2 актуальны 3 раскрывают возможности языка
LVV>>1. Для студентов, которые СОВСЕМ НЕ ЗНАКОМЫ с программированием интересными являются задачи, намного превышающие их возможности. Например, написание игры с графикой...
В состав стандартной библиотеки входит модуль графики и отдельный модуль черепашки. Так что реализуем...
I>В мит используют роботов. Еще есть много других вещей похожих -- террариумы/арены всех сортов и видов. Вобщем игровых полезных вещей вобщем довольно много. С графикой вобщем не так сложно как кажется, только нужен хороший движок который позволит вникать в эту область постепенно осваивая и язык и структуры данных и всякую всячину.
Роботы-черепашки — конечно и всенепременно.
Но мы будем делать их а) в нашей среде;
б) на нашем языке.
I>У бертрана мейера тупиковая ветка развития — обучение "от языка" хотя выглядит будто с задач начинает.
не. У него от задач. У него там реализована мощная библиотека классов — карта Парижу... И студенты пишут проги с испоьзованием этой проги — решают всякие задачи на карте. Типа маршрут на метро...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Учебный язык программирования
От: LaptevVV Россия  
Дата: 08.11.12 13:15
Оценка:
Здравствуйте, Vlad_SP, Вы писали:

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


LVV>>- конструкции языка должны удовлетворять принципам структурного программирования (единственный вход и единственный выход);


V_S>Означает ли это, что ни один "оператор" (правильнее, как мне кажется, термин "предложение" aka statement) в блоке не имеет права выбросить исключение?

1. Естественно, statement. Но в русской литературе издавна пишется оператор. Поэтому и мы так пишем.
2. Да. Не имеет право.
3. Исключений в языке пока нет. Мы тут крепко думаем, стоит ли их вводить. А если стоит, то с какой семантикой.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Учебный язык программирования
От: LaptevVV Россия  
Дата: 08.11.12 13:18
Оценка:
Здравствуйте, Vlad_SP, Вы писали:

LVV>>- конструкции языка должны удовлетворять принципам структурного программирования (единственный вход и единственный выход);

V_S>Означает ли это, что ни один "оператор" (правильнее, как мне кажется, термин "предложение" aka statement) в блоке не имеет права выбросить исключение?
Добавлю.
мы думаем, что язык для профи, и язык для обучения — это разные вещи.
Однако в обучающей среде можно это реализовать ОДИН язык. Но разделить его на уровни.
Сначала — минимальное количество понятий.
По мере обучения учню разрешается пользоваться все более сложными понятиями-конструкциями.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Учебный язык программирования
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.11.12 13:48
Оценка:
Здравствуйте, LaptevVV, Вы писали:

I>>У бертрана мейера тупиковая ветка развития — обучение "от языка" хотя выглядит будто с задач начинает.

LVV>не. У него от задач. У него там реализована мощная библиотека классов — карта Парижу... И студенты пишут проги с испоьзованием этой проги — решают всякие задачи на карте. Типа маршрут на метро...

Я видел, но это не то что надо. У него от задачи до решения целый вагон слайдов, слов и прочего мусора. Карта Парижа это хорошо, но подход у него плохой — "вот задача, вот классы, вот наследование" А перед этим у него пол-лекции объясняется про классы и наследование.
Все эти вещи нужно выводить в порядке необходимости. Самую первую задачу нужно решать вообще не вводя никаких понятий.
Re[6]: Учебный язык программирования
От: LaptevVV Россия  
Дата: 08.11.12 13:50
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Я видел, но это не то что надо. У него от задачи до решения целый вагон слайдов, слов и прочего мусора. Карта Парижа это хорошо, но подход у него плохой — "вот задача, вот классы, вот наследование" А перед этим у него пол-лекции объясняется про классы и наследование.

I>Все эти вещи нужно выводить в порядке необходимости. Самую первую задачу нужно решать вообще не вводя никаких понятий.
Не. Понятие исполнителя и программы для него — по-любому надо вводить и объяснять...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Учебный язык программирования
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.11.12 13:55
Оценка:
Здравствуйте, LaptevVV, Вы писали:

I>>Я видел, но это не то что надо. У него от задачи до решения целый вагон слайдов, слов и прочего мусора. Карта Парижа это хорошо, но подход у него плохой — "вот задача, вот классы, вот наследование" А перед этим у него пол-лекции объясняется про классы и наследование.

I>>Все эти вещи нужно выводить в порядке необходимости. Самую первую задачу нужно решать вообще не вводя никаких понятий.
LVV>Не. Понятие исполнителя и программы для него — по-любому надо вводить и объяснять...

Ну, это надо Но у Мейера какая то вакханалия — целая пачка понятий прежде чем будет само решение.
Re[3]: Учебный язык программирования
От: elmal  
Дата: 08.11.12 13:59
Оценка: 9 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>1. Для студентов, которые СОВСЕМ НЕ ЗНАКОМЫ с программированием интересными являются задачи, намного превышающие их возможности. Например, написание игры с графикой...

Я помнится давал уже ссылку на стенфордский CS61A. Меня очень впечатлило как там учат именно с нуля. А там берется мейнстримовский язык (Java, Eclipse), на него навешивается библиотека, которая скрывает кучу деталей. И первые несколько лекций двигаем робота и пытаемся решить задачи с использованием этой либы. Инструкция для идиотов как поставить, что нажать, куда смотреть. А далее уже идет сам язык, типа помните мы двигали робота, а теперь рассмотрим как это внутри работает. И далее либы давали, которые скрывали детали работы с графикой, брали всю хитрую инициализацию на себя, и студенты фокусировались именно на задаче. И одна программа работала сразу и в браузере, и как десктопное приложение.
Этот путь мне понравился гораздо больше, чем использование языков типа Scratch и BYOB как в Беркли и Гарварде. И он поинтереснее чем Python в MIT.
Так вот, ИМХО лучше б пойти по пути Стенфорда. Пусть классы на русском, пусть пакеты на русском, пусть переменные на русском — это не важно. Нужно еще и операторы русские — за основу можно плюсы взять, макросами переименовать операторы и абсолютно также использовать.
Re: Учебный язык программирования
От: elmal  
Дата: 08.11.12 14:12
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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

Если пойдете по пути создания учебного именно языка, а не учебных библиотек к существующему языку — у студентов вряд ли возникнет мысль, что если чего то не хватает в промышленном языке, то нужно писать либы, а не брать другой язык. Этих учебных языков понаписали черти сколько, в том числе с русским синтаксисом. Зачем еще один учебный?
Если же пойти по созданию учебных библиотек, то эти библиотеки могут развиться в либы для промышленного применения и стать стандартом, соответственно будет огромная польза.
Re[2]: Учебный язык программирования
От: LaptevVV Россия  
Дата: 08.11.12 15:20
Оценка:
Здравствуйте, elmal, Вы писали:

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


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

E>Если пойдете по пути создания учебного именно языка, а не учебных библиотек к существующему языку — у студентов вряд ли возникнет мысль, что если чего то не хватает в промышленном языке, то нужно писать либы, а не брать другой язык. Этих учебных языков понаписали черти сколько, в том числе с русским синтаксисом. Зачем еще один учебный?
E>Если же пойти по созданию учебных библиотек, то эти библиотеки могут развиться в либы для промышленного применения и стать стандартом, соответственно будет огромная польза.
Ну дык!
Берем и пишем список... Очередь, стек — реализуем на массиве и на списке...
И т. п. Задачи будем придумывать. Благо, минимальная графика есть...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Учебный язык программирования
От: elmal  
Дата: 08.11.12 15:57
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>Ну дык!

LVV>Берем и пишем список... Очередь, стек — реализуем на массиве и на списке...
LVV>И т. п. Задачи будем придумывать. Благо, минимальная графика есть...
Это 100 раз уже делали. Абсолютно не важно с использованием паскаля, си, жабы, шарпа, или нового русского учебного языка программирования. Банально, все так делают.
ИМХО совсем для начинающих нужно вначале не стеки реализовывать, а космическим кораблем с прекрасной анимацией доставать за Землю полезные ископаемые с астероидов в автоматическом режиме, используя примитивы вроде просканировать пространство спереди, повернуть на 90 градусов, включить двигатели, выключить двигатели. Чтоб перемещение из точки A в B выносили в процедуры, чтоб нахождение самого крупного скопления астероидов тоже выносили в процедуры, и чтоб ихнюю программу было легко читать. Если космические корабли не круто — управлять в автономном режиме роботом мачо аля Бендер из Футурамы, который ходит по улице, определяет нужный пол, делает знакомство, угадывает некоторые желания и доводит до койки — а затем делает чтоб партнерша отвязалась и снимает следующую. Мир сделать общим, придумать правила, и сделать соревнования между программами студентов, кто больше снимет . А начальное количество действий, которые можно делать — крайне ограниченным, чтоб было необходимо выделять процедуры. И особенно было б круто, если б управление всем этим делалось в рамках обычного ЯП. Чтоб потом не говорили, что типа просто структурировано и компактно можно только на астраханском учебном языке писать, а на обычных промышленных языках типа положено говнокодить. Чтоб с первых же курсов пример был как нужно писать!
Для CS61B кстати в том же стенфорде как раз плюсы идут, и у них тоже собственная библиотека, которая кроссплатформенная, поддерживает графику, обеспечивает более читаемые, чем в STL списки, стеки, очереди и тому подобное.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.