Varför kursen?
Short Description
Download Varför kursen?...
Description
2013-01-22
725G69 Fortsättningskurs i programmering Hugo Quisbert 20130121
725G69 – Fortsättningskurs i programmering • Lärare & labb-handledare – Hugo Quisbert – Ivan Nilsson
• Administratörer – Sofie Ekman
Varför kursen? • Problematisk historia – IDAs fokus • Algoritm konstruktion, algotim optimering
– Systemvetenskap fokus • Verksamhetsorienterad problemlösning
1
2013-01-22
Mål för kursen • Efter avslutad kurs ska den studerande kunna: – följa reglerna i programspråket Javas syntax, – redogöra för grundläggande objektorienterade begrepp – konstruera applikationer i programmeringsspråket Java
Kursinnehåll • Kursens huvudsakliga innehåll är: – Fortsättning i objektorienterad programmering via klasser, inkapsling, överlagring, arv, polymorfism – Händelsehantering, grafiskt användargränssnitt och undantagshantering. – Databaskopplingar och nätverksprogrammering, fil – Abstrakta klasser och metoder – Generiska programenheter och samlingar
Arbetsformer & examination • • • •
Föreläsningar Labbar Inlämningsuppgifter Projekt
• Specifika instruktioner för inlämning kommer senare
2
2013-01-22
Kommunikation • IT’s learning • E-post • Telefon: 0736569372 (Hugo)
Kort repetition • Grundtankarna: plattformoberoende språk – säker i nätverk – kraftfull för att ersätta maskinberoendeexekverbar kod
Kort repetition • Efterföljare till Oak - programmeringsspråk för ITV (Interactiv TV) • 1993 - Internet explosionen • JAVA är ett fullständigt programmeringsspråk – Man kan skapa fristående applikationer
3
2013-01-22
Översikt • Java är – kompilerande – ”interpreterande”
• Kompilerande – fristående applikationer
• interpreterande i en webb-bläddrare – Netscape, Internet Explorer, HotJava
JVM
Class Hej{ }
Byte code-fil
Hej.java
Kompilator
Hej.Class
Hugo Quisbert © 11
JAVA virtuell maskin Byte code - fil
Mac
UNIX
JVM
PC
JVM
JVM
Hugo Quisbert © 12
4
2013-01-22
JAVA virtuell maskin • Vad uppnår man med detta??
–Portabel applikation • till skillnad till ex C/C++ där källkoden är ”portabel” – som måste kompileras om…
• Java applikationen exekveras av Java run-time Hugo Quisbert © 13
JAVA virtuell maskin • Java run-time är plattformberoende • Java har ca 22 grundläggande klasser som innehåller arkitektur-beroende metoder sk native methods – Dessa metoder är implemeterade i något annat språk
Hugo Quisbert © 14
Java virtuell maskin Unix
Windows Java metoder Nativa metoder Hugo Quisbert © 15
5
2013-01-22
JAVA virtuell maskin • Interpretatorer är långsamma • Java run-time-miljö optimerar Java byte-code till maskinkod (plattformens) under run-time • detta kallas ”just in time compilation”
Hugo Quisbert © 16
JAVA - Språket • Java är objekt orienterad – objekt och klasser
• Javas grundläggande enhet är class • en klass är komponent (mall) som bär exekverbar kod och data
Hugo Quisbert © 17
Java – OO bygger på klasstaxonomi Växter
Fanerogamer
Angiospermer
Dikotyledoner
Kryptogamer
Gymnospermer
Monokotyledoner
Hugo Quisbert © 18
6
2013-01-22
Java OOP • Minimum 4 egenskaper – inkapsling, inneslutning – Polymorfism – Arv – Dynamisk bindning
Hugo Quisbert © 19
Java - Språket class HelloWorld { static public void main(String args[]){ System.out.println(”Hello world”); } } Filen som är källkoden till denna klass SKALL heta HelloWorld.java Den kompilerade filen kommer att heta: HelloWorld.class
Hugo Quisbert © 20
Java datatyper • Primitiva datatyper är tre – numeriska – boolska – fält (array)
Hugo Quisbert © 21
7
2013-01-22
Java datatyper • Numeriska datatyper – heltal • • • •
byte: 8-bit short: 16-bit int: 32-bit long: 64-bit
Hugo Quisbert ©
22
Java datayper • Inga unsigned - heltal i Java – Flyttal • float: 32-bit • double: 64-bit
• 23.79 är definierad double • explicit omvandling till float krävs
Hugo Quisbert © 23
Java datatyper • Tecken – char unsigned 16-bit Unicode tecken
• Unicode tabell 65536 olika tecken • 256 första tecken är Latin-1 • Latin-1 är ASCII-tabellen
Hugo Quisbert © 24
8
2013-01-22
Java datatyper • Boolska datatyper – boolean 1-bit • true • false
• Kan inte konverteras till numeriska typer
Hugo Quisbert © 25
Java datatyper • Fält (array) • Kan vara av olika underliggande typ • Man kan deklarera, skapa multidimensionella fält
Hugo Quisbert © 26
Algoritmik • I boken Datalogi – en inledande översikt refererar Lunell (1991, sid 286) till Donald Knuths definition: – En algoritm för ett problem är en metod för att lösa problemet i fråga i ett antal steg. Metoden består av ett antal operationer och en anvisning om i vilken ordning dessa skall utföras. Givet vissa förutsättningar leder metoden till efter ett ändligt antal operationer till det sökta resultatet.
9
2013-01-22
Algoritmik
Här är exempel på operationer inom några olika områden: • Matlagning: • mäta upp råvaror, blanda, hacka, vispa • Materialbearbetning: • fräsa, borra, slipa, kapa • Montering: • svetsa, limma, skruva • Matematik: • de olika räknesätten
Algoritmik • Kännetecken – Ändlighet. Algoritmen måste bli färdig efter ett ändligt antal steg, d.v.s. antalet operationer måste vara ändligt. Men antalet operationer behöver inte vara känt på förhand. – Bestämdhet. Varje steg i algoritmen måste vara entydigt och exakt definierat. – Indata. En algoritm har noll eller flera indata (input). – Utdata. En algoritm har en eller flera utdata (output), d.v.s. värden som beräknas av algoritmen. Utdata har en bestämd relation till indata. – Effektivitet. Varje steg i algoritmen ska i princip kunna utföras exakt och inom en ändlig tidsrymd av en människa som arbetar med papper och penna.
Algoritmik • Komponenter – Sekvens (följd) – Selektion (val) – Iteration (repetition, upprepning eller loop)
10
2013-01-22
Algoritmik • Pseudokod – En algoritm kan uttryckas i naturligt språk eller som pseudokod eller illustreras med bilder eller grafiskt t ex i form av flödesplaner.
Algoritmik Algoritm Kakrecept: Smält smöret. Sätt de torra ingredienserna i en skål. Repetera tills blandat: Rör om. slut repetera. Rör ner ägg och smör. Repetera tills klimpfritt: Vispa. slut repetera. Häll i form. Grädda. Slut Kakrecept.
Flödesdiagram Start
Smält smöret. Sätt de torra ingredienserna i en skål
Ja Väl blandat?
Nej
Rör ner ägg och smör
Rör om Ja Klimfpritt? Nej
Häll i form. Grädda
Vispa
Stopp
11
2013-01-22
Flödesdiagram
12
View more...
Comments