Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)



Relevanta dokument
Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Programmering. hh.se/db2004. SuperKarel, Nedbrytning & Styrsatser. Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering

Att utvidga klasser. Programmering. Att utvidga klasser. Förvirring. hh.se/db2004

Roboten Karel lär sig Java

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

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

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

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde.

Praktikum i programmering

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

Programmering = modellering

Omdirigering. Omdirigering

Laboration 2. returnerar true om det är omöjligt för roboten att göra move() utan att. exekveringsfel erhålls, annars returnera false.

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Föreläsning 1: Introduktion till kursen

Personal Objektorienterad programmeringsmetodik 5DV081 5DV109

Välkomna till DIT012 IPGO

Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017

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

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Kort-kort om utdelade användarkonton och datormiljön på NADA

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

Program & programmering

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i Grundläggande programmering STS, åk 1 fredag

Objektorienterad Programmering (TDDC77)

SMD 134 Objektorienterad programmering

Föreläsning 2. Operativsystem och programmering

Objektorienterad programmering i Java I

TDIU01 (725G67) - Programmering i C++, grundkurs

Input. Programmering. Andra källor

Föreläsning 15: Repetition DVGA02

Programmering eller Datalogiskt tänkande

Programmering. Den första datorn hette ENIAC.

Tentamen i Objektorienterad modellering och design Helsingborg

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Programmering A. Johan Eliasson

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

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

PROGRAMMERING ÅK 9 INTRODUKTION

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Objektorienterad Programmering (TDDC77)

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Tentamen i Objektorienterad modellering och design

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Introduktionskurs i datavetenskap, 3p.

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

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Föreläsning 1: Introduktion till kursen

Välkomna till kursen i grundläggande programmering DVGA08, ISGA04

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

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

Objektorienterad Programmering (TDDC77)

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

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

Introduktion till programmering, hösten 2011

Editering, Kompilering och Exekvering av Javaprogram

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

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

Programmeringsteknik II

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

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

Introduktionsmöte Innehåll

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Design och konstruktion av grafiska gränssnitt

ENKEL Programmering 3

TDDC77 Objektorienterad Programmering

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

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

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

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Lite mer om CGI-programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

Kort-kort om utdelade användarkonton och datormiljön på NADA

Föreläsning 1: Introduktion till kursen

Algoritmer. Två gränssnitt

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

Anteckningar 1: Grundläggande saker

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

OOP Objekt-orienterad programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Imperativ programmering. Föreläsning 4

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

EDAA01 Programmeringsteknik - fördjupningskurs

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

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

Transkript:

Programmering hh.se/db2004 Föreläsning 1 Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Välkomna till en kurs i programmering! Att programmera är att få datorn att bete sig på ett viss sätt. I många andra kurser och senare i arbetslivet kommer det att krävas att ni får datorn att göra visa saker! Programmering handlar både om problemlösning och kodning (att skriva ner en lösning i ett programmeringsspråk). Center for Research on Embedded Systems IDE-sektionen Fortsättning Administrivia Fler kurser i Programmering 1 Programmering 2 Algoritmer och datastrukturer 3 Avancerad objektorienterad programmering 4 Datorsystemteknik I och II 5 Programmering av Inbyggda System Hemsida All material och information finns under hemsidan www2.hh.se/staff/vero/programmering som kan nås från hh.se/db2004 Lärare 1 Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination 1 Skriftlig tentamen (betyg) 2 Projektarbete (inlämning) 3 Laborationer (uppvisning)

Att använda en dator i denna kurs Datorerna i labsalen Unix Vi kommer att använda Unix miljöer i programmeringskursen. I labbsalen finns linux datorer. Ni som har mac har även Unix. Jag kommer visa vad ni behöver göra för att komma igång i labsalen. Under kursens hemsida finns en dokument med lite mer information. Source: The New Yorker Ikonen högst upp längst till höger öppnar en webläsare. Gå till hh.se/db2004 Terminalen Kommandon Under menyn Applications, under Accessories kan ni välja Terminal. Då öppnas ett fönster där man kan ge kommandon till datorn.

Vem a r Karel? Vem a r Karel? Roboten Karel Karel kan go ra va ldigt fa saker och bor i en mycket enkel va rld. Syfte Kursen handlar om programmeringsmetodik, men fo r att kunna o va beho ver vi ett spra k. I kursen a r spra ket Java. Fo rsta veckan presenterar vi principer vi kommer att illustrera under kursens ga ng. Karel erbjuder ett enklare spra k a n Java. Va rlden Gator lo per va gra tt och heter 1, 2, 3,... Karel va nd mot o st i korsningen 1sta gatan / 1sta avenyn. Karel kan move(), turnleft(), pickbeeper(), putbeeper() Avenyer lo per lodra tt och de heter 1, 2, 3,... Murar som avgra nsar visa delar av va rlden. Fo rema len som kan finnas pa korsningar heter beepers

Kommandon och tillstånd Detaljer Karels tillstånd Karel har en position i världen, en riktning och ett antal beepers i en säck. Kommandon Karel kan svara mot de kommandon vi nämnde tidigare. När Karel utför ett kommando förändras hans tillstånd. Om Karel gör en move() så ändras hans position, en korsning i den riktning han är vänd mot. Om Karel gör en turnleft() ändras hans riktning 90 till vänster. Om Karel gör en pickbeeper() eller putbeeper() ändras antalet beepers i hans säck (och världen förändras med!) Begränsningar Några kommandon medför visa begränsningar, om Karel försöker göra något ogiltig uppstår ett fel: Om Karel försöker ta sig genom en mur. Om Karel försöker ta upp en beeper där det inte finns någon. Om Karel försöker lämna en beeper och han har inga säcken. Parenteserna De toma parentaserna i kommandon är nödvändiga. Att programmera Karel Strikt syntax! För att få Karel att utföra ett uppdrag måste man skriva ner alla kommandon på ett mycket exakt sätt. Man måste följa syntaktiska regler som definierar vilka kommandon och språkregler är gilltiga. Nu övergår föreläsningen till att med exempel programmera Karel! Ni finner allt jag säger i den lilla skriften om Karel som finns under kursens hemsida.

Att använda programbibliotek Att beskriva en klass Kommentarer Att beskriva ett beteende /* * File: BeeperPickingKarel.java * ----------------------------- * The BeeperPickingKarel class extends the basic Karel class * by defining a "run" method with three commands. These * commands cause Karel to move forward one block, pick up * a beeper, and then move ahead to the next corner. */

Objektorientering Tillstånd & Beteende Programmeraren fokuserar på att modellera beteendet hos objekt. Beteenden påverkar ett objekts tillstånd. Detta sätt att organisera program låter programmeraren fokusera på delar av programmet i taget (objektorientering underlättar att modularisera ett program). Klasser & Instanser I Karel och senare i Java det man använder för att beskriva tillstånd och beteende är klasser. En klass är som ett mönster eller ett mall för objekt som delar ett beteende och tillståndsattribut. Dessa objekt kallas för instanser av klassen. Att definiera klasser med utvidgning Klassen BeeperPickingKarel bygger på allt som klassen Karel erbjuder. En instans av BeeperPickingKarel är också en robot som bor i samma typ av värld och har samma tillståndsattribut och reagerar på samma kommandon som en instans av Karel. Nya kommandon Lätt att förstå programmet public class BeeperTotingKarel extends Karel { turnright(); turnleft(); putbeeper(); Nya kommandon Att definiera metoder public class BeeperTotingKarel extends Karel { // som ovan private void turnright(){ turnleft();turnleft();turnleft(); Detta gör ett program lättare att förstå, och då även att modifiera i framtiden.

Mer om nedbrytning Att välja rätt nedbrytning Karel lagar en väg Rekomendationer Varje delproblem bör utföra en begreppsmässig enkel uppgift. Varje delproblem bör utföra en uppgift som är så allmän som möjligt så att den kan användas i flera sammanhang. Hur väljer man rätt nedbrytning? Till exempel: 1 Flytta till gropen. 2 Fyll gropen genom att lämna en beeper där. 3 Flytt till nästa korsningen. Övningar Övning 1 Inloggning Kommandon i linux terminalen Kompilering och felmeddelanden Exekvering och programfel Programmering