Grundläggande programmeringsteknik
Grundläggande programmeringsteknik
Grundläggande programmeringsteknik
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>