Перед до мной кафедра поставила задачу за три лекции обучить студентов основам программирования на C# в среде Microsoft Visual Studio 2008. Для того, чтобы они смогли сами решить следующие задачи:
Построение прямой. Алгоритм Брезенхэма.
Построение окружности.
Построение эллипса.
Построение поверхности. Удаление невидимых линий. Алгоритм плавающего горизонта.
ну и так далее, разные задачи, которые связаны с построение каких-либо графических объектов, либо с заполнением.
В принципе структуру подачи материала я составил, только вопрос стоит как лучше объяснить такие основы как:
Переменная
Ссылочный тип
Тип значение
Инициализация переменной значением
Массивы
Первое, что приходит в голову на счет инициализации переменной значением и переменная — это объяснять на коробках. Есть множество коробок разных размеров (где размер — это отражение типа данных, а тип данных — это что-то, что имеет размер и может поместиться только в подходящую по размеру коробку).
А на счет массивов, объяснять можно наверно на ожерелье из жемчужин, где на каждую жемчужину наклеена бумажка с номером (индексом).
Ссылочный тип и тип значение я как бы не представляю как отразить. Можно конечно объяснить что одно в куче, другое в стеке и пропустить это для само понимания, но я думаю не поймут.
Вот как объяснить все это, чтобы было понятно даже девушкам
Заранее спасибо!
06.04.10 18:52: Перенесено модератором из 'Философия программирования' — AndrewVK
Здравствуйте, Xobotik, Вы писали:
X>Ссылочный тип и тип значение я как бы не представляю как отразить. Можно конечно объяснить что одно в куче, другое в стеке
... и это будет ошибочное объяснение. Гораздо правильнее заглянуть в спецификацию C# и посмотреть, как это объяснено там.
Здравствуйте, Qbit86, Вы писали:
Q>Здравствуйте, Xobotik, Вы писали:
X>>Можно конечно объяснить что одно в куче, другое в стеке...
Q>...Но это будет неправильно.
Ошибся.
С уважением!
Re[2]: Преподавание основы основ программирования. Как лучше
Здравствуйте, nikov, Вы писали:
N>Здравствуйте, Xobotik, Вы писали:
X>>Ссылочный тип и тип значение я как бы не представляю как отразить. Можно конечно объяснить что одно в куче, другое в стеке
N>... и это будет ошибочное объяснение. Гораздо правильнее заглянуть в спецификацию C# и посмотреть, как это объяснено там.
как будто в спецификации написано для дебилов.
С уважением!
Re[3]: Преподавание основы основ программирования. Как лучше
Здравствуйте, Xobotik, Вы писали:
X>Здравствуйте, nikov, Вы писали:
N>>Здравствуйте, Xobotik, Вы писали:
X>>>Ссылочный тип и тип значение я как бы не представляю как отразить. Можно конечно объяснить что одно в куче, другое в стеке
N>>... и это будет ошибочное объяснение. Гораздо правильнее заглянуть в спецификацию C# и посмотреть, как это объяснено там.
X>как будто в спецификации написано для дебилов.
Я так понимаю что в вузе недибилы учатся.
Re[2]: Преподавание основы основ программирования. Как лучше
Здравствуйте, nikov, Вы писали:
N>Здравствуйте, Xobotik, Вы писали:
X>>Ссылочный тип и тип значение я как бы не представляю как отразить. Можно конечно объяснить что одно в куче, другое в стеке
N>... и это будет ошибочное объяснение. Гораздо правильнее заглянуть в спецификацию C# и посмотреть, как это объяснено там.
Можно вообще ничего не объяснять, дать спецификацию и сказать читайте, там все написано. Вопрос в другом стоял, как лучше объяснить основы, чтобы все поняли
С уважением!
Re: Преподавание основы основ программирования. Как лучше?
Здравствуйте, Xobotik, Вы писали:
X>В принципе структуру подачи материала я составил, только вопрос стоит как лучше объяснить такие основы как
Не указал предусловия, какой год обучения, какие программистские курсы до этого были, какие математические курсы до этого были, что за вуз вообще.
X>
X>Переменная X>Ссылочный тип X>Тип значение X>Инициализация переменной значением X>Массивы X>
Сомневаюсь что в этом случае вообще надо объяснять отличия ссылочных типов от value-типов.
Re[4]: Преподавание основы основ программирования. Как лучше
Здравствуйте, MozgC, Вы писали:
MC>Здравствуйте, gandjustas, Вы писали:
G>>Я так понимаю что в вузе недибилы учатся.
MC>Не хочу поднимать холивар.. Но это раньше наверное в ВУЗах недебилы учились. А щас там учатся все. К сожалению.
Вы абсолютно правы.
С уважением!
Re[3]: Преподавание основы основ программирования. Как лучше
Здравствуйте, Xobotik, Вы писали:
X>>>Ссылочный тип и тип значение я как бы не представляю как отразить. Можно конечно объяснить что одно в куче, другое в стеке
N>>... и это будет ошибочное объяснение. Гораздо правильнее заглянуть в спецификацию C# и посмотреть, как это объяснено там.
X>Можно вообще ничего не объяснять, дать спецификацию и сказать читайте, там все написано. Вопрос в другом стоял, как лучше объяснить основы, чтобы все поняли
Лучше дать правильное объяснение, которое поймут умные студенты, чем дать неправильное, которое поймут все.
Re[2]: Преподавание основы основ программирования. Как лучше
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Xobotik, Вы писали:
X>>В принципе структуру подачи материала я составил, только вопрос стоит как лучше объяснить такие основы как G>Не указал предусловия, какой год обучения, какие программистские курсы до этого были, какие математические курсы до этого были, что за вуз вообще.
МИРЭА. Третий курс. Год поступления 2007. Курсы что были, что их не было — это равносильно (это касается только курсов связанных напрямую с программированием). Ну а вообще были следующие курсы математические:
1) Математический анализ от дифференциального исчисления до ТФКП.
2) Основы дискретной математике.
3) Дифференциальные уравнения.
4) Математическая логика и теория автоматов.
5) Теория вероятностей.
6) Линейная алгебра.
7) Аналитическая геометрия.
8) Вычислительная математика.
Курсы связанные с программированием: 1) Информатика.
2) Основы программирования.
3) Объектно-ориентированное программирование.
4) Технология программирования.
X>>
X>>Переменная X>>Ссылочный тип X>>Тип значение X>>Инициализация переменной значением X>>Массивы X>>G>Сомневаюсь что в этом случае вообще надо объяснять отличия ссылочных типов от value-типов.
Наверно да.
С уважением!
Re[4]: Преподавание основы основ программирования. Как лучше
Здравствуйте, nikov, Вы писали:
N>Здравствуйте, Xobotik, Вы писали:
X>>>>Ссылочный тип и тип значение я как бы не представляю как отразить. Можно конечно объяснить что одно в куче, другое в стеке
N>>>... и это будет ошибочное объяснение. Гораздо правильнее заглянуть в спецификацию C# и посмотреть, как это объяснено там.
X>>Можно вообще ничего не объяснять, дать спецификацию и сказать читайте, там все написано. Вопрос в другом стоял, как лучше объяснить основы, чтобы все поняли
N>Лучше дать правильное объяснение, которое поймут умные студенты, чем дать неправильное, которое поймут все.
Умных нет.
С уважением!
Re[4]: Преподавание основы основ программирования. Как лучше
Здравствуйте, nikov, Вы писали:
N>Здравствуйте, Xobotik, Вы писали:
X>>>>Ссылочный тип и тип значение я как бы не представляю как отразить. Можно конечно объяснить что одно в куче, другое в стеке
N>>>... и это будет ошибочное объяснение. Гораздо правильнее заглянуть в спецификацию C# и посмотреть, как это объяснено там.
X>>Можно вообще ничего не объяснять, дать спецификацию и сказать читайте, там все написано. Вопрос в другом стоял, как лучше объяснить основы, чтобы все поняли
N>Лучше дать правильное объяснение, которое поймут умные студенты, чем дать неправильное, которое поймут все.
Если на самом деле не задумываться как ты даешь понятно или нет правильное объяснение, тем больше вероятность, что тебя вообще никто не поймет.
С уважением!
Re[3]: Преподавание основы основ программирования. Как лучше
Здравствуйте, Xobotik, Вы писали:
X>МИРЭА. Третий курс. Год поступления 2007. Курсы что были, что их не было — это равносильно (это касается только курсов связанных напрямую с программированием). Ну а вообще были следующие курсы математические:
X> X>1) Математический анализ от дифференциального исчисления до ТФКП. X>2) Основы дискретной математике. X>3) Дифференциальные уравнения. X>4) Математическая логика и теория автоматов. X>5) Теория вероятностей. X>6) Линейная алгебра. X>7) Аналитическая геометрия. X>8) Вычислительная математика. X>
X>Курсы связанные с программированием: X> X>1) Информатика. X>2) Основы программирования. X>3) Объектно-ориентированное программирование. X>4) Технология программирования. X>
Ну тогда думаю переменные и массивы они знают, и запись x.ToString() тоже осилят.
Re[4]: Преподавание основы основ программирования. Как лучше
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Xobotik, Вы писали:
X>>МИРЭА. Третий курс. Год поступления 2007. Курсы что были, что их не было — это равносильно (это касается только курсов связанных напрямую с программированием). Ну а вообще были следующие курсы математические:
X>> X>>1) Математический анализ от дифференциального исчисления до ТФКП. X>>2) Основы дискретной математике. X>>3) Дифференциальные уравнения. X>>4) Математическая логика и теория автоматов. X>>5) Теория вероятностей. X>>6) Линейная алгебра. X>>7) Аналитическая геометрия. X>>8) Вычислительная математика. X>>
X>>Курсы связанные с программированием: X>> X>>1) Информатика. X>>2) Основы программирования. X>>3) Объектно-ориентированное программирование. X>>4) Технология программирования. X>>
G>Ну тогда думаю переменные и массивы они знают, и запись x.ToString() тоже осилят.
Если бы они знали, то я бы сюда не обращался.
С уважением!
Re[5]: Преподавание основы основ программирования. Как лучше
X>Если относится с полной ответственностью к делу, тогда не все равно.
К 3 курсу не осилить что такое переменная, надо постараться. Забей.
Даже если твой курс будет идеальным, они все равно не вынесут из него ничего.
ЗЫ. А сейчас модно дублировать курсы в ВУЗах?
Я учился два года назад, те кто не усвоил курс предыдущего года, это были их трудности.
Препод априори ориентировался, что студент должен знать прошлый курс.