DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/



Relaterede dokumenter
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

Test af It-komponent

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

BRP Kursusintroduktion og Java-oversigt

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

DM507 Algoritmer og datastrukturer

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

Det er muligt at chekce følgende opg. i CodeJudge: og

Løsning af møntproblemet

DM507 Algoritmer og datastrukturer

Abstrakte datatyper C#-version

Rekursion og dynamisk programmering

DM507 Algoritmer og datastrukturer

Kursus 02199: Programmering. Lidt om forelæseren. Velkommen til. Praktisk information: kursusaktiviteter. Praktisk information: forelæsninger

Noter og opgaver. Programmering A IMADA. Niels Kjeldsen & Jacob Aae Mikkelsen. Med grundig korrektur og rettelser af Edmund Christiansen

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Programmering 2. dprog2 E

Hashing og hashtabeller

DM507 Algoritmer og datastrukturer

Anvendelse af metoder - Programmering

Programmering 2. dprog2 E

DM507 Algoritmer og datastrukturer

DM536. Rapport og debug

Hvad er Objekter - Programmering

Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Asymptotisk analyse af algoritmers køretider

Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft

Ugeseddel 4 1. marts - 8. marts

Tree klassen fra sidste forelæsning

02101 Indledende Programmering Introduktion til Eclipse

Undervisningsbeskrivelse

Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else

Hvad er et distribueret objekt? Plan Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Objektorienteret Programmering

Singleton pattern i Java

DANMARKS TEKNISKE UNIVERSITET

Computere og Netværk (dcomnet)

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

Skriftlig eksamen i Datalogi

A Profile for Safety Critical Java

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Lær Python dag 1 - modul 1

Introduktion til Datalogi

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Asymptotisk analyse af algoritmers køretider

Introduktion til DM507

DRONNINGER (QUEENS) Opgave 1

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Introduktion til ActionScript

Transkript:

DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1

DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne! Problemer? Konto på IMADAs system Kursets hjemmeside Holdfordelingsproblemer 2

Kursets form Forelæsninger Ca. 2 gange 2 timer per uge. Præsenterer og demonstrerer nyt stof Vil ofte være korte Øvelser Ca. 2 gange 2 timer per uge I løser og præsenterer opgaver I arbejder med opgaver Projekt-eksamen i 2 dele 3

De første uger De primære mål er: Alle kommer i gang med at skrive, køre og fejlfinde programmer Alle lærer den basale Java-syntaks Alle bliver klar til at lave den første projekt-opgave 4

Dvs Enten arbejder I i terminalrummet Brug af IMADAs system Det er ikke et krav at I sidder i terminalrummet og arbejder når I løser opgaverne, men Det er et krav at de programmer I afleverer kan køre på IMADAs system Ellers tester I i terminalrummet 5

Programmeringsprocessen Hvad er et program? Instruktioner til computeren (den er dum :-) Input Beregning Output 6

Programmering Hvad er programmering? Problemløsning på computer Eksempler på problemer man (vi) kan løse: SuDoKu Ordforråd i en tekst (Lix) Korteste vej fra A til B (maps.google.dk) Pakning af en flyttebil Osv... Fælles: Model, abstraktion og struktur 7

Programmering Opgave / kundens problem Problemanalyse Program-specifikation (hvad?) Datastrukturer + algoritmer Program-design (hvordan?) Implementering (i fx Java) Implementation Afprøvning og indkøring Program / produkt 8

Programmering 9

Programmering i DM502 Problemorienteret Bruger emner fra hele bogen straks Interaktiv Online modellering og udvikling Afprøvning vha. debugger (Jswat) Forklarer for lidt og for meget Programmerne er små, men tænk på: Programmering for andre Programmering med andre 10

Programmering er SIMPELT Simple instruktioner, simpelt data Sekvens: Gentagelse af sekvens: I1, I2, I3,... Gentag I1, I2, I3, Indtil betingelse Betinget sekvens: Hvis betingelse da I1, I2, I3, Ellers J1, J2, J3 Delprogrammer (funktioner): Data: Resultat = funktion(input) Skalarer, Klasser / objekter 11

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 12

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 13

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 14

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 15

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 16

HelloWorld.java 17

HelloWorld.java 18

HelloWorld.java 19

HelloWorld.java 20

HelloWorld.java 21

Fibonacci Fibonacci-tallene: Summen af de to foregående tal, startende med 0 og 1 0, 1, 1, 2, 3, 5, 8, Model: To tal a = 0, b = 1 Algoritme: Så længe vi vil have flere tal: print a; temp = b; b = a + b; a = temp; 22

Fibonacci Algoritme: print a; temp = b; b = a + b; a = temp; Hvorfor ikke?: b = a + b; a = b; Eller: b = a + b; a = b - a; 23

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; 24

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; 25

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; while( a < 10000 ) { System.out.print( a + " " ); temp = b; b = a+b; a = temp; } 26

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; while( a < 10000 ) { System.out.print( a + " " ); temp = b; b = a+b; a = temp; } 27

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; while( a < 10000 ) { System.out.print( a + " " ); temp = b; b = a+b; a = temp; } } } System.out.println(); 28

Fibonacci Oversættelse: javac Fibonacci.java Kørsel: java Fibonacci Oversættelse til debugging: javac -g Fibonacci.java Debug med Jswat Fejl og mangler? 29

Java Class Library contains standard data structures and algorithms contains interfaces to EveryThing TM http://download-llnw.oracle.com/javase/6/docs/api/ 30