Coder Social home page Coder Social logo

tdt4100's Introduction

TDT 4110

Meny

Øving 9

###Observatør-observert-teknikken og abstrakte klasser Innleveringsfrist Fredag 28. mars kl 0800.

===

Dette må du gjøre:

Velg og gjennomfør minst én av oppgavene under (du trenger m.a.o. heller ikke for denne øvingen å henge deg opp i hvor mange dekningsgrads- og omfangspoeng hver av oppgavene har):

Være oppmerksom på at disse oppgavene har noe ulik vanskelighetsgrad og omfang. Alle er (høyst) eksamensrelevante og det anbefales følgelig å ta en titt på, om ikke alle sammen, helst minst én fra hvert av de to temaene (AbstractAccount-oppgaven omhandler abstrakte klasser og HighscoreProgram- og StockListener-oppgaven observatør-observert-teknikken, hvilket også vil være tema for øving 10).

Øvingsmål:

  • å lære hva observatør-observert-teknikken er, dens bruksområder og fordeler
  • å lære om abstrakte klasser, deres bruksområder og fordeler

Øvingskrav:

  • å kunne gjøre definere og implementere et observatørgrensesnitt
  • å kunne la en observert klassen forteller dens observatører om endringer
  • å kunne samle felles oppførsel til to eller flere subklasser i en felles abstrakt klasse

===

Øving 8

Arv

Innleveringsfrist Fredag 21. mars kl 0800.

===

Dette må du gjøre:

Velg og gjennomfør minst to av oppgavene under (du trenger m.a.o. heller ikke for denne øvingen å henge deg opp i hvor mange dekningsgrads- og omfangspoeng hver av oppgavene har):

Disse oppgavene har noe ulik vanskelighetsgrad og omfang, og trolig stigende (i.e. CardContainerImpl den enkleste og Asteroids den vanskeligste - hvilket inkluderer GUI!). Alle er (høyst) eksamensrelevante og de anbefales følgelig å ta en titt på alle sammen.

Øvingsmål:

  • å lære hvordan arv-mekansimen brukes i OO
  • å lære om instanser, typer, deklarasjoner og tilordninger
  • å lære om sub- og superklasser samt om synlighetsmodifikatorer som brukes ved arv

Øvingskrav:

  • å kunne bruke arv til å modellerere enkle(re) objektstrukturer- og relasjoner i Java
  • å kunne la flere subklasser bruke funksjonalitet definert i samme superklasse
  • å la en subklasse redefinere metoder definert i en superklasse

===

Øving 7

Spill og grensesnitt

Innleveringsfrist Fredag 14. mars kl 0800.

===

Dette må du gjøre

I denne øvingen skal du fortsette med det spillet du implementerte i øving 4 og legge til ny funksjonalitet (angre / gjenta) i tillegg til å innføre grensesnitt som en del av implementasjonen. Dette er beskrevet på følgende wikiside: Spill med mulighet for angring og lagring
Merk at dersom du velger å fortsette med TicTacToe, må du først generalisere spillet til å kunne spilles på brett av størrelse NxN og med seiersbetingelse M på rad. Se instruksjoner under Ekstraoppgave - Utvidelse til M-på-rad spill på NxN-brett på TicTacToe-oppgavesiden.

Øvingsmål

  • å lære hvordan grensesnitt kan brukes i spill og implementasjon av disse
  • å lære hvordan logikk for å kunne angre og gjenta kan implementeres

Øvingskrav

  • å kunne bruke en stack til å angre og gjenta (angrede) trekk
  • å kunne definere et grensesnitt for lesing av spill fra fil og implementere dette
  • å implementere det definerte grensesnittet ConsoleGame

===

Øving 6

Grensesnitt

Innleveringsfrist Fredag 28. februar kl 0800.

===

Velg og gjennomfør minst to av oppgavene under (du trenger m.a.o. heller ikke for denne øvingen å henge deg opp i hvor mange dekningsgrads- og omfangspoeng hver av oppgavene har):

Disse oppgavene har noe ulik vanskelighetsgrad og omfang, og trolig stigende (i.e. CardContainer den enkleste og StringGrid den vanskeligste). Alle er (høyst) eksamensrelevante og de anbefales følgelig å ta en titt på alle sammen.

===

Øvingsmål

  • å lære hva gresesnitt er og hvordan disse defineres
  • å lære hvordan man implementerer et grensesnitt

Øvingskrav

  • å kunne lage grensesnitt og implementere disse med andre klasser
  • å kunne bruke grensesnittene Iterable og Iterator
  • å kunne bruke grensesnittene Comparable og Comparator

===

Øving 5

Objektstrukturer

Innleveringsfrist Fredag 21. februar kl 0800.

===

Dette må du gjøre:

Velg og gjennomfør minst én av oppgavene under (du trenger m.a.o. heller ikke for denne øvingen å henge deg opp i hvor mange dekningsgrads- og omfangspoeng hver av oppgavene har):

Disse oppgavene har noe ulik vanskelighetsgrad og omfang. Alle er (høyst) eksamensrelevante og de anbefales følgelig å ta en titt på alle sammen.
NB: du må laste ned og legge til siste versjon av jexercise-standalone.jar og legge denne til javaprosjektet ditt for at JExercise-testene skal fungere (denne finner du på https://www.ntnu.no/wiki/display/tdt4100/JExercise eller i mappen 'Øving 5').

===

Øvingsmål

  • å lære hva assosiasjoner er og hvordan dette brukes i OO
  • å lære hvordan å sikre konsistent oppførsel mellom assosierte objekter

Øvingskrav:

  • å kunne implementere klasser som har assosiasjoner til en eller flere andre klasser
  • å kunne implementere metoder som oppretter, oppdaterer og fjerner slike assosiasjoner
  • å kunne sikre at disse assosiasjon er konsistente i enkle objektstrukturer

Øving 4

Objektstrukturer

Innleveringsfrist Fredag 14. februar kl 0800.

===

Dette må du gjøre:

I denne øvingen skal du starte å programmere et spill som du skal fortsette å jobbe med i senere øvinger. Det blir mulig å skifte til et annet spill senere så lenge alle øvingskrav blir oppfylt, så ikke vær redd for å velge "feil" spill nå. :-) Merk at du får to uker på øvingen!
Velg og gjennomfør minst én av oppgavene under (du trenger m.a.o. ikke å henge deg opp i hvor mange dekningsgrads- og omfangspoeng hver av oppgavene har):

I denne øvingen legger oppgaveteksten(e) mindre føringer for hvordan koden din skal struktureres enn tidligere. Det er meningen du skal få øvelse i å tenke ut objektstrukturer som passer til å løse oppgaver selv. Derfor kan det være lurt å starte med øvingen tidlig, slik at du rekker å få hjelp hos studass dersom du sitter fast.

==========

Øvingsmål:

  • å lære å tenke ut en oppdeling av et program i flere interagerende klasser
  • å lære å tenke rundt og programmere et program som skaper flere objektinstanser under kjøring

Øvingskrav:

  • å kunne programmere meningsfulle og fungerende objektstrukturer
  • å kunne teste et større program og sikre seg at det fungerer i alle tilfeller

Øving 3

Innkapsling og validering

Innleveringsfrist: Fredag 31. januar kl 0800.

==========

Dette må du gjøre:

Før du setter i gang kan det vært lurt å lese nevnte wikiside om 'Innkapsling' nøye (https://www.ntnu.no/wiki/display/tdt4100/Innkapsling). Forelesningene og tilhørende øvingsforelesning er selvsagt også lure å få med seg.

==========

Øvingsmål:

  • å lære å innkapsle klasser og metoder etter god programmeringskikk
  • å lære å validere argumenter for å sikre gyldig tilstand

Øvingskrav:

  • å kunne forstå og implementere hvordan en klasse best bør innkapsles
  • å kunne skrive kode for å validere argumenter for å sikre gyldig tilstand
  • å kunne kaste exceptions ved ugyldige argumenter i en metode

=========

Øving 2

Klasser og testing, Tilstand og oppførsel

Innleveringsfrist Fredag 24. januar kl 0800.

=========

Dette må du gjøre:

Før du setter i gang kan det vært lurt å lese nevnte wikiside om Tilstand og oppførsel nøye.

=========

Øvingsmål:

  • å lære å lage enkle javaklasser og –program
  • å lære å bruke hovedprogram for å teste andre klasser

Øvingskrav:

  • å kunne tegne enkle tilstandsdiagrammer
  • å kunne deklarere klasser og metoder ihht. oppgavespesifikasjon
  • å kunne skrive hovedprogrammer som tester andre klasser
  • å kunne skrive hovedprogrammer som tar input fra tastaturet

=========

Øving 1

Objekter og klasser, Tilstand og oppførsel

Innleveringsfrist: Fredag 17. januar kl 0800.

==========

Dette må du gjøre:

Velg blant følgende oppgaver under wikisiden Tilstand og oppførsel:

Før du setter i gang kan det vært lurt å lese nevnte wikiside om Tilstand og oppførsel nøye.

==========

Øvingsmål:

  • å lære (enkel) objektorientert tankegang
  • å lære å lage enkle javaklasser og -program

Øvingskrav:

  • å kunne tegne enkle tilstandsdiagrammer
  • å kunne deklarere klasser, med data og kode, ihht oppgavespesifikasjon
  • å kunne skrive hovedprogrammer, bl.a. for å teste objekter
  • å kunne bruke standardtyper- og metoder (e.g. toString()-metoden)

=========

tdt4100's People

Contributors

sklirg avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

snowjals akhyalda

tdt4100's Issues

Orden

  • Flytte conflikt-løkkene til separate løkker

Row fails

ArrayIndexOutOfBoundsException: 3

Setting 0, 0 to 0, 0
Setting 0, 1 to 0, 1
Setting 0, 2 to 0, 2
Setting 1, 0 to 1, 0
Setting 1, 1 to 1, 1
Setting 1, 2 to 1, 2
Trying to access 0, 0
Trying to access 0, 1
Trying to access 0, 2
Trying to access 0, 3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.