Loading...

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

butanfire avatar butanfire 32 Точки

Проверяване на домашни - 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 :)

Уважавайте труда на колегите си и ако не разбирате нещо... не значи че е лошо!:)

 

Поздрави,

Владо

4
Java Advanced
alexei.tcekov avatar alexei.tcekov 33 Точки

Здравейте колеги ... да използвам и аз тази тема .... да дам един пример :  Когато застането пред банкомат и се опитвате да вкарате един банан в него , банкомата няма да Ви напише грешен вход или това не е карта и т.н. !!!... така че когато в условието не е зададено да проверяваме входа  е излишно да пишете коментар/ препоръка, че при грешен вход различен от условието програмата гърми, не работи  и т.н. :)

2
GerganaYord avatar GerganaYord 78 Точки

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

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

 

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