Loading...
nakov avatar nakov SoftUni Team Trainer 5295 Точки

За изпита по структури от данни

Колеги, давам малко пояснения за изпита по структури от данни, който предстои в неделя (13 септември):

  • Ще има две задачи - една с unit tests и една с judge-базирана проверка
  • И на двете задачи въвеждаме следния принцип на оценяване:
    • Ако минават всички тестове, взимате пълния брой точки за задачата.
    • Ако не минават всички тестове, взимате до 50% от точките, пропорционално на броя преминати тестове.
    • Пример: задачата има 20 теста с еднаква тежест. Ако всичките тестове минават, взимате 100 точки (максимума). Ако минават 19 от 20 теста, взимате 100*(19/20)/2 = 47.50 точки.
  • На задачата с unit tests ще имате C# и Java вариант
    • Проект-скелет (на VS или Eclipse) + интерфейс за имплементация + тестове (функционалност и performance)
  • На задачата с judge-базираната проверка ще изпращате решение в judge системата и тя ще ви оценява. Ако не минават всички тестове, ще ви се признават до 50% от точките за задачата. Ако минават всички тестове, ще ви се присъждат всички точки.

Защо едната задача се оценява с unit tests, а другата автоматизирано?

  • Задачата с unit tests е по-лесна, защото ви се дават всички тестове и ако нещо не работи, можете да дебъгвате конкретния тест, който не минава.
  • Задачата с judge-базирано оценяване е по-трудна, защото не виждате тестовете и ако нещо гърми само може да предполагате какво сте сбъркали.

Я кажете сега: някой ще пише ли на C++? Да се пънем ли да превеждаме C# кода на C++? За Java обещавам, че ще има читав превод.

Наков

nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Хм и според мен има нещо сбъркано в оценяването. Значи ако решим и двете задачи на 100%, всичко е ок и ще имаме макс точки. Ако на едната задача не ни мине само 1 тест ще имаме макс около 74% от точките. Ако и на двете задачи не ни мине дори само по 1 тест ще имаме 47,5% от точките. Заради 2 теста от общо 40 такава секира ми се струва нелогично...

Накрая излиза, че освен точки от автоматизираната система, най-удачно е да има и ръчна проверка както при ООП-то в съотношение 1:2 (автоматизирано оценяване: ръчно оценяване)

Другото според мен е, че не е толкова трудно да се напишат такива тестове, че реално ако използваме само list да минават 20-30% от тестовете. Пример:

Ако има 5 теста, които минават с list, слагате 15 комплексни теста, които правят много неща, т.е. минават през всички методи на имплементираната структура. В никакъв случай няма начин тези комплексни тестове да минат, ако не са използвани правилните структури.

7
12/09/2015 01:58:09
Kamigawa avatar Kamigawa 750 Точки

Съгласен съм - за 1 тест 50% са много. Можеше да се измисли по-гъвкаво решение на проблема - 19/20 теста - 90т, 18/20 теста - 80т, 17/20 - 70т и надолу някакво скалиране примерно - 16/20 = 100 * (16/20) / 1.3 = 61, 15/20 => 57 или нещо подобно. Мисълта ми е до 2-3 теста да има някакъв толеранс, при 17/20 се предполага, че задачата нещо малко и куца, да не говорим за 19/20.

Варианта с ръчна проверка също звучи добре, но предполагам няма ресурс за нея. Иначе най-доброто решение се съгласявам, че е с комплексни тестове, но пък тогава сигурно идва проблема с времето за изпълнение.

2
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Не съм сигурен, че ще има проблем с времето за изпълнение. Пример:

днес като решавах първата задача от примерния изпит не обърнах внимание, че в скелета на solution-а в тестовете за performance и двата реда инициализират бавната структура. Добавянето с List отнемаше 33 секунди, а с речник 50ms... разликата е прекалено голяма, така че лесно може да се направят комплексни тестове, които при правилна структура от данни да минават за милисекунди.

0
RoYaL avatar RoYaL Trainer 6849 Точки

Не, няма такъв вариант, Ники.

Няма ПРАВИЛНАТА структура от данни. има много възможности, които биха били практически верни и даващи разлика една от друга, както има и много възможности, които биха могли да бъдат грешни.

Ако се направи всеки един тест да е на границата на ПРАВИЛНАТА структура от данни, значи има само едно валидно решение и това е авторското.

Нека само да ви спомена, че темата е за да ни информира какъв ще е регламентът на изпита, а не за да ни попита дали сме съгласни.

В крайна сметка, ако някой се бори за сертификат според мен е логично да може да го вземе само и единствено с макс точки на изпита. За останалите, които ще вземам/вземем по-малко точки, остават кредитите от курса и това, че явно не са/сме научили до толкова, че да се сертифицираме в структури от данни.

Знаеш ли какво ми е направило впечатление до сега от изпитите? Че например изкарав 380/400 точки им и се губят 2 теста от една задача. Остават ми 2 часа до края на изпита и останалите 20 точки ги взимам в последните секунди. Демек съм блъскал 2 часа за 20 точки. Накрая някой с 350 точки да речем е на равно с мен или над мен в оценяването. Т.е. де факто 2-3 часа труд т.е. половината от времето на изпита не са имали значение.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.