Introduktion till programmering SMD180. Föreläsning 1: Programmets väg

Relevanta dokument
Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Grundkurs i programmering - intro

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

TDP002 Imperativ programmering

Föreläsning 2. Operativsystem och programmering

Program & programmering

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

Innehålls förteckning

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Program. Kapitel make Program Interpreterande och kompilerande program

Extramaterial till Matematik Y

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Introduktion till Matlab

Quick Start Guide Snabbguide

TDP002 - Imperativ programmering

Extramaterial till Matematik Y

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

Extramaterial till Matematik Y

TDP002 - Imperativ programmering

Introduktion till Matlab

Introduktion till programmering

Inledande programmering med C# (1DV402) Introduktion till programmering

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll

Introduktion till programmering. Programspråk och paradigmer

Så här skriver du ditt första program i C++

Föreläsning 1: Intro till kursen och programmering

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Handbok Fjärranslutning till skrivbord. Brad Hards Urs Wolfer Översättare: Stefan Asserhäll

Handbok KWrite. T.C. Hollingsworth Christoph Cullmann Översättare: Stefan Asserhäll

Instruktioner för att kunna programmera på skolans datorer

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Objektorienterad programmering i Java

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Föreläsning 1: Intro till kursen och programmering

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

OOP Objekt-orienterad programmering

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

Beijer Electronics AB 2000, MA00336A,

NetBeans 5.5. Avsikt. Projektfönster

Handbok Simond. Peter H. Grasch

Handbok Potatismannen. Éric Bischoff Paul E. Ahlquist, Jr. Eugene Trounev Granskare: Lauri Watts Översättare: Stefan Asserhäll

Handbok Dela Skrivbord. Brad Hards Översättare: Stefan Asserhäll

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Föreläsning 3. Programmering, C och programmeringsmiljö

Laboration 1 Introduktion till Visual Basic 6.0

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Introduk+on +ll programmering i JavaScript

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Introduktion till Matlab

Creo Customization. Lars Björs

2.1 Installation of driver using Internet Installation of driver from disk... 3

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering i Java I

Lite mer om CGI-programmering

Programmering. Den första datorn hette ENIAC.

Imperativ programmering

Laboration: Whitebox- och blackboxtesting

Introduktion till programmering SMD180. Föreläsning 9: Tupler

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Installationsanvisning för kursens programvara på egen dator

DD1311 Programmeringsteknik för S1 Laborationer läsåret

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

1 Språket C Valet av språket C++ för kompendiet. 1.2 Språket. 1.3 Att programmera. 1.4 Hello World Börja programmera

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

Föreläsning 4 IS1300 Inbyggda system

Överflyttning av värld

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

Inledande programmering med C# (1DV402) Introduktion till C#

NetBeans 7. Avsikt. Projektfönster

Bruksanvisning för SeSAm GENETICA : Mendels Lagar

Vi målar! Författare Cheryl Rao Illustratör Tanvi Choudhury

Introduction to the Semantic Web. Eva Blomqvist

Handbok SSCd. Peter H. Grasch

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Immigration Studying. Studying - University. Stating that you want to enroll. Stating that you want to apply for a course.

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Join the Quest 3. Fortsätt glänsa i engelska. Be a Star Reader!

Det finns en handledning till kortet på hemsidan. AVR STK500.

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum:

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

What Is Hyper-Threading and How Does It Improve Performance

Introduktion till Matlab

Installationsguide för FAR Komplett Offline 2.1.2

Transkript:

Introduktion till programmering Föreläsning 1: Programmets väg 1 1

Vad är en dator? En maskin vars beteende styrs av de bitmönster som finns lagrade i datorns minne (inte helt olikt förra seklets självspelande pianon!) Att programmera en dator handlar alltså om att lägga in önskade bitmönster i datorns minne... Problemet är bara att människor har väldigt svårt att tänka i termer av bitmönster (jämför att spela piano genom att stansa hålrullar) Lyckligtvis kan vi ta hjälp av andra program när vi programmerar! 2 2

programs can run on only one kind of computer and have to be rewritten to run on another. Due to these advantages, almost all programs are written in high-level languages. Low-level languages are used only for a few specialized applications. Interpretering Two kinds of programs process high-level languages into low-level languages: interpreters and compilers. An interpreter reads a high-level program and executes it, meaning that it Sker does vid what the körning program says. It processes the provarje gram a little at a time, alternately reading lines and performing computations. SOURCE CODE INTERPRETER OUTPUT Läsbarthe text Program som it completely Resultat A compiler reads program and translates before the program i något språk texten körningen starts running. In this case, thetolkar high-level program isavcalled the source code, och utför det code or the executable. Once and the translated program is called the object a program is compiled, you can execute repeatedly without further translation. textenitsäger 3 SOURCE CODE COMPILER OBJECT CODE EXECUTOR OUTPUT 3

executes it, meaning that it does what the program says. It processes the program a little at a time, alternately reading lines and performing computations. SOURCE CODE INTERPRETER Kompilering OUTPUT A compiler reads the program and translates it completely before the program starts running. In this case, the high-level program is called the source code, 1 gång and the translated program is called the object code or the executable. Once Många gånger a program is compiled, you can execute it repeatedly without further translation. SOURCE CODE COMPILER OBJECT CODE EXECUTOR OUTPUT Läsbar text Program som Obegripliga Kan direkt tolka Resultat Python is considered an interpreted language because Python programs are exöversätter bitmönstren som commandecuted by an interpreter. Therebitmönster are two ways to use the interpreter: line mode and script mode. mode, you type Python programs texten till In command-line (fil.exe) maskininstruktioner and the interpreter prints the result: maskinkod 4 4

Kompilering/interpretering Kompilering: Det översatta programmet kräver liten eller ingen tolkning när det ska köras, ger ofta bättre prestanda Själva översättningen tar dock tid och gör programutvecklingsarbetet krångligare Interpretering: Tolkning måste göras varje gång programmet körs, tar längre tid än att köra redan översatt maskinkod Programutvecklingen blir dock betydligt enklare och kan ske interaktivt 5 5

Python Ett modernt interpreterat högnivåspråk Exempel på andra språk som du kanske hört talas om: C, Pascal, C++, Java, Ada, Tcl, Perl,Visual Basic, C#,... Exempel på språk som enbart kan beskriva data men inte beräkningar: HTML, XML, ASN.1,... Python är fritt tillgängligt (python.org) och stödjer en mängd datorplattformar installera gärna hemma! Populärt inom open-source-världen, används bl a av Google, NASA, AstraZeneca, Honywell och NYSE Blir allt vanligare på universiteten, på LTU från 2006! 6 6

Python-interpretatorn Kan startas direkt från datorns kommandorad: python Interpretatorn svarar då Python 2.3.5 (#1, Mar 20 2005, 20:38:20) Type "help", "copyright", "credits" or "license" for more information. >>> Prompten >>> markerar att interpretatorn är beredd att ta emot kommandon, t ex print 1+1 Interpretatorns svar på detta kommando blir 2 samt en ny prompt. Sessionen kan avslutas med (ctrl)d 7 7

Python-script Alternativt kan de kommandon man önskar köra samlas i en fil, ett s k script Exempel: antag att filen kalle.py innehåller kommandot print 1+1 Om interpretatorn nu startas genom att man skriver python kalle.py kommer resultatet 2 att skrivas ut, varefter interpretatorn avslutas direkt 8 8

Python-miljön IDLE Vi kommer dock oftast att arbeta med Python-program i den integrerade utvecklingsmiljön IDLE IDLE är ett fönster-baserat program som kör Python-interpretatorn som en underprocess i fönstret Python Shell kan öppna och redigera Python-script (filer som slutar på.py) i separata fönster Fönstren använder färger för att göra Python-texterna mer lättlästa Aktuellt script kan enkelt laddas in i interpretatorn med knappen F5 9 9

Byggstenarna i ett program Hämta indata (från tangentbord, fil, nätverk,...) Producera utdata (på skärm, fil, nätverk,...) Matematiska operationer (+, -, *, <,...) Villkorlig körning Repetition Vi har redan sett exempel på produktion av utdata (kommandot print) och matematik (uttrycket 1+1). Övrigt följer, men är i grunden lika enkelt. Konsten att programmera är att kunna sätta samman dessa byggstenar till meningsfulla större enheter! 10 10

Men om jag skriver fel...? Oundvikligt! Alla (även erfarna programmerare) gör fel. Programfel kallas ofta för buggar, felsökning/rättning för debugging Man kan säga att konsten att programmera handlar mycket om konsten att kunna hitta och rätta programfel Ett interaktivt interpreterande språk som Python gör denna process mycket mer hanterlig Det gäller dock att förstå att debugging är en konst man lär sig just genom att göra fel! Så misströsta inte :-) 11 11

Tre typer av buggar Syntaxfel Din text uppfyller inte Python s formregler och interpretatorn vägrar acceptera den. Kan handla om att ett : saknas, eller att du skrivit ett ( för mycket Runtime-fel Programmet accepteras men körningen avbryts i förtid. Beror på att programmet försöker utföra någon odefinierad operation, t ex division med 0 Semantiska fel Programmet körs färdigt, men resultatet blir inte det önskade. Betyder att du skrivit ett annat program än du tänkt dig! 12 12

Om formella språk Exempel: matematisk notation, kemiska molekylformler, den notation som används i bridge- och schack-böcker Upplevs ofta som petiga och fantasilösa jämfört med naturliga (talade) språk Notera dock formella språks långt mer begränsade syften Naturliga språk är ofta både tvetydiga (betydelsen måste förstås ur sammanhanget) och redundanta (betydelsen framgår även om vissa fragment faller bort) I formella språk försöker man normalt minimera just dessa egenskaper 13 13

Jämför: Poesi: Ords klang och rytm lika viktig som deras betydelse Syftar till en känslomässig upplevelse Tvetydighet och redundans inte bara vanligt utan också eftersträvansvärt Prosa: Jämförelsevis fattigt vad gäller klang och rytm Syftar i första hand till att överföra information Tvetydiga ord kan ofta förstås av sammanhanget 14 14

Jämför: Program: Saknar fullständigt egenskaper som klang och rytm Syftar till att definiera beteendet hos en maskin Tvetydighet är något negativt (hur ska maskinen i så fall bete sig?) och korta koncisa program upplevs ofta mer lättlästa än program fulla med redundans Ett gott tips är att acceptera formella programtexter för vad de är, och inte betrakta dem med samma ögon som när vi läser naturligt språk... precis som vi gör när vi läser t ex nyhetstexter och dikter med olika förväntningar! 15 15

Det klassiska första programmet Brukar användas som exempel på den mest triviala uppgift ett program kan ha: skriv ut texten Hello, World! som resultat och avsluta sedan I Python blir detta rätt och slätt kommandot print Hello, World! Observera citat-tecknen, de är exempel på en syntaktisk detalj av avgörande betydelse i ett formellt språk men som ofta kan utelämnas i naturligt språk I nästa kapitel ska vi titta vidare på dessa skillnader! 16 16