SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Introduktion till Programmering
Dagens föreläsning
1. Programmering – Vad är det egentligen?
2. Programmeringsspråk – Python?
3. Programmeringsmiljö?
1. IDLE
2. Terminalen/Konsolen
4. Att börja programmera
1. Hur skriver man?
2. Var skriver man?
3. Hur kör man sin kod?
5. Introduktion till datatyper & variabler i Python
Frågor innan vi börjar?
Programmering
• Programmering går ut på att ge instruktioner till dator
• Datorn gör det du säger till den, och inget annat
• Datorn behöver specifika instruktioner
Exempel på instruktioner
• Matematiska instruktioner (beräkningar)
• 5 + 5
• 10 * 2
• 20 / 4
Exempel på instruktioner
• Instruktioner att skriva ut saker (output)
• print (”Hello World!”)
• print (”Tjena kexet, sitter du här och smular?”)
Exempel på instruktioner
• Instruktion att hämta data från användare (input)
• input(”Hej, vad heter du?”)
• input(”Vilket är Sveriges bästa fotbollslag?”)
Hur fungerar ett program?
• Program är en (ofta väldigt stor) samling av maskininkod – som
innehåller instruktioner till datorn
• Det är väldigt ovanligt att en person skriver maskinkod direkt,
då detta inte är så enkelt…
Lågnivå- och högnivåspråk
• Maskinkod var ju inte så enkelt att förstå… men det gör inget!
• Maskinkod är ett lågnivåspråk
• Binärt och hexadecimalt
• Vi kommer att jobbat med högnivåspråk
• T.ex. Python, JavaScript, C#,, C++, Java, PHP, Ruby, etc.
Resultat (3 körningar)
Hur fungerar högnivåspråk?
• Hur kan datorn förstå vår högnivåprogrammering, när den bara
förstår binära tal?
• Vi översätter vår högnivåkod till lågnivå
• Detta kan man göra på två olika sätt:
• Genom en tolk
• Genom en kompilator
Tolkning och kompilering av kod
• Tolkning av kod sker ”on the fly”
• Kompilering av kod sker ”i förväg”
Program?
Vad gör ett program egentligen?
Input
Output
Beräkningar
Konditional exekvering
Repetition
Från användare
Till användare
Beräkningar
If-satser
Iterationer
Error?
Men nä, va, hur?
Olika typer av fel
• Syntax – Följer inte programmeringsspråket regler (grammatik)
• 2 + ”hej”
• print(hej)
• Runtime – Fel under programmets körning
• Semantiska fel -
Kärlek till programmering…
Debugging
• Att lära sig hantera dessa felmeddelande är en
programmerares vardag
• Ju mer ni programmerar, ju bättre kommer ni att bli på detta
• Kom ihåg – alla gör fel, mest hela tiden!
• Tänk på att programmeringsspråk är formella språk – och måste
vara exakta
• Till skillnad från naturliga språk som t.ex. svenska och engelska där vi
inte behöver vara exakta för att förstå varandra – vi kan till och med
använda slang – och förstå varandra! =)
Varför läser vi programmering?
Kan man utforma bra webbplatser
utan att kunna webbtekniker?
Kan man utforma bra
informationssystem utan att kunna
programmera?
Design Utveckling
Design Utveckling
Design Utveckling
Design Utveckling
Vilka använder Python?
Programmera program
Att skapa ett program
• Uppgiftsformulering, vad är det för uppgift som ska lösas?
• Vilka steg behöver utföras för att lösa uppgiften?
• Vilka instruktioner kan användas för att utföra varje delsteg
(algoritm)
Att leka dator – Sortera böcker
Algoritmer
• En beskrivning över hur man löser ett problem.
Algoritmen består av ett antal instruktioner och beskriver
i vilken ordning instruktionerna ska utföras.
http://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/LampFlo
wchart-sv.svg/250px-LampFlowchart-sv.svg.pnghttp://www.recepten.se/recept/pasta_carbonara.html
Att tänka på
• Uppgiftsformulering, vad är det för uppgift som ska lösas? Formulera uppgiften i termer av vad en dator kan
utföra. Avgränsa problemet, vad är en del av uppgiften? Vad ingår inte?
• Algoritmkonstruktion, vilka algoritmer är de mest lämpliga för detta problem? Konstruera strukturen på
programmet och skriv ner så kallad pseudokod. Detta är kreativ problemlösning.
• Kodning, översätt pseudokoden till ett programmeringsspråk t.ex. JavaScript eller Python
• Dokumentation, beskriva din lösning både i löpande text, med hjälp av UML och som kommentarer i
programmet.
• Verifikation, är programmet byggt på ett bra sätt så att det löser uppgiften utan att fel uppstår och det är
lätt att underhålla.
• Validering, är användaren nöjd med hur programmet fungerar. Underhåll, åtgärda buggar, förbättra och lägg
till funktionalitet.
• Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet.
Johans tips
Tillbaka till Python
”Python är ett programspråk som utformades i slutet av
1980-talet av Guido van Rossum. Python har utvecklats till
ett kraftfullt och samtidigt smidigt språk med stöd för flera
olika programmeringsparadigmer, bland annat
objektorienterad och funktionell programmering. Till
språket hör ett rikt standardbibliotek.”
https://sv.wikipedia.org/wiki/Python_(programspråk)
Python - utvecklingsmiljö
• Vi kommer att arbeta i Pythons egna utvecklingsmiljö IDLE
• Denna installeras automatiskt när man installerar Python
• Man kan använda valfri utvecklingsmiljö, t.ex. egna
textredigerare
• Men då får man exekvera sin kod från terminalen/konsolen istället
Datatyper?
• För att Python ska veta vad för typ av data som hanteras
behöver vi delge denna information till Python
• De olika datatyperna som vi kommer att titta på är:
• Number (int, float)
• String
• Boolean
• List
• Tuple
• Dictionary
Räkna med Python
• Python är väldigt bra på att räkna, vilket vi kan göra genom
vanliga matematiska uttryck.
• När vi räknar och gör matematiska operationer använder vi oss
utav datatypen number (numerisk datatyp). Här kan vi räkna
med heltal.
• Vill vi istället räkna med decimaler använder vi datatypen float
Operander i Python
https://sv.wikipedia.org/wiki/Python_(programspråk)
Hantera text med Python
• Vill vi skriva ut text i Python så använder vi datatypen string
(textsträng). Tänk på att textsträngar är just bara text – d.v.s.
tecken uppradade efter varandra.
• Vi kan därför t.ex. inte räkna med strängar
• Strängar skrivs m.h.a. ’ eller ”
Lägga ihop strängar med varandra
• Detta vill man ofta göra för att bygga upp meddelande till
användaren av ens program. T.ex.
• Vi tar alltså de strängarna som står på varje sida av ”+” och
sammanfogar dessa.
• Skulle vi försöka med räkna mer strängar får vi alltså inte
önskat resultat. T.ex.
Variabler
Spara information
Variabler
• När man bygger ett program vill man gärna spara undan värde,
så att vi kan använda dem vid ett senare tillfälle.
• Hur kul vore det om man glömde allt – hela tiden?
• Detta gör man genom att använda variabler
• Variabler är ett namn som refererar till ett värde (kan vara av vilken
datatyp som helst)
• Man skapar en variabel genom att
1.Välja ett lämpligt namn
2.Tilldela ett lämpligt värde genom ”=”-tecknet
Ange datatyper?
Python listar ut detta beroende värde
Kommentarer
• Det är en god idé att dokumentera sin kod
• Man glömmer bort vad koden gör
• Man glömmer bort hur koden gör det
• Man glömmer bort varför koden gör det
• Man kommenterar sin kod genom #
HT19 - DA354A - Introduktion till Python

Mais conteúdo relacionado

Semelhante a HT19 - DA354A - Introduktion till Python

HT15, DA354A - Funkioner
HT15, DA354A - FunkionerHT15, DA354A - Funkioner
HT15, DA354A - FunkionerAnton Tibblin
 
HT18 - DA354A - Functions
HT18 - DA354A - FunctionsHT18 - DA354A - Functions
HT18 - DA354A - FunctionsAnton Tibblin
 
HT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerHT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerAnton Tibblin
 
HT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptHT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptAnton Tibblin
 
HT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptHT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptAnton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
HT17 - DA156A - JavaScript i webbutveckling
HT17 - DA156A - JavaScript i webbutvecklingHT17 - DA156A - JavaScript i webbutveckling
HT17 - DA156A - JavaScript i webbutvecklingAnton Tibblin
 
HT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerHT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerAnton Tibblin
 
Camps1 dag1 pres2_Intro_Om_Programmering_o_Kod
Camps1 dag1 pres2_Intro_Om_Programmering_o_KodCamps1 dag1 pres2_Intro_Om_Programmering_o_Kod
Camps1 dag1 pres2_Intro_Om_Programmering_o_KodLisaKodcentrum
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptAnton Tibblin
 
Grundläggande programmering och datorkunskap 2022
Grundläggande programmering och datorkunskap 2022Grundläggande programmering och datorkunskap 2022
Grundläggande programmering och datorkunskap 2022MagnusLindh6
 
HT16 - DA354A - Listor & Lexikon
HT16 - DA354A - Listor & LexikonHT16 - DA354A - Listor & Lexikon
HT16 - DA354A - Listor & LexikonAnton Tibblin
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningJohan Holmberg
 
HT16 - DA354A - Fel- och filhantering
HT16 - DA354A - Fel- och filhanteringHT16 - DA354A - Fel- och filhantering
HT16 - DA354A - Fel- och filhanteringAnton Tibblin
 
Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?
Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?
Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?HiQInternational
 
eXtreme Programming
eXtreme Programming eXtreme Programming
eXtreme Programming Peter Antman
 
Inlämningsuppg6
Inlämningsuppg6Inlämningsuppg6
Inlämningsuppg6robbannn
 

Semelhante a HT19 - DA354A - Introduktion till Python (20)

HT15, DA354A - Funkioner
HT15, DA354A - FunkionerHT15, DA354A - Funkioner
HT15, DA354A - Funkioner
 
HT18 - DA354A - Functions
HT18 - DA354A - FunctionsHT18 - DA354A - Functions
HT18 - DA354A - Functions
 
HT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerHT19 - DA354A - Funktioner
HT19 - DA354A - Funktioner
 
HT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScriptHT18 - DA156A - Webben och JavaScript
HT18 - DA156A - Webben och JavaScript
 
HT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScriptHT19 - DA156A - Introduktion till JavaScript
HT19 - DA156A - Introduktion till JavaScript
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
HT17 - DA156A - JavaScript i webbutveckling
HT17 - DA156A - JavaScript i webbutvecklingHT17 - DA156A - JavaScript i webbutveckling
HT17 - DA156A - JavaScript i webbutveckling
 
HT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerHT22 - DA354A - Funktioner
HT22 - DA354A - Funktioner
 
Camps1 dag1 pres2_Intro_Om_Programmering_o_Kod
Camps1 dag1 pres2_Intro_Om_Programmering_o_KodCamps1 dag1 pres2_Intro_Om_Programmering_o_Kod
Camps1 dag1 pres2_Intro_Om_Programmering_o_Kod
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
 
TypeScript DevSum 2013
TypeScript DevSum 2013TypeScript DevSum 2013
TypeScript DevSum 2013
 
Grundläggande programmering och datorkunskap 2022
Grundläggande programmering och datorkunskap 2022Grundläggande programmering och datorkunskap 2022
Grundläggande programmering och datorkunskap 2022
 
HT16 - DA354A - Listor & Lexikon
HT16 - DA354A - Listor & LexikonHT16 - DA354A - Listor & Lexikon
HT16 - DA354A - Listor & Lexikon
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
 
CV
CVCV
CV
 
HT16 - DA354A - Fel- och filhantering
HT16 - DA354A - Fel- och filhanteringHT16 - DA354A - Fel- och filhantering
HT16 - DA354A - Fel- och filhantering
 
Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?
Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?
Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?
 
Uppgift6 med anteck
Uppgift6 med anteckUppgift6 med anteck
Uppgift6 med anteck
 
eXtreme Programming
eXtreme Programming eXtreme Programming
eXtreme Programming
 
Inlämningsuppg6
Inlämningsuppg6Inlämningsuppg6
Inlämningsuppg6
 

Mais de Anton Tibblin

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdfAnton Tibblin
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingAnton Tibblin
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelAnton Tibblin
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonAnton Tibblin
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringAnton Tibblin
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonAnton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionAnton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekAnton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingAnton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSSAnton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulärAnton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaAnton Tibblin
 

Mais de Anton Tibblin (20)

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhantering
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 

HT19 - DA354A - Introduktion till Python

  • 2. Dagens föreläsning 1. Programmering – Vad är det egentligen? 2. Programmeringsspråk – Python? 3. Programmeringsmiljö? 1. IDLE 2. Terminalen/Konsolen 4. Att börja programmera 1. Hur skriver man? 2. Var skriver man? 3. Hur kör man sin kod? 5. Introduktion till datatyper & variabler i Python
  • 3. Frågor innan vi börjar?
  • 4.
  • 5. Programmering • Programmering går ut på att ge instruktioner till dator • Datorn gör det du säger till den, och inget annat • Datorn behöver specifika instruktioner
  • 6.
  • 7. Exempel på instruktioner • Matematiska instruktioner (beräkningar) • 5 + 5 • 10 * 2 • 20 / 4
  • 8. Exempel på instruktioner • Instruktioner att skriva ut saker (output) • print (”Hello World!”) • print (”Tjena kexet, sitter du här och smular?”)
  • 9. Exempel på instruktioner • Instruktion att hämta data från användare (input) • input(”Hej, vad heter du?”) • input(”Vilket är Sveriges bästa fotbollslag?”)
  • 10. Hur fungerar ett program? • Program är en (ofta väldigt stor) samling av maskininkod – som innehåller instruktioner till datorn • Det är väldigt ovanligt att en person skriver maskinkod direkt, då detta inte är så enkelt…
  • 11. Lågnivå- och högnivåspråk • Maskinkod var ju inte så enkelt att förstå… men det gör inget! • Maskinkod är ett lågnivåspråk • Binärt och hexadecimalt • Vi kommer att jobbat med högnivåspråk • T.ex. Python, JavaScript, C#,, C++, Java, PHP, Ruby, etc. Resultat (3 körningar)
  • 12.
  • 13. Hur fungerar högnivåspråk? • Hur kan datorn förstå vår högnivåprogrammering, när den bara förstår binära tal? • Vi översätter vår högnivåkod till lågnivå • Detta kan man göra på två olika sätt: • Genom en tolk • Genom en kompilator
  • 14. Tolkning och kompilering av kod • Tolkning av kod sker ”on the fly” • Kompilering av kod sker ”i förväg”
  • 16. Vad gör ett program egentligen? Input Output Beräkningar Konditional exekvering Repetition Från användare Till användare Beräkningar If-satser Iterationer
  • 18.
  • 19. Olika typer av fel • Syntax – Följer inte programmeringsspråket regler (grammatik) • 2 + ”hej” • print(hej) • Runtime – Fel under programmets körning • Semantiska fel -
  • 21. Debugging • Att lära sig hantera dessa felmeddelande är en programmerares vardag • Ju mer ni programmerar, ju bättre kommer ni att bli på detta • Kom ihåg – alla gör fel, mest hela tiden! • Tänk på att programmeringsspråk är formella språk – och måste vara exakta • Till skillnad från naturliga språk som t.ex. svenska och engelska där vi inte behöver vara exakta för att förstå varandra – vi kan till och med använda slang – och förstå varandra! =)
  • 22.
  • 23. Varför läser vi programmering?
  • 24. Kan man utforma bra webbplatser utan att kunna webbtekniker?
  • 25. Kan man utforma bra informationssystem utan att kunna programmera?
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 36.
  • 37.
  • 39. Att skapa ett program • Uppgiftsformulering, vad är det för uppgift som ska lösas? • Vilka steg behöver utföras för att lösa uppgiften? • Vilka instruktioner kan användas för att utföra varje delsteg (algoritm)
  • 40. Att leka dator – Sortera böcker
  • 41. Algoritmer • En beskrivning över hur man löser ett problem. Algoritmen består av ett antal instruktioner och beskriver i vilken ordning instruktionerna ska utföras. http://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/LampFlo wchart-sv.svg/250px-LampFlowchart-sv.svg.pnghttp://www.recepten.se/recept/pasta_carbonara.html
  • 42. Att tänka på • Uppgiftsformulering, vad är det för uppgift som ska lösas? Formulera uppgiften i termer av vad en dator kan utföra. Avgränsa problemet, vad är en del av uppgiften? Vad ingår inte? • Algoritmkonstruktion, vilka algoritmer är de mest lämpliga för detta problem? Konstruera strukturen på programmet och skriv ner så kallad pseudokod. Detta är kreativ problemlösning. • Kodning, översätt pseudokoden till ett programmeringsspråk t.ex. JavaScript eller Python • Dokumentation, beskriva din lösning både i löpande text, med hjälp av UML och som kommentarer i programmet. • Verifikation, är programmet byggt på ett bra sätt så att det löser uppgiften utan att fel uppstår och det är lätt att underhålla. • Validering, är användaren nöjd med hur programmet fungerar. Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet. • Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet.
  • 45. ”Python är ett programspråk som utformades i slutet av 1980-talet av Guido van Rossum. Python har utvecklats till ett kraftfullt och samtidigt smidigt språk med stöd för flera olika programmeringsparadigmer, bland annat objektorienterad och funktionell programmering. Till språket hör ett rikt standardbibliotek.” https://sv.wikipedia.org/wiki/Python_(programspråk)
  • 46. Python - utvecklingsmiljö • Vi kommer att arbeta i Pythons egna utvecklingsmiljö IDLE • Denna installeras automatiskt när man installerar Python • Man kan använda valfri utvecklingsmiljö, t.ex. egna textredigerare • Men då får man exekvera sin kod från terminalen/konsolen istället
  • 47. Datatyper? • För att Python ska veta vad för typ av data som hanteras behöver vi delge denna information till Python • De olika datatyperna som vi kommer att titta på är: • Number (int, float) • String • Boolean • List • Tuple • Dictionary
  • 48. Räkna med Python • Python är väldigt bra på att räkna, vilket vi kan göra genom vanliga matematiska uttryck. • När vi räknar och gör matematiska operationer använder vi oss utav datatypen number (numerisk datatyp). Här kan vi räkna med heltal. • Vill vi istället räkna med decimaler använder vi datatypen float
  • 50. Hantera text med Python • Vill vi skriva ut text i Python så använder vi datatypen string (textsträng). Tänk på att textsträngar är just bara text – d.v.s. tecken uppradade efter varandra. • Vi kan därför t.ex. inte räkna med strängar • Strängar skrivs m.h.a. ’ eller ”
  • 51. Lägga ihop strängar med varandra • Detta vill man ofta göra för att bygga upp meddelande till användaren av ens program. T.ex. • Vi tar alltså de strängarna som står på varje sida av ”+” och sammanfogar dessa. • Skulle vi försöka med räkna mer strängar får vi alltså inte önskat resultat. T.ex.
  • 53. Variabler • När man bygger ett program vill man gärna spara undan värde, så att vi kan använda dem vid ett senare tillfälle. • Hur kul vore det om man glömde allt – hela tiden? • Detta gör man genom att använda variabler • Variabler är ett namn som refererar till ett värde (kan vara av vilken datatyp som helst) • Man skapar en variabel genom att 1.Välja ett lämpligt namn 2.Tilldela ett lämpligt värde genom ”=”-tecknet
  • 54. Ange datatyper? Python listar ut detta beroende värde
  • 55. Kommentarer • Det är en god idé att dokumentera sin kod • Man glömmer bort vad koden gör • Man glömmer bort hur koden gör det • Man glömmer bort varför koden gör det • Man kommenterar sin kod genom #