2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10  След.
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 17:46 
Заслуженный участник
Аватара пользователя


30/01/06
72407
gevaraweb
Спасибо за ваш отзыв. Ваше отношение к обучению детей программированию понятно. Можете не утруждать себя другими ответами мне по этой теме.

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 18:13 


15/11/15
1100

(Оффтоп)

Munin
постараюсь, но как говорится, истина дороже!

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 18:23 
Аватара пользователя


21/09/12

1871
gevaraweb
Истина приложение к фактам. Или следствие. Тезисы это не факты. А факты определяются опытом. В Википеди опыта не наберёшься.

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 18:34 


15/11/15
1100

(Оффтоп)

atlakatl
не возражаю! Но вроде пошел оффтоп.

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 18:48 
Аватара пользователя


27/02/12
4149
Критиковать PascalABC нет никаких оснований в силу того, что я пробежался по нему, как говорится, "галопом по европе" .
Но вот одна мелочь вызвала легкое недоумение.
atlakatl в сообщении #1290824 писал(а):
Удобств достаточно.
Можно:
var x, y : real;
А можно:
var x:=0;

А можно и так: var x:real:=100500;
Причем, главное, это можно делать в теле программы.
Вот здесь приводится обоснование удобства.
Цитата:
Представьте, вы написали длинный код и тут понимаете, что забыли указать какую-либо переменную. Конечно, вы можете вернуться в начало и дописать ее в разделе объявления переменных, но зачем? Гораздо удобнее написать ее тут же.

На мой взгляд, это "удобство" (ах, как лень вернуться в раздел var :wink: ) - лазейка для тех,
кто сознательно стремится сделать свои программы трудночитаемыми, в первую очередь для себя. :-)

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 19:08 


10/04/12
706
gevaraweb в сообщении #1290855 писал(а):
Лучше бы тут сразу давать те же команды на JS.


Ну... графика содержит много увлекательных упражнений. А JS подобен Python — учишься программировать в комфортной песочницы, из которой потом сложно перейти куда-то ещё.

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 19:09 
Аватара пользователя


27/02/12
4149
Сейчас запустил вот это (у меня PascalABC NET):
Используется синтаксис Pascal
begin
  var tmp:array[1..5] of real:=(1,2,3,4,5);
  writeln(tmp)
end.

Не ругается. Выдает: [1,2,3,4,5].
Не знаю...

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 19:13 
Заслуженный участник


27/04/09
28128
gevaraweb в сообщении #1290781 писал(а):
ПаскальABC мне думается, выиграл во многом потому, что бесплатный.
Бесплатных и, более того, с открытым кодом языков (под чем будем понимать компилятор и все остальные программы для обработки исходников на этом языке) пруд пруди уже давно. Если ограничиться языками, для которых есть ещё и IDE, будет поменьше, но тоже достаточно. А вот чтобы требовать этакое school-friendly, придётся сначала определить, в чём в точности это заключается и в чём нет — а это двадцать страниц спора.

gevaraweb в сообщении #1290781 писал(а):
Но может создать какой нибудь JavaABC, пусть тренируются )
См. выше. Языков для JVM и/или чем-то похожих на джаву — немало.

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

atlakatl в сообщении #1290791 писал(а):
А на применяемую только профи Java можно молиться и повышать ЧСВ - если ты её знаешь - но практика в лучшем случае одинаковая.
Есть такая вещь как batteries. Боюсь, в современности у Java их больше, чем у PascalABC.

Munin
Гляньте ещё Processing. Может статься, что это как раз для вас — там и графика, и звук должен быть, и что-то там ещё, и создавалось специально для этого (хотя некоторые решения мне кажутся сомнительными с высоты перфекционизма и почти никакого времени взаимодействия с этой штукой).

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

Munin в сообщении #1290833 писал(а):
Меня испугало замечание, что он использует .NET. Это сразу бросает обучающегося в слишком сложный контекст.
Можно не трогать .NET вообще, а можно впоследствии брать оттуда классы в свой код. Единственная проблема, которая может появиться — установка .NET в начале (размер большой).

gevaraweb в сообщении #1290855 писал(а):
Лучше бы тут сразу давать те же команды на JS.
Пожалуйста, не надо на JS. Как язык это весьма страшная вещь. Давайте ещё Perl предложим, чо, там можно по-латински программировать.

miflin в сообщении #1290906 писал(а):
На мой взгляд, это "удобство" (ах, как лень вернуться в раздел var :wink: ) - лазейка для тех,
кто сознательно стремится сделать свои программы трудночитаемыми, в первую очередь для себя. :-)
Ну вот это, кажется, тоже аргумент странный. Это вполне читаемая конструкция, если расставить чуть больше пробелов. Более того, константы во многих разновидностях паскаля таким же образом определяются уже сто лет — хотя и не в любом месте кода.

Вот строгое разделение на «место для переменных», «место для операторов» и т. д. — это часто хуже, чем объявление переменных прямо перед местом, где они непосредственно пригодятся (а когда блоки вложенные, удобство только добавляется).

-- Ср фев 07, 2018 21:20:45 --

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

miflin в сообщении #1290913 писал(а):
Не знаю...
А что в этом плохого?

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 19:40 
Аватара пользователя


27/02/12
4149
arseniiv в сообщении #1290915 писал(а):
А что в этом плохого?

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

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 19:55 
Заслуженный участник


27/04/09
28128
В основном такой вывод полезен, когда надо быстренько глянуть, что там в массиве вообще находится (а отладчиком пользоваться лень). Когда же надо преобразовать его в строку как-то особенно красиво и под своим контролем, придётся, конечно, писать отдельно, хотя и тут может быть что-то получше того цикла, которым это пришлось бы делать в TP7.

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 20:07 
Аватара пользователя


21/09/12

1871
miflin в сообщении #1290906 писал(а):
Представьте, вы написали длинный код и тут понимаете, что забыли указать какую-либо переменную. Конечно, вы можете вернуться в начало и дописать ее в разделе объявления переменных, но зачем? Гораздо удобнее написать ее тут же.

У PascalABC есть кнопка "Формат". Расставляет программные отступы, убирает лишние пробелы. Программируй, а формат в полсекунды образуется. Заодно ПО подскажет, какие ошибки - ещё на стадии форматирования.
Поэтому вернуться в начало и доопределить переменные проблем не возникает. А вот к областям действия переменных приходится привыкать. В циклах они локальные, снаружи их не видно. Я не парюсь, в больших программах локальные переменные удобны, а в мелочи всё глобальное: десяток переменных-то.
Но дублировать имена в зависимости от уровней циклов дело последнее.
Кстати, очень удобный трассировщик. Сам находит и отображает переменные.
Никак не пойму DOS-интерфейс TurboPascal. Тогда уж на SmalBasic переходите. Press any key...

-- 08.02.2018, 00:12 --

arseniiv в сообщении #1290930 писал(а):
когда надо быстренько глянуть, что там в массиве вообще находится
Есть цикл - или поток - foreach. Указывай массив и работай с одной переменной - с остальными всё повторит программа.

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 20:40 
Заслуженный участник


27/04/09
28128
atlakatl в сообщении #1290934 писал(а):
Есть цикл - или поток - foreach.
Во-первых, это не называется «поток». Во-вторых, кажется, вы, не вчитались в то, на что отвечали.

atlakatl в сообщении #1290934 писал(а):
Указывай массив и работай с одной переменной - с остальными всё повторит программа.
Как пропонента PascalABC вас не красит смутное понимание того, что делает и чего не делает цикл foreach и одновременно написание о нём.

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 20:46 


15/11/15
1100
arseniiv в сообщении #1290915 писал(а):
Бесплатных и, более того, с открытым кодом языков (под чем будем понимать компилятор и все остальные программы для обработки исходников на этом языке) пруд пруди уже давно.
Ну да. Но когда АБС начинал приобретать популярность, пруда не было. Вот он и занял нишу.
arseniiv в сообщении #1290915 писал(а):
Пожалуйста, не надо на JS.

Но Js есть в браузерах. Приходится мириться ).

miflin в сообщении #1290913 писал(а):
var tmp:array[1..5] of real:=(1,2,3,4,5);

Уже вижу минус в Паскале. Статических массивов в популярных языках нет. На практике редко знаешь объем данных. Если в ПаскальАБС динамические массивы?

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 20:50 
Заслуженный участник


27/04/09
28128
gevaraweb в сообщении #1290946 писал(а):
Но когда АБС начинал приобретать популярность, пруда не было.
Это когда было, лет пять назад? Был. И даже если десять, вполне был.

gevaraweb в сообщении #1290946 писал(а):
Но Js есть в браузерах. Приходится мириться ).
Если бы. Есть языки, компилирующиеся в JS. Не обязательно есть кактус необработанным.

gevaraweb в сообщении #1290946 писал(а):
Если в ПаскальАБС динамические массивы?
Есть (вот только в справку залезал), они должны быть в большинстве современных паскалей и были даже в TP7, кажется (может, и не в очень удобном виде).

-- Ср фев 07, 2018 22:57:42 --

Короче, если уровень аргументации в теме не возрастёт, быть этой теме, вероятно, кое-где. :-(

 Профиль  
                  
 
 Re: О языках программирования для обучения
Сообщение07.02.2018, 22:11 
Заслуженный участник
Аватара пользователя


30/01/06
72407
arseniiv в сообщении #1290915 писал(а):
Ха. Ха-ха. Ха-ха-ха. (Ушёл в саркастичную истерику, не вернусь.

Про минусы хотелось бы знать заранее.

arseniiv в сообщении #1290915 писал(а):
Можно не трогать .NET вообще, а можно впоследствии брать оттуда классы в свой код. Единственная проблема, которая может появиться — установка .NET в начале (размер большой).

Нет, меня пугают другие проблемы:
- большой и сложный для начального освоения framework, для совершения простейших вещей;
- большая и сложная, ориентированная на профессионалов, а не на обучающихся, документация.

А как установить .NET на Linux - это мы потом подумаем.

arseniiv в сообщении #1290915 писал(а):
Вот строгое разделение на «место для переменных», «место для операторов» и т. д. — это часто хуже, чем объявление переменных прямо перед местом, где они непосредственно пригодятся (а когда блоки вложенные, удобство только добавляется).

На самом деле, для реальной работы хуже, а на этапе обучения лучше. Помню, насколько нас вообще дисциплинировало объявление переменных на Pascal по сравнению с Basic. Сам факт, что перед тем, как садиться и писать, надо подумать. Так что, я бы сказал, это из сферы тех колёсиков, которые потом отвинчиваются от велосипеда.

Впрочем, вы же сами ниже пишете (вырву часть из предложения, а то трудно):
    arseniiv в сообщении #1290915 писал(а):
    ...т. е. в школе, скажем, научить нагромождать всё как попало без читаемости, комментариев и уважения к духу языка...

arseniiv в сообщении #1290915 писал(а):
Гляньте ещё Processing.

Спасибо, пока в коллекцию.

Сейчас меня заинтересовала цепочка Scratch - Etoys - Squeak - Smalltalk. Интересно, у кого-нибудь есть реальный опыт её применения в обучении (не себя)?

-- 07.02.2018 22:15:49 --

arseniiv в сообщении #1290915 писал(а):
Есть такая вещь как batteries.

А это что?

----------------

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 142 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10  След.

Модераторы: Модераторы, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot [bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group