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

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

Eksempel: Skat i år 2000

DM502. Peter Schneider-Kamp

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

02101 Indledende Programmering Introduktion til Eclipse

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

Test af It-komponent

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit if (indkomst > ) topskat = (indkomst ) * 0.

Programmering I Java/C#

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

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

It og informationssøgning Forelæsning 1 6. september 2006 Nils Andersen. Beregning på computer

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

DM507 Algoritmer og datastrukturer

Introduktion til Flash

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

DM507 Algoritmer og datastrukturer

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

Introduktion til DM507

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

Introduktion til Flash

Rolf Fagerberg. Forår 2015

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

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.

DM507 Algoritmer og datastrukturer

BRP Kursusintroduktion og Java-oversigt

START FINDES DER EN LØSNING TIL MIN VIRKSOMHED HOS HANS TØRSLEFF MANAGEMENT SYSTEMS? Har du brug for et enkelt system til timeregistrering?

Sådan får du e-bøger på læseren

Undervisningsbeskrivelse

Lær Python dag 1 - modul 1

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

Rolf Fagerberg. Forår 2015

Start på programmering (IT-hæfter fra Libris)

Principper for Samtidighed og Styresystemer

Dat 2/BAIT6/SW4: Syntaks og semantik En manual for studerende

Programmering i C. Lektion september 2009

Kom godt i gang med I-bogen

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Hvilket sprog er hurtigst

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

matematik Demo excel trin 2 bernitt-matematik.dk 1 excel by bernitt-matematik.dk

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

DM507 Algoritmer og datastrukturer

Serversideprogrammering, CMS og eshop. Dag 1: Introduktion og serverside programmering Niels Østergaard

Om adgang til skolens netværk, FC Marselis, Lectio og Systime

Python 3 kursus lektion 1:

INDLEDNING... 2 KLARGØRING AF DINE TEAMS... 3 TILPASNING AF FANER... 8 GENBRUG AF UNDERVISNINGSMATERIALER OPGAVEAFLEVERING MED TEAMS...

Der er fejl i programmer. Ikke-trivielle programmer er næsten altid fejlbehæftede.

Abstrakte datatyper C#-version

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

\ \ Computerens Anatomi / /

DM507 Algoritmer og datastrukturer

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

NSi Output Manager Hyppigt stillede spørgsmål. Version 3.2

Rolf Fagerberg. Forår 2013

Skriftlig eksamen i Datalogi

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

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

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Version 8.0. BullGuard. Backup

Arduino Programmering

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

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

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

Tilbagemelding om kursusforløb Objektorienteret programmering, foråret 2002

Programmering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale

Windows Vista /Windows 7 Installationsvejledning

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

Adobe Acrobat Professional 11. ISBN nr.:

Du kan tilmelde dig ved at ringe til biblioteket eller ved personlig henvendelse. Tilmelding sker efter først til mølle princippet.

Klasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september (Tak til Jakob Bardram for nogle slides) Dagens begreber

Vel mødt til terminsprøve.

Introduktion til Datalogi

matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel by bernitt-matematik.dk

Dokumentation af programmering i Python 2.75

Internetkurser. Varde Bibliotek. Efterår Varde Bibliotek. Rådhusstræde Varde

Undervisningsplan. Side 1 af 9. Termin Rybners Tekniske Gymnasium. Uddannelse. Fag og niveau. Informationsteknologi B

Installationsvejledning SAS Foundation 9.2 SAS Enterprise Guide 4.2. Windows Vista

Semesterbeskrivelse Innovation og Digitalisering, 1. semester.

Undervisning i geoteknik ved DTU. Anette Krogsbøll

Kursuskatalog 2012 TwinCAT Basic og Extended

Lige siden den elektroniske computers opfindelse i slutningen af 1940, har det været muligt at få en computer til at beregne ting.

Hvad skal du vide for at bygge din egen computer?

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

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

DM507 Algoritmer og datastrukturer

DocBook SGML/XML. Forhistorien for Linux Friheden til at vælge Dokumentation. I bestemmer :-) Motivation for DocBook Alternativer til DocBook Docbook

Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

IT-UNIVERSITETet I KØBENHAVN SOFTWAREUDVIKLING. itu.dk/bachelor

Rolf Fagerberg. Forår 2012

Sammenlign og byt. Et eksempel på dokumentering af et program

Installere Windows Custom PostScript- eller PCL-printerdriverne

Installation og aktivering af Windows 7

EKSAMEN Vel mødt til eksamen.

Sådan startes P-touch Editor

Introduktion til Datalogi

Transkript:

Velkommen til Kursus 02199: Programmering ved Anne Haxthausen IMM, DTU 4. september, 2001 1. Praktisk information 2. Introduktion til faget (a) kursusmål og motivation (b) hvad er en datamaskine, et program, et programmeringssprog (c) eksempel på et Java program (d) oversættelse og kørsel af Java programmer (e) kursusindhold IMM/DTU 02199 Programmering, efterår 2001 Side 1-1 Lidt om forelæseren Er lektor i sektionen CST (Computer Science and Technology) på instituttet IMM (Informatik og Matematisk Modellering). forskningsområde: sprogdesign og matematiske metoder til software udvikling civilingeniør fra DTU 1985 lic. techn. fra Inst. for Datateknik, DTU 1989 ansat i Dansk Datamatik Center og CRI 1988-1994 (med-designer af RAISE, en software udviklings metode) gæsteforsker på et japansk forskningslaboratorium 1993 adjunkt på DTU (ID og IT) 1994-1997 lektor på DTU (IT og IMM) 1997- IMM/DTU 02199 Programmering, efterår 2001 Side 1-2 Praktisk information: kursusaktiviteter 1. Del 1, efteråret 2001: Forelæsninger Programmerings-øvelser 2. Del 2, januar 2002: Projektarbejde IMM/DTU 02199 Programmering, efterår 2001 Side 1-3 Praktisk information: forelæsninger Tirsdage kl. 9-10 (inkl. pause) i bygning 116, aud. 81. Forelæsningsplan findes på hjemmesiden. Opdateres løbende. Stil endelig spørgsmål under forelæsningerne! IMM/DTU 02199 Programmering, efterår 2001 Side 1-4

Praktisk information: programmerings-øvelser Tirsdage kl. 10-12 i G-databaren, bygn. 302, rum 43, 46, 47 og 48, og bygn. 305, rum 115. Der vil være hjælpelærere tilstede. Øvelser første gang tirsdag d. 11. september. Tilmelding her efter forelæsningen, derefter i IMMs information (bygn. 321). Opgaver kan hentes på hjemmesiden 1 uge før øvelsen. IMM/DTU 02199 Programmering, efterår 2001 Side 1-5 Praktisk information: evaluering x = karakter opnået ved skriftlig eksamen (4 timer 15. december) y = karakter for projektrapport (i januar) Samlet karakter = ikke mødt, hvis x = ikke mødt eller y = ikke mødt Samlet karakter = 00, hvis x = 00 eller y = 00 Samlet karakter ca. = Den samlede karakter gives ved et samlet skøn, der kan afvige fra ovenstående formel Er du dumpet i 49104, men har bestået 49105, kan du genbruge 49105 resultatet. IMM/DTU 02199 Programmering, efterår 2001 Side 1-6 Praktisk information: undervisningsmateriale m.m. Hjemmeside: http://www.imm.dtu.dk/courses/02199 indeholder udleverede materialer, sidste nyt,... I skal holde øje med hjemmesiden hele semestret igennem Lærebog: Lewis & Loftus: Java Software Solutions, anden udgave kan købes i Polyteknisk Boghandel i bygn. 101 Yderligere materiale: Peter Sestoft: Java Precisely (NY udvidet udgave)... kan købes i IMMs notesalg, bygning 305, stuen for 45 kr. Supplerende noter på hjemmesiden: Using the G-databar,... Forelæsningsplancher: kan hentes fra hjemmesiden dagen før forelæsningen Opgaver: kan hentes på hjemmesiden en uge før øvelsen Løsninger til udvalgte opgaver: kan hentes på hjemmesiden 1-2 uger efter øvelsen IMM/DTU 02199 Programmering, efterår 2001 Side 1-7 Java på egen PC For de, som gerne vil installere Java (til Linux eller Windows) på egen PC, bliver der lavet en webside, samt en cd hvorfra relevante filer kan downloades. Cd en kan bestilles her og i IMM s notesalg (bygn. 321, stuen) helst idag og senest tirsdag d. 11/9. Pris 25 kr. Dette er et ekstra tilbud der ydes principielt ikke konsulentbistand til installation og brug hjemme. IMMs notesalg IMMs notesalg er i bygning 305 (mellemgangen). Åbningstiderne er: 1. uge kl. 9-14, 2. uge 12-14, derefter tirsdage og torsdage 12.30-13.30. IMM/DTU 02199 Programmering, efterår 2001 Side 1-8

Gode råd til det ugentlige arbejde Kurset har ry for at være hårdt. Den forventede arbejdsindsats for den bedste halvdel af de studerende: Forelæsning: 30-45 minutter Øvelser: 2 timer. Forberedelser: mindst 2.5 3 timer ligeligt fordelt mellem læsning forberedelse af øvelser IMM/DTU 02199 Programmering, efterår 2001 Side 1-9 Forberedelse af øvelserne Vigtigt: I bør forberede jer inden I kommer! En god forberedelse indeholder: at læse de relevante afsnit i lærebogen at gennemlæse opgaveteksten grundigt at nedskrive en løsningsskitse til alle opgaverne Arbejdet med at løse en opgave er ikke altid lige nemt men jo flere gange man selv prøver og får hul på bylden, jo nemmere bliver det. Den skriftlige eksamen vil følge semesterets linje øvelserne giver de nødvendige færdigheder. IMM/DTU 02199 Programmering, efterår 2001 Side 1-10 Kursusmål at sætte deltagerne i stand til at løse et mindre programmeringsprojekt ved hjælp af en datamat. Mere specifikt: kende vigtige datalogiske begreber og deres anvendelse. have det sjovt! Vi bruger programmeringssproget Java. IMM/DTU 02199 Programmering, efterår 2001 Side 1-11 Motivation Hvorfor lære programmering? Fordi det er en del af en civilingeniørs væktøjskasse Fordi man kun på den måde virkelig forstår muligheder og begrænsninger i databehandling Fordi man bedre kan forestille sig nye typer af løsninger og produkter Fordi det er sejt at kunne Know Java? It Could Help Your Salary: Salaries for IT professionals, especially those with Java training, continue to increase... : gennemsnitligt $78750 i nordøst-usa (ACM TechNews, August 18, 2000). Hvorfor lære Java? Java er velegnet til generel programmering (ligesom C, Pascal, C++, Basic, ML,... ) Java er velegnet til programmering af vinduesorienterede brugergrænseflader Java er velegnet til programmer, der skal køre ude hos brugeren: internethandel (eks: biografbilletter), hjemmebank, interaktiv grafik, chat, distribuerede spil,... IMM/DTU 02199 Programmering, efterår 2001 Side 1-12

Hvad er en datamaskine? materiel: chips, harddiske, floppydiske, tastatur, skærm, printer, cpu, programmel: operativsystem: Windows 98, Windows 2000, Windows NT, Unix, PalmOS, Linux, applikationer: Microsoft Word, Star Office, Netscape, JavaEdit, Eksempler på datamaskiner PC Mainframe (f.eks. i Danske Bank, eller Told-Skat) Server (f.eks. webserver, filserver, postserver) Høreapparat Lommeregner Palm Pilot Mobiltelefon IMM/DTU 02199 Programmering, efterår 2001 Side 1-13 Forenklet datamat Her gemmer jeg mine Java programmer Internt lager CPU Output Input IMM/DTU 02199 Programmering, efterår 2001 Side 1-14 Hvad er et program? Et program er interne instrukser til en datamaskine. Interne instrukser kan medføre eksterne, synlige resultater. F.eks. beregning og visning af en saldo, tegning af en graf,... Programmer gør kun det, man beder dem om.... til gengæld kan de lave mange ting i en fart. IMM/DTU 02199 Programmering, efterår 2001 Side 1-15 Hvordan udføres et program på en datamaskine? 1 Internt lager 2 3 CPU 5 4 1. Program indlæses fra harddisk til det interne lager. 2. Den første/næste instruktion i programmet hentes ind i CPUen. CPUen udfører instruktionen. 3. CPUen gemmer måske resultatet af en beregning i det interne lager. 4. CPUen udskriver måske resultatet af en beregning på skærmen. 5. CPUen modtager måske inddata fra en bruger. IMM/DTU 02199 Programmering, efterår 2001 Side 1-16

Hvad er et programmeringssprog? Et programmeringssprog er en notation for instrukser til datamaten, dvs. for programmer. Programmeringssprog har: en syntaks: regler for, hvad der er sætninger i sproget en semantik: definerer betydningen af sætningerne Man skal være meget omhyggelig med programmeringssprog. Eksempel: Korrekt: System.out.print("Hej"); Helt forkert: System.out.Print("Hej"); IMM/DTU 02199 Programmering, efterår 2001 Side 1-17 Et simpelt Java program public class Hello { } public static void main(string[] args) { System.out.println("Det virker sandelig!"); } Programmets (klassens) navn er Hello; filens navn skal være Hello.java. Programteksten i metoden main udføres når programmet startes. Metodekaldet System.out.println udskriver til skærmen. Betydningen af public static void og String[] args vil blive klarere i løbet af kurset. IMM/DTU 02199 Programmering, efterår 2001 Side 1-18 Oversættelse og udførelse af et Java program Programtekst Hello.java Oversættelse Java bytecode Javac Hello.java Hello.class Udførelse af oversat Javaprogram Java Hello 1. Skriv et Java program og gem det i filen Hello.java 2. Oversæt programmet til Java mellemkode, ved brug af javac oversætteren: javac Hello.java Derved dannes en fil Hello.class med den oversatte udgave af programmet. 3. Udfør det oversatte program, ved brug af java fortolkeren: java Hello Dette udfører programmet, som udskriver Det virker sandelig! på skærmen. IMM/DTU 02199 Programmering, efterår 2001 Side 1-19 Fejltyper Der er tre typer af fejl som hyppigt forekommer: 1. Syntaks fejl 2. Kørsels fejl (eng. Runtime error) 3. Logisk fejl Ad 1: Her er der typisk tale om manglende parenteser, manglende semikoloner, komma i stedet for punktum, etcetera. Ad 2: Division med nul som i matematik! Og andre som vi ser på senere. Ad 3: Mange forskellige: forkert initialisering, ombytning af sand og falsk i kontroludtryk og mange flere!!! IMM/DTU 02199 Programmering, efterår 2001 Side 1-20

Kursusindhold 02199 er ikke kun et kursus i Java du vil også lære: datalogiske grundbegreber, bl.a.: indlæsning og udlæsning af data til/fra skærm og filer datatyper og værdier udtryk og sætninger (ordrer) begreber fra objekt-orienteret programmering: objekter, klasser, metoder, nedarving,... metoder: f.eks. teknikker til afprøvning og dokumentation af mindre programmer der er alment gældende. IMM/DTU 02199 Programmering, efterår 2001 Side 1-21 Husk i denne uge 1. At købe bogen i boghandlen 2. At købe noter i IMM s notesalg 3. At tilmelde jer til øvelser nu 4. At bestille cd nu, (hvis I ønsker en) 5. Læs i lærebogen: Feature Walkthrough og afsnit (1.1 1.3 og) 1.4 1.5 og 2.1 2.7 IMM/DTU 02199 Programmering, efterår 2001 Side 1-22