2023-02-27 Math App Task #1

 

  1. Implementēt ScreenGameSelect. Sākotnēji testēšanai izveidot 2 spēlētājus GameState

    image-20230228233206086

 

  1. Implementēt interface struktūru, kura saglabās spēļu vēsturi, katru interface savā failā ./backend/src/models (izmantot ./frontend importējot no backend). Ja es kaut ko esmu aizmirsis UML lūdzu dod ziņu un var uzlabot. grade_number nozīmē kurā klasē iet, tas mainās UI. priekš uuid lietojam V4. question_term_number nozīmē kurš no mainīgajiem ir jāatbild piemēram

     

    GameState
    players: Player[],
    current_player_uuid: string,
    language: EnumLanguage
    EnumLanguage
    lv
    en
    ru
    Player
    player_uuid: string,
    player_name: String,
    birth_year: Number,
    grade_number: Number,
    correct_tasks: Task[],
    wrong_tasks: Task[],
    games_completed: Game[],
    honey_score: number
    Game
    game_uuid: string,
    task_type: EnumGameType,
    task_sub_types: EnumGameSubType[]
    task_question_def: GameQuestionDefinition
    tasks: Task[],
    number_of_tasks: number,
    start_timestamp: number,
    end_timestamp: number,
    durations_sec: number,
    honey_score: number
    Task
    task_uuid: string,
    game_uuid: string,
    task_type: EnumGameType,
    task_sub_types: EnumGameSubType[],
    task_question_def: GameQuestionDefinition,
    terms: TaskTerm[],
    answers: TaskTerm[],
    selected_answer: TaskTerm[],
    is_correct: bool,
    difficulty_weight: number,
    start_timestamp: number,
    end_timestamp: number,
    durations_sec: number,
    honey_score: number
    EnumGameQuestionType
    EnumGameSubType
    Addition,
    Subtracion,
    Division,
    Counting,
    ComparingBySize
    GameQuestionDefinition
    question_term_number: number
    TaskTerm
    term_type: EnumTaskTerm,
    value: number | string,
    is_result_term: bool,
    is_question_term: bool
    is_selected_answer: bool
    is_correct_answer: bool
    EnumTaskTerm
    Number,
    Addition,
    Subtraction,
    Multiplication,
    Division,
    Equal,
    CountElements
    EnumGameType
    Artimetic,
    VisualRecognition
    CompletedGame
  2. Pēc Svērtas Sarežģītības noteikšanas algoritmiem implementēt uzdevumus 0, 1 un 2 klasei. Likumus implementēt ./frontend/src/controllers/ControllerTasks.ts , Pointeri game_state un current_game funkcijā tiek izmainīti, Task tiek pievienots current_game, tiek ņemta vērā klase un vēsture

    awaitControllerTasks
    static GenerateNextTask(game_state:GameState, current_game: CompletedGame) : Task
    static GenerateNextTask_Grade0_Aritmetic(game_state:GameState, current_game: CompletedGame) : Task
    static GenerateNextTask_Grade1_Aritmetic(game_state:GameState, current_game: CompletedGame) : Task
    static GenerateNextTask_Grade2_Aritmetic(game_state:GameState, current_game: CompletedGame) : Task

    Kā strādā nākamā uzdevuma izvēle:

    Noteikt grade_number
    Izvēlēties atbilstošu likumu funkciju, piem. GenerateNextTask_Grade2_Aritmetic
    Noteikt spēles tipu
    ņemt vērā pareizos un nepareizos iepriekšējos Tasks
    Likumi pēc kuriem uzģenerējam VISUS iespējamos Tasks, katram piešķirot dif_weight
    Weighted random sampling, izvēamies vienu Task
    game_state
    current_game
    task

    Weighed random sampling: https://stackoverflow.com/questions/43566019/how-to-choose-a-weighted-random-array-element-in-javascript

    Sākotnēji katrai spēlei 10 tasks, jāņem vērā, ka katrā Task var būt vairāk kā 3 terms sarežģītākiem uzdevumiem

 

  1. Implementēt, ka ScreenGameMathSelect.tsx skatā, kuru pārsaukt ScreenGameMathAritmetic var balstoties uz ScreenGameSelect izspēlēt spēli

  2. Implementēt, ka pēc katra uzdevuma GameState klase tiek saglabāta kā JSON onject ControllerLocalStorage.ts un tiek arī no tās ielādēta un attēlota ScreenGameSelect

 

Plānotie uzdevumu piemēri, Prezentācija: http://share.yellowrobot.xyz/quick/2022-12-29-C1DCC658-CE55-4CF1-B4EC-C0C2744220E3.pptx

 


 

Svērtas Sarežģītības noteikšana

  1. Pirmkārt sarežģītība tiek noteikta izmantojot šīs Excel tabulas: http://share.yellowrobot.xyz/quick/2023-2-5-3535120E-4626-46DE-9E8D-935F8D62ED02.xlsx

    10 => 100, 0 => 0

  2. Punkti par katru atbildētu uzdevumu būs līdzīgi, BET tas kas mainīs rezultātu būs sarežģītība (Miksike punkti ir pamats sarežģītības aprēķinam, bet tur ir vēl iespēja uzlabot - lasīt zemāk)

  3. Sarežģītību mērīsm ar skalāru vērtību 0-100 (sarežģītība ir atkarībā no klases, katrai skolēnu klasei var būt atšķirīga sarežģītba vienam un tam pašam uzdevumam). Tas nekas, ja vērtība mazliet iet pāri 100 vai zem 0, piem, ja beigās sanāk -25 vai 150 arī būs ok

    Tas ir labi, jo mūsu mērķis ir jau sākotnēji skolēnu ielikt tajā klasē / līmenī, kāds ir viņa spēju līmenis, vai ne?

  4. Sarežģītību nosaka gan uzdevums, gan atbilžu varianti, gan iepriekš redzētie uzdevumi un atbilžu varianti

  5. Jautājumi tiks izvēlēti ar svērtu nejaušību pēc šī sarežģītības skalārās vērtības

  6. Sarežģītību var aprakstīt arī ar likumiem piešķirot +/- punktus sarežģītībai, piem. ja vienādojumā:

    1. ja viens apaļš skaitlis vienādojumā, beidzas ar 0 vai abi skaitļi beidzas ar 5: -25% no orģinālās sarežģītības vērtības (ja abi apaļi skaitļi: - 50%)

      ja viens apaļš skaitlis vienādojumā, beidzas ar 0 vai abi skaitļi beidzas ar 5: -25% no orģinālās sarežģītības vērtības (ja abi skaitļi beidzas ar 0: - 50%). Jo, piemēram, 15+7 neskaitās vienkāršais gadījums maziem bērniem.

    2. ja abi skaitļi dalās ar 2 vai 5, tad par abiem: -10%

      pāra skaitļu darbības ir tikpat sarežģītas kā nepāra skaitļu darbības, piemēram, neatšķiras sarežģītībā 14+36 vai 21

    3. ja viens skaitlis beidzas ar 1: -10%

    4. ja viens viencipara skaitlis vienādojumā: -25% no orģinālās sarežģītības vērtības

    5. ja viens divcipara skaitlis vienādojumā (ja tur var būt arī 3 un 4 ciparu skaitļi): -5% no orģinālās sarežģītības vērtības

    6. ja vienā saitlī vienādojumā skaitlis, kas sastāv no vieniniekiem (piem 11, 111): -10% no orģinālās sarežģītības vērtības

    7. ja ir viens daļskaitlis vai ar komatu viens: +25% sarežģītība

    8. ja viens skaitlis ir negatīvs, bet otrs skaitlis ir pozitīvs: +25% sarežģītība

    9. ja abi skaitļi vienādi: -10%

  7. Vizuālie Elementu uzdevumi

    1. Kā sarežģītību nosaka elementu atrašanas vai saskaitīšanas uzdevumos to izvietojums?

      Ja, kā atbili nejautā, kur elements atrodas, tad tam nav nozīmes, kur elementi atrodas.

      Es domāju, ja elem

    2. Kā sarežģītību nosaka krāsa, forma, izmērs?

  8. Vienādojumu uzdevumi - Algoritms atbilžu variantu ģenerēšanai saskaitīšanas un aritmētisko vienādojumu

    1. Kā noteikt sarežgītību uzdevumam un atbildei - Saskaitīšana un atņemšana līdz 10?

      1. Sarēžģītību var aprakstīt vai dot ar piemēriem

        5 + 3 = 8, Sarežģīta: 0.klase - 90; 1.klase - 50; 2+ klase: 10

        8 + 2 = 10, Sarežģīta: 0.klase - 50; 1+. klase - 10

    2. Kā noteikt sarežgītību uzdevumam un atbildei - reizināšana un dalīšana ar skaitļiem līdz 10?

    3. Kā noteikt sarežgītību uzdevumam un atbildei - Saskaitīšana un atņemšana līdz 100?

    4. Kā noteikt sarežgītību uzdevumam un atbildei - reizināšana un dalīšana ar skaitļiem līdz 100?

  9. Atkārtoti uzdevumi - Ar kādu varbūtību vajag atkārtoties nepareizi atbildētiem uzdevumiem? Atkārtošanās tiks modelēta ar papildus grūtības vērtības samazinājumu svērtajā nejaušība

    1. Nepareizi atbildēto uzdevumu atkārtošānās

      1. Tajā pašā dienā, piem 10%

      2. Nākamajā dienā, piem 50%

      3. Pēc nedeļas, piem 25%

    2. Pareizi atbildētu uzdevumu atkārtošānās

      1. Ja 3 atbildes pēc kārtas nepareizas studentam, tad 100% varbūtība iedot sarežģītāko no iepriekš pareizi atbildētajiem uzdevumiem, lai motivētu viņu turpināt

      2. Visās dienās 0%, tikai ja beidzās visi iespējamie uzdevumu varianti un visi ir bijuši pareizi atbildēti, tad dzēšās uzdevumu vēsture konkrējam uzdevumam

 

Sākotnējā sarežģītības noteikšana

image-20230210085947120

 

Likumi ģenerēšanai

image-20230210085641780