[Logo] Форум DL
  [DL]  Back to home page 
Forum Index ->Общего плана ->Предложения по новым курсам DL 1, 2, 3, ... 10, 11, 12
Author Message
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Видео-учебник по DLVM
Содержание обучения
Confluence-ссылки
Языки и системы программирования
Питон для DL
Что должен содержать текст диплома/курсовой
Как ставить интерактивные задания на DL
Визуализация программ и скриптов


Нерешённые проблемы

На дипломы

DL Master
Проблемы кроссбраузерности DL
Differential Study 4

Администрирование для учителей
Анализ логов ошибок и устранение проблем DL
Решебник JavaSript DOM задач на jQuery

На курсовые

- отдавать тесты по группам для задач, установленных Лёшей Гуленко

- после 4-го курса переводить в др., а не на 5 курс (нет его уже)

- таблица результатов за период датам (с - по) или за конкретное число, today

Учителю
--- подписать ученика из своей группы на курс, не зная его пароля
--- изменить пароль ученику своей группы
Показывать "не зачтено", а не перезаписывать, если дважды сдали одну задачу в текущем кубке (Иванов, зима 2018-2019) (Пугач ИТ-21)
Не отдаются большие тесты
Разработка JSP-аналога апплета симуляции программ для WInter (Щукин, ИТ-21)
Не убираются задолженности в DS4
Страница учителей
Разработка JSP-аналога апплета распознавания и контроля логина входа в сеть университета
DS2 игнорирует даты открытия закрытия (показывает, то что не должен)
Автоматизировать подготовку к работе с первоклассниками
Постраничный вывод таблиц результатов в старых таблицах
... Таблицы, используемые для хранения результатов соревнований
... jQuery plugin tablesorterDocumentation - Flexible client-side table sorting
Фильтрация по полю "учебное заведение - другое (Ирининская гимназия, школьная олимпиада)"
Фильтрация по спиcкам ID (друзья, пользовательские группы)
Фильтрация (и постраничный вывод) в новых таблицах результатов
Ошибка при раздаче дипломов областной/городской олимпиады
Сложности задач

Загрузка результатов олимпиад ВКОШП, BLR, IOI
Диплом Стоянова
Исходные материалы и диплом Кравченко

Текущие проблемы DL
Новые задания (с декабря 2017)

Дипломы-2017
Курсовые-2017 (февраль-май)

Преамбула
Технология обучения

Что уже сделано
+HideInfo2(оставить только группу) (Рябый, ПМ-31)
+ Отображение task.cfg (Попов Миша, 2018)
+Автоматическое добавление в группу "Санкт-Петербург", "Калуга(2)" (по ID группы) Гузанов (ИТ-21, декабрь 2018)
+ На дереве задач открывается задача (дерево пропадает) (Михалков, ПМ-31, октябрь 2019)
... игнорируется кнопка "Открывать задачи в новом окне"
... Математика - Simple Tree. Все другие деревья тоже проверить.
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Преамбула
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Содержание обучения

Идеи 24.06.2017

Front-end: HTML+CSS+JavaScript(DOM+Syntax)+библиотеки(JQuery и другие)
Back-end : JSP, сервлеты, Java, Java-классы, web.xml, SQL
Курс "WEB-технологии для начинающих" (дерево задач)
Введение в языки WEB-программирования

Решение задач (HTML / CSS / JavaScript DOM)

Ошибки учеников и неадекватная реакция проверяющей системы при выполнении задач на HTML/CSS
Рекомендации по решению HTML/CSS задач
Рекомендации по решению JavaScript DOM задач
Решение и установка задач по JavaScript DOM (Морозов Александр, ПО-41, июнь 2018, диплом)
Задания по обучению JavaScript DOM с решениями (Морозов Александр, ПО-41, декабрь 2017)
Учебник по JavaScript DOM для начинающих (Морозов Александр, ПО-41, январь-июнь 2018)
Решение контрольных заданий по JavaScript-1 (Мельников, ПО-31, январь 2019)
Решение контрольных заданий по JavaScript-2 (Редюк, ПО-31, январь 2019)


Задачник по JavaScript (Бычков)


Установка новых задач

Инструкция по установке задач на HTML/CSS/JavaScript (Жарков, май 2019, диплом)
Краткая инструкция по установке задач на HTML/CSS/JavaScript (Жарков)
Краткая инструкция по установке задач на HTML/CSS/JavaScript (Карнаухова)
HTML, CSS, JavaScript DOM - Курсовая (май 2017, Карнаухова Алёна, ПМ-31) Работа файлами
Решение и установка задач по JavaScript DOM (Морозов Александр, ПО-41, июнь 2018, диплом)
Установка задач HTML, CSS, JavaScript DOM, JSP, сервлеты (Карнаухова Алёна, ПМ-41, июнь 2018, диплом)

Пример архива задачи по JavaScript
Пример архива HTML-задачи со спец.чекером(для html) Описание спецчекера(html)
Пример архива CSS-задачи со спец.чекером(для css) Описание спецчекера(css)
Пример архива задачи по HTML
Пример архива задачи по CSS (задача 1)
Пример архива задачи по CSS (задача 7)
Примеры архивов задач Карнауховой
z1.rar
z1.zip

Как делать примеры JSP-страниц и сервлетов

Как устанавливать JSP/servlet задачи (Коротчиков Никита, ИТ-31, апрель 2019)
Документация по технологии и примеры установки задач на тестирование JSP-страниц и сервлетов

http://dl.gsu.by\Images\_i4f\Java\how_to_run_servlet_intellij.pdf
http://dl.gsu.by\Images\_i4f\Java\how_to_run_jsp_intellij.pdf
http://dl.gsu.by\Images\_i4f\Java\Servlet_JSP_testing.docx

http://dl.gsu.by\Images\_i4f\Java\Servlet_JSP_Task_With_HTML.rar
http://dl.gsu.by\Images\_i4f\Java\Servlet_JSP_Task_Without_HTML.rar

Пример архива задач по тестированию JSP (май 2018)
Пример архива задач по тестированию сервлетов (май 2018)
Примеры архивов задач по тестированию JSP и сервлетов (ноябрь 2018)
Архив папки Delta/java8 (63 Мбт) (декабрь 2018)
Кроме папки Java8 есть ещё скрипты компиляции, расположенные уровнем выше.
Архив всей Дельты (0.5 Гбт)


JSP (Осадчий Роман, ПМ-41, июнь 2018, диплом)
Java Server Pages - обучение(Chrome) (Осадчий)

Сервлеты (Хиженок Роман, ПМ-41, июнь 2018, диплом)
Java Servlets - обучение (Хиженок)


Задания по DL

Чему учить (какие ещё нужны задачи)

Полезным JS-библиотекам jQuery AngularJS
SQL

HTML (Ермоленко, ноябрь 2017)
CSS (Ермоленко, ноябрь 2017)
HTML/CSS/JavaScript DOM - Жарков (декабрь 2017)
HTML/CSS/JavaScript DOM - Жарков (март 2018)
JavaScript DOM (Карнаухова, апрель 2017)
HTML/CSS/JavaScript DOM (Карнаухова, март 2018)



Сторонние обучающие сайты

Сodefights
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Технология обучения
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Что уже сделано
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Текущие проблемы DL

Разработка JSP-аналога апплета симуляции программ для WInter
Разработка JSP-аналога апплета распознавания и контроля логина входа в сеть университета
Статистика по группам учеников


Дельта - исправить ошибки, повысить надёжность
https://community.embarcadero.com/blogs/entry/introducing-delphi-cplusplusbuilder-community-edition 
Idera / Embarcadero / Borland - им следовало сделать доступной такую версию много лет назад. Лучше поздно чем никогда.


курс "WEB-технологии для начинающих"
 - сдать задачи по JavaScript DOM  с помощью jQuery, задокументировать решения, написать теорию 
 - вызывать tester из общего каталога
 - проанализировать решения с ошибками из протокола
     - внести в форум пояснения по ошибкам 
     - сделать адекватные сообщения чекера 
 - добавить задания HTML,CSS,JavaScript,jsp,БД,файлы  

Сайт
 - защититься от удаления корневой папки в Новых задачах
 - (для первоклассников - "войти за каждого и стать на первое задание в "Учимся думать")
 - таблица результатов
    - фильтрация по студенческим группам (ИТ-21) - класс, но не работает
    - показывать по желанию Город, Школа, Класс(группа)
 - вернуть групповую регистрацию
 - в командную регистрацию добавить группу    
 - не скроллировать выбранное количество бонусов (только фамилии)  
 - полную поддержка обработки командных олимпиад
.... бонусирование
.... пропуски 
.... контроль теории 
 - Сделать WEB-интерфейс для создания задач (сначала – математических, следом и других)

 + накатывать варианты автоматически (Ковалёв, март 2018)

Форум
 - Загрузка на форум описаний решений USACO-задач 
 - Перенести номера страниц влево (часто приходиться скроллить вправо, чтобы до них добраться)

Генерация обучения на лету (под DS2)
 - открывать "Не знаю" по UserID
 - открывать "Не знаю" для языка программирования
 - запретить копирование исходников
 - сделать, чтобы отображался task.cfg (учитывать галочку в редакторе курсов) 

DS2
 - игнорирует даты открытия-закрытия

DS4 (Бышик)
 - не убираются задолженности после пересдачи
 - добавить режим "учёт языка" (чтобы можно было повторно решать для другого языка)
 - запретить сдачу задолженностей без преподавателя
 - в задолженностях ученика выводить дату создания и дерево (DS, DS2, DS4)
 - медленно открываются задолженности - индексы вводить?
 - время создания странички с задолженностями показывать    
 + запретить копирование исходника (Каминский)

Online-редактор (?Свиридов, Мосько)
 - Давать ссылку на получившийся в результате exe-файл  (для решений и чекеров)
   Или спец.опция типа “Build exe”?
 - «положить чекер в каталог задачи» (понятно при наличии прав)
 - Отдать исходник и exe-шник чекера

- admin
   - не отображаются команды, например
      - http://dl/admin/regandedit/iform.jsp?lng=ru&id=12454
   - не показывает рисунок в условии задачи  
      - http://dl/admin/taskviewer.asp?nid=1133929
        <img width=347 height=237 src="webfiles/image001.gif">
      - http://dl/admin/taskviewer.asp?nid=1537123
        <A href='webfiles/13409.png' target='img'><IMG alt='image 13409' src='webfiles/13409_tn.png' height='160'></A>
        <IMG src='webfiles/image20.png'> 

Генерация API к БД (Голуб-диплом прикрутить)
 -  Диплом 
 -  Исходники  

Проблемы под FireFox в автовыдаче
- по нажатию на Enter переходит на другую задачу
- сбрасывается точка активности (как правило назад)

 Проблемы кроссбраузерности 



Подсистема отработки пропусков (Пискунова)
- добавить возможность указания времени
- сбрасывается дата на сеголняшнюю всё время
- не даёт в каких-то случаях отписаться
- отработка заранее
- ошибка перехода через сутки
- ошибки в форуме (неверные отметки-сообщения)
- сделать в логе ссылку на решения
- http://dl.gsu.by/NForum/posts/topicshow/2745.dl?postid=69089#69089
2 пары приняты за 2 часа 56 минут
- http://dl/NForum/posts/topicshow/2503.dl?postid=71072#71072
учёт повторных отсылок как разных задач
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Дипломы-2017
Генерация обучающих заданий по программированию «на лету» для  DL.GSU.BY   (Красников,  ПО-4)
Новая подсистема дифференцированного обучения для DL.GSU.BY                (Бышик,      ПО-5)
Развитие средств проверки решений в системе DL.GSU.BY                      (Свиридов,   ПО-5)
Подсистема автоматизации учёта отработки пропусков в DL.GSU.BY             (Пискунова,  ПО-5)
Автоматизация загрузки результатов Internet-олимпиад в систему DL          (Кравченко,  ПМ-5)

Подсистема обучения разработке функциональности для DL.GSU.BY              (Бычков,     ПО-4)
Интерактивный задачник по хранимым процедурам DL.GSU.BY                    (Светличный, ПО-5)
Интерактивный задачник по программному обеспечению DL.GSU.BY               (Окрут,      ПО-5)
Интерактивный задачник по базам данных DL.GSU.BY                           (Цугаев,     ПО-4)
Интерактивный справочник по базам данных DL.GSU.BY                         (Суменков,   ПО-5)


Справочник по базам данных (Суменков) Что ещё сделать Библиотека для работы с БД
Задачник по хранимым процедурам (Светличный)
Задачник по DL-ПО (Окрут)
Задачник по БД (Цугаев)
Обучение разработке для DL (Бычков)

Генерация вариантов контрольных на DL
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Курсовые-2017 (февраль-май)
Технология обучения Java на Javarush.ru                   Осадчий,    ПМ-3
Содержания обучения Java на Javarush.ru                   Карпеченко, ПМ-3 
Технология и содержание обучения на Javarush.net          Морозов,    ПО-3
Введение в создание web-приложений на Питоне              Чернецкая,  ПМ-3
Введение в создание web-приложений на Kotlin              Потапенко,  ПМ-3 
                                                          Хиженок,    ПМ-3
Введение в создание web-приложений(JavaScript+SQL+Java)   Карнаухова, ПМ-3

Технология разработки web-приложений на Java(DL Master)   Савостейко, ПО-2  

                                                                      ИТ-2
                                                                      ИТ-2
                                                                      ИТ-2
                                                                      ИТ-2
                                                                      ИТ-2

Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Тестирование JavaScript


Гуленко Алексей:

Переделал первую задачу, сделал настройку под последнюю бету tester'а для тестирования решений в форматах .js, .coffee, .litcoffee и .cljs (включил на доступных серверах advanced-оптимизацию, так что результат компиляции решения этой задачи весит <5Кб). Вручную всё отрабатывает как надо, так что проблем с тестированием быть не должно (ставить вместо текущей не стал). Пройти должен любой файл из папки sol/ (кроме unprepare.bat, это скрипт для упрощения очистки при тестировании вручную).

Различающийся файл теста (как правило, index.html, но возможны вариации) подсовываем как 1.in, 2.in, …
Одинаковые (JS, CSS, вспомогательные HTML) отправляем в scripts.
Вывод check.js (данные для сравнения) пишем в out-файлы.
Имя ожидаемого файла решения пишем в sol (вторая строка скрипта prepare).
В tester.cfg можно указать, как переименовывать входной файл теста (параметр InFile). Там же отмечаем баллы за тесты (формат DL он поймёт, хотя результаты будут нечитабельны; свой формат я уже где-то описывал – текущая запись означает «группа на 100 баллов, из 5 тестов, первый и-каждый-последующий оценивается в 20 баллов»). KeepLogs даёт более подробный формат непройденных тестов.
Архив выложил сюда
 


Первые три задачи:

"JavaScript DOM\1 - Установка обработчика события и изменение стиля элемента" 211981
"JavaScript DOM\2 - "Чтение текстового файла с сервера" 211982
"JavaScript DOM\3 - "Создание и вставка нового html-элемента" 212027

Предлагаю также СТАНДАРТИЗОВАТЬ внешний вид задания

Например, в виде таблиц

Было

Имя файла-решения: set-event.js
Требуемые функции: setOnClick(id), onClick()
В переменной id находится ID элемента, в глобальной переменной color - некоторый цвет. Функция setOnClick(id) должна привязывать функцию onClick() к событию onclick элемента с заданным ID. Функция onClick() должна менять цвет текста в элементе, по клику на который она была вызвана, на цвет, указанный в переменной color.
Пример теста: input.html

Заменить на
Имя файла-решения     : set-event.js 
Требуемые функции     : setOnClick(id), onClick() 
Описание параметров   : id - ID элемента 
Глобальные переменные : color - некоторый цвет

Содержание задания    : 

setOnClick(id)        : привязывает функцию onClick() к событию onclick элемента с заданным ID
onClick()             : меняет цвет текста в элементе, по клику на который она была вызвана, 
                        на цвет, указанный в переменной color

Пример теста:         :  input.html 

Alena Karnauhova

Topics: 0
Messages: 35

My Profile


Михаил Долинский:

Содержание обучения

Предлагаю двигаться параллельно:

1. Ты решаешь проблему интеграции заданий тестирования JavaScript с DL
.... составляешь подробную инструкцию по установке таких заданий
.... согласовываешь с Лёшей Гуленко и мной
2. Составляешь оглавление Теории и Заданий - разнося все пункты по трём частям
.... без этого точно нельзя
.... нужно почти всегда
.... было бы полезно
3. Сначала делаешь задание, потом пополняешь справку по теории для выполнения этого задания
.... (в порядке от "без этого нельзя" к "было бы полезно")

Общие принципы
- оглавление заданий и теории должно быть безусловно одинаковыми
.... (даётся минимум теории необходимый и достаточный для выполнения конкретного задания)
- Таблицы баз данных берём точно из DL
.... С Вадимом согласуем
....... можно ли на чтение обращаться к реальным таблицам?
....... или где-то их копии по структуре и уменьшенные в количестве записей создадим
....... сначала все задания только на чтение?
....... потом на создание временных таблиц
....... потом на модификацию копий реальных таблиц DL для тестирования

Причем знания Java нужны основательные и разнообразные, начиная с "сложить два числа" и заканчивая многими определенными в Java классами, связью с БД и прочим. 
Можно также отобрать полезные готовые задания (например все техминимумы) из Ускоренного курса - 2016 и использовать уже подготовленную теорию:
 


Согласна. По поводу таблиц - я думаю, лучше все-таки использовать копии и для чтения. Реальные таблицы слишком большие, и со временем становятся еще больше. Из-за этого для обучения они не совсем наглядны. Кроме того, во избежание изменения данных в процессе тестирования придется закрывать доступ к соответствующим таблицам каждый раз, когда кто-то отправляет на проверку решение такого задания, что не очень хорошо. И, да, для таких заданий тоже нужно найти способ интегрировать их с системой тестирования DL.
Использовать техминимум для Java - интересная идея. Это может пригодиться тем, кто не был знаком с этим языком программирования раньше.
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
13 апреля 2017 г., 20:59 пользователь Гуленко Алексей написал:

Лично я предложил бы не изобретать велосипед, а использовать готовое решение. Скажем, W3.CSS – при передаче в сжатии весит полдюжины килобайт, а вопрос дизайна решает вполне основательно (в смысле, не выбор, а реализация). Да и дизайн сайта вполне можно на него перенести.
И если подумать, то при обучении с целью дальшейшего использования следует рано приучать к использованию библиотек для часто выполняемых действий, вместо того чтобы раз за разом реализовывать один и тот же функционал (с переменной степенью корректности). К примеру, можно использовать W3Data для получения и отображения данных, W3.JS для работы с DOM'ом (включая упрощённый эквивалент тех же фреймов) и какой-нибудь lodash для вычисляющего кода (в сумме ~9Kb в сжатии, если использовать core -сборку lodash). 

Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile
Лёша Гуленко, как обычно, «впереди планеты всей».
За советы огромное спасибо.

1) Надо это всё тогда к нам на DL поставить
2) Самой Алёне может потребоваться много времени чтобы это осваивать
3) Думаю, лучше делать параллельно (или последовательно – на Алёнин выбор)
- Делать задания основываясь на имеющемся DL-коде и имеющихся у Алёны знаниях
- После того как будут поставлены на DL нужные библиотеки, изучать и добавлять соответствующие задания
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile


Алена Карнаухова:

Просмотрела js-исходники, составила примерный список тем для элементарных заданий по JavaScript:
получение и установка значения атрибута HTML-элемента
добавление, удаление класса элемента
поиск элементов по классу, тэгу, родительскому или дочернему элементу
переадресация (window.location)
формы - доступ к введенным данным, отправка данных на сервер
запросы к серверу
фреймы - доступ к фреймам, доступ к родительскому окну из фреймов
document.write (спорно - используется нечасто, но все-таки используется)
Помимо элементарных заданий, возможно, не помешали бы более сложные задания: комбинации различных тем + алгоритмизация. Но это не первостепенная задача. 
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile


Карнаухова Алёна:

проблема с проверкой решения, в котором используется асинхронный запрос к серверу, все еще актуальна. 


Гуленко Алексей:

Вообще, в тестах для кода обычно используются mock'и (поддельные функции/методы|/объекты). В простейшем случае можно написать скрипт, подменяющий функцию или объект (в зависимости от того, используется ли стандартный JS или всё-таки библиотека) "обёрткой" вокруг оного, которая в дополнение к существующему функционалу будет делать что-то ещё (скажем, считать, сколько запросов не завершило обработку), подключать в страницу с запросами самым первым, а в тесте ждать его отработки. Как альтернатива, вместо асинхронных вызовов можно делать синхронные или сохранять обработчики для вызова их впоследствии чекером.
Ещё, как вариант, можно использовать настоящее тестовое окружение для JS unit-тестов, где для таких вопросов есть готовые решения, но это было бы а) не шибко совместимо с запусканием под DL, и б) не давало бы нормально работать с файлами (каждый "тест" приходилось бы описывать целиком вручную в общем JS-файле).
Ещё, правда, можно поставить в чекере ожидание в секунду перед выполнением, в расчёте, что всё, что надо, отработает за это время (а что не успеет, пройти не должно). Но тут уже как повезёт. 
Mihail Dolinskiy

Topics: 1557
Messages: 37689

My Profile


Алена Карнаухова:

Просмотрела js-исходники, составила примерный список тем для элементарных заданий по JavaScript: 



Гуленко Алексей:

По поводу списка – лучше сразу определиться, что вы собираетесь использовать в сайте, и обучать не всему JS, а только этой части. Потому как язык этот был сделан за пару дней на коленке, и при всей своей предполагаемой "эволюции" (которая не имеет ни малейшего значения, если вы собираетесь поддерживать IE6, установленные в СШ27), новые и более продуманные части добавляются в дополнение к уже существующим, которые никуда не делись (ведь надо же, чтобы старые скрипты продолжали работать); новые же вещи (а иногда и старые тоже) работают везде по-разному, и добавляются по принципу „Кто в лес, кто по дрова“ (начиная всё с того же IE).

По этой же причине я считаю важным (а возможно даже, самым важным) моментом обучения преподавание и затверждение самого факта того, что JS является «минным полем», и хотя бы наиболее неочевидных ситуаций в JS (к примеру, все различия между == и ===, случаи, когда x === x выдаёт false, и случаи, когда x === x-1 выдаёт true – в первую очередь для значений, на которых Number.isInteger(x) тоже выдаёт true). Менее неочевидные вещи (вроде случаев, когда дробное деление дробного на дробное выдаёт целое, или когда a+b не равно их сумме, или когда this в методе объекта не имеет ни малейшего отношения к самому объекту) тоже стоят упоминания.
Кстати, эти проблемы имеют более-менее работоспособные решения, упомянутые мной ранее (библиотеки и языки, транслируемые/«компилируемые» в JS; хотя транслируемые решают только некоторые проблемы самого языка). Но даже если вы решите обучать сразу «только хорошему», обучающихся всё равно следует поставить в известность о существующих проблемах (как минимум о самом факте их существования), чтобы избежать неприятных неожиданностей впоследствии (или хотя бы снизить их количество). 
 
Forum Index ->Общего плана ->Предложения по новым курсам DL 1, 2, 3, ... 10, 11, 12
Time:0,063