2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
 
 Re: Преподавание программирования
Сообщение19.03.2019, 21:37 
Экс-модератор
Аватара пользователя


23/12/05
12046
Geen в сообщении #1382967 писал(а):
Есть. Но для таких классов "легко" порождаются побочные эффекты - в обучении это плохо.

Я не про обучение. Если не обратили внимание, повторю: я не рекомендовал Матлаб в качестве языка для обучения и не собираюсь его отстаивать в этом качестве. Я только сделал небольшое замечание, касающееся категоричности суждения об отсутствии ссылок.

 Профиль  
                  
 
 Re: Преподавание программирования
Сообщение19.03.2019, 21:55 


10/03/16
3855
Aeroport
Geen в сообщении #1382939 писал(а):
а про пункт 3 Вы что-то странное написали... впрочем, тут это всё равно оффтоп


photon похоже лучше меня объяснил )

arseniiv в сообщении #1382947 писал(а):
это ужасно [матричная ориентированность - ozheredov] — что для школы, что абстрактно (потому же я стараюсь воздерживаться что-то делать на R)


Ничто не мешает ездить на лошади пользоваться двойным циклом для перемножения матриц, в глубине души при этом зная, что есть такси
Используется синтаксис Python
A %*% B

Или там какие-то подводные камни?

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


30/01/06
72407
arseniiv в сообщении #1382947 писал(а):
Как связаны обязательность GC и неявность указателей?

Статистической корреляцией.

arseniiv в сообщении #1382947 писал(а):
По-моему они бывают (а если не бывают, то представимы) и не одновременно в обоих комбинациях.

Сказав "А", приводите и примеры.

arseniiv в сообщении #1382947 писал(а):
Интересно. А J? Не знаю в точности их взаимоотношений, но где-то говорили, что, огрубив, J был создан, чтобы всунуть алфавит APL в ASCII.

Ну, вместо этого для решения этой проблемы был создан Unicode.

    (Оффтоп)

    APL - жив, а ASCII - нет!

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


09/05/12
25179
rockclimber в сообщении #1382789 писал(а):
Так это ж ничему не мешает. Открываем редактор, пишем код. "Run" - "Compile", "Run" - "Run". Все как везде.
Тогда да, просто в моем представлени это не называется "использовать Lazarus". :-)

Правда, я бы вообще постарался обойтись без IDE, ограничившись редактором с подсветкой синтаксиса.

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


27/04/09
28128
ozheredov в сообщении #1382978 писал(а):
Или там какие-то подводные камни?
Да я не про то, что есть операции для матриц, и разумеется я не против если какой-то язык предлагает для часто используемых вещей короткую запись. Я про то, что всё — матрицы. Это уже чересчур.

Munin в сообщении #1382985 писал(а):
Сказав "А", приводите и примеры.
Ну вот один пример (GC +, явные указатели +) выше ссылкой. Примера для неявных указателей без GC я не помню, это могли быть классы из старых Delphi (пока они не перешли на .net) — можно оттуда выкинуть структуры, паскалевские «объекты» и указатели, много переделать, но в принципе жить. Всё же не понимаю, чем проблема представить, даже если не было бы известных обсуждающим реализаций.

(Оффтоп)

Munin в сообщении #1382985 писал(а):
APL - жив, а ASCII - нет!
Как некоторое условное и частичное ограничение ASCII вполне здравствует. Например большинство языков ориентируется на набираемость кода в обычной английской раскладке (кроме собственно строчных литералов, понятно).

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


01/09/13
4318
photon в сообщении #1382973 писал(а):
Я только сделал небольшое замечание, касающееся категоричности суждения об отсутствии ссылок.

;-)
Но не будем развивать оффтоп, тем более раз мы оба согласны, что для школы Матлаб не годится :-)

 Профиль  
                  
 
 Re: Преподавание программирования
Сообщение20.03.2019, 00:17 


10/03/16
3855
Aeroport
arseniiv в сообщении #1382998 писал(а):
Я про то, что всё — матрицы.


В матлабе же дофига сложных и user-defined типов данных, которые точно не матрица. Структуры, графические объекты, фреймы, палитры, видеопотоки и т.д. Что плохого в том, чтобы число считать матрицей 1х1, а кортеж из чисел - матрицей-строкой или -столбцом? Я сам не проггер, но подозреваю что вы подразумеваете возможность выстрела в ногу — а как?

 Профиль  
                  
 
 Re: Преподавание программирования
Сообщение20.03.2019, 01:03 
Заслуженный участник


27/04/09
28128
ozheredov в сообщении #1383017 писал(а):
Что плохого в том, чтобы число считать матрицей 1х1, а кортеж из чисел - матрицей-строкой или -столбцом?
Хм. Наверно сейчас я не смогу внятно объяснить, но какие-то аргументы были.

 Профиль  
                  
 
 Re: Преподавание программирования
Сообщение20.03.2019, 01:10 


10/03/16
3855
Aeroport
arseniiv в сообщении #1383028 писал(а):
аргументы были.


Если вспомните — пожалуйста напишите, даже если и в личку, вдруг нам тут за оффтоп люлей навешают. Я тоже вроде и рад матрицам, а внутри как-то не очень

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


20/08/14
11058
Россия, Москва
Может быть не все операции над числами допустимы и над матрицами тоже (логарифм или синус матрицы это нечто маловразумительное). Сравнения на больше/меньше (т.е. любое упорядочивание), знак, ещё какие свойства чисел к матрицам не приложимы. Потому матрицы 1х1 получаются очень-очень специальными - и особо ничем не лучше просто чисел.
Ну это навскидку, на мой взгляд.

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


30/01/06
72407
Dmitriy40 в сообщении #1383032 писал(а):
логарифм или синус матрицы это нечто маловразумительное

Это вы сильно пальцем в небо. Наоборот, очень известная вещь. Советую гуглить по "экспонента от матрицы".

 Профиль  
                  
 
 Re: Преподавание программирования
Сообщение20.03.2019, 02:01 
Заслуженный участник


27/04/09
28128
Munin в сообщении #1383033 писал(а):
Советую гуглить по "экспонента от матрицы".
Но по факту она конечно от оператора. Для матриц, порождаемых другими тензорами второго ранга, её вроде никак полезно не определишь.

UPD: Вру, забыл про банаховы пространства. Там мы можем определить сходимость ряда. Ну и плюс экспонента связывает группы и алгебры Ли.

(Оффтоп)

Dmitriy40
Вообще с векторами из одномерных пространств можно делать немало дополнительных вещей, как и в линейные операторы над модулем есть канонический гомоморфизм колец из кольца скаляров этого модуля, для ненулевого модуля — инъективный, то есть скалярную матрицу $\operatorname{diag}(a,\ldots,a)$ можно считать ровно тем же, что и $a$, ну и кольцо $\operatorname{End}(V)$ над одномерным $R$-модулем в результате в точности изоморфно $R$.

Но это не обязательно достаточные соображения для дизайна вычислительной системы и языка. В частности, матрицы есть не только у линейных отображений, а у любых тензоров ранга 2, и например в $V\otimes V$ уже естественного гомоморфизма из кольца скаляров нету. Тут всё ещё может чем-то помогать одномерность (например она позволяет определить линейный порядок, квадратные корни из положительных элементов), но вместе с тем определение умножения будет эквивалентно отождествлению с кольцом скаляров.

С третьей стороны, на матрицы размера $m\times n$ из элементов вообще любой алгебраической структуры $A$ как на функции $1..m\times1..n\to A$ все операции $A$ распространяются естественным образом, и с такой структурой $A^{1\times1}\cong A$, что связывает руки. У конкретных вещей свойств просто слишком много. Математически против матриц, а не тензоров-операторов, аргументировать получается очень неудобно. Потому-то, как уже сказал, аргументы должны быть не совсем оттуда.

 Профиль  
                  
 
 Re: Преподавание программирования
Сообщение20.03.2019, 02:18 
Заслуженный участник


20/08/14
11058
Россия, Москва
Да, не знал. И то и то оказывается есть. Sorry. :facepalm:

 Профиль  
                  
 
 Re: Преподавание программирования
Сообщение20.03.2019, 16:51 


10/04/12
704
arseniiv в сообщении #1382739 писал(а):
Вообще, как понимаю, если надо просто объяснить ученикам всякую алгоритмическую вещь, то чем проще язык, тем лучше (пока он не превращается в Turing tarpit и имеет возможность удобно описывать достаточную кучку абстракций, типа инкапсуляции и функций). Берём тогда к примеру Lua и радуемся.


C# вряд ли можно назвать простым языком, но это тоже вариант. Смотря кого нам надо подготоврить.

arseniiv в сообщении #1382739 писал(а):
И ещё: мне кажется, языку не нужны явные указатели, чтобы объяснить модель памяти. Описание языка не заменяет знаний о функционировании компьютера / ОС / запущеного скомпилированного или интерпретируемого кода, оно может быть не более чем компаньоном, требующим отдельного объяснения вторых всё равно.


Знания о функционировании компьютера / ОС / запущеного скомпилированного надо пощупать. Для этого нужен язык программирования. В общем-то, в мир C#/Java достаточно много пришло из Delphi, C++ как раз потому, что понимают эти концепции.

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


27/04/09
28128
Да, я бы и не сказал, что считаю, что надо обязательно начинать с C#, но вообще он выглядит достаточно безобидным, если не считать «проблемы Java»: что для простого хелловорлда надо определить класс и статический метод в нём.

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

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



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

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


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

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