MathCheckin kehittämisestä
Onko muutostarpeita matematiikan tekstuaaliseen syntaksiin?
Kliksuttelueditoria kaavojen syöttämiseen ei ole näköpiirissä
- ⇨ tekstuaalisen syntaksin on kelvattava tässä vaiheessa
- (sitäpaitsi tekstuaalisen syntaksin kanssa pärjääminen on itsessään
osaamistavoite)
- ja kuuluisiko sen olla `frac(d)(d x)` eikä `frac(del)(del x)`?
Jos jotain tarvitsee muuttaa, alkaa olla korkea
aika!
- sitten kun käyttäjäkunta on iso, muutokset aiheuttavat sekaannusta
Pyytäkää rohkeasti uusia ominaisuuksia!
Moni ominaisuus on tullut, kun omissa käyttökokeissani olen hoksannut sen
tarpeen
Teille ison hyödyn tuova ominaisuus saattaa olla pikkujuttu toteuttaa
Idean kehitteleminen neuvottelemalla on usein tarpeen
- uusi ominaisuus pitää sovittaa yhteen aikaisempien ja tulevien kanssa ⚖
- kokonaisuuden täytyy säilyä hallittavana
- on yllättävää, mikä on ja ei ole vaikeaa
- usein ominaisuudet ovat yksinään helppoja, mutta yhteensovittaminen on
vaikeaa
- luonteva ratkaisu vaatii usein pitkän sulattelun:
“kuukauden päästä huomasin, että vastaus on triviaali”
Esim. olisi helppo lisätä syötesyntaksiin funktio exp(x)
tarkoittamaan samaa kuin `e^x`, mutta
- pitäisikö se tulostaa `exp(x)` vai `e^x` ?
- aiheuttaisiko se enemmän hyötyä kuin haittaa?
- abs(x) on jo ja tulostuu `|x|`
Esim. syötteen kirjaaminen Exam-käyttöä varten
- HTML-kommentiksi palautesivun loppuun
- kaiken syötteen kirjaaminen on hyvin helppoa
- valikoiva kirjaaminen aiheuttaa synkronointiongelman syötepuskurin ja
salauksen purun kanssa
Pieniä ja keskisuuria ideoita palauteohjelmaan, tarvitaanko?
- kovin pitkän kaavan automaattinen jakaminen osiin
- floor(x) ja ceil(x) tarkoittamaan `|__x__|` ja
`|~x~|` (|_x_| ja |^x^| sekä ⌊x⌋ ja
⌈x⌉ ovat jo)
- false, undefined ja true (FF,
UU ja TT ovat jo)
- komento vaatimaan, että MathCheck ei osaa sieventää lopullista vastausta
(paljoa) pitemmälle (vrt. f_nodes)
- komennot vaatimaan, että lopullinen vastaus on CNF-muodossa / BNF-muodossa
- komentoja kieltämään tai sallimaan vain tietyt operaattorit (vrt.
f_ban_der)
- oikein-teksti ja väärin-teksti (vrt. next_URL)
- yleinen logaritmi, esim. `log_2`
- trigonometriset käänteisfunktiot
Työn alla Exam-käyttöä tukevia ominaisuuksia
- record_off ja record_on
- check_off ja check_on
- mitä pitää tehdä varoituksille tyyliin “vastaus ei ole tarpeeksi
yksikertainen”?
Käyttämättömien ominaisuuksien roikottaminen mukana hankaloittaa
testausta
ym.
⇨ Haluaisin poistaa palauteohjelmasta joukon vanhoja ominaisuuksia
Kaikki #-alkuiset komennot paitsi #(, #),
#/ ja ehkä #D
- muut kuin ym. neljä ovat jo pitkään toimineet ilman #:a alussa
- #D on sama kuin DD
lf
- /* ... */ tekee saman ja paljon muutakin
newproblem ja Newproblem
- yleisin käyttö onnistuu komennoilla arithmetic ja
Arithmetic
- toimivat huonosti monille muille tehtävälajeille
enda ja ends
- ; tekee saman ja paljon muutakin
undef_off ja undef_on
- ilmoitetaan määrittelemättömyysvirheistä tyyliin `x/x = 1` kun `x=0`
- haluaisin aina päälle
funcpar_off ja funcpar_on
- tulostuksessa aina sulut `sin` jne. argumenttien ympärille tyyliin `ln(x)`
- haluaisin aina pois päältä
ε = `varepsilon` ja ϵ = `epsilon`, tarvitaanko molemmat?
φ = `varphi` ja ϕ = `phi`, tarvitaanko molemmat?
⇨ tarvitaan postituslista
Isoja muutosajatuksia
Tehtävien laadintaohjelma ymmärtämään MathCheckin syntaksia
- se mikä vain välitetään palauteohjelmalle on nykyisinkin MathCheckin
syntaksia
- tehtäväsivulla näkyvä matematiikka pitää nykyisin olla AsciiMathia tai
HTML-erikoismerkkejä
- myös käyriä ja lausekepuita pitää voida piirtää tehtäväsivulle
MathCheck-komennoilla
Yhtälön ratkaisun jakaminen tapauksiin
- esim. `11 sqrt(|x|+1) = 25 - x` ratkaistaan oletuksella `x >= 0` ja
sitten oletuksella `x < 0`
Yhtälöille monta sallittua muuttujaa
- opiskelijan ratkaistava niistä yhden suhteen tyyliin `x = 2a+1 vv x =
2a-1`
- juuret testataan joukolla muiden muuttujien arvoyhdistelmiä
Epäyhtälöt
Parempi kyky löytää määrittelemättömyysvirheitä
- nykyisin löytää vain jos sattuu kokeilemaan ko. lukua
- tulon derivaattakaavassa on ongelma esim. kun `f(x) = root(3)(x)` ja `g(x)
= root(3)(x^2)`
- ongelma Exam-käyttöä ajatellen: antaisi yhtälönratkaisuauomaatin
`1/((f(x)-g(x))^2) >= 0`
let f(x,y) := ...x...y... ;
Päättelykoneen kehittäminen tarjoaa rajattomasti unelmoitavaa ☺
- vastauksen etenemisen mielekkyyden tarkastus
- todistustehtäviä
- induktiotodistustehtäviä
- abstraktin algebran tehtäviä
Säännöllisten lausekkeiden ja BNF-tehtäviä
Moni olemassa oleva asia kaipaisi siivoamista
- kuvat ja niissä olevat merkit paremmiksi, olisiko SVG?
- domain expression
Apu kelpaisi monessa asiassa ☺
Pedagogiikan kehittäminen
- kiitos paljon mitä on tehty ja ollaan tekemässä!
Julkaisujen kirjoittaminen
- järkevää tai ei, meitä mitataan julkaisuilla
Uusien ja vanhojen ominaisuuksien testaaminen
Dokumentaation kirjoittaminen
Graafinen suunnittelu ↣ CSS
- erityyppisille sivuille jotain erottavaa: tehtäväsivu, palautesivu,
ohjesivu, opettajalle tarkoitettu sivu, …
- silti yhtenäinen ulkoasu
Koodaus
Sen kliksuttelueditorin tekeminen, jos sellainen on pakko
saada!
This file was generated 2017-06-08 08:53:32 UTC.