Letztes Semester: Unterschied zwischen den Versionen

Aus CCWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 10: Zeile 10:
Irgend was feines mit React wäre eine gute Idee.
Irgend was feines mit React wäre eine gute Idee.


= Noten zweites Semester =
= Notengebung =
== Noten zweites Semester ==
Siehe folgenden krassen Berechnungscode.
Siehe folgenden krassen Berechnungscode.


= Jahresnote =
''ProjectScore.java''
Schauen wir mal.
{{JML|code=
package at.htldornbirn.swp.grade;
 
public enum ProjectScore {
    COOL, AVERAGE, SO_WEAK, NONE
}
}}
''GradeCalculator.java''
{{JML|code=
package at.htldornbirn.swp.grade;
 
public class GradeCalculator {
    public static int calculateGrade(float testGradeAvg, ProjectScore projectScore) {
        int grade = Math.round(testGradeAvg);
 
        switch (projectScore) {
            case COOL:
                grade--;
                break;
            case AVERAGE:
                if (grade == 5) {
                    grade--;
                }
                break;
            case SO_WEAK:
                if (grade < 4) {
                    grade++;
                }
                break;
            default:
                if (grade < 3) {
                    grade = 3;
                } else if (grade < 4) {
                    grade++;
                }
        }
 
        return grade < 1 ? 1 : Math.min(grade, 5);
    }
}
}}
''CalculatorTest.java''
{{JML|code=
package at.htldornbirn.swp.grade;
 
import org.junit.Assert;
import org.junit.Test;
 
public class GradeCalculatorTest {
    /**
    * Helper Method for testing the grade calculation
    * @param expectedGrade Grade which is expected
    * @param testGradeAvg Average grade of tests
    * @param score Project score
    */
    private void testCalculator(int expectedGrade, float testGradeAvg, ProjectScore score) {
        Assert.assertEquals(expectedGrade, GradeCalculator.calculateGrade(testGradeAvg, score));
    }
 
    @Test
    public void testGradeCalculatorAverage() {
        testCalculator(1, 1.0f, ProjectScore.AVERAGE);
        testCalculator(2, 2.4f, ProjectScore.AVERAGE);
        testCalculator(3, 2.6f, ProjectScore.AVERAGE);
        testCalculator(4, 5.0f, ProjectScore.AVERAGE);
        testCalculator(4, 4.0f, ProjectScore.AVERAGE);
    }
 
    @Test
    public void testGradeCalculatorSoWeak() {
        testCalculator(2, 1.0f, ProjectScore.SO_WEAK);
        testCalculator(3, 2.4f, ProjectScore.SO_WEAK);
        testCalculator(4, 2.6f, ProjectScore.SO_WEAK);
        testCalculator(5, 5.0f, ProjectScore.SO_WEAK);
        testCalculator(4, 4.0f, ProjectScore.SO_WEAK);
    }
 
    @Test
    public void testGradeCalculatorCool() {
        testCalculator(1, 1.0f, ProjectScore.COOL);
        testCalculator(1, 2.4f, ProjectScore.COOL);
        testCalculator(2, 2.6f, ProjectScore.COOL);
        testCalculator(4, 5.0f, ProjectScore.COOL);
        testCalculator(3, 4.0f, ProjectScore.COOL);
    }
 
    @Test
    public void testGradeCalculatorNoProject() {
        testCalculator(3, 1.0f, ProjectScore.NONE);
        testCalculator(3, 2.4f, ProjectScore.NONE);
        testCalculator(4, 2.6f, ProjectScore.NONE);
        testCalculator(5, 5.0f, ProjectScore.NONE);
        testCalculator(4, 4.0f, ProjectScore.NONE);
    }
}
}}
== Jahresnote ==
Machma alle 1er...guade Ideeee

Aktuelle Version vom 19. Februar 2021, 16:02 Uhr

Da wir ja im letzten Semester wieder den super 50/50 Anwesenheitsmodus haben, hab ich mir folgendes überlegt.

Unterricht an der Schule

Wir gehen pro Einheit 2 Bereiche vom Wiki durch. Am Nachmittag in der letzten Stunde gibts dann dazu eine Mitarbeitsüberprüfung, angepasst auf das was wir gelernt haben.

Zuhause

Ihr macht ein cooles Softwareprojekt, was euch gefällt. Voraussetzungen dazu:

  • Ihr macht euch ein git Repository dafür
  • Wenn ihr das Projekt angebt muss es für mich möglich sein das Projekt über das git Repository zu starten.


Irgend was feines mit React wäre eine gute Idee.

Notengebung

Noten zweites Semester

Siehe folgenden krassen Berechnungscode.

ProjectScore.java

package at.htldornbirn.swp.grade;

public enum ProjectScore {
    COOL, AVERAGE, SO_WEAK, NONE
}

GradeCalculator.java

package at.htldornbirn.swp.grade;

public class GradeCalculator {
    public static int calculateGrade(float testGradeAvg, ProjectScore projectScore) {
        int grade = Math.round(testGradeAvg);

        switch (projectScore) {
            case COOL:
                grade--;
                break;
            case AVERAGE:
                if (grade == 5) {
                    grade--;
                }
                break;
            case SO_WEAK:
                if (grade < 4) {
                    grade++;
                }
                break;
            default:
                if (grade < 3) {
                    grade = 3;
                } else if (grade < 4) {
                    grade++;
                }
        }

        return grade < 1 ? 1 : Math.min(grade, 5);
    }
}

CalculatorTest.java

package at.htldornbirn.swp.grade;

import org.junit.Assert;
import org.junit.Test;

public class GradeCalculatorTest {
    /**
     * Helper Method for testing the grade calculation
     * @param expectedGrade Grade which is expected
     * @param testGradeAvg Average grade of tests
     * @param score Project score
     */
    private void testCalculator(int expectedGrade, float testGradeAvg, ProjectScore score) {
        Assert.assertEquals(expectedGrade, GradeCalculator.calculateGrade(testGradeAvg, score));
    }

    @Test
    public void testGradeCalculatorAverage() {
        testCalculator(1, 1.0f, ProjectScore.AVERAGE);
        testCalculator(2, 2.4f, ProjectScore.AVERAGE);
        testCalculator(3, 2.6f, ProjectScore.AVERAGE);
        testCalculator(4, 5.0f, ProjectScore.AVERAGE);
        testCalculator(4, 4.0f, ProjectScore.AVERAGE);
    }

    @Test
    public void testGradeCalculatorSoWeak() {
        testCalculator(2, 1.0f, ProjectScore.SO_WEAK);
        testCalculator(3, 2.4f, ProjectScore.SO_WEAK);
        testCalculator(4, 2.6f, ProjectScore.SO_WEAK);
        testCalculator(5, 5.0f, ProjectScore.SO_WEAK);
        testCalculator(4, 4.0f, ProjectScore.SO_WEAK);
    }

    @Test
    public void testGradeCalculatorCool() {
        testCalculator(1, 1.0f, ProjectScore.COOL);
        testCalculator(1, 2.4f, ProjectScore.COOL);
        testCalculator(2, 2.6f, ProjectScore.COOL);
        testCalculator(4, 5.0f, ProjectScore.COOL);
        testCalculator(3, 4.0f, ProjectScore.COOL);
    }

    @Test
    public void testGradeCalculatorNoProject() {
        testCalculator(3, 1.0f, ProjectScore.NONE);
        testCalculator(3, 2.4f, ProjectScore.NONE);
        testCalculator(4, 2.6f, ProjectScore.NONE);
        testCalculator(5, 5.0f, ProjectScore.NONE);
        testCalculator(4, 4.0f, ProjectScore.NONE);
    }
}

Jahresnote

Machma alle 1er...guade Ideeee