SMD 134 Objektorienterad programmering

Relevanta dokument
SMD 134 Objektorienterad programmering

OOP Objekt-orienterad programmering

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Föreläsning 1 & 2 INTRODUKTION

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Editering, Kompilering och Exekvering av Javaprogram

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Objektorienterad programmering i Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Innehållsförteckning

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Programmering A. Johan Eliasson

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Föreläsning 2. Operativsystem och programmering

Programmering för språkteknologer I, VT2012. Rum

Föreläsning 1 & 2 INTRODUKTION

JAVA Mer om klasser och objektorientering

Programmering för språkteknologer II, HT2011. Rum

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Objektorienterad programmering i Java

Kompilera och exekvera Javakod

Objektorienterad programmering D2

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

IT för personligt arbete F6

Imperativ programmering. Föreläsning 4

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Sätt att skriva ut binärträd

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Kursplanering Objektorienterad programmering

Tentamen , Introduktion till Java, dtaa98, dtea53

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Björn Abelli Programmeringens grunder med exempel i C#

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Kursplanering för EE3D i kursen Programmering 1, 100p.

Anteckningar 1: Grundläggande saker

Programmering B med Visual C

Programmeringsteknik med C och Matlab

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Föreläsning 10. ADT:er och datastrukturer

Program & programmering

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

Laboration 10 - NetBeans

Undervisning. Examination

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

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

Chapter 3: Using Classes and Objects

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

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

Föreläsning REPETITION & EXTENTA

Objektorienterad Programmering (TDDC77)

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Grundläggande programmering med C# 7,5 högskolepoäng

Eclipse en handledning

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Programmeringsteknik II

Introduktion till programmering och Python Grundkurs i programmering med Python

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Objektorienterad Programmering DAT043. Föreläsning 1 15/1-18 Moa Johansson

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Föreläsning 1: Introduktion till kursen

Tentamen OOP

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

NetBeans 7. Avsikt. Projektfönster

Objektorienterad programmering i Java I

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

TDDC77 Objektorienterad Programmering

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Laboration 1 - Grunderna för OOP i Java

JAVAUTVECKLING LEKTION 1

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Att använda Java SE JDK 6

Introduktionsmöte Innehåll

4.4 Swing ett interaktivt grafiskt gränssnitt

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

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

Föreläsning 3.1: Datastrukturer, en översikt

Institutionen för datavetenskap 2014/15

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Transkript:

SMD 134 Objektorienterad programmering Lärare: pl@cdt.luth.se A 3113 Tomas Klockar klockar@sm.luth.se A 3019 Mats Folke folke@sm.luth.se A 3019 Labhandledare: Natasja Saburova Fredrik Jonsson Lars Persson Andreas Lööw Kristian Kihlanki Skotte Kursens hemsida: http://www.sm.luth.se/csee/courses/smd/smd134_lp3/ Dagens Agenda Kursöversikt - Kursplanering - Laborationer - Seminarier/Lektioner Hur fungerar en dator? - Minne, processor, I/O... Programmeringsspråk - Java & Objektorientering Hur man skriver ett dataprogram - Att programmera - Design av program Kursplanering Kursplanering fortsättning 1. Förklaring av grundbegrepp vid programmering: processor, binära data, arbetsminne, I/O-enheter. Begreppet högnivåspråk. Kompilering och interpretering. Användningen av Emacs för att skriva källkod i Java, av javac för att kompilera källkoden till bytekod, av java för att exekvera en klass. 2. Typer i Java: genomgång av de primitiva datatyperna, variabler och variabel tilldelningar med primitiva typer. Konstanter av de olika typerna. Heltal och flyttals räkning. Typer i Java: referenstyper. Hanteringen av referenstyper i Java förklaras med arrayer som grundexempel. Användningen av = för att göra tilldelningar av värden till variabler och av == och equals för att jämföra värden. Tre sätt att få in data till ett Javaprogram 3. Begreppet algoritm illustreras med användning av sökning i och sortering av arrayer. Genomgång av de olika typerna av uttryck i Java och av if-satser, for-satser, whilesatser. Metoder i Java. Om hur man formulerar algoritmer och implementerar dem med användning av if, for och while. Strukturerad programmering. 4. Fortsatt presentation av metoder och implementering av algoritmer. Rekursiva metoder. Sammanfattande beskrivning och exempel på iterativ och rekursiv programmering av metoder. 5. Klasser i Java: exekverbara klasser, statiska metoder, definierade datatyper. Begreppet paket. Ett exempel på en klass som definierar en ny datatyp: en "struct vilken man kan stoppa in värden av olika typ. 6. Fortsatt beskrivning av klasser. Instansmetoder och instansvariabler. Begreppet inkapsling och åtskillnaden mellan privata, offentliga och pakettillgängliga medlemmar av klasser. Fler exempel på definierade datatyper. Klassvariabler och klassmetoder. 7. Arv och överskuggning. Programexempel. 8. Sammanfattande kommentarer om klasser och typer, instansmetoder och klassmetoder, utvidgningar av klasser, olika grader av tillgänglighet. 9. Info om lab 5. Gränssnitt och abstrakta klasser. Exempel från Javas klassbibliotek Användningen av Comparable och Comparator i samband med sortering. Sammanfattning av typer i java. 10. Mer om typer, gränssnitt och abstrakta klasser. Exempel från Javas klassbibliotek Kursplanering fortsättning Kurslitteratur 11. Användningen av undantag. Förklaring av klasserna IOException och RuntimeException. Programmeringsexempel. I/O-klasserna i Java och deras användning. 12. Mer om I/O-klasserna i Java och deras användning. Programmeringsexempel. Vi rekommenderar någon av följande böcker: Java från grunden av Torkel Franzen. Bra nybörjarbok, fullt tillräcklig för den här kursen Java: Software Solutions av John Lewis och William Loftus. An Introduction to Computer Science Using Java av Kamin, Mickunas och Reingold

Laborationer Seminarier/Lektioner Det kommer att vara 5 obligatoriska laborationer Alla laborationer skall lösas enskilt Redovisning sker på laborationstillfällena (ej lab 5) Kursen avslutas med en större laboration (lab 5), mer information och handledning kommer senare under kursen. Vi kommer att ge 3 seminarier under kursen Problemlösning Frågor Diskussioner Lämpliga uppgifter och problem kommer att finnas på kursens hemsida i god tid före varje seminarie Sista seminariet kommer att vara genomgång av gammal tentamen. Hur fungerar datorn? Arbetsminnet (RAM minnet) Arbetsminnet är en sekvens av minnesceller som innehåller binära tal 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1.. In och Ut enheter (I/O): tangentbord, skrivare, skärm, mus, kamera, scanner, högtalare mm. Processor: exekverar maskinkoden Arbetsminne (Ram minne): innehåller programkoden som processorn bearbetar. Byte 0 Byte 1 Byte 2 Varje minnescell har en adress, och via denna kan man komma åt innehållet i cellen Under en programkörning finns maskinkoden lagrad i arbetsminnet. Även data som bearbetas av processorn finns lagar i arbetsminnet Programmeringsspråk Java Syftet: att kunna uttrycka sig på ett sätt som datorn förstår, att få datorn att utföra de kommandon man önskar Hur? Ett särskilt program, en kompilator, översätter programmet till maskinkod Ett programmeringsspråk måste bl.a. kunna: Utan tvetydigheter beskriva vad datorn skall göra Tillhandahålla faciliteter för att skapa datastrukturer och metoder Objektorienterat programmeringsspråk Maskinoberoende Det färdiga programmet kan köras på alla datorer Java tillhandahåller en virtuell maskin för detta ändamål Maskinkoden kallas bytekod eller javabytekod KÄLLKOD BYTEKOD MASKINKOD Programtext brukar kallas källkod KOMPILATOR INTERPRETATOR Automatisk skräpsamling, objekt som ej används städas automatiskt undan

Att programmera Ett enkelt Javaprogram Design av programmet, strukturera och uppdela Skriva Kompilera Exekvera Testkörning Felsökning Läsa manualer Dokumentation av såväl programmeringsverktyg som klasser och metoder finns online // Ett enkelt program som skriver ut texten // Hello World på skärmen public class Greetings { public static void main (String argv[]) { System.out.println( Hello, World! ) ; Samma enkla Javaprogram Att kompilera ett Java program public class Greetings { public static void main (String argv[]) { System.out.println( Hello, World! ) ; public class Greetings { public static void main (String argv[]) { System.out.println( Hello, World! ) ; Kompilering görs genom att använda sig av kommandot javac Exempel: > javac Greetings.java Exekvering av ett Java program görs genom kommandot java Exempel: > java Greetings Resultatet är en utskrift på skärmen: Hello, World! Objektorientering Objektorientering innebär att man manipulerar med objekt i sitt program Dessa objekt har vissa egenskaper och man kan utföra operationer på dessa objekt Exempel Bil Egenskaper: motorstyrka, form, färg, toppfart etc. Operationer: gasa, bromsa, svänga, starta etc. Exempel Databas Egenskaper: innehåller poster Operationer: lägg till, ta bort, undersök, söka etc. Utvecklingsmiljön Textredigerare, editor Emacs Kompilator JDK (Java Development Kit) version 1.3.1 javac kompilatorn java (Den virtuella maskinen) Operativsystem solaris även någon typ av linux finns Datorer Sun PC

Emacs UNIX Kort översikt Varför använda Emacs? Gratis Snabbt, finns för UNIX, Windows, Linux Kraftfullt programmerings hjälpmedel Indentering av kod Känner igen syntax (färgkodning) Kompilering, felsökningsverktyg Att konfigurera Emacs Filen.emacs ligger i din rot Inställningar för Emacs Anpassad.emacs finns att hämta från: http://www.sm.luth.se/csee/courses/smd/smd134_lp3/emacs/.emacs Ursprungligen designat för att låta flera programmerare använda datorn samtidigt Delar datorns resurser mellan ett antal användare på ett sätt som gör att man upplevs vara ensam på datorn UNIX, av programmerare för programmerare. Snabbt växte intresset för systemet av ett flertal andra branscher Utvecklat av Bell Labs - 1969 UNIX Fortsättning UNIX Fortsättning Banbrytande koncept - Multitasking - Multiuser - UNIX program (tools) - Bibliotek av applikationsmjukvara Funktionerna i ett UNIX system är uppdelade i 3 nivåer - Kärnan (Kernel) - Skalet (The Shell) - Verktyg och applikationer (tools and applications) Kärnan The Kernel - Hjärtat i operativsystemet, hanterar hårdvara, filsystem, nätverk och dylikt Skalet The Shell Det finns många olika varianter, huvudsaklig uppgift att fungera som tolk mellan användare och dator Möjlighet att koppla ihop flera små program (sk. Pipes) Exempel 1: > ls wc Kopplar ihop kommandot list med wordcount Exempel 2: > cat klasslista.txt sort > sorterad.txt Kopplar ihop kommandot cat med sort och styr utskriften till en fil, sorterad.txt Skalet Praktiska tips UNIX Grafiskt gränssnitt I labbet används tc shell (tcsh) Kofigurationsfil för personliga inställningar finns i hemkatalogen:.cshrc TIPS: öppna.cshrc i emacs och lägg till raden: module add java Kolla in: http://www.sm.luth.se/~torkel/newsmd071/newintro.html X-windows - Ett grafiskt fönsterbaserat användargränssnitt mot UNIX Fönsterhanterare - Bestämmer utseende och ger extra funktionalitet åt användaren - KDE, fvwm, Gnome, windowmaker m.fl. - KDE rekommenderas, liknar MacOS / Windows (98/2000/XP) X-windows hemifrån - X-win32, länk finns på kursens hemsida

Nästa föreläsning Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer. Konstanter av de olika typerna. Heltalsräkning och flyttalsräkning. Hanteringen av referenstyper i Java Användningen av = för att göra tilldelningar av värden till variabler och av == och equals för att jämföra värden. Tre sätt att få in data till ett Javaprogram: hårdlödning, inmatning vid programstart, inhämtning under programexekvering. Läs gärna: kapitel 1-10 (8-9) JFG kapitel 1.0-1.1, 1.3-1.4, 2.3-2.5 JSS