|
Автор FAQ
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
|
|
Нужны идеи создания креативного учебного плана для студентов по шарпу28.08.2015, 20:50. Показов 5225. Ответов 21
Метки нет (Все метки)
Я хочу составить НЕбанальное пособие для студентов,помогите ребята статьями, ресурсами,курсами лекции.Хочу чтобы это было максимально не приторно, развивало абстрактное мышление и было понятно, чтобы студент с практически 0 знаниями по шарпу мог научиться сделать приложение на WinForms хотя бы.
Есть идея - разработать приложение и описать полный цикл разработки от ТЗ до сдачи приложения, какие идеи у вас? Свой курс я выложу также сюда, надеюсь на помощь форумчан. Добавлено через 15 минут Примерные тематики,которые я хочу использовать: Введение, ТЗ и создание шаблона приложения ( рисунки, UML - диаграммы и т.д.) Создание оконных приложений, ошибки и правила проектирования UI Работа с сетью Работа с БД Многопоточность Подключение и использование системных/своих .net библиотек Шаблоны проектирования Основы рефакторинга и использование .Net Reflectora Добавлено через 1 минуту Что вы можете подсказать по каждому пункту или можете предложить свои пункты ?
0
|
|
| 28.08.2015, 20:50 | |
|
Ответы с готовыми решениями:
21
CMS для создания сайта учебного заведения Нужны идеи для курсовой Нужны идеи для диплома |
|
Master of Orion
|
|
| 28.08.2015, 22:12 | |
|
REALIST07, все просто, чтобы было интересно, нужно прогать игры. А это кстати автоматом сводит к ООП, если правильно подвести. Класс Unit, у него есть наследники Mage, Swordsman и т.п., там свои ответвления. Шутер вряд ли сделают, но вот что-нибудь типа хотя бы змейки можно осилить легко. Зависит от энтузиазма. На самом деле из меня скорее всего хреновый педагог, но лично я в UML большого смысла не вижу. То есть можно рассказать и показать, как его читать, базовые понятия - наследование, использование и т.п. Но вот например как нам давали - что значит пунктирная линия с закрашеным ромбиком, а как называются нагруженные связи - бред. Зазубрили - сдали - забыли. Мне даже в работе UML не пригождается, что уж говорить про лабы
Паттерны это тоже хрень. Студент хоть 1, хоть 5 курса не поймет, зачем это и для чего. Паттерны либо очевидны (вроде событийного), либо сложны и используются только в высоконагруженных системах (всякие фасады фабрик адаптеров). Работа с сетью - опять же, написание бота для браузерок. Есть много html-браузерок, где можно тупо http-запросами делать то, что нужно. Всякие мёртвые гладиаторы никак не банят за это, насколько мне известно. Работа с БД - сохранение игровых достижений, всё такое. У гуглы был хороший проект по написанию AI - Google Ants. Можете сделать что-то подобное (вы напишете сервер, на котором будут сражаться боты, подключать можно как MEF плагины AI ваших учеников). То есть они пишут логику, а гуй на вас - как они там ходят, как сражаются. В качестве автомата 5 на 2 года вперед можно будет попросить кого-нибудь из желающих написать свой сервер - с более крутой графиков, поддержкой не 1х1, а FFA боев, и так далее... Фантазировать можно много. Я за геймификацию, в целом. Все эти "напишите графический редактор" в тоску вгоняют. Добавлено через 2 минуты Вот тут немного про эту игру рассказано: http://habrahabr.ru/post/130979/ http://habrahabr.ru/post/132776/ https://geektimes.ru/post/135287/ что хорошо - близзовское правило easy to start, hard to master работает. Написать бота легко - просто каждый муравей на рандомную клетку идет, занимает 4 строчки и не требует практически никаких навыков. Еще проще - всегда идёт вправо, пока не упрется в стенку. Вообще одна строчка . Но такой бот постоянно умирает. Хочется ему как-то помочь. Как? Вот тут и начинается. Там поправил, тут поправил. В конце концов получается что-то, как по последней ссылке - десятки взаимосвязанных методов, интеллект роя, определяющий приоритеты, группы рабочих, военных, прогнозирование появления еды... Короче, есть куда расти.
1
|
|
|
|
|
| 29.08.2015, 08:20 | |
|
Psilon, Геймификация это конечно здорово. Только вот геймдев это очень специфичная область разработки. Студент не получит в ней ни навыков создания GUI (потому что в играх он очень специфичный). Ни работы с контролами. Ни навыков энтерпрайза в целом. А это то, с чем им реально придется работать в будущем. (да да, не все они будут крутыми стартаперами, не все будут стивами джобсами, а реально они буду лабать таблички для бухгалтерии)
И еще, что касается ants и тому подобных. Я по своему опыту знаю (участвовал в некоторых подобных соревнованиях), что код там - мама не горюй. Сплошная вермишель. Отчасти потому, что в спортивном программировании нет времени на хороший код, отчасти потому что AI без четкой теории - очень эвристичен. Соответственно и код такой же. Студентам же нужны четкие как рельса алгоритмы. REALIST07, Научите же наконец студентов отделять данные от интерфейса! На форуме 99% новичков пихают данные в контролы Оттуда же и куча остальных проблем.
1
|
|
|
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
|
|||
| 29.08.2015, 09:04 | |||
|
Storm23, На начальном этапе разработка игр необходима лишь для набивания руки с целью изучения базовых элементов ЯП (циклов, операторов) и ООП элементов.
Добавлено через 7 минут
1
|
|||
|
Автор FAQ
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
|
|
| 29.08.2015, 11:11 [ТС] | |
|
Пожалуйста дайте ссылки на толковые ресурсы про отделение бизнес - логики от UI - это очень важная тема.
Про шаблоны хочу показать 1,2 шаблона как и где их можно применить, пожалуйста дайте ссылки на ресурсы по всем темам, у меня есть свои наработки, но я хочу мнение форумчан послушать.
0
|
|
|
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
|
||
| 29.08.2015, 12:37 | ||
|
Добавлено через 3 минуты по MVC статей в инете куча. по n-tier строгого описания нет - везде описано по-разному
0
|
||
|
Автор FAQ
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
|
|
| 29.08.2015, 13:16 [ТС] | |
|
Можете накидать небольшой пример ваш лично? Более менее простой и понятный? Вы бы здорово помогли, я знаю что есть масса примеров, мне интересно именно экспертное мнение форумчан.
0
|
|
|
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
|
|
| 29.08.2015, 13:33 | |
|
REALIST07,
по MVC и в нете примеров куча. По многозвенной архитектуре могу сказать, что единого стандарта не нашел, и лично для себя выбрал следующее решение: DataAccessLayer - содержит модели данных, используемых в БД, контекст доступа к БД. Также я размещаю там репозитории. BusinessLayer - содержит бизнес логику, доступ осуществляется через сервисы. Вот к примеру скрин самого простого приложения основанного на 3-х уровневой архитектуре.
1
|
|
|
Master of Orion
|
|
| 29.08.2015, 15:55 | |
|
REALIST07, ну, в моём случае достаточно просто попросить сделать несколько интерфейсов для игры. Консольный и GUI (винформы, например). И возможность переключаться между ними. Это достигается легко, если правильно разделить логику и представление. Грубо говоря, есть dll-ка с логикой, и есть два приложения gui и консольное, которые потребляют эту библиотечку. Правда тут нужно следить, чтобы не было тупого копипаста. Как это сделать - вопрос.
Storm23, нужно человека заинтересовать. Я помню мои лабы по программированию - тоска зеленая. В некоторых случаях вообще демотивация полная. Задачи были типа "скопипастите 100500 классов, чтобы они работали", следующая "а теперь замение копипаст наследованием И УБЕДИТЕСЬ, ЧТО ТЕПЕРЬ КОДА СТАЛО МЕНЬШЕ", я плевался, когда 1000 строк говнокода приходилось копипастить, но что делать, за использование наследования в первой лабе карали. Потом были задачи "отнаследуйте треугольник от точки, а квадрат от треугольника", а потом в следующей лабе ВНЕЗАПНО оказывалось, что тут лучше использовать композицию... Когда человек заинтересовался, можно уже с ним дальше работать, обучать и так далее. Если нет - то это ваще не его и он пошел на факультет потому что друг сказал, что прогеры ворочают деньги мешками.
1
|
|
|
Автор FAQ
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
|
|
| 29.08.2015, 23:23 [ТС] | |
|
Ребята, я пришел к выводу, что мой учебный план будет состоять из 2 частей
1 - основная, тут мы будем писать какое-нибудь ОДНО полезное приложение, которое будет включать все разделы мои выше, будет развивать абстрактное мышление и хоть как-то сориентирует студентов. 2 - доп. для домашнего задания будет даваться краткий конспект лекции типа "зубрежка" работы с классами,массивами и т.д. Как вам ? Хотелось бы больше кода,статей,идеи,учебников,книг. Добавлено через 5 часов 58 минут Надо определить какую программку можно набросать по соответствующим критериям ? Чтобы она была также полезна, возможно парсер , но чего именно ? может новостей ?
0
|
|
|
|
|
| 30.08.2015, 09:19 | |
Сообщение было отмечено REALIST07 как решение
Решение
REALIST07, Я вот подумал
1) Я не очень понимаю, как в рамках одного курса можно дать такой диапазон знаний, начиная с азов C# и аж до сетей и БД. Например сеть - это огромная тема. Начиная от понимания работы стека TCP/IP и аж до высокоуровневой байды типа WCF. Сеть - это вообще тема для отдельного курса. Другой пример - БД. Знаком ли студент с проектированием БД? Всякие там нормализации/денормализации, индексы, связи, триггеры, транзакции, репликации? Знает ли он SQL? На какой уровень рассчитан ваш курс? По большому счету разработка БД и работа с ней - это тоже отдельный курс (в профильных институтах кстати это и есть отдельные курсы, что БД, что сеть). Нужно определиться с уровнем подготовки студентов для вашего курса. Либо же разделить курс на несколько уровней (типа Beginner, Intermediate, Advanced). Иначе совершенно непонятно как вы будете рассказывать про SqlConnection, если студент не знает ни SQL, ни как создать базу, ни как задать ConnectionString. Будет сплошной треш и угар. А еще ООП само по себе - это же тоже огромный пласт знаний. 2) Чем ваш курс будет отличаться от множества других курсов? Вы говорите про "небанальность". А в чем она собственно заключается? Я пока не вижу отличий. 3) Насчет написания одного приложения. Как вы себе это представляете? Ну вот разработали вы архитектуру приложения на первом занятии (хотя странно как-то начинать с архитектуры, если студенты азов не знают, тут снова таки вопрос про начальный уровень слушателей). И что дальше? Вы начнете лобать DALы и BL, сервисы и контролы? Но ведь студенты даже синтаксиса не знают. Одно большое правильно написанное приложение - всегда будет сложным. Иначе не бывает. Нельзя вот так взять и написать сложное приложение с нуля Студенты как увидят полный код приложения - разбегутся с перепугу. Писать же его постепенно, так это вы попадете в такую ситуацию как Psilon, который наследовал треугольник от точки Потому что если писать сразу правильно, то студенты не поймут почему именно так а не иначе.В общем, я бы предлагал как раз другой подход. В каждом уроке создается небольшая полностью работающая(!) простая(!) програмка, демонстрирующая некий аспект знаний. (кстати если вы посмотрите мои посты на форуме, у меня здесь таких программок здесь - дофига). В крайнем случае, програмка пишется за несколько заходов на несколько уроках. (например на одном разработали модель данных, на другом - интерфейс к ней). При этом програмки могут быть разнообразными, например ООП удобно давать как предлагал Psilon в виде игр. (заодно студенты будут тренироваться разбирать и реализовывать разнообразные ТЗ фактически на каждом уроке). Тут большая сфера для маневров. Можно придумать много разных интересных задачек и сразу же реализовать их. (кстати по-моему для программистов очень важно сразу увидеть результат своей работы, они ж как дети - все хочется пощупать и взять на зуб). Рутинная разработка супер-мега-ПО на 3 месяца - подохнут они, как пить дать, подохнут. Кроме того, мне кажется удобнее иметь под боком набор простых примеров реализации конкретных задач, чем одно большое приложение-монстр, в котором как бы все есть, но понять его - с ума сойти. А еще, что будет если вы надумаете добавить какие-то уроки в будущем? Вы будете снова расширять свое мега-приложение? А если новый урок туда не влазит и оно туда не лепится? В случае же мелких програмок - можно добавлять уроки до бесконечности. Паралельно студенты конечно могут разрабатывать и одно большое приложение, но это как бы курсовая работа - обобщение полученных знаний, а не как способ обучения. ИМХО. 4) Я так и не понял, в каком виде вы собираетесь это делать? Онлайн лекции? Конспект лекций? Видео курсы? Очно? Заочно? На сколько часов рассчитан курс? Какую глубину и объем знаний вы хотите дать? 5) В вашем списке задач много чего нет. Например графика (GDI+ хотя бы), стандартные интерфейсы (IEnumerable<T>, опреатор yield, IDisposable и т.п.), LINQ, кастомные контролы. Где это? А еще структуры данных (массивы, словари, хештаблицы, деревья, стеки, очереди). Очень много народу путается в них, не знает зачем они нужны и чем отличаются. А еще ж есть оценка сложности алгоритмов. Как по мне это очень важно. Но тут снова же вопрос о начальном уровне студентов и о полноте курса, который вы хотите сделать. В общем, нужно поставить все точки над i, и определиться со всеми этими вещами. Поставить рамки, так сказать. Иначе будет не курс, а монгольский цирк. Все сугубое ИМХО разумеется, решать вам
2
|
|
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
|
| 30.08.2015, 11:44 | |
|
Видел сайты, обучающие программированию, вот они были действительно небанальны. В правой части страницы вы пишите код, слева - мгновенно отображается результат(типа подключения выпадающего списка к кнопке). Проблема - они все на иностранном. Были бы на русском, думаю, многие бы заинтересовались..
0
|
|
|
Автор FAQ
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
|
|
| 30.08.2015, 12:46 [ТС] | |
|
Storm23,
1) Я не ставлю целью дать целый диапазон знаний, я хочу чтобы студенты начали свое изучение языка с наиболее ПРАВИЛЬНОГО подхода,избегали избитых ошибок, возможно дать шаблон - подход, используя который их не назвали бы нубами. 2) Вот именно поэтому я спросил у вас и всех людей,имеющих опыт разработок - как сделать банальные вещи небанальными ? Я хотел бы чтобы вы подкинули какие-то статейки может с хабра того же, или англоязычных ресурсов откуда можно было бы взять полезное, какие-нибудь интересные примеры, картинки, графики и т.д. 3) Ваш комментарий меня убедил,отойду от концепции одной программы, можете помочь с этим, вообще какие примеры программ/легких игр вам запомнились? Надо чтобы это осталось в памяти надолго. 4) Очные курсы, рассчитывается как 1 лекция/ 1 практика в неделю, всего 12 недель , уровень - новичок, пока предполагаю ,что будет лабораторный практикум в виде методички + скорее всего презентации + на очень сложные темы возможно видео, какие форматы вы посоветуете? Добавлено через 2 минуты Psilon, можете мне дать какие - нибудь исходники вот прям очень простых игр ?которые можно быстро набрать и увидеть результат, как я понял вы любитель игр ) Добавлено через 36 секунд Рядовой, я таких не видел, где вы это видели ?
0
|
|
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
||
| 30.08.2015, 13:21 | ||
|
REALIST07, гугли сайты обучающие программированию, их много.
http://www.cossa.ru/articles/152/35602/ Вот например 10тка Добавлено через 21 минуту
Вот частный репетитор, который бы мне рассказывал темы, соответствующие моему уровню - это уже интересно.
1
|
||
|
|
|||
| 30.08.2015, 14:49 | |||
Сообщение было отмечено REALIST07 как решение
РешениеКликните здесь для просмотра всего текста
При большом количестве контролов форма плохо прорисовывается (графика GDI+, пример отрисовки большого числа примитивов) Использование шанса для генерации чисел (генетические алгоритмы, ООП, лямбды) Не работает метод Монте Карло (решение задачи линейного программирования, ООП) Движение, поворот и выстрелы танка (игра, ООП, графика GDI+, кеширование графики, обработка клавиатуры в играх, небольшой AI, немного линейной алгебры) Нужен компонент - кнопка с раскрывающимся списком (разработка кастомных контролов) Оптимизация и проектирование (разработка кастомных контролов, графика GDI+, виртуальный режим, ленивая подгрузка данных) Сделать, чтобы перетаскиваемый паззл (картинка) оставался видимым (игра, графика GDI+) https://www.cyberforum.ru/blog... g3466.html (кастомные контролы, GDI+) https://www.cyberforum.ru/blog... g3338.html (кастомные контролы, GDI+, виртуальный режим) https://www.cyberforum.ru/blog... g3230.html (кастомные контролы, GDI+) https://www.cyberforum.ru/blog... g3296.html (кастомные контролы, GDI+, виртуальный режим) Чтения текстового файла по кускам (азы, конечный автомат, обработка больших файлов) Получение методом GET содержимое страницы (азы, сеть, регексы, словари) Как сделать двойную буферизацию панели? (GDI+, colorMatrix, классы-расширения) Поиск текста в изображении (обработка изображений) Прыжок персонажа в 2D платформере (игры, простая физика, GDI+) Реализация паттерна Prototype в MVC через открытые члены (реализация MVC, winforms) Как нарисовать на экране заданное количество окружностей и окружности не должны пересекаться? (азы, GDI+) Определить свободные части файла (азы) Как отобразить в pictureBox только определённую часть картинки (игры, GDI+) Анимация персонажа, резкое перемещение (игры, GDI+) Поиск в приложении по краткому и полному описанию (азы, ООП, кастомный контролы, виртуальный режим, сериализация, сжатие, нечеткий поиск, глобальная обработка исключений, мультитаб-интерфейс) Элемент управления в виде линии (кастомные контролы, GDI+) Игра Жизнь пиксельный метод. SetPixel,GetPixel тормозит (игра, GDI+) Просмотр "бесконечных"/огромных картинок в контроле (GDI+) Передача данных из файла *CSV в таблицу dataGridView (CSV, обработка больших данных, виртуальный режим) Парсинг текста (азы) Рабочие в игре (игра, ООП, консоль, конечные автоматы) Программа реализации распределения процессорного времени (ТМО, консоль) TcpListener, отправка массива байт: ошибка преобразования типов (сеть, TCP) Это кое-что из последних постов, на самом деле у меня тут готовых примеров - около тысячи я думаю. Но тут нужно учитывать, что это примеры решения конкретных задач юзеров, а не обучающие программы. Кроме того, здесь накладываются некоторые ограничения форума. Я например пишу код так, что бы код работал без кидания контролов на форму, в режиме copy/paste и все работает. Необходимые ресурсы (картинки например) подгружаются из инета, контролы создаются динамически. В реальности конечно контролы кидаются на форму в дизайнере. Тут у меня в примерах очень много примеров на графику. Это не потому что я такой фанат графики, просто я картинки люблю И результат выглядит эффектнее. А вообще, я вам уже писал, что наклепать примеры - не проблема, я их сотню за день могу сделать, если нужно. Практически на любые темы и с любыми технологиями. Но вам нужно четко поставить цель и ТЗ на каждый урок. А пока из тех пунктов, что я вам перечислял, я пока не получил полного ответа. Я так и не понял что же конкретно должно быть в уроках по сути.
2
|
|||
|
Автор FAQ
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
|
|
| 30.08.2015, 15:14 [ТС] | |
|
Storm23, Давайте сведем работу к написанию лабораторного практикума для начала, дальше будем смотреть, возможно это будет и не один курс,а несколько.
Я тут искал литературу и наткнулся на один любопытный курс по C#, на мой взгляд неплохо как вы думаете ?
0
|
|
|
Автор FAQ
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
|
|
| 30.08.2015, 15:20 [ТС] | |
|
Все-таки надо учитывать то, что реальные знания студентов ~ 0 и исходить из этого,а не хватать с неба звезд
0
|
|
|
|
||
| 30.08.2015, 15:31 | ||
|
Но ведь там нет и трети от вашего плана.
0
|
||
|
Автор FAQ
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
|
|
| 27.09.2015, 14:28 [ТС] | |
|
Написал 1 лабу, сейчас в процессе 2,ребята жду конструктивной критики.
0
|
|
|
|
||||||
| 27.09.2015, 15:23 | ||||||
|
REALIST07,
Что такое решение(Solution), зачем оно нужно - не раскрыто. Детали работы с ним - не раскрыты (например, если в солюшен добавить существующий проект - он будет скопирован в папку солюшена или нет?)
Либо вообще не напишут, либо напишут фигню ( вот как здесь, далеко ходить не надо: Калькулятор )
1
|
||||||
| 27.09.2015, 15:23 | |
|
Помогаю со студенческими работами здесь
20
Нужны идеи для практики С++ Нужны идеи для программы с ИИ
Нужны идеи для курсовой работы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|