Re: Обучение студентов
От: deniok Россия  
Дата: 24.05.17 10:13
Оценка: 25 (3)
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Существуют ли аналогичные актуальные решения сейчас? Язык — C#


stepik.org

Там, помимо всего прочего, можно и проверку автоматизировать, написав тесты. Единственное "но", бесплатны только открытые курсы и уроки — без ограничения доступа. Приватные — платные, но для академической среды есть скидки.
Re[2]: Templates and patterns
От: Qbit86 Кипр
Дата: 24.05.17 13:27
Оценка: 18 (2) +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Не шаблон программы, а паттерны кода. Без привязки к языку.

LVV>Я так понимаю, что "ноги растут" от паттернов циклов Ткачева?

Я так понимаю, именно шаблон-template, а не шаблон-pattern. Просто код с плейсхолдерами, который подготавливает «церемонии» namespace-public-static-void-main-bla-bla-bla, неинтересные на начальном этапе обучения.

LVV>Github.

LVV>Мы использовали в паре курсов — неплохо получилось.
LVV>Надо только организационно продумать — один каталог на группу и все внутри, или каждый индивидуально, или один каталог на комманду (коллективные проекты)

Один репозиторий на задание по курсу. Если есть группы, то тимлид группы форкает, участники группы клонируют этот форк. Если нет групп, то каждый форкает индивидуально. Преподаватель watch'ит форки и отслеживает прогресс.
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 10:25
Оценка: +1
Здравствуйте, Nikolay_Ch, Вы писали:

Pzz>>Ужас какой. А может, немного упростить задачи, чтобы студенты успевали их решать, но все же пусть решают сами, а не формочку заполняют?

N_C>Вопрос в потере времени на организационные процессы. И на объяснение что такое системы версионного контроля, репозиторий и ветвление. И на ответы на бесконечные вопросы, а у меня не работает и "какая команда не напомните — я забыл". Домашняя работа — это без проблем, пусть делают как хотят, а в аудитории хочется время тратить на конкретику.

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

N_C>Что же до "пусть решают сами, а не формочку заполняют", это возможно, но, когда люди знают, как решать. А пока ты находишься в стадии объяснения как решать, лучший способ — это заполнить формочку.


Ну казалось бы, обучение — это и есть процесс объяснения, как решать. Идея реализовать обучение программированию через заполнение формочек мне кажется сомнительной. По-моему, так можно научиться формочки заполнять, а не писать программы.
Re[7]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:56
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>А вот идея обучать программированию, путем вписывания своих слов в готовый шаблон программы, мне не нравится принципиально. И именно это я хотел сказать. Независимо от того, делается это с git'ом, или без.

Исходя из своего опыта — шаблонный подходи позволит хоть сделать работу среднему студенту, а не забить на нее и не списать позже у соседа не разбираясь. А раз он не забил и получил результат — есть шансы, что он и дальше будет делать работы.
К сожалению, в нынешней реальности я не могу уделять внимания только идеальным студентам, процент которых в группах год от года почти не меняется. Я вынужден ориентироваться на средних студентов и пока принципы образования не поменяются, ничего не изменится.
Re[7]: Вписывания в шаблон
От: Qbit86 Кипр
Дата: 24.05.17 10:57
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>А вот идея обучать программированию, путем вписывания своих слов в готовый шаблон программы, мне не нравится принципиально. И именно это я хотел сказать. Независимо от того, делается это с git'ом, или без.


Это стандартный подход на многих сайтах «развлекательного» программироваия (HackerRank, CodinGame, TopCoders, etc.) Некоторые из них предлагают туториалы для новичков (или в программировании в целом, или только в осваиваемом ЯП, или в алгоритмах). Каноническая первая задача, с которой сталкивается начинающий пользователь — написать функцию, считающую сумму двух своих аргументов. Вот так просто, в предоставленную заготовку в строке «// Place your code here» впечатать решение.
Глаза у меня добрые, но рубашка — смирительная!
Re[9]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 11:30
Оценка: +1
Здравствуйте, Nikolay_Ch, Вы писали:

Pzz>>В 20 лет люди еще не забыли, как это, думать самостоятельно. А вы хотите их от этого отучить.

N_C>Ну да, ну да... Даже такой простой инструмент как молоток требует обучения в работе и умение думать самостоятельно здесь не поможет.

А как, по-вашему, когда молотком учат работать, мастер забивает гвозди наполовину, а потом дает ученику их забить до конца?

Pzz>>Если вы не смогли научить студентов писать программы, это ваша вина, а не студентов.

N_C>Вы все время путаете процесс. В контексте моего вопроса я учу инструменту, т.е. языку, а не программированию. Обучение самому программированию, это немного другой предмет и там все по другому.

Так это и неправильно. Как можно учить сначала инструменту, а потом объяснять, зачем этот инструмент нужен?

Сначала надо людей программированию научить, а потом уже можно про всякие сложные инструменты рассказывать. Тогда это новое знание ляжет на уже имеющийся фундамент, а не осядет в голове в виде неструктурированной лапши.
Обучение студентов
От: Nikolay_Ch Россия  
Дата: 24.05.17 09:36
Оценка:
Приветствую!

Хочу немного изменить концепцию преподавания своих предметов.
Всегда хотел, чтобы студент начиная решать задачу получал некий шаблон программы, в котором он должен заполнить недостающие строки кода. Это позволит быстро "стартануть" в условиях ограниченного времени на семинаре, а главное — успеть дойти до финиша к концу семинара.

Подготовка таких шаблонов — не проблема, но передать их студентам, объяснить, куда и что они должны добавлять — на это уходит время. Прочитал, что раньше были такие онлайн-среды, где можно было в режиме учителя загрузить шаблон, а студенты могли бы его допиливать прямо в браузере.

Существуют ли аналогичные актуальные решения сейчас? Язык — C#

С уважением,
Николай
программирование образование c#
Re: Git
От: Qbit86 Кипр
Дата: 24.05.17 09:43
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Существуют ли аналогичные актуальные решения сейчас? Язык — C#


Да, называется Git. Преподаватель создаёт репозиторий с шаблоном, комментариями и формулировками заданий. Студенты форкают и решают.

В качестве платформы можно использовать GitHub. У них для образовательных целей можно попросить приватные репозитории.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 09:52
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Да, называется Git. Преподаватель создаёт репозиторий с шаблоном, комментариями и формулировками заданий. Студенты форкают и решают.

Э-э-э. Нет. Гит надо учить, как с ним работать. Надо рассказывать концепции веток и версионного контроля. Это еще хуже, чем раздавать на флешке, да и по сути не отличается о нее. Я же имел ввиду немного другое. Загружаешь окно, а там сразу тебе цветом выделяется то, что ты редактировать можешь, что не можешь и т.п. вещи, которые удобны для преподавания.

Q>В качестве платформы можно использовать GitHub. У них для образовательных целей можно попросить приватные репозитории.

Я могу такие репозитории и сам развернуть, но мне нужно более френдли решение. Для студентов, которые только начинают.
Re[3]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 10:00
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

Q>>Да, называется Git. Преподаватель создаёт репозиторий с шаблоном, комментариями и формулировками заданий. Студенты форкают и решают.

N_C>Э-э-э. Нет. Гит надо учить, как с ним работать. Надо рассказывать концепции веток и версионного контроля. Это еще хуже, чем раздавать на флешке, да и по сути не отличается о нее. Я же имел ввиду немного другое. Загружаешь окно, а там сразу тебе цветом выделяется то, что ты редактировать можешь, что не можешь и т.п. вещи, которые удобны для преподавания.

Ужас какой. А может, немного упростить задачи, чтобы студенты успевали их решать, но все же пусть решают сами, а не формочку заполняют?
Re[4]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:09
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ужас какой. А может, немного упростить задачи, чтобы студенты успевали их решать, но все же пусть решают сами, а не формочку заполняют?

Вопрос в потере времени на организационные процессы. И на объяснение что такое системы версионного контроля, репозиторий и ветвление. И на ответы на бесконечные вопросы, а у меня не работает и "какая команда не напомните — я забыл". Домашняя работа — это без проблем, пусть делают как хотят, а в аудитории хочется время тратить на конкретику.

Что же до "пусть решают сами, а не формочку заполняют", это возможно, но, когда люди знают, как решать. А пока ты находишься в стадии объяснения как решать, лучший способ — это заполнить формочку.
Re[3]: Git
От: Pavel Dvorkin Россия  
Дата: 24.05.17 10:20
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

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


N_C>Э-э-э. Нет. Гит надо учить, как с ним работать. Надо рассказывать концепции веток и версионного контроля.


Я на рассказ об основах git/hg трачу примерно час на первом занятии. Вполне для начала достаточно clone/add/push/pull/status. Остальное будет потом.
Если поставить tortoisegit/hg, то еще проще.
With best regards
Pavel Dvorkin
Re[3]: Git
От: Submitter  
Дата: 24.05.17 10:24
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Э-э-э. Нет. Гит надо учить, как с ним работать. Надо рассказывать концепции веток и версионного контроля. Это еще хуже, чем раздавать на флешке, да и по сути не отличается о нее.


Странно что так просто отсекаете Git. Они собираются работать программистами, то с большой долей вероятности им придется в нем разбираться. Так может сделать это лучше в ВУЗе? Еще не раз пригодится за годы учебы.
Re[4]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:26
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я на рассказ об основах git/hg трачу примерно час на первом занятии. Вполне для начала достаточно clone/add/push/pull/status. Остальное будет потом.

Я не сомневаюсь, что это все можно рассказать за час, думаю, что можно и быстрее, вопрос — зачем. Для моей задачи использование версионного хранилища не дает преимуществ перед обычной сетевой шарой, или шарой Дропбокса или Яндекс-диска.
Re[4]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:30
Оценка:
Здравствуйте, Submitter, Вы писали:

S>Странно что так просто отсекаете Git. Они собираются работать программистами, то с большой долей вероятности им придется в нем разбираться. Так может сделать это лучше в ВУЗе? Еще не раз пригодится за годы учебы.

Им многое с чем придется столкнуться в жизни, но это еще не повод, чтобы об этом рассказывать на первых занятиях по языку высокого уровня, когда они еще толком в ООП не разбираются.
Re[4]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 10:32
Оценка:
Здравствуйте, Submitter, Вы писали:

S>Странно что так просто отсекаете Git. Они собираются работать программистами, то с большой долей вероятности им придется в нем разбираться. Так может сделать это лучше в ВУЗе? Еще не раз пригодится за годы учебы.


В ВУЗе, мне кажется, можно что-нибудь и попроще. Например, hg или svn. Но сама по себе идея, что программы разрабатывают не на коленке, а с помощью определенным образом налаженного процесса, включающего в себя source control, в ВУЗе, я думаю, должна прозвучать.
Re[5]: Git
От: Pavel Dvorkin Россия  
Дата: 24.05.17 10:35
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Я на рассказ об основах git/hg трачу примерно час на первом занятии. Вполне для начала достаточно clone/add/push/pull/status. Остальное будет потом.

N_C>Я не сомневаюсь, что это все можно рассказать за час, думаю, что можно и быстрее, вопрос — зачем.

Чтобы они этот шаблон взяли, код написали, закоммитили, а потом ты проверять мог.

N_C>Прочитал, что раньше были такие онлайн-среды, где можно было в режиме учителя загрузить шаблон, а студенты могли бы его допиливать прямо в браузере.


Зачем в браузере-то ? Чтобы могли отослать на сервер и там автоматически проверили ? Такое есть, но серьезный код таким способом не проверишь. Да и не надо.

Впрочем, от языка зависит. Какой язык программирования ?
With best regards
Pavel Dvorkin
Re[5]: Git
От: Pavel Dvorkin Россия  
Дата: 24.05.17 10:37
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

S>>Странно что так просто отсекаете Git. Они собираются работать программистами, то с большой долей вероятности им придется в нем разбираться. Так может сделать это лучше в ВУЗе? Еще не раз пригодится за годы учебы.

N_C>Им многое с чем придется столкнуться в жизни, но это еще не повод, чтобы об этом рассказывать на первых занятиях по языку высокого уровня, когда они еще толком в ООП не разбираются.

git и язык высокого уровня вещи вообще-то перпендикулярные почти (если не учитывать. что битбакет, к примеру, раскрасит программу).
git можно и делопроизводителям давать.
With best regards
Pavel Dvorkin
Re[6]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:37
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну казалось бы, обучение — это и есть процесс объяснения, как решать.

Что Вы сможете решить, если у Вас нет инструмента и никто не объяснил, как он работает?

Pzz>Идея реализовать обучение программированию через заполнение формочек мне кажется сомнительной. По-моему, так можно научиться формочки заполнять, а не писать программы.

Нет никаких формочек, есть код, в котором отсутствуют определенные строки, которые должны запрограммировать студенты. Можно этот код раздать через шару (не суть важно, как она называется — Гит, Яндекс-диск и т.п.) или использовать более френдли среду, которая эти шаблоны будет поддерживать т.с. нативно — с подсветкой того, где надо добавить код, с запретом редактирования того, что не относится к сути задачи и т.п.
Re[6]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:40
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>git и язык высокого уровня вещи вообще-то перпендикулярные почти (если не учитывать. что битбакет, к примеру, раскрасит программу).

PD>git можно и делопроизводителям давать.
Это так — это действительно перпендикулярные вещи, к моей задаче не относящиеся.
Re[5]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:41
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>В ВУЗе, мне кажется, можно что-нибудь и попроще. Например, hg или svn. Но сама по себе идея, что программы разрабатывают не на коленке, а с помощью определенным образом налаженного процесса, включающего в себя source control, в ВУЗе, я думаю, должна прозвучать.

Она звучит, естественно, но в свое время.
Re[7]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 10:42
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

Pzz>>Ну казалось бы, обучение — это и есть процесс объяснения, как решать.

N_C>Что Вы сможете решить, если у Вас нет инструмента и никто не объяснил, как он работает?

Мы сейчас говорим про git, или про программирование?

Pzz>>Идея реализовать обучение программированию через заполнение формочек мне кажется сомнительной. По-моему, так можно научиться формочки заполнять, а не писать программы.

N_C>Нет никаких формочек, есть код, в котором отсутствуют определенные строки, которые должны запрограммировать студенты. Можно этот код раздать через шару (не суть важно, как она называется — Гит, Яндекс-диск и т.п.) или использовать более френдли среду, которая эти шаблоны будет поддерживать т.с. нативно — с подсветкой того, где надо добавить код, с запретом редактирования того, что не относится к сути задачи и т.п.

В 20 лет люди еще не забыли, как это, думать самостоятельно. А вы хотите их от этого отучить.

Если вы не смогли научить студентов писать программы, это ваша вина, а не студентов.
Re[6]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 10:43
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Впрочем, от языка зависит. Какой язык программирования ?


Ц-с-решеткой, он же сказал.
Re[6]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 10:46
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

Pzz>>В ВУЗе, мне кажется, можно что-нибудь и попроще. Например, hg или svn. Но сама по себе идея, что программы разрабатывают не на коленке, а с помощью определенным образом налаженного процесса, включающего в себя source control, в ВУЗе, я думаю, должна прозвучать.

N_C>Она звучит, естественно, но в свое время.

В принципе, про git я высказался потому, что эту тему затронули.

А вот идея обучать программированию, путем вписывания своих слов в готовый шаблон программы, мне не нравится принципиально. И именно это я хотел сказать. Независимо от того, делается это с git'ом, или без.
Re[6]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:46
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Чтобы они этот шаблон взяли, код написали, закоммитили, а потом ты проверять мог.

Зачем мне это надо? Мне нужно, чтобы результат мог быть сделан быстро и не уходил на домашнюю работу, т.к. это резко понижает эффективность образовательного процесса. Чтобы программа заработала, а студенты не маялись с кучей проблем из-за того, что делая копи-паст неизвестно откуда они не подумали, как все это встроить в их программу. Чтобы усилия студентов уходили на реализацию конкретного функционала, а не на воспроизведения окружения.

N_C>>Прочитал, что раньше были такие онлайн-среды, где можно было в режиме учителя загрузить шаблон, а студенты могли бы его допиливать прямо в браузере.

PD>Зачем в браузере-то ? Чтобы могли отослать на сервер и там автоматически проверили ? Такое есть, но серьезный код таким способом не проверишь. Да и не надо.
Для простоты. Я вот иногда тоже балуюсь в браузере шарпом, т.к. лень студию запускать и проект делать.

PD>Впрочем, от языка зависит. Какой язык программирования ?

я писал — C#
Re[8]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 10:50
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>В 20 лет люди еще не забыли, как это, думать самостоятельно. А вы хотите их от этого отучить.

Ну да, ну да... Даже такой простой инструмент как молоток требует обучения в работе и умение думать самостоятельно здесь не поможет.

Pzz>Если вы не смогли научить студентов писать программы, это ваша вина, а не студентов.

Вы все время путаете процесс. В контексте моего вопроса я учу инструменту, т.е. языку, а не программированию. Обучение самому программированию, это немного другой предмет и там все по другому.
Re[7]: Git
От: Pavel Dvorkin Россия  
Дата: 24.05.17 10:52
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Зачем мне это надо? Мне нужно, чтобы результат мог быть сделан быстро и не уходил на домашнюю работу, т.к. это резко понижает эффективность образовательного процесса. Чтобы программа заработала, а студенты не маялись с кучей проблем из-за того, что делая копи-паст неизвестно откуда они не подумали, как все это встроить в их программу. Чтобы усилия студентов уходили на реализацию конкретного функционала, а не на воспроизведения окружения.


Прошу прощения, а какого рода программа ? Вычисление среднего из сотни чисел или создание многопоточного клиент-серверного приложения с несколькими библиотеками/фреймворками ? Для первого что-то найти можно, для второго — крайне сомневаюсь.
With best regards
Pavel Dvorkin
Re[8]: Вписывания в шаблон
От: Nikolay_Ch Россия  
Дата: 24.05.17 11:44
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Это стандартный подход на многих сайтах «развлекательного» программироваия (HackerRank, CodinGame, TopCoders, etc.)

Добавлю, что это не только подход "развлекательных" сайтов, но и вполне себе грандов типа Майкрософта, которая тоже дает шаблоны на свои лабораторные.
Re[8]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 11:46
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Прошу прощения, а какого рода программа ? Вычисление среднего из сотни чисел или создание многопоточного клиент-серверного приложения с несколькими библиотеками/фреймворками ? Для первого что-то найти можно, для второго — крайне сомневаюсь.

Программы по темам языка. Классы, структуры, свойства, интерфейсы. Не суть, что она конкретно решает в реальности, она может даже ничего не решать — главное, чтобы человек прочувствовал структуры языка, а на дом уже какая-нибудь самостоятельная.
Re[10]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 11:53
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А как, по-вашему, когда молотком учат работать, мастер забивает гвозди наполовину, а потом дает ученику их забить до конца?

Мастер рассказывает все по шагам что и как делать. Вспомните свои уроки труда и там... табурет или еще что. Там подробная пошаговая инструкция. И на этих уроках никто не учит думать, как надо сделать, учат сначала "руку держать", делать стандартные действия. Например, научите людей работе в отладочном режиме. Как это сделать, если не написать подробно, что надо написать, какие кнопки нажать для бряк-поинта, куда посмотреть, чтобы увидеть значения переменных. Не поможет здесь вам умение программировать. Тут программировать вообще ничего не нужно.

Pzz>Так это и неправильно. Как можно учить сначала инструменту, а потом объяснять, зачем этот инструмент нужен?

Не "зачем нужен", а "что с помощью него можно сделать". Но ответ тут очень простой — в общем случае — сделать можно все.

Pzz>Сначала надо людей программированию научить, а потом уже можно про всякие сложные инструменты рассказывать. Тогда это новое знание ляжет на уже имеющийся фундамент, а не осядет в голове в виде неструктурированной лапши.

Мне кажется, что это два параллельных пути, на каждом из которых нужно решать свои типы задач. В данном контексте меня больше интересуют задачи инструмента, а не программирования.
Re[8]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 11:55
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Исходя из своего опыта — шаблонный подходи позволит хоть сделать работу среднему студенту, а не забить на нее и не списать позже у соседа не разбираясь. А раз он не забил и получил результат — есть шансы, что он и дальше будет делать работы.


И при этом полностью отбивает желание делать хоть что-нибудь у студентов выше среднего. Которые, может, и пошли бы работать программистами, в отличии от тех, на которых вы ориентируетесь.

N_C>К сожалению, в нынешней реальности я не могу уделять внимания только идеальным студентам, процент которых в группах год от года почти не меняется. Я вынужден ориентироваться на средних студентов и пока принципы образования не поменяются, ничего не изменится.


Реальность создаете лично вы. Не в масшабах, конечно, вселенной, но в том пространстве, за которое лично вы отвечаете.
Re[9]: Вписывания в шаблон
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 11:58
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

Q>>Это стандартный подход на многих сайтах «развлекательного» программироваия (HackerRank, CodinGame, TopCoders, etc.)

N_C>Добавлю, что это не только подход "развлекательных" сайтов, но и вполне себе грандов типа Майкрософта, которая тоже дает шаблоны на свои лабораторные.

Судя по тому, что проще пойти и удавиться экспериментально попробовать, чем что-нибудь понять из микрософтовской официальной спецификации, я бы не стал на них ориентироваться в вопросах обучения кого-либо чему-нибудь.
Re[9]: Git
От: Pavel Dvorkin Россия  
Дата: 24.05.17 12:06
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Программы по темам языка. Классы, структуры, свойства, интерфейсы. Не суть, что она конкретно решает в реальности, она может даже ничего не решать — главное, чтобы человек прочувствовал структуры языка, а на дом уже какая-нибудь самостоятельная.


Вот это не пойдет ?

https://www.tutorialspoint.com/compile_csharp_online.php

Вроде как можно свой код загружать.
With best regards
Pavel Dvorkin
Re[11]: Git
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.05.17 12:07
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Мастер рассказывает все по шагам что и как делать. Вспомните свои уроки труда и там... табурет или еще что. Там подробная пошаговая инструкция. И на этих уроках никто не учит думать, как надо сделать, учат сначала "руку держать", делать стандартные действия. Например, научите людей работе в отладочном режиме. Как это сделать, если не написать подробно, что надо написать, какие кнопки нажать для бряк-поинта, куда посмотреть, чтобы увидеть значения переменных. Не поможет здесь вам умение программировать. Тут программировать вообще ничего не нужно.


Мне кажется, табуретки учат делать примерно так: "Все внимательно смотрите, как это делаю я. Всё запомнили? Кто осмелится попробовать повторить? Вася, ну по пальцу-то, по пальцу ты зачем долбишь! Петя, перестань засовывать гвозди за шиворот Маше! Ну, тупыеее!"

Pzz>>Так это и неправильно. Как можно учить сначала инструменту, а потом объяснять, зачем этот инструмент нужен?

N_C>Не "зачем нужен", а "что с помощью него можно сделать". Но ответ тут очень простой — в общем случае — сделать можно все.

Ну это, по-моему, как учить людей водить самолет, путем рассказывания назначения каждой кнопочки (а их в самолете много — примерно как заковыристых конструкций в C#). А потом когда-нибудь, через годик, дать ученикам самим порулить, под присмотром опытного пилота.

К тому времени, когда ему дадут порулить, он уже полностью забудет про все эти кнопочки, и будет лишь крепко держаться за штурвал, чтобы от страха из сиденья не выпасть.
Re[12]: Git
От: Nikolay_Ch Россия  
Дата: 24.05.17 12:16
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну это, по-моему, как учить людей водить самолет, путем рассказывания назначения каждой кнопочки (а их в самолете много — примерно как заковыристых конструкций в C#). А потом когда-нибудь, через годик, дать ученикам самим порулить, под присмотром опытного пилота.

Pzz>К тому времени, когда ему дадут порулить, он уже полностью забудет про все эти кнопочки, и будет лишь крепко держаться за штурвал, чтобы от страха из сиденья не выпасть.
А Вы почитайте, как идет обучение на пилотов или, к примеру, космонавтов. Пока ученика пустят "посидеть" — он должен выучить гору материала и сдать кучу экзаменов. И сажают их в кресло 2-го пилота. И ему КВС дает порулить очень редко и во вполне конкретных ситуациях. Пока не научится.
Re: Обучение студентов
От: LaptevVV Россия  
Дата: 24.05.17 13:17
Оценка:
N_C>Хочу немного изменить концепцию преподавания своих предметов.
N_C>Всегда хотел, чтобы студент начиная решать задачу получал некий шаблон программы, в котором он должен заполнить недостающие строки кода. Это позволит быстро "стартануть" в условиях ограниченного времени на семинаре, а главное — успеть дойти до финиша к концу семинара.
Не шаблон программы, а паттерны кода. Без привязки к языку.
Я так понимаю, что "ноги растут" от паттернов циклов Ткачева?
N_C>Подготовка таких шаблонов — не проблема, но передать их студентам, объяснить, куда и что они должны добавлять — на это уходит время. Прочитал, что раньше были такие онлайн-среды, где можно было в режиме учителя загрузить шаблон, а студенты могли бы его допиливать прямо в браузере.
Github.
Мы использовали в паре курсов — неплохо получилось.
Надо только организационно продумать — один каталог на группу и все внутри, или каждый индивидуально, или один каталог на комманду (коллективные проекты)
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Templates and patterns
От: Nikolay_Ch Россия  
Дата: 24.05.17 13:58
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Я так понимаю, именно шаблон-template, а не шаблон-pattern. Просто код с плейсхолдерами, который подготавливает «церемонии» namespace-public-static-void-main-bla-bla-bla, неинтересные на начальном этапе обучения.

Именно! И именно эти "церемонии" на начальном этапе вызывают очень много временных потерь.
Re: Обучение студентов
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 24.05.17 15:02
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Это позволит быстро "стартануть" в условиях ограниченного времени на семинаре, а главное — успеть дойти до финиша к концу семинара.

Я сам практически никогда не практиковал написание кода студентами на практических занятиях — всё выносил на самостоятельное решение.
Т.е. на лекции (или "в теоретической части") я показываю "как начать", а затем уже студенты воспроизводят это сами.
Но, во-первых, я вел у достаточно высоких курсов (там разобраться в среде и начать — не проблема). А во-вторых, сейчас я считаю уже не в рамках ВУЗа и всегда есть запись лекций.

Однако из своего студенчества могу вспомнить довольно успешный пример одного из преподавателей.
По сути, он предложил что-то вроде майкросовтовских пошаговых лабораторных — т.е. пошаговую инструкцию, которая включала:

Сам преподаватель присутствовал в маш. зале, следил что и как у кого идет, и помогал при возникновении проблем.
На сколько помню, выполнение дальнейших заданий самостоятельно уже не было проблемой.

P.S. единственное что не помню, мы только создавали проект с 0 или был еще уже слегка доработанный вариант, который мы и дополняли. Вроде были оба — и просто начать, и сделать что-то посложнее.
Re: Обучение студентов
От: vsb Казахстан  
Дата: 24.05.17 15:08
Оценка:
Вообще такой функционал есть на hackerrank, с точки зрения пользователя. Выбираешь задачу, выбираешь язык программирования и тебе там сразу заполненая рыба показывается. И тесты тоже есть. Возможно для вас тоже подойдёт.
Re[2]: HackerRank
От: Qbit86 Кипр
Дата: 24.05.17 15:11
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Вообще такой функционал есть на hackerrank, с точки зрения пользователя. Выбираешь задачу, выбираешь язык программирования и тебе там сразу заполненая рыба показывается. И тесты тоже есть. Возможно для вас тоже подойдёт.


HackerRank хороший, всем советую. Но там вроде только зааппрувленные задачи, не произвольные.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Обучение студентов
От: cures Россия cures.narod.ru
Дата: 24.05.17 16:12
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Вообще такой функционал есть на hackerrank, с точки зрения пользователя. Выбираешь задачу, выбираешь язык программирования и тебе там сразу заполненая рыба показывается. И тесты тоже есть. Возможно для вас тоже подойдёт.


Это смотря какой язык выбираешь Если выбираешь C++-14, то вся "рыба" — это обычно длинный список инклюдов, using namespace std и пустая функция маин. И это правильно, ещё бы инклюды и юзинг убрали, всё равно обычно вытирать приходится. Иногда в образовательных "контестах" добавляют ввод-вывод, иногда это бывает даже полезно, когда требуют писать на каком-нибудь ужасном языке типа питона или жаба-скрипта, в которых эти средства до безобразия кривые. Но вот когда эти участки кода защищают — это уже совсем кошмар.
Re: Обучение студентов
От: cures Россия cures.narod.ru
Дата: 24.05.17 16:38
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Прочитал, что раньше были такие онлайн-среды, где можно было в режиме учителя загрузить шаблон, а студенты могли бы его допиливать прямо в браузере.


Они и сейчас есть, например, ideone.com. Правда, никакого режима учителя там нет, Вы под своим логином пишете код (публичный или секретный), вставляете в нужные места TODO, публикуете ссылку в какой-нибудь социальной группе, они Ваш код форкают (одной кнопкой), дорабатывают, возможно тестируют, на Вашем инпуте или ещё на каком, Вы на это дело или сразу смотрите, или они Вам высылают свою ссылку через ту же группу (сообщения администратору, чтобы без палева, а стену им закрыть), и Вы в свободное время проверяете.
Там прямо на сайте можно компилировать, запускать (не более 5 секунд без реги), менять инпут.
Красивых отладчиков нету, fprintf и assert — ваши лучшие друзья.

N_C>Загружаешь окно, а там сразу тебе цветом выделяется то, что ты редактировать можешь, что не можешь и т.п. вещи, которые удобны для преподавания.


А вот этого там нет, зачем Вы хотите что-то им запретить? Если студент — валенок, он и так никуда не рыпнется, а если что-то соображает, то пусть меняет как ему удобней. Если что-то испортит — всегда есть исходный код, который он форкнул.
Re[6]: Git
От: cures Россия cures.narod.ru
Дата: 24.05.17 16:47
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Зачем в браузере-то ? Чтобы могли отослать на сервер и там автоматически проверили ? Такое есть, но серьезный код таким способом не проверишь. Да и не надо.


Вот это Вы зря. На том же топкодере очень даже проверяют, да и на многих других уже названных, код, присланный через браузер, вполне себе серьёзно. Если, конечно, под серьёзным кодом не подразумевать всякие распределённые приложения с гуём и секретаршами. Из открытых разработок вроде бы есть ejudge, с ним придётся, конечно, помучаться, настроить, решить вопрос с постоянно доступным сервером, но это всё не очень дорого по времени и по бабкам, разумеется, если оно вообще кому-то нужно. Или можно положиться на публичные сервисы, но тогда проверять придётся мануально.
Re[7]: Git
От: Pavel Dvorkin Россия  
Дата: 24.05.17 17:45
Оценка:
Здравствуйте, cures, Вы писали:

C>Вот это Вы зря. На том же топкодере очень даже проверяют, да и на многих других уже названных, код, присланный через браузер, вполне себе серьёзно. Если, конечно, под серьёзным кодом не подразумевать всякие распределённые приложения с гуём и секретаршами. Из открытых разработок вроде бы есть ejudge, с ним придётся, конечно, помучаться, настроить, решить вопрос с постоянно доступным сервером, но это всё не очень дорого по времени и по бабкам, разумеется, если оно вообще кому-то нужно. Или можно положиться на публичные сервисы, но тогда проверять придётся мануально.


C edujge я более или менее знаком, но там проверяется решение по набору тестов. Это вполне годится для олимпиад, для которых он в основном и предназначен, но не для обучения. Мне как преподавателю недостаточно, что программа студента проходит тесты, я хочу еще видеть, как она написана, какие алгоритмы (если они есть), какой стиль и т.д.
With best regards
Pavel Dvorkin
Re[8]: Git
От: cures Россия cures.narod.ru
Дата: 24.05.17 18:05
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>C edujge я более или менее знаком, но там проверяется решение по набору тестов. Это вполне годится для олимпиад, для которых он в основном и предназначен, но не для обучения. Мне как преподавателю недостаточно, что программа студента проходит тесты, я хочу еще видеть, как она написана, какие алгоритмы (если они есть), какой стиль и т.д.


Так а что мешает? Если оно запущено на Вашем серваке, то все посылки должна складывать на него же. Во всяком случае на olympiads.ru при нахождении косяков в заданиях легко перепроверяли все предыдущие посылки, потом почему-то стали перепроверять только последнюю, но это уже наверное было политическое решение. Отдельные извращенцы прикручивали к нему чекалки пепов, хотя я бы за такое убивал. Берёте прогу студня с сервака, если не лень, и изучаете, и штиль, и алгоритмы. Хотя что алгоритм нормальный — проверяется именно прохождением трудных тестов в отведённое время, если не можете составить такие тесты — значит, сами не очень понимаете чего хотите.
Для обучения оно уже давно используется в 179 школе, и вряд ли только в ней.
Re[3]: Git
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.05.17 07:57
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

Q>>Да, называется Git. Преподаватель создаёт репозиторий с шаблоном, комментариями и формулировками заданий. Студенты форкают и решают.

N_C>Э-э-э. Нет. Гит надо учить, как с ним работать. Надо рассказывать концепции веток и версионного контроля. Это еще хуже, чем раздавать на флешке, да и по сути не отличается о нее. Я же имел ввиду немного другое. Загружаешь окно, а там сразу тебе цветом выделяется то, что ты редактировать можешь, что не можешь и т.п. вещи, которые удобны для преподавания.

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

Другое дело, что воркфлоу отличается от продакшна. Но здесь с репом работает ровно один человек, потому незачем забивать голову лишними знаниями.
Re[7]: Git
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.05.17 07:59
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

Pzz>>Ну казалось бы, обучение — это и есть процесс объяснения, как решать.

N_C>Что Вы сможете решить, если у Вас нет инструмента и никто не объяснил, как он работает?

Минимальный сведения надо конечно дать студентам. На это уходит несколько аудиторных часов в фоне. Максимум лекция + практика, в ходе которой надо сделать первое задание и запушить его в свой реп.
Re[5]: Git
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.05.17 08:02
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

PD>>Я на рассказ об основах git/hg трачу примерно час на первом занятии. Вполне для начала достаточно clone/add/push/pull/status. Остальное будет потом.

N_C>Я не сомневаюсь, что это все можно рассказать за час, думаю, что можно и быстрее, вопрос — зачем. Для моей задачи использование версионного хранилища не дает преимуществ перед обычной сетевой шарой, или шарой Дропбокса или Яндекс-диска.

А из дому они тоже будут иметь доступ к сетевой шаре ? И с ноута в кафешке где они домашние задания делают ? И уж точно шара будет всегда живая, никто никогда не ошибется в копировании. НИкто никогда не затрет копированием свою работу.

Прежде всего реп удобен для преподавателя. Есть коммит — можно проверять. Нет коммита — до свидания. И студент никогда ничего не потеряет. Если не ставить задачей трушное использование гита, то все достаточно легко.
Re[6]: Git
От: Nikolay_Ch Россия  
Дата: 25.05.17 15:34
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I> А из дому они тоже будут иметь доступ к сетевой шаре ? И с ноута в кафешке где они домашние задания делают ? И уж точно шара будет всегда живая, никто никогда не ошибется в копировании. НИкто никогда не затрет копированием свою работу.

Ссылка в Дропбоксе всегда доступна
Re[7]: Git
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.05.17 08:13
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

I>> А из дому они тоже будут иметь доступ к сетевой шаре ? И с ноута в кафешке где они домашние задания делают ? И уж точно шара будет всегда живая, никто никогда не ошибется в копировании. НИкто никогда не затрет копированием свою работу.

N_C>Ссылка в Дропбоксе всегда доступна

Где гарантия что никто ничего случайно не перезатрёт ?
Re[8]: Git
От: Nikolay_Ch Россия  
Дата: 26.05.17 08:17
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Где гарантия что никто ничего случайно не перезатрёт ?

Ох... Видимо Вы не пользуетесь Дропбоксом. Там можно сделать просто ссылку на документ, в таком случае документ можно будет скачать, при этом изменить его в самом Долпбоксе будет нельзя.
Re[9]: Git
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.05.17 08:23
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

I>>Где гарантия что никто ничего случайно не перезатрёт ?

N_C>Ох... Видимо Вы не пользуетесь Дропбоксом. Там можно сделать просто ссылку на документ, в таком случае документ можно будет скачать, при этом изменить его в самом Долпбоксе будет нельзя.

Ну вот повседневный кейс — студент залил в дропбокс не то и старой версии у него нет, потому что локально у него была одна копия. Чем в этом случае поможет дропбокс?
Re[10]: Git
От: Nikolay_Ch Россия  
Дата: 26.05.17 08:28
Оценка:
Здравствуйте, Ikemefula, Вы писали:

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


I>Ну вот повседневный кейс — студент залил в дропбокс не то и старой версии у него нет, потому что локально у него была одна копия. Чем в этом случае поможет дропбокс?

Я не знаю, какой Вы кейс хотите использовать. Мой кейс был предельно простой — прийти на занятия и, дав ссылку позволить студентам скачать что-то или открыть что-то. Затем быстро (за час) запрограммировать данную мной задачу.
Ничего никуда в дальнейшем заливать не надо.
Re[11]: Git
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.05.17 10:52
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

I>>Ну вот повседневный кейс — студент залил в дропбокс не то и старой версии у него нет, потому что локально у него была одна копия. Чем в этом случае поможет дропбокс?

N_C>Я не знаю, какой Вы кейс хотите использовать. Мой кейс был предельно простой — прийти на занятия и, дав ссылку позволить студентам скачать что-то или открыть что-то. Затем быстро (за час) запрограммировать данную мной задачу.
N_C>Ничего никуда в дальнейшем заливать не надо.

А как студенты будут задания приносить, на флешках или через дропбокс ?
Re[12]: Git
От: Nikolay_Ch Россия  
Дата: 26.05.17 10:57
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>А как студенты будут задания приносить, на флешках или через дропбокс ?

Я уже писал — это задание для семинара — главное, чтобы у студента за час просто получилось дойти до конца; получить так сказать результат.
Проверить его я могу просто взглянув на монитор студента — ему ничего никуда приносить не надо.
Re[13]: Git
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.05.17 11:26
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

I>>А как студенты будут задания приносить, на флешках или через дропбокс ?

N_C>Я уже писал — это задание для семинара — главное, чтобы у студента за час просто получилось дойти до конца; получить так сказать результат.
N_C>Проверить его я могу просто взглянув на монитор студента — ему ничего никуда приносить не надо.

Ну вот он прошел до конца и случайно затер, как раз перед тем как ты проверить подошел. Как быть ? Чем здесь дропбокс помогает ?
Re[14]: Git
От: Nikolay_Ch Россия  
Дата: 26.05.17 12:37
Оценка:
I>Ну вот он прошел до конца и случайно затер, как раз перед тем как ты проверить подошел. Как быть ? Чем здесь дропбокс помогает ?
А чем Git поможет, если забыл запушить изменения? Предлагаю уже не спорить. Я все понимаю про Гит и как он работает знаю.
Re[15]: Git
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.05.17 14:06
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

I>>Ну вот он прошел до конца и случайно затер, как раз перед тем как ты проверить подошел. Как быть ? Чем здесь дропбокс помогает ?

N_C>А чем Git поможет, если забыл запушить изменения? Предлагаю уже не спорить. Я все понимаю про Гит и как он работает знаю.

В гите нужно всего лишь комитать-пушить. В твоем случае надо вручную бекапить и восстанавливать из бекапа.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.