Ny podcast: Ge lagom många lagom löjliga rekommendationer

Så… nu har vi spelat in en ny podcast: Ge lagom många lagom löjliga rekommendationer

Nu får vi %¤# sluta upp med dumheterna. Kolla på rubriken igen.

Ge lagom många lagom löjliga rekommendationer

Vad betyder det? Inte ett skit. Hmmm, detta är väl bra om lagom är noll, det vill säga ungefär så här:

Ge inga löjliga rekommendationer

Vad har detta med programmeringsundervisning att göra? Jo, det ser ju ut ungefär så i presentationer och i böcker.

Vad är en löjlig rekommendation då?

Här är ett par exempel på rekommendationer vi sett – där ingen närmare förklaring givits:

  • “Skriv inte för långa eller korta metoder”
  • “Kommentera lagom mycket”
  • “Krångla inte till saker i onödan”
  • “Strukturera koden”

Ovanstående tips är helt oanvändbara, faktiskt löjliga, om man inte:

  1. går igenom problemen om man gör så
  2. visar med kodexempel på ett bättre sätt
  3. kvantifierar om det går

 

Exempel

“Skriv inte för långa eller korta metoder”

Vad är problemet med en lång och kort metod?

Hur lång är en lång metod? 2m? 1 Aln?

“Kommentera lagom mycket”

Vad är problemet om man inte kommenterar lagom mycket? Händer det något? Exploderar skärmen?

Vad är lagom mycket? Vad skall kommenteras?

Visa exempel-kod. Varför inte visa bra och dåliga exempel från riktiga projekt?

“Krångla inte till saker i onödan”

Här utgår vi (lärare) ifrån att studenterna faktiskt gjort ett val att krångla till det. Studenterna har med största sannolikhet gjort sitt bästa. Kan man krångla till saker om det är nödvändigt (det vill säga inte “i onödan”).

Visa exempel-kod. Varför inte visa bra och dåliga exempel från riktiga projekt?

Och om du nu dristar dig att säga vad som är enkelt, t ex påstår att:

boolean ageOk = age > 45;

if (ageOk == true) { // [1] se kommentar i slutet av posten!!

  return true;

} else {

  return false;

}

är mindre krångligt än

boolean ageOk = age > 45;

return ageOk;

eller än hellre

return age > 45;

så bör du kunna motivera detta.

BTW, det sista är det minst krångliga enligt oss!

“strukturera koden”

Hur gör man detta då? Visa, återigen, exempel!

Man kan ju till exempel visa dåligt strukturerad kod och påvisa effekterna efter en förbättrad struktur. Det är ganska lätt att skriva övningar där studenterna uppmuntras strukturera om kod enligt vissa anvisningar.

Närliggande problem: meningslösa uppräkningar

“Det finns olika protokoll för nätverkskommunikation: tcp, ip, smtp, icmp, ipx”

Detta är ett exempel på en meningslös kommentar följt av en likaledes meningslös uppräkning, eftersom ingen vidare förklaring eller kontrastering ges. Dessutom blandar man högt och lågt mellan protokoll i olika lager utan att diskutera detta.

Vad skall studenten med denna lista till? Skall detta examineras? Skall studenten lära sig detta utantill?

Allra märkligast blir det om “vi” djupdyker ned i en substandard och presenterar allsköns siffror kring denna och på samma gång visar en lista av andra substandarder. T ex

“Det finns olika programmeringsspråk: Java, C, Cobol, MasparFortran, m4, perl, .NET…. Bland C finner vi C89 (eller C90), C11 och C++17.”

Återigen blandas högt och lågt. Vi tar en dialekt av Fortran och de övriga listas som de är. .NET är förvisso inget programmeringsspråk, men det är ju populärt 😉 Plötsligt dyker man ned på en lista av olika C-standarder[2]. Och vips, så ser man en standard som inte alls är C utan C++. Oavsett vet kanske inte studenterna vad C är för något så vad skall de med listan till.

Nu kanske ni tänker att vi är löjliga och överdrivna. Löjliga och barnsliga är vi absolut. Men tyvärr är det inte taget ur luften – det är dess värre ett fullt realistiskt exempel på hur man introducerar till exempel programmering i kurser och böcker.

Ja, då var det färdiggnällt denna vecka. OBS, det heter inte “denna veckan”.

/r+h

[1] Några ord om

if (ageOk == true) {

Varför i hela friden jämför så många lärare och författare en “boolesk” variabel med true. Variabeln innehåller ju true eller false och inget annat, vilket ju är precis vad “if-satsen kräver”.

[2] huruvida det heter “standarder” eller “standards” tar vi en annan dag. Tänk t ex på hur du skriver ordet musiker i pluralform 😉

 

 

 

 

 

This entry was posted in pedagogik, Principerna. Bookmark the permalink.

Leave a comment