Проверяване на домашни - FUN & FAQ
Обръщам се към всички колеги които проверяват домашни, приемайте нещата с усмивка и най-вече критикувайки ако има причина :))
Отварям темата с идея, че със сигурност всеки е имал поне един абсурден или смешен коментар за домашното, или пък с който не е съгласен.
Още повече е хубаво темата да се разрастне и да се дават съвети какво е правилно да се гледа в кода за домашното, или за това как се пише. (мисля че имаше напътствия в някоя от лекциите, но бегло се сещам.)
Понеже домашните не са за Judge, и все хора ще ги проверяват, всеки има различни виждания и стандарти, затова е хубаво да наложим някои точки за домашните.
Досега съм попадал на доста свестни проверяващи, и браво на хората които имат време и силите да го правят!
FAQ :
Примерни съвети за проверяващите :
1) Забележките за именуване на функции/променливи са най-важни по КПК (ООП частично) и курсовете след него. (като тежест)
2) Ако имаш по-добре предложение за решение - напиши го в коментара на домашното, няма нужда да даваш по-малко точки, защото някой е решил задачата по друг начин.
3) Във връзка с по-горното - не си налагайте вижданията за нещата като коментар в домашното.
Ако реша някоя задача с "go to" успешно, не значи че е грешно решена.
Не сме нито даскали, асистенти или професори, бъди колега! :)
Примерни съвети за коденето:
1) Много добра практика е Copy/Paste на името на проблема от домашното - като име на проекта
Например :
Problem 1. Create Your Own GitHub Developer Profile
-> По-лесно се разбира, няма нужда да се гадае за коя задача става дума.
Лично аз преди си ги кръщавах Problem01 , Problem 02 , и т.н. и сигурно е било ужас за проверяващите :)
2) while(true) цикъл на цялата програма се слага с цел да улесни проверяващият да пусне всички входни данни на веднъж, вместо да пуска програмата 3-5 последователни пъти - това не трябва да се разглежда като проблем на решаването на задачата.
Защото while цикъла не е част от логиката на програмата.
3) Не предавайте празни задачи. (имах такъв случай да проверявам празен проект...)
-> По-добре напиши каквото си могъл и напиши коментар какво те е затруднило.
Така този, който проверява ако е решил задачата ще ти даде насоки или ще ти каже къде си сгрешил.
4) Публикуването на домашното във форума помага. Но също и създава тенденция за мързел.
Решавай си задачите, мъчи се 1-2-3 дена, ако не стане, тогава погледни от някой колега.
Първо се чувстваш по-добре, че сам си успял, събираш повече самоувереност - а пък за по-сложни проблеми не се стряскаш.
Fundamental нивото всеки би трявало сам да може да се справи, без чужда помощ. (Алгоритми и Структури от данни са друга бира)
FUN :
Ето и примерен код за следващият коментар:
public class Problem1_RectangleArea {
public static void main(String[] args)
{
while(true) {
Scanner input = new Scanner(System.in);
String[] userInput = input.nextLine().split(" ");
int sideA = Integer.parseInt(userInput[0]);
int sideB = Integer.parseInt(userInput[1]);
System.out.println(sideA * sideB);
}
}
}
Коментара мога да го публикувам, понеже името на човека не се споменава, но съжденията са култови :))
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
На всяка задача си вкарал още в началото по 1 безкраен while цикъл, който след вкарване на някакви данни, извършва всичко правилно и коректно, след което обаче иска отново да му бъдат подадени данни. Така направено, всяко от приложенията не може да се спре освен ако не натиснеш червения бутон отстрани. Можеше поне да сложиш 1 команда като "exit" / "stop", или !userInput.equals(null) за да може този цикъл да спре и приложението да приключи.
Кодът е правилен, добре форматиран, има дори коментари за някои от действията, но за мен никоя задача не работи правилно, понеже за да бъде спряна трябва "да и набиеш хикса".
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
От духа на коментара трябва да разберете : Why so serious :)
Уважавайте труда на колегите си и ако не разбирате нещо... не значи че е лошо!:)
Поздрави,
Владо