Kursens mål. Objektorienterad programmering. Kursupplägg. Tillgodoräknande. Kursbok. Labsalar

Relevanta dokument
Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

F2: Krav på objektorienterat språk

Objektorienterad programmering

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Introduktionsmöte Innehåll

Objektorientering. Grunderna i OO

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

Imperativ programmering. Föreläsning 4

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

729G06 Föreläsning 1 Objektorienterad programmering

Kursplanering Objektorienterad programmering

Objektorienterad programmering. Grundläggande begrepp

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

SKOLFS. beslutade den XXX 2017.

Objektorienterad programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Objektorienterad konstruktion

Programmeringsteknik II

Objektorienterad analys och design

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

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

Föreläsning 1: Introduktion till kursen

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

EDAA01 Programmeringsteknik - fördjupningskurs

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Kursens uppläggning. Lärare. Handledare och gruppövningar.

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

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

SKOLFS. beslutade den -- maj 2015.

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

Föreläsning 1: Introduktion till kursen

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

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

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

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

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Informatik med systemvetenskaplig inriktning A, 30 högskolepoäng Informatics, Basic Course, 30 Credits

INSTITUTIONEN FÖR MATEMATIK OCH NATURVETENSKAP. Fastställd i institutionsstyrelsen Dnr 853/333-03

Informatik med systemvetenskaplig inriktning A, 30 högskolepoäng Informatics, Basic Course, 30 Credits

DT018G Introduktion till programmering i C++, 7,5 hp Välkommen till denna information om kursen "Introduktion till programmering i C++".

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

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

Kursplanering för Mikrodatorteknik 4p/5p

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

Imperativ programmering

Föreläsning 1: Introduktion till kursen

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

1DV432 ST14. 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?

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Föreläsning om OO, OOA och UML

Objektorientering Klasser

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Objektorientering Användning

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Utgivare Datum Ersätter X intranät/utbildning _ intranät/forskn. o fo.utb Patrik Cannmo / EcGu _ intranät/anställd

Programmeringsteknik I

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

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Introduktion till programmering. Programspråk och paradigmer

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Poäng. Start v. DV1: Datavetenskapens byggstenar 7.5. Antal registrerade (män/kvinnor) 38 (38/0)

Datateknik B, Tillämpad datavetenskap, 30 högskolepoäng Computer Engineering, Applied Computer Science, Intermediate Course, 30 Credits

Tentamen i Objektorienterad programmering för ingenjörer (TDBB09) , kl

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

LOKAL UTBILDNINGSPLAN INFORMATIKPROGRAMMET 120 POÄNG IF04

Kursplanering för EE3D i kursen Programmering 1, 100p.

Arv. Objektorienterad och komponentbaserad programmering

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Objektorienterad analys och design

Objektorienterad Systemutveckling 1 (7,5 hp)

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Kursbeskrivning för Ekonometri, 15 högskolepoäng

FÖRETAGSEKONOMISKA INSTITUTIONEN

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

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?

Studiehandledning. Programvarukonstruktion B, 15 hp

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

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

Utbildningsplan Dnr CF /2009. Sida 1 (7)

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Inkapsling (encapsulation)

Webbdesign med multimedia, 5p Kurskod Kurstillfälle Hösten 2007 Kursansvarig lärare Ulf Larsson, Rum 3047

Transkript:

Kursens mål Objektorienterad programmering för ingenjörer Ge kännedom om principer och vissa färdigheter i metoder för objektorienterad programvaruutveckling Ge grundläggande färdigheter i programspråket C++ http://www.cs.umu.se/kurser/tdbb09/ht03/ 1 2 Kursupplägg Moment 1 (3poäng) Teoridel Examineras genom skriftlig tentamen i slutet av kursen Moment 2 (2 poäng) Examineras genom ett antal (3 st) obligatoriska inlämningsuppgifter (labbar) som skall utföras enskilt C++ intro och design av Robot Garden Robot Garden Templates och algoritmbiblioteket Tillgodoräknande Kursen kan ej tillgodoräknas i examen samtidigt som Objektorienterad programmering med c++ (TDBA43) Inte heller fult ut tillsammans med annan grundläggande kurs i objektorientering som tex: Programmering i Java (TDBA54) Programmeringsmetodik och programmering i ett objektorienterat språk (TDBA63) 3 4 Kursbok C++ How to program. Fourth Edition. Deitel & Deitel. Prentice Hall, New Jersey, 2003. ISBN 0-13-111881-1 Även tidigare utgåvor går bra att använda och har ni någon annan något så när fullständig c++-bok så funkar det nog också Labsalar Ingen särskild sal bokad för er Salar som finns tillgängliga (inte är bokade av någon annan) PC MA316 och MA326 Unix MA416, MA426, MA436 och MA446 5 6 1

Programvara Allt inlämnat ska gå att kompilera med gcc (eg. g++) Andra miljöer som går att använda sig av är tex Visual C++ som följer med boken (den verkar dock följa c++ standarden rätt dåligt). Syftet Labregler motivera studenterna att göra obligatoriska inlämningsuppgifter under kursens gång och att undvika problem med att arbete från tidigare kurser stör de kurser som är placerade senare i tiden. 1. IU kan lämnas in vid två tillfällen: före ordinarie sista inlämningsdag eller vid uppsamlingstillfällets sista inlämningsdag. 7 8 Labregler 2 2. Kursansvarig fastslår sista inlämningsdag för varje IU. Efter rättning av IU ges ett betyg. Om IU får betyget Ofullständig kan studenten korrigera lösningen och lämna in IU en gång till vid den s.k. kompletteringsdagen. Handledaren fastslår kompletteringsdagen som sätts individuellt för varje IU. De IU som bedöms efter kompletteringsdagen ges betyget Godkänd eller Underkänd. Normalt gäller bara en kompletteringsomgång men handledare/kursansvarig kan besluta om ytterligare kompletteringsomgångar från fall till fall. 9 Labregler 3 4. Förändringar av IU-specifikationer bör undvikas under kursens gång. Om förändring av IU-spec sker under kursens gång ska en student kunna bli bedömd utifrån specifikationen före förändringen om studenten lämnat in sin lösning före sista inlämningsdag. 10 IU bedöms med betygen: G: för godkänd O: för ofullständig. Ges för IU som nästan är godkända och ej kräver omfattande arbete för att bli godkända. Ges med ett sista datum för inlämning av en förbättrad version. Om tiden överskrids ges betyget U. U: för underkänd. Ges för uppgift som Lämnas in i tid men ej uppfyller kraven för betyget O. Uppgift som bedömts ofullständig och ej lämnas in i förbättrad version före kompletteringsdag Uppgifter som ej lämnats in i tid K: för "kom in och prata" eller "kommentarer", vilket normalt betyder att endast en diskussion behövs för att IU skall ges betyget G. 11 Labregler 5 6. Studenten ska normalt inte behöva vänta mer än 10 arbetsdagar efter sista inlämningsdag för att få tillbaka IU rättad. 7. Det ska vara minst 5 arbetsdagar mellan IUutlämningstillfället av rättad IU till kompletteringsdagen då den korrigerade O- bedömda IU kan lämnas in för rättning. Med IUutlämningstillfälle menas den tidpunkt då studenten har givits tillfälle att hämta IU från handledare. 12 2

Introduktion till OOA, OOD, OOP Dagens problem Varför blir det förseningar Varför uppfylls inte kraven OO en struktureringsteknik Beskriver objekt istället för funktioner Arv Skillnad mot traditionell utveckling Dagens problem Förseningar 90% av projekten tar 50% längre tid Höga kostnader 5000 kr/kodrad Systemen uppfyller inte kraven Programstrukturen blir dålig Återanvändningen är liten 13 14 Varför blir det förseningar? Komplexa system Ingen överblick Ingen riktig förståelse Big-bang principen Varför uppfylls inte kraven? Var fel från början Inkompletta Har ändrats 15 16 Systemutveckling Brister, missförstånd ger Fel system Fel tidpunkt Fel kostnad Objekt-orientering i tre steg OOA: Analys av verkligheten OOD: Design av implementationen OOP: implementation med hjälp av OOprogramspråk 17 18 3

Inkrementell systemutveckling Steg Big-bang, vattenfall Analys Design Implementation 3 Analys Design Impl Eval 2 Analys Design Impl Eval 1 Analys Design Impl Eval 19 Tid Dokument - Beskriver Projektplan Kravspec Analys Design Detaljdesign Källkod Testprotokoll Användarmanual Hur arbetet ska utföras, tidplan, vad som ska produceras Slutanvändarnas behov OO modell över verkliga behov Systemarkitektur, relationer, beteenden Beskriver varje klass manual för klasserna Hur systemet ska testas 20 Målen med objektorientering Modellering - nära verkligheten; lättförstått Modularisering - kring verkliga begrepp; stabilt Förändring - enkel lokalisering Utbyggnad - nya klasser, operationer eller arv Återanvändbarhet med hjälp av arv Produktivitet - klassbibliotek Terminologi - samma i alla faser; spårbarhet Mål forts Att skapa en OO-modell som underlag Skapa en öppen arkitektur infrastruktur Maximera inkapsling och modularitet Minimera beroenden Studera objektens samarbete 21 22 OO- En struktureringsteknik Ger modulära, förändringsbara system Stödjer hela livscykeln: Analys, Design, implementation och Underhåll För alla användare Ersätter inte hårt arbete, IQ eller omdöme Beskriver objekt istället för funktioner Vad istället för Hur Utnyttjar likheter och relationer Mer stabila vid förändringar 23 24 4

Arv Definiera vad som skiljer Underlättar återanvändning En lastbil är en slags bil som är ett Fordon Fordon Generalisering Cykel Bil Lastbil Specialisering 25 Skillnad mot traditionell utveckling Traditionellt: Data Funktioner Objektorienterat: Kund Konto Kassa Funktioner som agerar på data Många funktioner som behöver ändras om dataformatet ändras Små minisystem i systemet Representationen är hemlig 26 OO design Finna objekt och klasser Definiera relationer Beskriv sambanden för önskad funktionalitet Undvik att tänka på implemenationen Traditionellt Dela upp i delfunktioner Läs in Beräkna Finn Designstruktur Skriv ut Skapa Objektorienterat Fokus kring vad Simulering av verkligheten Rapport Dagskassa Kassa Hämta belopp 27 Tolka Avgör Transaktion 28 Designmål C++ Kompatibelt med C Portabelt mellan miljöer Bättre C Stöd för OO Dataabstraktion (Klasser) Arv Dynamisk bindning Effektiva program Hårdare typkontroll Referenstyp Egendef typer, klasser Streams Arv Dynamisk bindning Typparametrisering Undantagshantering Egenskaper fisäkrare program fiblir mer lättläst fibygger ut språket fisäkrare I/O fibeskriver skillnader fiunderlättar utbyggnad figenerella mallar fibra felhantering 29 30 5

Andra objekt-orienterade språk Simula Eiffel Objective C Smalltalk Ada Java Bakgrund, C++ Skapades av Bjarne Stroustrup ca 1982 Snabbast växande i programhistorien Språket utvecklas fortfarande Snart ny standard (3.0, X3J16) Diskussionsgrupper comp.lang.c++, comp.std.c++ ftp://ftp.std.com/aw/stroustrup2e/ 31 32 Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till Objektorienterade programmeringsspråk Smalltalk, Eiffel och Java är rena objektorienterade språk C++ och Ada stödjer objektorientering Det går att programmera objektorienterat i C eller assembler för den delen Språket måste stödja någon form av inkapsling. T.ex. på fil-nivå 33 34 Den objekt-orienterade modellen Beskriver vad som agerar (objekten) Gemensamt språk för alla Intressenter Nivåer Tidpunkter Hög nivå utan detaljer Jämför med icke-oo Procedurella språk/metoder Beskriver hur något utförs Data ligger ofta centralt och alla rutiner kan komma åt det Programflödet är det viktiga 35 36 6

Vad är ett objekt? Relationer VAD hanterar vårt system Har tillstånd minne Operationer Identitet mitt_konto Klass-Objekt Användning Association Aggregat Arv Saldo insättning() 500 37 38 7