Programmering 1 för gymnasiet med ruby/Målen för programmering 1


Om nu en elev kommer till dig och säger "Jag vill göra en prövning på programmering 1, hur vet jag om jag uppfyllt målen?" så är det din skyldighet att kunna bryta ner målen mer i detalj så att eleven förstår vad som förväntas. Här kommer ett försök till nedbrytning, du kan använda det rakt av utan ändring eller använda det som grund för din egen prövning i ruby eller något annat programmeringsspråk. Tanken är att allteftersom bokens kapitel fylls skall länkar till kapitlen läggas under rätt mål så att det är tydligt vad som bör göras för att uppfylla varje mål i programmering 1.


Sekventiell programmering i det eller de valda programmeringsspråken. Språkurvalet kan göras från såväl programspråk och skriptspråk som kompilerande och tolkande språk. Ett av de valda språken ska ha tillgång till mångsidiga objektorienterade standardbibliotek.

Förklaring: Ruby är ett OOP (objekt orienterat) skriptspråk. Eleven skall visa att den vet hur man skapar enkla program, hur man skapar- och använder funktionsanrop i kod, hur man logiskt går igenom koden samt hur man använder: while, if och case satser.


Programmeringsspråkets eller -språkens grundläggande datatyper samt fördefinierade strukturer, regler och syntax.

Förklaring: Ruby saknar grundläggande datatyper, allting är objekt. Eleven skall visa hur man använder sig av range, array och hashtabeller i ruby. Koden skall vara välstrukturerad och kommenterad på rätt sätt. Eleven skall använda sig av en strukturmall som camelcase eller liknande och vara konsekvent i sitt användande.


Traditioner och nya trender i utvecklingen av programmeringsspråk.

Förklaring: Eleven skall förstå hur behoven skapat språken samt skillnaden mellan lågnivå- och högnivå språk. Vet man hur historien bakom språken ser ut kan man också göra en rimlig prognos över framtida behov.


Kontrollstrukturer, till exempel sekvens, selektion och iteration, planerade med aktivitetsdiagram och skrivna i ett väl implementerat programflöde.

Förklaring: Eleven skall kunna göra flödesdiagram och flödesscheman i text eller bild där grundläggande delar av rubys kod finns med, som if-then-else, do-while osv.


Grunderna för klasser, objekt, egenskaper och metoder.

Förklaring: Eleven skall kunna skapa enkla klasser och använda dem i kod. Eleven skall kunna använda olika metoder för att förändra klassens inre variabler från kod utifrån. Eleven skall visa att den kan skapa enkla klassarv samt skillnad mellan private och public.


Variablers och konstanters synlighet och livslängd.

Förklaring: Eleven skall visa att den vet skillnad mellan variabler innanför funktioner och utanför funktioner och hur man anropar dem på olika vis.


Enkla sorteringsalgoritmer och sökningsalgoritmer.

Eleven skall kunna använda t.ex. bubblesort på en lista/array.


Grundläggande rekursiva algoritmer.

Förklaring: Eleven skall kunna använda ruby för beräkna fibonaccisekvenser.


Interaktion med användaren i ett enkelt grafiskt användargränssnitt.

Förklaring: Eleven skall kunna koppla ruby till t.ex. Qt, Fox, WxWidget eller liknande grafisk fönsteranvändning.


Implementeringar av datastrukturer, till exempel vektor, fält, lista och trädstruktur.

Förklaring: Visa hur man använder vektor, flerdimensionell vektor och hashtabell i kod.


Felsökning av källkod och undantagshantering i interaktiva program.

Förklaring: Visa hur man använder konsollfönster för att läsa av variabler och hur man kan avbryta programmet med inbyggda- eller egna felbeskrivningar.


Samspelet mellan program och dator från källkod till exekvering.

Förklaring: Eleven visar hur man skapar miljön för att programmera i programspråket ruby, hur man kopplar ruby till andra bibliotek som Qt, hur man distribuerar färdig kod till användare och hur man hanterar rubyskript på olika operativsystem.


De vanligaste programmeringsspråkens krav på körtidsmiljöer och operativsystem samt deras aktuella användningsområden.

Förklaring: Eleven kan förklara skillnader och likheter mellan C++, java och ruby, varför de skapats, vilka miljöer de används i samt vad de passar bäst för.