Föreläsning 1, Introduktion

Slides:



Advertisements
Liknande presentationer
Beskriver vad eleven ska försöka uppnå
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Avlusning Debugger (”avlusare”) Breakpoints Watch.
F2 - Intro till Java1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): • Vad behövs för att kunna programmera? • DrJava • Java •
VAD VET NI OM MÖJLIGHETERNA FÖR HANDIKAPPADE ATT ARBETA MED DATORER?
Access med Sebastian och Robert
Föreläsning1. • Boken?!?! • Vad är ett program? • Kompilerande-Interpreterande • Programmeringsmiljö • Hello World! • Att programmera och ett enkelt program.
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Mjukvara och nätverk Vad är det?.
Programmering B PHP Lektion 1
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Föreläsning 7 Analys av algoritmer T(n) och ordo
Programmeringsteknik I: F1 1 Föreläsning 1: Intro till kursen och programmering Kursens hemsida Studentportalen.
Arv.
Inkapsling.
Polymorfism.
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Att programmera i språket Java
Föreläsning 2 Datalogi för E1 2D1343
INTRODUKTION TILL PROGRAMMERING
OOP Objekt-orienterad programmering
En PowerPoint om PowerPoint
Programmering B PHP Lektion 2
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Välkommen till Del 1.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Objektorienterad programmering i Java
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Java paket och jar-filer
INTRODUKTION TILL PROGRAMMERING
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Problemlösningsmetodik
1. Ett problem/uppgift.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Introduktion till programmeringsspråket Java -Den allmänna.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
Ladda ner och installera JAVA Mahmud Al Hakim DynamicOS
Föreläsning 2 2D1312 Introduktion till Python Kap 1 och 2 i kursboken.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 1 Introduktion till kursen. Algoritmer
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
OOP&M - teori1 OOP&M – Föreläsning 3 kap 2-4 Repetition Föreläsning-datayper-syntax-tilldelning.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
OOP&M - teori1 Dator Introduktion till programmering.
Föreläsningsanteckningar Kortfattat om programmeringsmetodik Ola Ågren Hur det går till att göra ett program.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 1 ( ) INNEHÅLL: -Introduktion av kursen -Vad är programmering? -Programmeringsspråk.
Föreläsning 8: Exempel och problemlösning
IT Fördjupning Jon Wide
Programmera dina klasskamrater
Presentationens avskrift:

Föreläsning 1, Introduktion Presentation av kursen Vad är programmering? Problemlösning, en del av programmeringskunskapen. Lite om java och utvecklingsmiljöer Ett första program

Vad är programmering? Det finns många svar på den frågan, beroende på vilken infallsvinkel man har på ämnet och hur man uppfattar frågan. Här nedan är några förslag på svar. Hur ser din uppfattning ut? Sammanfaller den med någon av de nedanstående alternativen? Att ge instruktioner till en maskin så att den utför det man vill Del av att utveckla programvara Kreativ problemlösande verksamhet

Programmering 1 Kursansvariga: Rolf Axelsson och Kristina von Hausswolff Hemsida: www.ts.mah/utbild/da7351 Föreläsningar: cirka 27 st Laborationer/Övning cirka 20 st Projekt, i slutet på kursen om cirka 2 p Tentamen 17/12

Kursplan DA7351 Syfte Kursen syftar till att ge grundläggande kunskaper och färdigheter inom programmering av datorer och skall ge erfarenhet av problemanalys, problemlösning, implementering, samt dokumentation av programvara. Vidare ger kursen kunskaper och färdigheter inom strukturerad programmering och objektorienterad programmering. Mål Studenten skall efter genomgången kurs behärska konstruktion, analys och implementering av objektorienterade datorprogram vilket bygger på de verktyg som getts i kursen. Kursen skall ge erfarenhet av att konstruera programvara i projekt. Innehåll Problemlösningsstrategier Formell och informell logik som hjälpmedel vid utformande av algoritmer Strukturerad och objektorienterad programmeringsmetodik Strukturerad programmering bland annat innehållande sekvenser, selektionen, iterationer och metoder Objektorienterad programmering, bland annat innehållande klass, arv, gränssnitt, abstrakt klass, polymorfism och relationer mellan klasser Språkspecifika tillämpningar

Kurslitteratur Tänkande som beräkning en inledning till data- och kognitionsvetenskap av Janlert, Lars-Erik Häftad. Studentlitteratur AB, Sverige, 1999 (ISBN 9144012780). Java How To Program av Deitel, Paul J. , Deitel, Harvey M. Paperback. Pearson Higher Education, Sverige, 2003 (ISBN 0131290142)

Problemlösning Hur ser vi problemet? Vilka strategier har vi för att lösa problemet? Hur vet vi att lösningen är korrekt? Exempel på problem. Aktivitetsdiagram (se Tänkandet som beräkning s. 38-40, 83-97)

Att göra ett program 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. Verifikation, kontrollera att algoritmen verkligen löser problemet t.ex. genom att kontrollera viktiga specialfall. Kodning, översätt pseudokoden till ett programmeringsspråk t.ex. Java Validering, kontrollera att programmet är korrekt. Dokumentation, beskriva din lösning både i löpande text, med hjälp av UML och som kommentarer i programmet (t.ex. javadoc). Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet.

Olika problem På de följande sidorna finna tre olika problem. Vilken lösning har de? Hur angriper du problemen? Vilka problemlösnings strategier har du? Är någon av dessa problem mer lämpliga att lösa med hjälp av ett datorprogram? Hur skulle ett sådant program se ut?

Problem eller uppgift En dominobricka täcker två intilliggande rutor på ett schackbräde. Är det möjligt att lägga ut 31 brickor så att två motstående hörn av brädan blir kvar otäckta?

Handelsresandeproblemet En handelsresande ska resa till ett antal städer. Han ska besöka varje stad en gång och börja i samma stad som han slutade i. Man känner till avståndet mellan alla städerna. I vilken ordning ska hon besöka städerna för att minimera den totala reslängden?

NOG- problem Antalet sjukskrivna ökade kraftigt på ett företag p.g.a. en epidemi. Hur många personer var anställda vid företaget? Antalet sjukskrivna ökade med 124 personer i samband med epidemin. Under epidemin utgjorde antalet sjukskrivna 11,2 procent av antalet antalet anställda. Tillräcklig information för lösningen erhålls A i (1) men ej i (2) B i (2) men ej i (1) C i (1) tillsammans med (2) D i (1) och (2) var för sig E ej genom de båda påståendena

Aktivitetsdiagram Ett sätt att beskriva en algoritm eller ett flöde i ett program är med hjälp av ett aktivitetsdiagram. Aktivitetsdiagrammet är ett av nio diagram som ingår i UML-standaren. UML är ett standardiserat sätt att beskriva datorprogram/system som användas både vid konstruktion och dokumentering. I kursen kommer aktivitetsdiagram främst att användas för att beskriva algoritmer.

Aktivitetsdiagram (Activity diagram) De olika symbolerna som ingår i aktivitetsdiagram: Activity (beskriver en aktivitet) Transition with guard (en övergång från en aktivitet till en annan med ett vilkor som måste vara uppfyllt för att övergången får ske.) Synchronization bar (fork, join) (för att markera att detta sker samtidigt) Decision or merge (ett vägskäl eller en ihopslagning för att kunna välja olika vägar beroende på ett val) Start marker (aktiviteten börjar) Stop marker (ett av kanske flera möjliga avslutningar)

Aktiviteten ”att fika”

Aktiviteten att låna böcker

Programmering i Java I denna kurs kommer vi att programmera i programmeringsspråket Java. Utvecklingmiljön kan man välja själv men NetBeans 4.0 finns i labbsalarna. (Java, How to program, femte upplagan kapitel 1 (1.15 kursivt) och 2.1-2.2)

Java lite historia Java är ett programspråk som utvecklats av Sun Microsystem under ledning av James Gosling. Det blev allmänt tillgängligt 1995. Från början var tanken med Java att det skulle användas i olika typer av elektronik som brödrostar eller diskmaskiner. 1995: Från början var kanske Java mest känt som ett slags programspråk som man använder på Internet för att skapa häftiga effekter på webbsidor. Javaprogrammet kan t.ex. generera ljud och rörliga bilder eller låta användaren kommunicera med programmet med hjälp av mus och tangentbord. Men Java är ett fullfjädrat programspråk. Med Java kan man, liksom t.ex. C++ och C#, skapa fullständiga applikationsprogram som inte alls behöver köras i en webbläsare.

Egenskaper hos Java Java är plattformsoberoende. Med plattform menas ett visst operativsystem som kör på en viss typ av dator. Windows XP på en PC är t. ex. en plattform. Linux på en PC är en annan plattform. Java innehåller verktyg för att generera grafiska användargränssnitt. Man kan alltså med hjälp av Java skriva grafiska program, dvs sådana program som använder fönster, menyer, knappar etc, för att kommunicera med användaren. Java är objektorienterat. Java bygger helt på den objektorienterade principen för att konstruera program. Java gör det möjligt att skriva parallella program. Java stödjer nämligen s.k. multitrådar. Detta innebär att javaprogrammet kan beskriva flera aktiviteter som pågår samtidigt. Java kan användas på Internet.

Några nacktdelar med Java Att köra ett java program går lite långsammare än att köra motsvarande program i t.ex. C++. Detta för att java program (t.ex Welcome.java ) ej kompileras till en körbara fil (exe-fil) utan till s.k. bytekod (t.ex. Welcome.class). För att dessa klass filer ska kunna exekveras (köras) behövs en tolkare som är specifikt för ett operativsystem (interpretator). Själva tolkningen gör att java är långsammare än kompilerade program i C++ som kan köras direkt (dock fungerar de bara på ett specifikt operativsystem). Java har många standardklasser som man bör sätta sig in i och använda. De finns i Javas API (Application Program Interface) och vi använder J2SE (Java 2 Standard Edition). Javas API innehåller dock oerhört många klasser så det är endast möjligt att använda en mindre del av dem utan att ta del av dokumentation. Då det var meningen att Java främst skulle använda grafik i sin kommunikation med användaren är inte klasser för att kommunicera med tangentbordet så utbygga (därför ska vi använda extra-paketet, finns på kurssidan).

Java (IDE) Ett modernt integrerat programutvecklingssystem, ett s.k. IDE (Integrated Development Environment) brukar erbjuda programmeraren en miljö där det finns alla hjälpmedel man behöver för att utveckla program. Det finns sådana system även för Java. JDK1.0, JDK1.0.2, JDK1.1, JDK1.2,JDK1.3, JDK1.4.2, JDK 1.5 JBuilder X eller JBuilder2005 (www.borland.com) Microsoft Visual J++ JCreator NetBeans 4.0 eller 4.1 Open Source från Sun(www.netbeans.org)

Java (JDK) Sun har utvecklat så kallade JDK (Java Development Kit) som är programpaket som innehåller de olika program och klassbibliotek som man behöver för att utveckla och köra javaprogram. Dessa klassbibliotek går under samlingsnamnet Java API (Application Programming Interfaces). JDK är allmänt tillgängligt på internet. I denna kurs kommer JDK 1.4.2 att användas. Vid installation av NetBeans 4.0 följer JDK 1.4.2 med.

Programmeringspråk Ett programmeringsspråk är ett antal regler (syntax) och dess betydelser (semantik) i vilket en programmerare kan uttrycka sig och ge instruktioner till en dator. Prpgrammerare skriver text i programmeringsspråket som översätts av en kompilator till något en dator kan förstå. Det finns olika nivåer (typer) av programmering språk. Man delar ofta in programmeringspråk i fyra typer: Maskinkod, den kombination av ettor och nollor som datorn förstår Assemblerkod, varje kombination av ettor och nollor motsvaras av ett ord (assemblerinstruktioner) Högnivåspråk, varje rad motsvarar ett stort antal assemblerinstruktioner, t.ex. Java, C, C++, Ada, … Fjärde generationens språk (4GL), kraftfulla språk som är anpassade till ett speciellt applikationsområde oftast olika typer av databasapplikationer

Hur programmerar man? Man skriver in programkoden (källkoden) med hjälp av en texteditor. Man sparar koden (som enbart består av text) i en fil, en s.k. källkodsfil. När man arbetar med Java ska filen alltid ha suffixet java, dvs. filnamn.java Man kompilerar (översätter) filen till ett format som datorn kan förstå. När man arbetar med Java översätts källkoden till ett format som kallas bytekod. Bytekoden lagras i en fil som kallas för klass-fil. Klass-filen ska alltid ha suffixet class, dvs. filnamn.class. Bytekoden interpreteras (tolkas) sedan av en virtuell maskin i datorn (alternativt kompileras till maskinkod som körs på datorn). Man testar programmet för att se om det fungerar som man hade tänkt sig. Om det inte fungerar som man hade tänkt sig letar man upp felet, ändrar i källkoden och testar igen.

Olika typer av fel Kompileringsfel Dessa fel uppstår redan när man försöker att kompilera programmet, dvs. Javakompilatorn skriver ut ett felmeddelande. Ett vanligt exempel är att man han stavat fel på något ställe i källkoden eller glömt ett semikolon. Här kollar kompilatorn om syntaxen är korrekt. Exekveringsfel Dessa fel uppstår när man exekverar (kör) programmet, det vill säga man får ett felmeddelande från Javainterpretatorn. Ett vanligt exempel är att man försöker dividera ett tal med noll (någonting delat med noll ger ett odefinierat resultat) Logiska fel Dessa fel visar sig genom att programmet inte gör det man hade tänkt, det vill säga programmet kör utan felmeddelanden men resultatet blir inte det avsedda. Den här typen av fel är de som är svårast att hitta.

Java Applets och Java Applications Det finns två typer av Javaprogram: Java Applets Java Applications De Javaprogram som man hittar på olika hemsidor på Internet är nästan alltid Applets. Bytekoden till Applets-program byggs in i HTML-dokument och körs med hjälp av Webbläsaren (Netscape eller MS Explorer), dvs. Webbläsaren sköter interpreteringen (eller kompileringen) av bytekoden. Java Applications fungerar som mer traditionella datorprogram, och de körs med hjälp av den vanliga interpretatorn (som heter java.exe).

Getting Started with Java Programming A Simple Java Application Compiling Programs Executing Applications

A Simple Java Application Example //This program prints Hello, welcome to Java! public class Welcome { public void sayHello() { System.out.println(“Hello, welcome to Java!"); } public class StartWelcome { public static void main(String[] args) { Welcome application = new Welcome(); application.sayHello();

Ett enkelt Javaprogram (källkod) // Ett litet program som skriver ut texten: Java är skoj! public class JavaFun { public void print() { System.out.println("Java är skoj!"); } // här slutar metoden print } // här slutar klassen JavaFun // Ett klass för att skapa ett objekt av typen JavaFun och anropa // metoden print. public class StartJavaFun { public static void main(String[] args) { JavaFun funProg = new JavaFun(); funProg.print(); } // här slutar metoden main } // här slutar klassen StartJavaFun

Hur gör man för att köra programmet JavaFun Skriv källkoden i en texteditor Spara textfilerna under namnen JavaFun.java och StartJavaFun.java. Kompilera java-filerna. På kursen kommer du förmodligen att använda JBuilder eller Netbeans. Men ungefär det här händer: Programmet javac.exe körs: javac JavaFun.java javac StartJavaFun.java Programmet exekveras (körs) med programmet java.exe: java StartJavaFun Resultat: utskrift av Java är skoj! på skärmen. Steg 2-5 görs av JBuilder eller NetBeans när man kör programmet.

Compiling Programs On command line javac file.java

Att köra ett program i NetBeans