Loading...
NonaG avatar NonaG 111 Точки

Тестовете в Judge

Скъпи момичета и момчета от СофтУни - Team!

Бих искала да помоля някой от вас да аргументира липсата на качени авторски тестове на задачите от миналите изпити по Programming Fundamentals.

Ще се опитам да обясня противоречието, в което постоянно изпадам, когато се опитам да разбера логиката на това Ваше решение и ползата от него:

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

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

1. Да прекарам няколко часа, с неясен ефект, в търсене на грешката ми в материал, в който явно имам нужда да наваксам /в ситуация, в която постоянно се надбягваш с времето/;

2. Да попитам във форума и да се надявам, че някой в моето положение /седмица преди изпит, притиснат от всякакви житейски отговорности/ да ми дебъгне код от n реда;

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

Имам ли друга опция?

Вие какво печелите от некачването на тестовете на вече минали изпитни задачи? И защо е такъв хаос - на някои има качени, на други няма, на някои задачи има условия, на други ги търсиш из отминали курсове? Защо на входния курс за СофтУни всичко е толкова подредено и са качени всички тестове? Това някаква хлапашка небрежност ли е? Или някой от тима Ви все още е фен на мотото: "защо да е лесно, като може да е трудно"? smiley

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

Като гледам, тази тема почти ежедневно присъства в ума на студентите Ви, това не е ли някакъв знак, че е крайно време нещо да се промени?

.

 

 

 

 

Тагове:
0
Въпроси за SoftUni 17/02/2017 09:44:41
RoYaL avatar RoYaL Trainer 6849 Точки

Здравей Нона,

 

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

Трудно ми е да ти отговарям по реда, по който си писала, затова ще ти отговаря на различни фрагменти, започвайки ог:

Защо на входния курс за СофтУни всичко е толкова подредено и са качени всички тестове? Това някаква хлапашка небрежност ли е?

Не е хлапашка небрежност. Стандартна човешка грешка е. Входният курс се прави от 3 години и има над 70 издания. Programming fundamentals за сметка на това се прави едва за трети път. Като при разработката на софтуер е. Правиш дадено задание и то не е напълно по условие, има бъгове. Намират ги тестъри, потребители, колеги и т.н. и ги фиксваш. След известно време вече това задание е напълно работещо :) После идва корекция в заданието и пак се появяват проблеми, пак ги фиксваш и така. До сега никъде не съм виждал нещо да става напълно изрядно от първия път и при помяна да продължи да бъде изрядно :)

Бих искала да помоля някой от вас да аргументира липсата на качени авторски тестове на задачите от миналите изпити по Programming Fundamentals.

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

if (input == "input-a от тест 1") { Console.WriteLine("output-а от тест 1"); }
else if (input == "input-а от тест 2") { ... }

Това, разбира се, не означава че като скрием тестовете няма да се появи някой, който да мине през GitHub-ите на колегите си и да намери решенията и да ги submit-не, но на чисто психологическо ниво, кара една известна част от тези if/else-ри наистина да си решават задачите.

От друга страна се опитваме да не свикваме студентите, че тестовете ще са открити. Ако можеш да виждаш тестовете на всяко упражнения и изминал изпит, ще придобиеш навика постоянно да ги гледаш - все едно са даденост. Гарантирам ти, че това важи за над половината от хората. Пускаш решение - не минава на 100 точки. Отиваш, гледаш директно теста, казваш си - аха, туй е проблема, отиваш дописваш един IF и минава за 100. Само, че тоя IF в реална ситуация (изпит) ще го мислиш повече време. И ако си тренираш мозъка да хващаш тези случаи без да гледаш тестовете, т.е. да мислиш за гранични случаи постоянно и "какво може да се обърка", на изпита ще ти отнема значително по-малко време да си откриеш бъговете.

Търсенето на решения във форума, ако се отнася до дискусия го намирам за полезно. Аз лично никога не отговарям на някой, който е пуснал код за 80/100 със "Колега, ето тука добавих един ИФ в кода ти и вече вади 100/100, успех", както виждам че правят много хора.

Това го намирам за грешна и порочна практика. Обикновено задавам въпроси "А какво ще стане, ако еди-какво-си" и ако не може човека сам да се сети след няколко въпроса, изписвам 3-4 абзаца обяснение какво се случва, къде е проблема, защо се е появил и т.н. Това го намирам за хиляди пъти по-полезно от "ето това е теста" или "ей това е решението на 2ра задача". Препоръчвам на всички отговарящи във форума/фб групите да следват подобна практика. Ето пример от Java Fundamentals модула - http://i.imgur.com/h6n1Iyy.png

И последно

Като гледам, тази тема почти ежедневно присъства в ума на студентите Ви, това не е ли някакъв знак, че е крайно време нещо да се промени?

 

Не :) Не може всичко, с което не са свикнали хората, да бъде напасвано по предишните им стандарти. Доста хора имат нужда от промяна в живота си, и голяма част от тях имат нужда от промяна в мисленето си. Трябва да ги пречупим, защото това е единственият начин да се впишат в тази сфера. Четох наскоро някой дето едва ли не чупел маси и столове, защото не знаел какви са тези 2 теста, които гърмят - ами ти мислиш ли, че подобен човек не трябва да промени отношението си, вместо просто да получи тези тестове на готово? :)

 

Дано съм бил изчерпателен.

 

Поздрави,

Иван

3
NonaG avatar NonaG 111 Точки

RoYaL,

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

Не бихте ли искали да опитате, дали наистина ще е в ущърб на нивото на обучението? Нали, в края на краищата, изпитът решава каква е била подготовката на всеки? Има и друг момент - защо още от първия етап в СофтУни? За един лаик в програмирането, който току-що е разбрал колко видове скобички има по клавиатурата, е много трудно да разбере процесът на допускане на грешки - как му се случва, къде се чупи логиката му, има ли повтаряемост в грешките?

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

 

0
17/02/2017 16:14:11
RoYaL avatar RoYaL Trainer 6849 Точки

Истината, Nona, е че сме опитвали. Преди всяка задача вървеше с авторски решения и тестове в zip-чето с условието. Това за if/else-а не си го измислям. Това е нещо, което съм виждал като честа практика. Също така съм виждал и много изненадани физиономии на изпита, когато изкарат 40/100 и не могат да видят тестовете. И се започват едни въпроси по време на изпита - "ама аз да подготовките виждах тестовете, дайте ми ги и сега" и т.н.

Защо от първия етап? Programming Fundamentals е курсът, който трябва да създаде това мислене. На първо място като отношение към решаването на проблеми и на второ място като алгоритмично мислене.

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

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

В крайна сметка не разбрах какво те притеснява това да създаваш дискусии във форума относно пропуснати случаи в някои задачи? Нали ми прочете по-горния отговор към края. Аз лично намирам за много полезно обсъждането на задачи, говоренето за гранични случаи и т.н. Доста по-полезно от открити тестове. Снощи например с един приятел (всъщност, човекът написал judge системата) бяхме седнали на кафе в C35 и до три през нощта откарахме, говорейки за алгоритъма на една задача в topcoder (could be kind of geeky, but well..) и граничните и случаи. Много по-обогатен се чувствах след това, от колкото ако бях свалил тестовете при мен и бях начаткал задачата за 30 мин :)

P.S.: Скобичките по клавиатурата и останалата граматика са маловажни, те така или иначе ще се наизустят с времето. По-важно е на лист хартия да измислиш граничните случаи, пък все тая дали знаеш как става синтактично. Ще го Google-неш синтаксиса, 'дет се вика. В един друг мой отговор бях дал пример как само с гугъл можеш да решиш задача, без да си наясно дори как се декларира променлива + бях дал линкове към гугъл търсенията. Мога да изровя отговора :-)

P.P.S.: За този отговор говорех - https://softuni.bg/forum/8714/tehniki-za-pisane-na-algoritmi#answer-24847

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