DM082 - 3. semester       til andre ugeplaner

Ugeplan for Softwarearkitektur og Distribuerede Programmer

Tema: Træer og grafer  - Gå til uge:  47, 48

Sidst ændret: 2009.11.20

 
Uge 47
Dag Tidspunkt Emne Litteratur / Opgaver
Mandag  08:30 - 11:50  Vi tager fat på nyt tema med datastrukturer og algoritmer,
hvor hoved temaet vil være træer og grafer
Mandagen vil i stor udstrækning foregå som traditionel tavle-undervisning, der skal illustrere de forskellige datastrukturers opbygning og skitsere algoritmer på disse

Fokus i emnet vil blive på træer og grafer

Wikipedia: om datastrukturer:: http://en.wikipedia.org/wiki/List_of_data_structures
Microsoft: om træer: http://msdn.microsoft.com/en-us/library/ms379572.aspx  

Noter til binære træer
C# eksempel på dele af binært træ
Induktionsbeviser

Supplerende materiale:
- Binær søgetræ: http://en.wikipedia.org/wiki/Binary_search_tree
- Begreber i forbindelse med binærer træer
- IComparable og IComparer interfaces:- Eksempel med brug af IComperable og Collections.Comparer til sortering af varer i list på forskellige kriterier (varenr, betegnelse og pris)
- Binære søgetræer i med visitor pattern i CSharp

  Opgaver med binære træer (løs opgave BT01,BT02,BT03 og BT04 til tirsdag)  
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Tirsdag  08:30 - 11:50  Træer fortsat
Generiske datastrukturer og interfaces
Visitor pattern
Materiale se mandag
Generiske datastrukturer (template baserede) - her en dårlig stak 173_StackTemplate
  Introduktion til grafer
 

 

http://msdn.microsoft.com/en-us/library/ms379574.aspx
Note om grafer af Niels Otto Knudsen

Gennemgang af datastrukturen graf ift. implementering - YouTube-video

  Opgaver:
Opgaver med binære træer (løs opgave BT05)

Oplæg til bredere obligatorisk opgave i sproglære og grafer - opgaven vil blive opdelt i delopgaver over de næste uger, så der til sidst gerne skulle kunne ses en samlet løsning.
delopgave 1) Med udgangspunkt i oplæggets bilag med ruteplan skal du finde frem til hvilke knuder og kanter og tegne en graf, der svarer til ruteplanen. Når du får lavet et grafprogram, kan du bruge ruteplan-grafen som testdata.

GrafOpgaver - programmering

 
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Onsdag  08:30 - 11:50  Graf algoritmer
- bredde- og dybde-traversering
- minimum spanning tree (ikke nået - gennemgås torsdag og igen næste tirsdag)
- shortest path (ikke nået - gennemgås næste tirsdag)
Om grafer: se tirsdag

Prims algoritme på graf - minimum spanning tree  - YouTube-video
Prims algoritme: javakode og applet for simulering af algoritme

Kruskals algoritme på graf - minimum spanning tree  - YouTube-video
Kruskals algoritme: javakode og applet for simulering af algoritme

Gennemgang af Dijkstra's "Shoretst Path" algoritme i en graf - YouTube-video
Simulerings af Dijkstra's algoritme

  Opgaver Se mandag og tirsdag  
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Torsdag  08:30 - 11:50  Graf algoritmer
- dybdetraversering (kode uden recursion men med brug af stak)
- minimum spanning tree
 

Opgaveløsning med lærerstøtte (Bjørk)

Om grafer: se tirsdag og onsdag

Oplæg til bredere obligatorisk opgave i sproglære og grafer - opgaven vil blive opdelt i delopgaver over de næste uger, så der til sidst gerne skulle kunne ses en samlet løsning.
delopgave 1) Med udgangspunkt i oplæggets bilag med ruteplan skal du finde frem til hvilke knuder og kanter og tegne en graf, der svarer til ruteplanen.
delopgave 2) Du skal have lavet en grafklasse og et program, der med brug af denne kan løse grafspørgsmålene med brug af ruteplan-grafen som testdata.

     
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Fredag  08:30 - 11:50  Opgaveløsning med lærerstøtte (Bjørk) Om grafer: se tirsdag og onsdag
  Opgaver Se mandag og tirsdag  
     
Afleveringsopgaver (obligatoriske) denne uge: Opgave BT05 - næste uge skal grafdelen af den obligatoriske opgave være løst (du skal have en graf, der kan indeholde en ruteplan og løse algoritmerne på disse)
(*) Core C# and .NET, Stephen C. Perry - se BlackBoard
(**) .Net Application Development with C#..., Hanspeter Mössenböck - se BlackBoard
(***) C# To the point -.., Hanspeter Mössenböck -   - se BlackBoard
 
 
 
 
Uge 48
Dag Tidspunkt Emne Litteratur / Opgaver
Mandag  08:30 - 11:50  Opgaveløsning uden lærerstøtte

 

Opgave se nederst i ugeplanen for denne uge
     
12:30 - 14:30 (reserveret CDS - standard server projekt) - uden lærerstøtte  
Tirsdag  08:30 - 11:50  Graf algoritmer
- evt. repetition af bredde- og dybde-traverserin
- minimum spanning tree
- shortest path
Materiale om grafer fra sidste uge:

http://msdn.microsoft.com/en-us/library/ms379574.aspx
Note om grafer af Niels Otto Knudsen

Gennemgang af datastrukturen graf ift. implementering - YouTube-video

Prims algoritme på graf - minimum spanning tree  - YouTube-video
Prims algoritme: javakode og applet for simulering af algoritme

Kruskals algoritme på graf - minimum spanning tree  - YouTube-video
Kruskals algoritme: javakode og applet for simulering af algoritme

Gennemgang af Dijkstra's "Shoretst Path" algoritme i en graf - YouTube-video
Simulerings af Dijkstra's algoritme

 
  Oplæg til datastruktur / objektmodel for ruteplanen i den stillede opgave.
- modellen skal kunne indeholde informationer fra ruteplanen, men i denne del sættes den konkrete plan direkte ind i strukturen uden indlæsning og tolkning fra tekstfilen.
Opgave se nederst i ugeplanen for denne uge
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Onsdag  08:30 - 11:50  Plan følger efter undervisningen tirsdag - jeg kan muligvis få tid til lidt opsamling, men ellers vil der kun blive delvis lærerstøtte onsdag
 
Opgave se nederst i ugeplanen for denne uge
     
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Torsdag  08:30 - 11:50  Opgaveløsning uden lærerstøtte Opgave se nederst i ugeplanen for denne uge
     
12:30 - 14:30 (reserveret CDS - standard server projekt)- uden lærerstøtte  
Fredag  08:30 - 11:50  Afslutning af emnet grafer
evt. oplæg til sproglære
 
     
     
Afleveringsopgaver (obligatoriske) denne uge: Ruteplansopgave - frem til delopgave 4

Oplæg til bredere obligatorisk opgave i sproglære og grafer - opgaven vil blive opdelt i delopgaver over de næste uger, så der til sidst gerne skulle kunne ses en samlet løsning.
delopgave 1) Med udgangspunkt i oplæggets bilag med ruteplan skal du finde frem til hvilke knuder og kanter og tegne en graf, der svarer til ruteplanen.
delopgave 2) Du skal have lavet en grafklasse og et program, der med brug af denne kan løse grafspørgsmålene med brug af ruteplan-grafen som testdata.
delopgave 3) Der skal laves en datastruktur, der kan indeholde informationen fra den beskrevne ruteplan (oplæg/idé gennemgås tirsdag denne uge)
delopgave 4) Der skal laves en rutine, der ud fra data i ruteplan-modellen kan danne grafen.

(*) Core C# and .NET, Stephen C. Perry - se BlackBoard
(**) .Net Application Development with C#..., Hanspeter Mössenböck - se BlackBoard
(***) C# To the point -.., Hanspeter Mössenböck -   - se BlackBoard