Loading...
massbless avatar massbless 5 Точки

Мисли относно "Judge" системата

Здравейте!

Пише ви колега, който е записал "Programming Fundamentals" редовна форма, но поради лични / здравословни причини няма възможност да посещава занятията и реално се обучава онлайн. Това прави живота доста по-труден в онези вълшебни моменти, когато Judge дава 80/100 на решението ти, а наоколо няма ментори или колеги, до които да се допиташ. Когато това се случи, започваш да си мислиш:

"Защо, по дяволите, Judge не ми показва при какъв input решението не дава верен резултат?!" 

Известни са ми историческите съображения зад това решение. Знам, че преди системата е показвала желаната информация, докато не са се намерили тарикати, които са решили, че ще е много хитро да си вземат 100-те точки с решение от типа на "if (input) --> Console.WriteLine(output)". Разбирам и позицията, че за нас е полезно сами да си търсим грешката, защото после в реалния живот никой няма да стои до рамото ни с верния output под ръка, така че да можем лесничко да си сверим резултатите.

Но в сегашния си вид системата (поне според мен) не работи добре, понеже задачите често имат некоректно зададени условия - с липсваща или подвеждаща (а понякога и откровено грешна) информация. Това, в комбинация със скриването на грешните тестове, води до огромна загуба на време (и нерви) на много от участниците. Не знам как точно стоят нещата при другите колеги, но за себе си мога да кажа, че времето, което губя в опити да си докарам "решена" задача от 90 до 100 точки е в пъти повече от това, което прекарвам в писане на решения по други задачи. Дори когато проблемът не стои в условието на задачата, а просто има някой много крив тест, проверяващ частен случай, за който трудно бихме се досетили сами... Не смятате ли, че за един студент би било по-добре да открие грешката в кода си след подсказка, но със спестеното време да реши N на брой допълнително задачи и да натрупа опит, чрез който в бъдеще сам да идентифицира подобни критични точки?

Знам, че показването на input-а при грешните тестове би било покана към всички cheater-и с оглед на това, че до 20% от оценката идва от резултатите на домашните. Затова искам да попитам, не може ли да се премахне тежестта на домашните от крайната оценка? Така или иначе, всеки сам за себе си решава дали иска да се упражнява или смята, че е достатъчно добър. Да не говорим, че няма никакъв контрол над това дали домашното на Пешо е написано от него. Нека оценката зависи изцяло от изпита (и активността във форума - колегите, които помагат на другите, трябва да бъдат поощрявани!), а домашните да останат това, което трябва да бъдат - нещо, което правим сами за себе си. Така никой няма да има стимул да cheat-ва и Judge ще може да показва input-а за онези, които искат да го ползват добросъвестно. А ако все пак продължават да се въдят тарикати - пожелавам им късмет на реалните изпити, или по-късно на интервютата за работа, защото с техните умения ще им е необходим.

Благодаря ви за вниманието!

 

Тагове:
4
Въпроси за SoftUni
massbless:
Липса на интерес към темата.
Излишни спорове, породени от обидни коментари.
IskrenPenev avatar IskrenPenev 177 Точки

Идеята на тези "криви, завъртяни частни случай" е да се провери дали решението ти е адекватно в по широк спектър. Точно заради това на изпита си имаш Ограничения в които ясно са посочени границите в които се иска твоето приложение да работи. 

Проверяването на домашни в джъдж системата е горе-долу от Февруари месец тази година. Колкото до това че преди е можело да се гледа входа който системата ти дава - поне в послената година за такова нещо не съм чувал. Да - можеш да видиш тестовете от отминали изпити, заедно с авторските решения, но както се сещаш и за отминалия изпит от вчера след няколко дни ще бъдат качени тестовете.

Между другото  когато се гледа дали 1 задача е решена - се взима предвид дали изобщо имаш някакви точки на нея, независимо дали  са 10 или 100 (относно тежестта върху крайната оценка). Това беше казано от лекторите при откриването на Advanced C#, предполагам важи и за останалите курсове.

2
13/06/2016 19:15:22
massbless avatar massbless 5 Точки

Никой не се оплаква от "кривите частни случаи" - разбира се, че такива трябва да има, за да може да се отсеят пълните решения от онези, които работят само в ограничен спектър. Но когато един такъв случай ти отнеме половин (или дори цял) ден за да го съобразиш, идва на дневен ред въпроса "Заслужаваше ли си? Знанието, което добих от тази задача, по-ценно ли е от това, което можех да добия решавайки още 10 задачи?".

Не казвам, че една задача е решена само когато имаш 100 точки на нея. Но за мен е важно да имам пълния брой точки навсякъде, защото резултат под 100 означава, че някъде съм пропуснал нещо. Това нещо може да е съвсем тривиално, но може и да е фундаментален пропуск, който да има отношение към бъдещото ми развитие. Затова, докато не разбера какво е, не мога просто да го подмина и да си кажа "Голяма работа, нали имам 90%!".

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

0
13/06/2016 20:07:42
Svetoslav.Gadzhanov avatar Svetoslav.Gadzhanov 10 Точки

Попринцип съм съгласен. И аз се дразня като получавам по-малко от 100/100, но чак пък "Фундаментален пропуск, който да има отношение към бъдещото ти развитие" :)

0
massbless avatar massbless 5 Точки

Хаха, верно звучи малко пресилено :)

Може би не избрах правилната формулировка. Това, което имах предвид е, че има разлика между малък пропуск, причинен от бързане или моментно разсейване (в някой цикъл си сложил < вместо <=) и грешка в логиката на решението. И двете могат да дадат разлика от 10 точки в крайния резултат (ако имаш достатъчно късмет само един тест да гърми заради логическата ти грешка), но второто е много по-сериозно. Защото ние идваме тук за да се научим да мислим като програмисти, съответно ако не изчистваме алгоритмите си от грешки, а се успокояваме с добър резултат, полагаме лоша основа. Затова и използвах думичката "фундаментални". Така де - сигурен съм, че разбираш какво се опитвам да кажа :)

0
13/06/2016 20:20:59
WifiAvivi avatar WifiAvivi 151 Точки

Прав си, че понякога условията не са перфектни, но все пак всеки може да сгреши (включително и хората, които те обучават). За да се направят съвършени условия ще отиде твърде много време. По-добре това време да се използва за изготвянето на коректни условия на изпитните задачи. Решавай изпитните задачи, там имаш тестовете ако ти потрябват.

Ако някъде намериш грешки, има си feedback, може да дадеш своя принос там.

0
13/06/2016 22:01:17
massbless avatar massbless 5 Точки

Ъъъ... мисля, че погрешно си ме разбрал.

Не се оплаквам от неверни / неясни условия на задачи - писани са от хора и всеки може да сгреши! Идеята ми е, че ако се виждат входните данни, които ползва Джъджа, такива случаи много лесно биха били идентифицирани. Няма нужда дори да се показва "expected output" - един способен студент би трябвало сам да може да си дебъгне програмата, ползвайки входа от Джъджа на проваления тест и да открие проблема.

0
stambi4a avatar stambi4a 126 Точки

Като цяло това което предлагаш няма да ти реши всички проблеми. Има доста случаи когато само с вхoдните тестове не можеш да си откриеш грешката, например при форматиране, сортиране, доста често при неправилно използвани структури от данни.Обикновено последните тестове в judge-a са доста трудни за дебъгване, когато инпута и аутпута ти се състоят от много, много редове. Да, биха помогнали при грешно използвани типове, но това и ти можеш да го направиш или просто да се презастраховаш. Аз лично много рядко съм имал проблеми с паметта когато се презастраховам.

Аз лично нямам против един референдум(анкета в профила) за опция тестовете да се показват. Може и за известно време да се тества тази възможност и ако оценките от изпитите паднат, то ще се види. Това тормози много хора така или иначе, защо да не се пробва.

 

0
massbless avatar massbless 5 Точки

Да, сигурен съм, че съществуват случаи, в които тази информация няма да бъде достатъчна и все пак ще се наложи човек да поразпита околните. Но със сигурност това е инструмент, който много би помогнал на хората, които борят задачите сами и нямат много опции за помощ извън форума. Много бих се радвал ако едно такова допитване наистина се организира. 

0
tihomirj avatar tihomirj 33 Точки

Според мен също няма логика оценката да зависи от домашните при положение, че няма краен срок и рано или късно почти всички решения се озовават във форума и copy+paste и хоп готово - всички задачки са решени.

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

Примерно в MOOC- овете на Coursera, EdX и подобните не се толерира публикуването на решения във форумите, а домашните имат срок.

Все пак, добре е да се чуят още мнения и на други онлайн курсисти.

 

-1
quickben avatar quickben 966 Точки

То хубаво става ясно, но явно става "ясно" само за теб, нали се сещаш, че СофтУни не се върти около твойте желания и твойте душевни проблеми.

Ще го кажа по-друг начин, хиляди хора използват тази система и са се научили да я използват защо ти не можеш?

"Стига сте мрънкали" - Светлин Наков, и ако мога да добавя, просто се научи да използваш Judge-a както сме се научили хиляди други хора вече, всичко друго си е твой личен проблем.

И ако си мислиш, че в реалния свят една точка и една запетая няма да ти правят проблем, значи ти липсват технически знания и би трябвало да работиш в тази насока.

Повече няма да коментирам темата, че такива теми има десетки и всички с еднакъв резултат сиреч мрън мрън и нищо накрая.

И по още един начин да ги кажа, че явно не разбираш от дума(поредния) Аз не познавам топ-студент в СофтУни който да се оплаква от Judge-a просто си сядаме на задниците и се справяме с проблема, каквато е реално работата на един програмист, защото докато някой хора се оплакват други вече са се справили с проблема.

JUST DO IT!

И по още един ще ти го кажа - всички могат а ти НЕ, замисли се в кой е проблема.

А за времето в което се оплакваш нямаше ли да се научиш?

Ти имаш ли си идея, че RoyalBG съм го виждал лично как седи 5 часа за 10 точки на изпита и не се е оплаквал?

1
14/06/2016 02:43:07
massbless avatar massbless 5 Точки

Мерси за минусчето - ако бях малка душица като теб, бих ти върнал услугата.

Тук въобще не става въпрос за "моите душевни проблеми". Очевидно мога да използвам системата (също като онези "хиляди хора") и го правя в момента. Демокрацията, която споменаваш малко по-нагоре, ми дава правото да дам предложение ако смятам, че нещо може да бъде подобрено. И цивилизованият (отрицателен) отговор към това предложение от страна на един зрял човек би предполагал обяснение, придружено с логически доводи, а не личностни нападки и обвиняване на опонента в "мрънкане".

Хубава вечер от мен!

0
quickben avatar quickben 966 Точки

Очевадно не можеш да използваш системата, просто се иска усилие и малко време да и свикнеш.

Щом човека който на изпита по ООП за една точка няма 100 точки вместо 0 не е пуснал тема във форума и хиляди други хора сме се научили да работим в нея, проблема е в теб.

Просто се научи първо да търсиш грешката в теб после в другите, това даже е един от признаците на опитния програмист.

И не съм видял едно приемливо(според мен) предложение да се "оправи" Judge-a, даже се аргуменирах. Ако искаш отиди при Владислав Карамфилов или fork-ни repository-то в github и го "оправи", все пак е OpenSource....

0
14/06/2016 02:50:40
massbless avatar massbless 5 Точки

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

Ти просто не прочиташ това, което казвам, а това, което очакваш да чуеш от "поредното мрънкало".

Не знам как по-ясно да ти обясня, че не ме интересуват точките, които получавам на задачите, а това, което стои зад тях.

На последния изпит станах и си заминах час и половина преди края, защото виждах, че най-добрия резултат, който бих изкарал, би бил между 200 и 300 точки. А за мен дали ще си тръгна със 143 или 313 точки няма разлика. Ако не съм топ студент, значи си губя времето тук, защото не съм дошъл за някаква хартийка, а го правя за да добия реални знания и да науча занаят. Затова, моля те, престани да обясняваш как съм бил мрънкал, защото не съм можел да си взема десетте точки. Не си ми в главата и не знаеш нищо, така че, моля те, спести ми предубеденото си мнение по въпроса.

Виждам къде е проблема, виждам къде се провалям и знам какво трябва да направя - да решавам повече задачи. Просто смятам, че ако Judge работеше по различен начин, това би имало положителен ефект при упражненията, затова дадох своето предложение.

Не знам с какво то толкова те засегна.

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