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
949

(Оффтоп)

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

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


21/09/12

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

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


15/11/15
949

(Оффтоп)

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

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


27/02/12
3715
Критиковать 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
704
gevaraweb в сообщении #1290855 писал(а):
Лучше бы тут сразу давать те же команды на JS.


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

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


27/02/12
3715
Сейчас запустил вот это (у меня 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
3715
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
949
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  След.

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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