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



Relevanta dokument
TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Objektorienterad programmering

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Imperativ programmering

TDDD78 / 729A85 Objektorienterad programmering och Java

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

TDDD78 / 729A85 Objektorienterad programmering och Java. Kursinformation Java: Varifrån och varför? Java för Pythonprogrammerare

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Introduktion till programmering. Programspråk och paradigmer

Objektorienterad programmering

729G06 Föreläsning 1 Objektorienterad programmering

Imperativ programmering. Föreläsning 4

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

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

TDDD78 / 729A85 Objektorienterad programmering och Java

Att välja och planera ett projekt

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Program & programmering

Objektorienterad programmering och Java

TDDD78 Att välja och planera ett projekt

Före projektet TDDD78, TDDE30, 729A

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

TDDD78 Att välja och genomföra ett projekt

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

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

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

Labb 1: Vad, hur, och varför?

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

Introduktionsmöte Innehåll

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

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

Variabler, värden och typer

Objektorienterad programmering

Programming in C# and.net Framework

Välkomna till DIT012 IPGO

EDAA01 Programmeringsteknik - fördjupningskurs

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

Grundkurs i programmering - intro

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Kursplanering Objektorienterad programmering

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

Programmeringsteknik II

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

Webbprogrammering 725G54

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

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

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

Objektorienterad Programmering (TDDC77)

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

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

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

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

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

SKOLFS. beslutade den XXX 2017.

TDP002 Imperativ programmering

Imperativ programmering. Föreläsning 3

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

TDDC77 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?

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

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

TDDD92 Artificiell intelligens -- projekt

Objektorienterad Programkonstruktion

Design och konstruktion av grafiska gränssnitt

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

Design och konstruktion av grafiska gränssnitt

Föreläsning 1: Introduktion till kursen

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

Programmering, grundkurs

TDDD78 Att välja och planera ett projekt

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

TDP002 - Imperativ programmering

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

Föreläsning 5 5DV086 - Programspråk

TDP002 - Imperativ programmering

Variabler, värden och typer

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

Kursinformation Grundkurs i programmering med Python

LABBINTRODUKTION. Laboranter: Kurs: - Sonny Johansson, Sigurd Israelsson. Utskriftsdatum:

GRUNDKURS I C-PROGRAMMERING

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

PROGRAMMERINGSMETODIK

Motivation. Programmeringsuppgift: En första ansats: Lagra info om anställda Håll reda på varje anställds närmaste chef. som också är en anställd!

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

Introduktion till programmering, hösten 2011

Innehållsförteckning

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

OOP Objekt-orienterad programmering

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

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

2I1049 Föreläsning 9. Iterativ programutveckling. Iterativ programutveckling. Modularisering, återanvändning och JavaBeans

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

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

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Webservice & ERP-Integration Rapport

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

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

Transkript:

Jonas Kvarnström jonkv@ida.liu.se 2013

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket? Rena OO-språk (allt är objekt) Scala, Smalltalk, Eiffel, Ruby, JADE, Emerald, OO-språk med vissa procedurella aspekter Java, C++, C#, Python, VB.NET, Procedurella språk med OO-utökningar Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, Objektorientering kan kombineras med andra paradigm! Haskell++ (t.ex.) är funktionellt + OO

Primärt språk: Java Ett av de mest använda OO-språken, i många områden Webapplikationer Viktiga delar av Googles system Android-appar Många egenskaper passar bra för undervisning Jämförelsevis lätt att analysera Bra utvecklingsmiljöer med navigering, refactoring, Skräpsamling, minnesskydd Enkel minneshantering, lättare att hitta vissa fel Stark statisk typning Många felkontroller sker direkt i utvecklingsmiljön

Syfte : Lära sig grundläggande skillnader i C++ Till framtida kurser

Förkunskapskrav Grundläggande begrepp inom programmering. Konkreta programmeringskunskaper i något språk, t.ex. Lisp och/eller Ada. Programmering i C-delen av C++, motsvarande TDDC68 Imperativ programmering i Ada. Detta är det enda vi får utgå ifrån!

Jonas Kvarnström jonkv@ida.liu.se 2013

Föreläsningar ger information om OOP, Java och C++ Bilder på engelska föreläsning på svenska Grunder i objektorientering, med Java som konkret exempel Mer avancerat: Felhantering / exceptions, trådhantering, Några användbara klassbibliotek i Java: Datatyper, GUI, UML-diagram för objektorienterad mjukvara Designmönster Introduktion till C++

Kurslitteratur för Java: Föreläsningsbilderna Dokumentation för klassbibliotek (på nätet) En valfri bok The Java Tutorial (http://docs.oracle.com/javase/tutorial/) Skansholm: Java direkt med Swing (Studentlitteratur) Eckel: Thinking in Java (http://www.mindview.net/books/tij/) Kurslitteratur i C++: Föreläsningsbilderna Gärna en bok (valfri) Eckel: Thinking in C++ (gratis)

Laborationer Labb : Introduktion till labbmiljön och Java Kom igång så tidigt som möjligt Labb : Objektorientering och Java Utveckla ett enkelt spel i tutorialform Labb : Programmering i C++ Översikt över språkets skillnader Projekt Designa och implementera ett eget program i Java Kan också vara ett spel, eller något helt annat Programmering sker i grupper om två (eller en) Anmäl er i WebReg denna vecka

Utvecklingsmiljö: IntelliJ IDEA (finns open source-version)

Utvecklingsmiljö: IntelliJ IDEA Varför? Kodnavigering, komplettering, analys, refactoring/omstrukturering, automatiska kodinspektioner Andra miljöer? Ja, men: Lämna in kod som IDEA-projekt Analysera med IDEAs inspektioner först!

Nytt för i år: Automatisk kodinspektion för labbar och projekt Hjälper er undvika onödiga buggar och kompletteringar! IDEA kommer att klaga på en del bra kod också Oundvikligt!

Det kan också vara en bra idé att fråga assistenterna om hjälp om man kör fast, istället för att sitta och slå huvudet i bordet tills man tappar motivationen att fortsätta.

Måla inte in er i ett hörn! Ständig uppföljning med handledare Diskutera problem och lösningar Be handledaren titta på koden Fånga upp problem tidigt Jobba inte enbart hemma!

Ge oss feedback under kursens gång! När något inte fungerar När vi går genom för detaljerat / för snabbt När vi kan göra något bättre Vissa saker kan ändras on the fly! Större förändringar sedan förra året: Många förbättringar i föreläsningsbilder, labbar/projekt, instruktioner Kodinspektioner i IDEA Fler labbassistenter

Var ska vi fortsätta? Liknar C/C++, många detaljer men få nya begrepp separat häfte (läs!) Behöver datatyper, satser osv. för att förstå klasser Objektorienterade / klassorienterade aspekter av Java All Java-kod måste finnas i en klass Användbara klasser som finns i alla Javainstallationer Primitiva datatyper, procedurella kontrollstrukturer, osv. Klassbibliotek