Begreber og Redskaber 1. Plan for kurset Formål –Give et begrebsmæssigt grundlag for programudvikling, samt overblik over udvalg af redskaber og metoder.

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

Programmeringsparadigmer.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Begreber og Redskaber 1 BRP.
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Selve objektet versus referencen til objektet Nedarvning
Første generation (maskiner/operativsystemer) 45-55: radiorør Kun maskinsprog programmering = skrivning af nullerog ettaller Intet operativsystem programmør.
Grundlæggende programmering Efterår 2001
Hvordan man skriver koden.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Intro Variabler - datatyper. 2. forelæsning Hvad skete sidste gang Hvad er PHP? Kursussammensætning: læse – newsgroup – forelæsning – øvelsestime – aflevering.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Intro til C# apps Kodegennemgang af simpel C# app
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Begreber og Redskaber 1. Emner i kurset Om sprog og sprogbeskrivelse Repræsentation af tal i maskinen –Heltal, negative tal, kommatal, logiske værdier.
Fundamentale datastrukturer
1. Database-systemer, introduktion
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
GP 5, 26/ Grundlæggende programmering Efterår 2001 Forelæsning 5 onsdag 26/ kl. 9:15 – 12:00.
Begreber og Redskaber 1. Rettelse til sidst Sidst vrøvlede jeg lidt om algoritmer: Ordet stammer fra Abu Ja’far Mohammed ibn Musa al- Khowarizm der i.
Klasser.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
GP 3, 12/ Grundlæggende programmering Efterår 2001 Forelæsning 3 onsdag 12/ kl. 9:15 – 12:00.
Procestræ under afvikling af cp init login shell cp cp src dest.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
Paradigmer i Programmering 1. Program for idag : Funktioner og udtryk i SML : Øvelse : Frokost – 14.00: Deklarative.
Primitive typer. dIntProg, F08Typer.2 Subtyperelation for primitive typer byte ≤ short ≤ int ≤ long ≤ float ≤ double char boolean double d; int i; d =
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
Begreber og Redskaber 1. Programmeringssprog Sprog = mængde af sætninger ?
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
Paradigmer i Programmering 1. Plan for kurset 4 x Mads R, 4 x Torben B, 2 x opgave MR: Funktionsprogrammering, SML TB: Logikprogrammering, Prolog Opgave:
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
GP4, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 4 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Identitet vs lighed. Spørgsmål Hvad udskriver run metoden? 1.”Ens!” 2.”Forskellige!” 3.Ved ikke public class Driver{ public static void run(){ String.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Fundamentale sprogbegreber Typer. dIntProg, F08Typer.2 Typer Primitive typer –boolean –byte, char, short, int, long, float, double Objekttyper –klassetype.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Paradigmer i Programmering 0. Plan for kurset 4 x Mads R, 4 x Torben B, 2 x opgave MR: Funktionsprogrammering, SML TB: Logikprogrammering, Prolog Opgave:
Programmering I Java/C# Datatekniker Dit første projekt.
Algoritmeskabeloner findOne, findAll, findNoOf, findSumOf Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder.
Forelæsning Uge 4 – Mandag
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Programmering.
Præsentationens transcript:

Begreber og Redskaber 1

Plan for kurset Formål –Give et begrebsmæssigt grundlag for programudvikling, samt overblik over udvalg af redskaber og metoder en programmør kan bruge Forstå –hvad et programmeringssprog er –hvordan man kan strukturere data –algoritmer til søgning og sortering

Målgruppe Studerende der lige har eller samtidig lærer at programmere Dette semester: hovedparten følger indledende programmering For resten – måske ikke meget hårdt i starten God balast til programmeringsprojekt På Indledende Programmering: praktisk erfaring – her teoretisk baggrund

Emner i kurset Repræsentation af tal i maskinen –Næste gang ccj2: kap 2 + note (jfr kursussiden) –Heltal, negative tal, kommatal, logiske værdier Håndkøring af programmer Rekursion Sortering Datastrukturer Stak, kø, hægtede lister Afprøvning af programmer

Idag Hvordan kører man et java program? Hvad er de grundlæggende dele af Java? Lidt historie Syntakshvad man skriver Semantikhvad det betyder Pragmatikhvordan det bruges

Et java program public class HelloWorld{ public static void main(String[] args){ // Hovedprogram! System.out.println(”Hej”); }

Bestanddele af program Variable og typer Regneudtryk Sætninger Underprogrammer Klasser Biblioteker

Variable og typer Variabel erklæring int i; Variabel initialisering int i = 1; Variabel tildeling i = 1; Variabel inkrementering i++;

Typer Heltal ( int,..) Kommatal ( float, double ) Logiske værdier ( boolean ) Tegn ( char ) Tekststrenge ( String ) Og så er der også klasser og objekter...

Udtryk Sammenligning ( ==,>=,,!= ) Aritmetik ( +,-,*,/,% ) Tildeling ( =,+=,++ ) Betinget udtryk ( ? : ) Eksempel int i = 3+4; boolean b = (i++ ==7);

Tekststrenge ”dette er en tekststreng” Sammenhæftning af strenge med + Næsten alt kan konverteres til tekststrenge, f.eks. når det står efter + Eksempel int i = 7; String s; s = ”i = ” + i;

Udskrivning System.out.println( udtryk ); System.out.println(); System.out.print( udtryk ); Udtryk er streng, tal, tegn, logisk værdi,.. Eksempel System.out.println(”Hello”);

Sætninger If: if( exp ) stmt else stmt While: while( exp ) stmt Do: do stmt while( exp ) For: for( exp;exp;exp ) stmt Switch: switch( exp ){ case exp: stmt..} Andet: break,continue,return,try

Hvad mer?? Klasser, nedarvning og beskyttelse Overlæsning, overskrivning, polymorfi Interface, abstrakte klasser Tabeller Undtagelser, parallelitet Et hav af standard klasser

Kan man skrive til programmer? Nå ja – men det er ikke helt let! Eksempel try{ DataInputStream in = DataInputStream(System.in); String s = in.readLine(); System.out.println("Read : "+s); }catch(java.io.IOException e){}

Syntaks Fra ccj2 2.2 Assignment variableName = expression; 6.1 The while statement while( condition ) statement Osv..

Syntaks Præcedens regler i*j+k*l Associativitet a-b-c(a-b)-c a=b=ca=(b=c) Dangling else –if() if() stmt; else stmt

Semantik Hvad betyder det? Hvad er forskellem på & og &&? Hvornår er to strenge ens? Hvordan virker % for negative tal? Osv...

Pragmatik Konventioner –Klassenavne med stort bogstav –Felter og metoder med små bogstaver –Konstanter med kun store bogstaver Ideomer –for(;;){.. if(..)break;..} God stil –Indrykninger, kommentarer,..

Lidt historie Maskiner: 1. Generation: 1940 → –Radiorør, kviksølvrør, DASK Generation 1950 → –Transistorer, GIER Generation 1964 → –Integrerede kredsløb 4. Generation –Højt integrerede kredsløb VLSI, 5. Generation –Multiprocessormaskiner

Datamaskiner Tidlige mekaniske maskiner Babbage, Pascal, Zuse 30’erne. Teori: Turingmaskinen, Church, Curry, von Neumen. Beregnelige funktioner Beregningsmaskiner Eniac (43-44, USA) radiorør (19000stk) til beregning af kanonskud Zuse (1945, Tyskland) relæer Colosus (1943, A Turing, England) radiorør (1500stk) Krypto-analyse af Enigma koder

Datamaskiner Fra Universelle maskiner Programmerbare. EDVAC rapport 1944 EDSAC (Wilkes,Cambridge,England) ACE (Turing, Manchester, England) 1948 Transistoren 1964 Integrerede kredsløb 1970 Chip, Intel 4004 (2250 transistorer, 1280 ½byte data, 4k instruktioner)

Programmeringssprog Maskiner: 1. Generation: 1940’erne –Maskinkode 2. Generation –Assembler, AUTOCODE (1952) –Tidlige maskinspecifikke sprog 3. Generation 1964 → –Højniveausprog: Java, C, C++, Pascal, 4. Generation –Specielle programmeringsomgivelser til særlige formål 5. Generation –Naturligt sprog

Programmeringssprog Fortran, 1954 Cobol, Algol 1960 Basic 1964 C 1972 Simula 1967 Pascal 1972 C Java 1995 Andre sprog Logikprogrammering prolog 1972 Funktionsprogrammering Lisp 1960 ML, Haskell, Scheme

Opgaver Ccj2: P1.1, P1.2 Skriv program der tegner et juletræ /\ || Næste gang Ccj2: R2.8, R2.9, R2.17