Re[8]: C# для школьников
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 10.02.05 18:27
Оценка: 18 (1)
Здравствуйте, Astaroth, Вы писали:
http://gzip.rsdn.ru/article/dotnet/values.xml#EJA
Автор(ы): Андрей Мартынов
Дата: 08.04.2003
Начиная программировать в среде .Net, довольно часто сталкиваешься с трудностями, в основе которых лежит недостаточно чёткое понимание различий в свойствах ссылочных типов (reference based types) и типов-значений (value based types). Между тем, мотивация применять типы-значения велика, т.к. умелое применение типов-значений может существенно повысить эффективность программного кода. Однако необходимо постоянно помнить, что типы-значения имеют ряд особенностей, которые необходимо учитывать как при разработке (определении) этих типов, так и при их использовании. Эти особенности value-типов и их отличия от ссылочных типов рассмотрены ниже.

http://gzip.rsdn.ru/article/dotnet/mcpp.xml#EDXA
Автор(ы): Игорь Ткачёв
Дата: 05.02.2002
До сих пор трудно ответить на вопрос, что такое .Net. Эта статья, являясь введением в Managed Extensions for C++ (MC++), содержит описание ряда смелых экспериментов советских ученых, наконец-то позволяющих понять, что же такое .Net вообще, и место MC++ в нем, в частности.

http://gzip.rsdn.ru/article/dotnet/refl.xml#EBHA
Автор(ы): Андрей Мартынов
Дата: 14.03.2003
В различных технологиях программирования используются метаданные разной степени подробности и разной степени универсальности. Но в технологии .Net метаданные играют совершенно особую роль. Это роль "универсального клея", на который возложены функции поставщика информации о типах как во время компиляции программы, так и во время её исполнения.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[8]: C# для школьников
От: Cyberax Марс  
Дата: 10.02.05 18:34
Оценка:
Astaroth пишет:

> S>В смысле, ты не очень понимаешь, что такое боксинг?

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

Преобразование между примитивными типами и соответствующими объектными
обертками.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[6]: C# для школьников
От: Sinclair Россия https://github.com/evilguest/
Дата: 11.02.05 05:12
Оценка:
Здравствуйте, Astaroth, Вы писали:

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


VD>>> 3.4.4. Объячняем что такое боксинг.

VD>>>4.4. Расказать что такое рефлекшон. Дать примеры его использования (динамическая загрузка экземпляров типов, динамический вызов метода, вывод информации о типе).

R>>А тебе не кажется что это немного не школьная программа. Скорее институтская.


A>Я, кстати, до третьего курса дожил, RSDN почитываю, даже поработать маленько успел — но до сих пор не в курсе

A>Кстати, если кто объяснит (интересующее процитировал) — не обижусь.

Исторически сложилось так, что совсем-совсем все делать объектами весьма неэффективно.
Поэтому в джаве все-таки оставили примитивные типы (для арифметики) и все остальное — унаследованное от object. Но вот закавыка — иногда мы хотим использовать такой тип "указатель на что угодно". Ссылочные типы прекрасно ложатся в этот тип. А как мы получим указатель на , к примеру, int=5 в языке, где нет указателей на int? Очевидное решение — сделать простейший класс, содержащий ровно одно поле типа int. Объект этого класса будет этакой "коробочкой" для инта. Вся его функция — сохранить целое число от одного использования до другого.
Этот прием называется боксингом, от слова box. В Java для каждого из примитивных типов есть соответствующий боксящий класс (хотя ничто не мешает написать свой, если сильно охота). Обратная процедура (типа int i = myInt.Value) по доставанию содержимого из коробки называется анбоксингом.
В .Net value-типы не ограничены примитивными типами и можно создавать пользовательские типы с аналогичной семантикой. Чтобы избежать разнобоя при определении пользовательских бокс-типов данная функциональность была введена в саму платформу. В итоге box/unbox являются конструкциями IL, а C# предоставляет автоматический боксинг-анбоксинг на уровне своего синтаксиса. Т.е. попытка откастить (int)object на самом деле означает кастинг обжекта к инт-боксу и последующий анбоксинг.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: C# для школьников
От: orangy Россия
Дата: 12.02.05 16:52
Оценка: +4
Здравствуйте, Alik, Вы писали:

A>Компания MS придумала еще один шаг в процессе популяризации .Net

A>В качестве эксперимента она предложила некоторым "продвинутым" школам перейти с изучения паскаля (Delphi) на С#. Переход этот, размеется, подразумевает и смену парадигмы с процедурной на объектно-ориентированную.

Прочитал (почти) все ветки обсуждения и не нашел одного важного аспекта. Если пропустил — простите. Этот аспект — правило 80%/20%.

1. 80% материала будет усвоено 20% учеников, остальными 80% учеников будет усвоено лишь 20% материала (из тех же 80%, что и первой группой). 20% материала не будет усвоено никем.
2. 80% учеников никогда не станут профессиональными программистами. Возможно, они смогут написать программку расчета кривой в своей последующей экономической деятельности, но не будут зарабтывать деньги непосредственно программированием. Из оставшихся 20% хорошими программистами станут едва ли половина, остальные будут теми самыми "мышевозителями", как их обозвал Влад.

И от этого никуда не деться. Поэтому программу обучения надо составлять так, чтобы она что-то полезное дала всем категориям.
Чтобы 20% "простого" материала было полезно всем и сразу. Это формулы, вычисления, решение уравнений, етк — вобщем прикладуха чистой воды. Формочки без зауми. Веб без подробностей. Простые типы. Методы решения конкретных задач.

Чтобы 60% оставшегося усвоенного "средней сложности" материала теми 20% процентами заложило фундамент для самообучения. Это типы, переменные, вообще более глубокий материал. Принципы и абстракции. Стандартные примеры иерархий типа фигура — замкнутая.кривая — овал — круг. Простейший полиморфизм. Алгоритмы более глубоко. Понятия О(f(x)) в простом виде.

Остальные 20% совершенно неусвоенных процентов должны быть особенно интересны и доступны "на потыкать", пусть даже без понимания и усвоения. Игрушки — самое подходящее для этой части. Сложные идеи поведения объектов, зоны ответственности, полиморфизма и т.п. Детектор коллизий (столкновение).

Главное — 100% учеников должны научиться думать, а не копировать. Согласен с Владом: обязательно учить работать с информацией, c MSDN/man/info/web/news/rss искать её, перерабатывать. Имеет смысл делать мини-курс по поиску в сети.

Такая вот моя нехитрая арифметика. Возможно, реальные проценты слегка другие, но суть остается той же. Замечу, что выбор платформы никак не влияет на результат. Предпочтительная платформа будет определяться ВУЗом и/или самообучением.
"Develop with pleasure!"
Re[7]: C# для школьников
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.02.05 17:10
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>В .Net value-типы не ограничены примитивными типами и можно создавать пользовательские типы с аналогичной семантикой. Чтобы избежать разнобоя при определении пользовательских бокс-типов данная функциональность была введена в саму платформу. В итоге box/unbox являются конструкциями IL, а C# предоставляет автоматический боксинг-анбоксинг на уровне своего синтаксиса. Т.е. попытка откастить (int)object на самом деле означает кастинг обжекта к инт-боксу и последующий анбоксинг.


Справедливости ради в Java 1.5 так же есть автоматический боксинг.
... << RSDN@Home 1.1.4 beta 4 rev. 319>>
AVK Blog
Re[13]: C# для школьников
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.02.05 21:05
Оценка: 2 (2) +1
Здравствуйте, Astaroth, Вы писали:

VD>>Да и фигня все это. Главное что дело вы затеяли очнь правильное. Шарп — это как раз тот язык на котором нужно учить импиративных программистов. Он привьет им правильные навыки и позволит избежать перегрузки мозгов.


A>Навыки рисования окошек?


У тебя серьезные проблемы с комплексами. Учти, что эта болезнь прогрессирует.
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: C# для школьников
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.02.05 21:05
Оценка:
Здравствуйте, Astaroth, Вы писали:

A>А зачем?

A>Может лучше дать возможность понять, что среда и язык — разные вещи?

А зачем? Прийдет время — поймут. Надо все же понимать, что грузить частностями начинающих — это неразумное решение.
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: C# для школьников
От: orangy Россия
Дата: 12.02.05 21:17
Оценка: 9 (1) +1
Здравствуйте, VladD2, Вы писали:

VD>Если детям нужно дать создать окошко в начале их изучения (чтобы заинтерисовать), то нужно сделать это не вдаваясь в подробности. Просто — Дети. запустили студию... Открыли меню Фвйл\Нью выбрали ВинФормсПриложение... Нашли кнопку в тулбоксе. Бросили ее на форму... Написали MessageBox.Show("Дарова усе!");. Вот дети вы и создали первое в своей жизни приложение. А теперь я вам объясню как это чудо работает. Обещаю вам, что те кто не будет халтурить через квартал смогут писать любые программы самостоятельно. Ну, а далее теорию.


Именно так! Сначала надо вызвать у детей "Ух ты!", потом "Я тоже так могу!", потом "А как мне это изменить?" и т.п. Голая теория приводит к заучиванию, "лишь бы сдать", "когда наконец это закончится", и "ну наконец-то спихнули этот курс".

Помнится, мой преподаватель говорил: "Есть одна секретная ячейка...", а потом начиналось программирование в системных регистрах (PDP-11 + RT11FB)...
"Develop with pleasure!"
Re[5]: C# для школьников
От: orangy Россия
Дата: 12.02.05 21:19
Оценка:
Здравствуйте, Glоbus, Вы писали:

JP>>Я помню, когда сам ещё был маленьким , мы изучали какую-то ерунду с букашкой на экране,

G>Лого
Ага, а еще была Рапира с её кортежами (суть множествами). Я только в универе понял, нахрена они нужны вообще.
"Develop with pleasure!"
Re[7]: C# для школьников
От: Astaroth Россия  
Дата: 22.02.05 21:20
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А зачем? Прийдет время — поймут. Надо все же понимать, что грузить частностями начинающих — это неразумное решение.


ИМХО может получиться так, что потом у них не будет необходимости использовать среду отдельно от компилятора. Из вышеупомянутое понимание (ИМХО довольно ценное) может и не прийти...
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
http://livejournal.com/users/breqwas
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.