01.09.2013 Views

Grundläggande programmeringsteknik

Grundläggande programmeringsteknik

Grundläggande programmeringsteknik

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong><br />

33%


<strong>Grundläggande</strong> <strong>programmeringsteknik</strong><br />

• Egentligen tre kurser:<br />

– GPT + datorsystem (C+DV) Fredrik Georgsson<br />

– GPT + gränssnitt (ID) Kalle Prorok<br />

– GPT + för KV (KV) Stefan Johansson<br />

• Handledare på GPT – biten (och datorsystem)<br />

– Ola Ringdahl, ringdahl@cs.umu.se, rum C241<br />

– Lucas Lindström, lucasl@cs.umu.se, rum D418<br />

– Joel Carlquist, joelc@cs.umu.se , rum D418<br />

• Kursansvarig: Fredrik Georgsson, fredrikg@cs.umu.se, rum C244<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


GPT-schema<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Innehåll på GPT-biten<br />

• Moment 1, 2 hp<br />

– Momentet behandlar grunderna i problemlösning med hjälp av<br />

datorprogram.<br />

– <strong>Grundläggande</strong> begrepp så som algoritm, iteration,<br />

implementation, kompilera etc definieras och beskrivs.<br />

– I momentet ingår en introduktion till hur man stegvis löser<br />

problem med hjälp av algoritmer.<br />

– Vidare presenteras de mest grundläggande byggstenarna i ett<br />

programmeringsspråk som gör att algoritmerna kan översättas<br />

till program.<br />

– Under kursen ges en fördjupad introduktion till studieteknik och<br />

kursens uppläggning stimulerar studentens användande av<br />

strukturerad studieteknik.<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Innehåll på GPT-biten<br />

• Moment 2, 2,5 hp<br />

– Under momentet ges tillfälle att öva programmeringsteknisk<br />

färdighet genom praktik<br />

– samt färdigheten att planera sin tid för att lösa<br />

implementationsuppgifter inom givna tidsramar.<br />

– En delmängd av programmeringsspråket C används.<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Lärmål för GPT-biten på kursen<br />

Efter avslutad kurs skall studenten kunna:<br />

• omvandla givna enkla algoritmer till det aktuella programspråket<br />

• förstå och använda sig av variabler, uttryck och kontrollstrukturer i<br />

ett högnivåspråk<br />

• konstruera och använda funktioner för att strukturera ett program<br />

• använda sig av grundläggande datatyper, arrayer och strängar<br />

samt känna till deras begränsningar<br />

• förstå principerna för och använda sig av ett felsökningsverktyg<br />

• uppskatta tidsåtgång för att lösa givna implementationsproblem<br />

samt planera sin tid för att slutföra uppgifter inom givna ramar<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Examination<br />

• Moment 1 examineras med skriftlig tenta, betyg U/3/4/5<br />

• Moment 2 examineras med obligatoriska (3st) uppgifter samt<br />

praktiskt programmeringsprov, sammanfattande betyg U/G<br />

• Det programspecifika momentet (moment 3) examineras enligt<br />

– Datorsystem – obligatorisk uppgift U/G + tentamen U/3/4/5<br />

– Gränssnitt – obligatorisk uppgift U/G + tentamen U/3/4/5<br />

– Kognitionsvetenskap – obligatorisk uppgift<br />

• Det slutliga betyget på kursen är en sammanvägning av alla<br />

delbetyg med särskild tonvikt på att uppgifter skall vara lösta inom<br />

givna tidsramar<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Kursbok<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong><br />

Håkan Strömberg<br />

C genom ett nyckelhål<br />

Studentlitteratur, 2007<br />

ISBN 978-91-44-03577-2<br />

Rekommenderad läsning<br />

Björn Liljequist<br />

Plugga smart lär dig mer<br />

Studentlitteratur, 2006<br />

ISBN 978-91-44-01725-9


Vad är programvaruutveckling?<br />

Problem<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong><br />

Förståelse<br />

av problemet<br />

Lösning<br />

på problemet<br />

(algoritm)<br />

Användning<br />

av lösningen<br />

Datorvänlig variant<br />

av lösningen


Vad är programvaruutveckling?<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Personal Software Process<br />

• Tiden T det tar att lösa ett problem kan delas upp enligt<br />

T= D + I + E + T<br />

D: designtiden<br />

I: implementationstiden<br />

E: felsökningstiden<br />

T: testtiden<br />

• På de obligatoriska uppgifterna<br />

ska ni försöka hitta er egen<br />

tidsprofil<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong><br />

test<br />

25%<br />

Person 1<br />

felsök<br />

ning<br />

38%<br />

Design<br />

12%<br />

Imple<br />

menta<br />

tion<br />

25%<br />

felsök<br />

ning<br />

14%<br />

Person 2<br />

test<br />

14%<br />

Imple<br />

menta<br />

tion<br />

29%<br />

Design<br />

43%


Studieteknik, allmänt<br />

• Skumma igenom texten innan föreläsningen<br />

• Under föreläsningen<br />

– Anteckna och var aktiv<br />

– Försök associera till det du redan känner till och bygg mentala<br />

modeller<br />

– Använd gärna mind-maps eller liknande anteckningsmetoder<br />

• Efter föreläsningen<br />

– Sammanfatta föreläsningen med en mening<br />

– Repetera alltid direkt efter föreläsningen (inom en timma)<br />

– Repetera igen efter<br />

• en dag<br />

• en vecka<br />

• en månad<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Studieteknik, ”färdighetskurser”<br />

• Lös många uppgifter – boken rekommenderar över 100!<br />

– Vi har schemalagt 58 uppgifter i de obligatoriska momenten<br />

• Skriv alltid ner hela lösningen själv, även för sådant som<br />

lärare/handledare ger lösningen till<br />

• Börja med att lösa typexempel gå vidare till mer avancerade uppgifter<br />

först när du förstått typfallen<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Programmeringsspråket C<br />

• Utvecklat 1972 av Dennis Ritchie för att<br />

användas tillsammans med UNIX<br />

• C är ett imperativt språk<br />

• C översätts lätt till assembler och maskinkodsinstruktioner<br />

• C kan kompileras med en relativt enkel kompilator<br />

• I C har programmeraren möjlighet att komma åt minne och andra<br />

enheter på datorn direkt<br />

• Program skrivna i C behöver därför lite exekveringsstöd från<br />

operativsystemet vid körning<br />

• C ersatte i mångt och mycket program skrivna i assembler<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Programmeringsspråket C<br />

• Utvecklat 1972 av Dennis Ritchie för att<br />

användas tillsammans med UNIX<br />

• C är ett imperativt språk<br />

• C översätts lätt till assembler och maskinkodsinstruktioner<br />

• C kan kompileras med en relativt enkel kompilator<br />

• I C har programmeraren möjlighet att komma åt minne och andra<br />

enheter på datorn direkt<br />

• Program skrivna i C behöver därför lite exekveringsstöd från<br />

operativsystemet vid körning<br />

• C ersatte i mångt och mycket program skrivna i assembler<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


En liten ordlista<br />

• Operativsystem – Ett program som sköter administrativa uppgifter<br />

på en dator, som att hålla reda på filer och program, resurser och<br />

användare.<br />

• UNIX – ett exempel på ett operativsystem som kan hantera flera<br />

användare och flera program<br />

• Imperativt – Att programmeringen bygger på att stegvis instruera<br />

datorn vad som skall göras<br />

• Maskinkod – Det språk som datorn verkligen ”förstår”<br />

• Assembler – Representation av maskinkod i lite mer naturligt språk<br />

• Kompilera – Att översätta från programmeringsspråk till maskinkod<br />

• Minne – Där datorn sparar undan data<br />

• Exekvera – Att köra ett program på datorn<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Vårt första C-program<br />

• Arbeta fram en arbetsplan för lösningen<br />

• Skriv programmet i en textbehandlare (editor)<br />

• Spara programfilen med ett beskrivande namn och avsluta namnet<br />

med .c<br />

– uppg_1-1.c ett bra namn för lösningen till uppgift 1-1<br />

• Kompilera programmet<br />

– Till exempel med kompilatorn gcc<br />

– Se till att det körbara programmet heter något vettigt<br />

• Korrigera eventuella kompilatorfel och kompilera om<br />

• Kör programmet och verifiera att det gör det du tänkt<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Våra första C-program<br />

• Skriv ett program som skriver ut ”Hejsan svejsan” på skärmen<br />

• Skriv ett program som frågar efter två tal och skriver ut summan<br />

av dem på skärmen<br />

• Skriv ett program som frågar efter spänningen över en last och<br />

strömstyrkan genom lasten och beräknar lastens resistans och<br />

skriver ut denna<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>


Sammanfattande mening om<br />

föreläsningen<br />

• Nyckeord:<br />

– Tidsplanering, metodik, grundläggande terminologi, introduktion<br />

• Hejsan, tidsplanering och metodik var viktigt<br />

<strong>Grundläggande</strong><br />

<strong>programmeringsteknik</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!