making sense - [ieraksti | vēsture | ko es lasu | par mani]
gedymin

[   par mani   ]
[   arhīvs   ]

[27. Jun 2015|11:15]
Previous Entry Add to Memories Tell A Friend Next Entry
Lasu par to, vai sākumskolas bērniem vajadzētu mācīt kodēt. Aizdomājos par to, ka iespējams programmēšana vispār tiek mācīta nepareizi. Iespējams, tai vajadzētu vairāk pārņemt no sociālajām zinātnēm.

Man ir zināmas love/hate attiecības ar zinātnisko metodi, tā ka reizēm liekas, ka tā ir panaceja, un reizēm tā, ka tā ir pārāk šaura, ierobežota, un zaudē citu veidu piegājieniem gandrīz visās dzīves jomās. Programmēšana ir viena no tām. Tā vispār izceļas starp citām inženierijas jomām (ja tā vispār tāda ir). Ja salīdzina programmētājum ar, piemēram, būvinženieri, tad ir acīmredzami, ka programmētājs savā ikdienas darbā stāv ļoti tālu no zinātnes. Parasti viņš/viņa pieņem lēmumus balstoties uz intuīciju un racionālu domāšanu, nevis uz zinātniskām evidencēm un teorijām. Teorijas programmēšanas pamatos vispār jau ir, bet tās ir matemātiskas, algebriskas, nevis zinātniskas. Nu lūk, un šeit man vairs nav skaidrs, vai tas ir nenovēršams fakts, vai arī vēsturiska nejaušība, kuru uztur zināma skepse un neinformētība pret ekonomikas, psiholoģijas un citu sociālo zinātņu metodēm? Zināmā mērā test driven development ir tāds solis uz evidence-based lēmumu pieņemšanu. Soļot tālāk traucē tas, ka labus zinātniskos eksperimentus veidot ir sarežģīti, programmētājiem tam trūkst zināšanu un treniņa.

Kā būtu programmētājiem mācīt:
- mazāk algebras, vairāk matemātiskās statistikas un varbūtību teorijas?
- mazāk modelēšanas, vairāk par falsifikācijas nozīmīgumu?
- mazāk formālo metožu, vairāk data sciene?
- mazāk matemātiskās loģikas, vairāk kognitīvās zinātnes un psiholoģijas, it īpaši par domāšanas kļūdām?
- mazāk par "klasisko" programtestēšanu, vairāk par kauzalitātes noteikšanu (eksperimentālo dizainu un kvazieksperimentālajiem piegājieniem, piemēram, regresiju analīzi u.c. ekonometrikas metodes)

Disclaimer: tā ir tikai šodienas fiksā ideja, nekādas ekspertīzes pedagoģijas jomā man nav.
saiteatstāt nospiedumu

Comments:
[User Picture]
From:[info]gedymin
Date:27. Jūnijs 2015 - 13:09
(Link)
Zināmā mērā tapis iedvesmojoties no diskusijas par statisko vs. dinamisko tipizāciju programmēšanas valodās. Varētu domāt, ka tik centrāls jautājums būs savācis milzīgu zinātniskās evidences daudzumu. Tā vietā izrādās, ka tas būtībā ir opinion-based holy war, kurā empīrisko studiju daudzums ir niecīgs un metodoloģija apšaubāma.

http://programmers.stackexchange.com/questions/10032/dynamically-vs-statically-typed-languages-studies - Dynamically vs Statically typed languages studies

http://danluu.com/empirical-pl/ - How Do Types Affect Productivity and Correctness? A Review
[User Picture]
From:[info]extranjero
Date:27. Jūnijs 2015 - 19:21
(Link)
Domāju, ka bērniem vajadzētu nedaudz pamācīties santehnikas lietas.

Santehniķi ir ļoti labi zinātnieki. Ja tu viņiem pateiksi, ka tev no griestiem līst ūdens, tad santehniķis izvērtēs vairākas hipotēzes – 1) varbūt ir plīsusi kāda truba, 2) varbūt augšējais kaimiņš ir aizmirsis aizgriezt krānu, 3) varbūt augšstāvā ir apgāzies akvārijs utt. Pēc tam sāks vākt pierādījumus un sašaurināt savas hipotēzes, un arī veikt eksperimentus – kas notiks, ja aizgriezīsim šito krānu? To krānu?

Dažiem cilvēkiem šķebina no sūdiem, tāpēc ar trubām neņemas, bet santehniķis ir iemācījies par sūdiem nesatraukties. Tāpat visas loģiskās un zinātniskās metodes savā būtībā ir ļoti vienkāršas, bet cilvēki nespēj tās pieņemt tikai savu emociju dēļ vai tāpēc, ka ir spēcīga vēlme pieņemt vēlamo par esošo. Santehniķa prakse var būt vislabākais treniņš, kā izvairīties no šīm domāšanas kļūdām :)
[User Picture]
From:[info]gedymin
Date:27. Jūnijs 2015 - 22:33
(Link)
Vai darbmācību skolās kāds ir atcēlis?

Santehniķiem labi sanāk pielietot zinātnisko metodi tāpēc, ka tās problēmas viņiem tādas vienkāršas. Valsti pārvaldīt ar zinātnisko metodi, piemēram, nesanāks - bet ne tapēc, ka valsts pārvaldītāji būtu mazāk gudri par santehniķiem vai arī viņiem būtu emocionālas dabas problēmas izdarīt loģiskus secinājumus (kaut gan gadās arī tā, abējādi). Valsts pārvalde tomēr drusku sarežģītāka sanāk. Tāpat ar ir profesionālu programmēšanu.
[User Picture]
From:[info]extranjero
Date:27. Jūnijs 2015 - 22:42
(Link)
Patiesībā gan valsts pārvaldē, gan programmēšanā ir noteikti aspekti, kuru izvērtēšanu ļoti labi var uzticēt zinātniekiem. Man tas nedaudz atgādina medicīnu. Cilvēka ķermenis ir ļoti sarežģīts un dažreiz neprognozējams, bet konkrētas terapijas efektivitāti var ļoti viegli pārbaudīt klīniskos pētījumos. Taču reizēm gan pacientiem, gan ārstiem ir ļoti grūti emocionāli pieņemt statistiskās izredzes.

Ar valsti ir tieši tas pats. Piemēram, jautājums, vai vajag dekriminalizēt marihuānu? Uztaisi vairākus klīniskos pētījumus, iesniedz zinātnieku grupai veikt padziļinātu izpēti un pieņem politiku, balstoties uz šiem pētījumiem. Bet tas gandrīz nekad tā nenotiek, jo emocijas ir pārāk spēcīgas abās pusēs.
[User Picture]
From:[info]gedymin
Date:27. Jūnijs 2015 - 22:46
(Link)
Jap, medicīna ir ļoti labs piemērs nozarei ar radniecīgām problēmām, iespējams, pat labākais. Esmu redzējis rakstus, kas burtiski to arī aicina darīt, programminženierijas pētniekiem pārņemt klīnisko eksperimentu prakse.

No otras puses, medīcina ir nozare arī ar daudzām problēmām un risinājumiem, kas vismaz izskatās suboptimāli, un ne tikai LV.
[User Picture]
From:[info]gnidrologs
Date:27. Jūnijs 2015 - 15:37
(Link)
Kurš ir tas gudrinieks, kas grib mācīt sākumskolniekus programmēt?
[User Picture]
From:[info]gedymin
Date:27. Jūnijs 2015 - 22:27
(Link)
Kāda problēma? Tu laikam esi no tiem, kas ir šausmās pret jebkādu intelektuāli netriviālu uzdevumu došanu bērniem.

Lai mācās radīt, nevis tikai izmantot datorus un planšetes patērētāja līmenī izklaidei.
[User Picture]
From:[info]gnidrologs
Date:27. Jūnijs 2015 - 22:46
(Link)
Es vienkārši uzprasīju kurš tas ir lol.

Problēma? Nu man liekas, ka tik pat labi varētu ieteikt ieviest pamatskolā kuģu mašīnbūves pamatus vai ornitoloģiju. Neredzu pamata pamatskolām fokusēties uz kādu konkrētu šauri specializētu profesionāļu sagatavošanu. Kāpēc tieši šo amatu, bet ne citu?
To tomēr sauc par vispārējo izglītību un mērķis laikam ir gatavot bērnus tā, lai kad tiem pienāks apziņa par to ko viņi vēlētos strādāt, būtu ielikti pamati, kas ļautu izvēlēties jebkura profila tālāk izglītošanos.
[User Picture]
From:[info]gedymin
Date:27. Jūnijs 2015 - 22:56
(Link)
Pagūglē: teching to code in grade school debate
[User Picture]
From:[info]gnidrologs
Date:27. Jūnijs 2015 - 23:22
(Link)
Apskatījos pirmos dažus rezultātus.

Tēmas saskatīju divas. Pirmā ir klasiskais ''aijajaijai mums ir pārāk maz sieviešu un minoritāšu iekš profesijas x, tāpēc par katru cenu jādara tā, lai arī te būtu perfekts egalitārisms.
Point denie, obv.

Otra, ka kodēšana priekš kopējās kognīcijas attīstības pēķšņi ir tik pat vajadzīga kā valodas vai matemātikas apguve. Neatradu pamatojumu.

Pāris komentāri, kuriem piekrītu

''Reasoning, logic, expression in spoken languages, as well as in coding. Classical high school – latin and greek, will teach more bout reasoning and logic than any engineering school class on computer programming.''

''lets teach them better, mathematics''

Apgalvojums, ka visiem jābūt ''computer savvy'' profesionāla IT speca līmenī arī neliekas pamatots. Kāpēc ne inženierija vai filozofija?
iebildumu nebūtu, ja kurikullums būtu no gumijas, bet jebkurš jauns obligātais priekšmets nozīmē vai nu palielināt kopējo stundu skaitu vai izmest kādu citu priekšmetu.
Stundu skaitu visdrīzāk neviens neņemsies palielināt, tāpēc kuru priekšmetu tu iedomājies kā potenciālo aizvietojamo un kāpēc?

Plus, ja vari, man kā lamerim paskaidrot, ko papildus klasiskajai matemātikai, ''pienes pie galda'' programmēšana no tīrās kognīcijas viedokļa?

[User Picture]
From:[info]gedymin
Date:27. Jūnijs 2015 - 23:39
(Link)
Par to jau vienreiz šķiet rakstīju šajā blogā:
http://klab.lv/users/gedymin/39157.html
[User Picture]
From:[info]gnidrologs
Date:28. Jūnijs 2015 - 01:34
(Link)
Tu tur runā par zinātniekiem. Topošajiem zinātniekiem advancētas datorprasmes, protams, lieti noder.
[User Picture]
From:[info]mindbound
Date:27. Jūnijs 2015 - 15:53
(Link)
Šeit ir pausta līdzīga pieeja, kam es kopumā diezgan stipri piekrītu (disclaimer: ikdienā esmu tuvu programmēšanai bet tālu no pedagoģijas).

We build mental models of everything - from how to tie our shoes to the way macro-economic systems work. With these, we make decisions, predictions, and understand our experiences. If we want computers to be able to compute for us, then we have to accurately extract these models from our heads and record them. Writing Python isn't the fundamental skill we need to teach people. Modeling systems is.
[User Picture]
From:[info]gedymin
Date:27. Jūnijs 2015 - 22:55
(Link)
Cik atšifrēju, liekas autors vēlas pateikt "programmēšana = modelēšana". Tāda ideja ar programminženieriju saistītajā akadēmiskajā vidē ir kļuvusi par daļu no mainstream, tāpēc nesapratu, kas tur tāds jauns. Tas arī atbilst tam, ko daru profesionāli - rīku atbalsta izveide sistēmu izstrādei.

Par četriem modelēšanas aspektiem, Specification, Validation, Debugging un Exploration - citu zinātnes jomu pieredze noderētu pamatā trim pēdējām. Man liekas, ka programming language academic community neproporcionāli daudz domā par Specification.

Vispār mana doma šeit vairāk bija par to, kā apmācīt bārdainas profesionālos programmētājus universitātē, nevis no sērijas "programmēšana visiem".