Document Object Model - Number Convertor - Feedback
Умопомрачен съм от начина, по който се извършва тестването на нашите решения в Judge.
Пиша във връзка с поредна задача от това домашно и този път, най-накрая, успях да се натъкна на нулев тест, който ме светна какво всъщност се случва.
Проверките в Judge са толкова ограничени, толкова hardcode-нати, че ако студента не пусне точно това решение, за което написалия теста си е мислил, автоматично получава 0 точки.
Давам пример с въпросната задача от заглавието.
Първоначално я реших като зад всяка опция от падащия списък за целева бройна система сложих цяло число, което да представлява базата на съответната система (двоична -> 2, шестнадесетична -> 16):
<option value="2">Binary</option>
<option value="16">Hexadecimal</option>
Това прави последващи изчисления базирани на стойността на select menu-то много кратки и лесни. Но не би.
Видите ли, след като това прекрасно решение изгърмя тотално в Judge и погледнах нулевия тест, бях втрещен от това какво се търси.
<option value="binary">Binary</option>
<option value="hexadecimal">Hexadecimal</option>
Вместо да се възползваме от възможността да скрием числа зад етикетите "Binary" и "Hexadecimal", проверяващия очаква от нас да сложим същите символни низове като стойности на опциите. И по незнайна за мен причина те трябва да са не с изцяло главни, не с първа главна и останали малки, а с изцяло малки букви от край до край.
И разбира се, оттам нататък следват едни допълнителни switch-case или if-else проверки, едни parse-вания, за да може да продължим с калкулациите на базата на текст!?!
Къде е алгоритмичното мислене тук?
Защо хората, които се стараят да мислят и пишат практично, да се възползват напълно от всички удобства, които един език за програмиране им предлага, биват наказвани когато дойде време за оценяване на труда им?
Онзи ден колеги изразиха опасения от това дали ще могат да си вземат изпита. Склонен съм да се присъединя към тях. Ако тестовете към изпитните задачи са такива, спукана ни е работата.
Това не е първия курс в SoftUni, при който проверките на домашните в Judge късат нервите на студентите.
И аз за пореден път ще кажа, че щом тестовете не могат да бъдат написани така, че да приемат повече от 1-2 верни решения (а те понякога са дузина), то трябва Input и Output винаги да са видими за студентите.
Не може и не е редно да учим синтаксис в рамките на 4 часа и после в продължение на 40 да гадаем какво точно иска Judge от нас.
Криенето на изискванията не ни прави по-добри програмисти. Няма случай от реалността, в който клиент да дойде при нас и да ни каже "Искам да ми напишеш една програма, но няма да ти кажа кой и как ще я ползва. Ама ти почвай да пишеш...".
И не, условията на задачите за домашно не покриват всички възможни варианти и не могат да ни подготвят за абсурдни случаи като този описан по-горе. Да не говорим, че понякога и в тях има правописни и логически грешки.
И в тази връзка пускането на анкети се обезсмисля, защото тези неща не се променят с години.
Наскоро мой познат се записа в SoftUni. Преминавайки през същите курсове, които аз вече съм карал, се натъкна на същите стари грешки по условия и презентации, които си бяха там и през 2016г. Що за апатия е това? Как може един преподавател или асистент като види грешка в документ по време на презентация, да не посегне да я поправи и да запази промяната за идните курсове?
Здравейте колеги, да не отварям нова тема ще ползвам тази. Кода работи според примерите в задачата, съдията дава 0 т. Като цъкна да видя техния input ми пише че трябва да получа 'yes', а пък в моя output пише: Unexpected error: Cannot read property 'addEventListener' of null. Като цъкна да видя какъв input вкарват пише, че конвертират 20 to binary и получават 10100, а при мен също се получава. Не разбирам къде бъркам и защо получавам 0 т.
https://pastebin.com/BEbuCvQ2