[{"data":1,"prerenderedAt":3174},["ShallowReactive",2],{"book-hierarchy":3,"content-query-stcyHjdxlk":1073},[4,262,999],{"key":5,"slug":5,"title":6,"cleanTitle":6,"numberedTitle":7,"description":8,"path":9,"basePath":10,"filePath":11,"pageType":12,"hidden":13,"effectiveHidden":13,"order":14,"depth":14,"number":15,"ownAudience":16,"audiences":17,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":22},"01_programmierung","Programmierung","I Programmierung","Grundlagen der Programmierung.","/01_programmierung/de","/01_programmierung","content/01_Programmierung/de.md","chapter",false,1,"I","Sek I",[16],"cover-de-light.png","cover-en-light.png","cover-de-dark.png","cover-en-dark.png",[23,37,250],{"key":24,"slug":25,"title":26,"cleanTitle":26,"numberedTitle":27,"description":28,"path":29,"basePath":30,"filePath":31,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":33,"number":34,"ownAudience":16,"audiences":35,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":36},"01_programmierung/01_python","01_python","Python","I.1 Python","Einführung in die Programmiersprache Python.","/01_programmierung/01_python/de","/01_programmierung/01_python","content/01_Programmierung/01_Python/de.md","content",2,"I.1",[16],[],{"key":38,"slug":39,"title":40,"cleanTitle":40,"numberedTitle":41,"description":42,"path":43,"basePath":44,"filePath":45,"pageType":12,"hidden":13,"effectiveHidden":13,"order":33,"depth":33,"number":46,"ownAudience":16,"audiences":47,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":48},"01_programmierung/02_java","02_java","Java","I.2 Java","Objektorientierte Programmierung mit Java: von OOP-Grundlagen bis zu Projekten.","/01_programmierung/02_java/de","/01_programmierung/02_java","content/01_Programmierung/02_Java/de.md","I.2",[16],[49,139,190,202,214],{"key":50,"slug":51,"title":52,"cleanTitle":52,"numberedTitle":53,"description":54,"path":55,"basePath":56,"filePath":57,"pageType":58,"hidden":13,"effectiveHidden":13,"order":14,"depth":59,"number":60,"ownAudience":16,"audiences":61,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":63},"01_programmierung/02_java/01_oop_teil_i","01_oop_teil_i","OOP Teil I","I.2.1 OOP Teil I","Grundlagen der objektorientierten Programmierung mit Java.","/01_programmierung/02_java/01_oop_teil_i/de","/01_programmierung/02_java/01_oop_teil_i","content/01_Programmierung/02_Java/01_OOP_Teil_I/de.md","overview",3,"I.2.1",[16],"",[64,78,90,102,114,126],{"key":65,"slug":66,"title":67,"cleanTitle":67,"numberedTitle":68,"description":69,"path":70,"basePath":71,"filePath":72,"pageType":32,"hidden":13,"effectiveHidden":13,"order":73,"depth":74,"number":75,"ownAudience":16,"audiences":76,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":77},"01_programmierung/02_java/01_oop_teil_i/00_uebersicht_installation","00_uebersicht_installation","Uebersicht und Installation","I.2.1.1 Uebersicht und Installation","Programmierparadigmen, Java-Grundidee und Einrichtung der Entwicklungsumgebung.","/01_programmierung/02_java/01_oop_teil_i/00_uebersicht_installation/de","/01_programmierung/02_java/01_oop_teil_i/00_uebersicht_installation","content/01_Programmierung/02_Java/01_OOP_Teil_I/00_Uebersicht_Installation/de.md",0,4,"I.2.1.1",[16],[],{"key":79,"slug":80,"title":81,"cleanTitle":81,"numberedTitle":82,"description":83,"path":84,"basePath":85,"filePath":86,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":74,"number":87,"ownAudience":16,"audiences":88,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":89},"01_programmierung/02_java/01_oop_teil_i/01_klassen_und_objekte","01_klassen_und_objekte","Klassen und Objekte","I.2.1.2 Klassen und Objekte","Modellierung mit Klassen, Attribute, Methoden und erste Objektinstanzen.","/01_programmierung/02_java/01_oop_teil_i/01_klassen_und_objekte/de","/01_programmierung/02_java/01_oop_teil_i/01_klassen_und_objekte","content/01_Programmierung/02_Java/01_OOP_Teil_I/01_Klassen_und_Objekte/de.md","I.2.1.2",[16],[],{"key":91,"slug":92,"title":93,"cleanTitle":93,"numberedTitle":94,"description":95,"path":96,"basePath":97,"filePath":98,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":74,"number":99,"ownAudience":16,"audiences":100,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":101},"01_programmierung/02_java/01_oop_teil_i/02_datentypen_methoden_parameter","02_datentypen_methoden_parameter","Datentypen, Methoden und Parameter","I.2.1.3 Datentypen, Methoden und Parameter","Primitive Typen, lokale Variablen, Methodensignaturen und Rueckgabewerte.","/01_programmierung/02_java/01_oop_teil_i/02_datentypen_methoden_parameter/de","/01_programmierung/02_java/01_oop_teil_i/02_datentypen_methoden_parameter","content/01_Programmierung/02_Java/01_OOP_Teil_I/02_Datentypen_Methoden_Parameter/de.md","I.2.1.3",[16],[],{"key":103,"slug":104,"title":105,"cleanTitle":105,"numberedTitle":106,"description":107,"path":108,"basePath":109,"filePath":110,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":74,"number":111,"ownAudience":16,"audiences":112,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":113},"01_programmierung/02_java/01_oop_teil_i/03_attribute_kapselung_setter_getter","03_attribute_kapselung_setter_getter","Attribute, Kapselung, Setter und Getter","I.2.1.4 Attribute, Kapselung, Setter und Getter","Saubere Objektzustaende durch Zugriffskontrolle und kontrollierte Schnittstellen.","/01_programmierung/02_java/01_oop_teil_i/03_attribute_kapselung_setter_getter/de","/01_programmierung/02_java/01_oop_teil_i/03_attribute_kapselung_setter_getter","content/01_Programmierung/02_Java/01_OOP_Teil_I/03_Attribute_Kapselung_Setter_Getter/de.md","I.2.1.4",[16],[],{"key":115,"slug":116,"title":117,"cleanTitle":117,"numberedTitle":118,"description":119,"path":120,"basePath":121,"filePath":122,"pageType":32,"hidden":13,"effectiveHidden":13,"order":74,"depth":74,"number":123,"ownAudience":16,"audiences":124,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":125},"01_programmierung/02_java/01_oop_teil_i/04_new_konstruktoren_ueberladen","04_new_konstruktoren_ueberladen","new, Konstruktoren und Ueberladen","I.2.1.5 new, Konstruktoren und Ueberladen","Objekte gezielt erzeugen und flexible Schnittstellen durch Ueberladen entwerfen.","/01_programmierung/02_java/01_oop_teil_i/04_new_konstruktoren_ueberladen/de","/01_programmierung/02_java/01_oop_teil_i/04_new_konstruktoren_ueberladen","content/01_Programmierung/02_Java/01_OOP_Teil_I/04_New_Konstruktoren_Ueberladen/de.md","I.2.1.5",[16],[],{"key":127,"slug":128,"title":129,"cleanTitle":129,"numberedTitle":130,"description":131,"path":132,"basePath":133,"filePath":134,"pageType":32,"hidden":13,"effectiveHidden":13,"order":135,"depth":74,"number":136,"ownAudience":16,"audiences":137,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":138},"01_programmierung/02_java/01_oop_teil_i/05_vererbung_abstrakte_klassen","05_vererbung_abstrakte_klassen","Vererbung und abstrakte Klassen","I.2.1.6 Vererbung und abstrakte Klassen","Code wiederverwenden, Spezialisierungen bilden und gemeinsame Schnittstellen sichern.","/01_programmierung/02_java/01_oop_teil_i/05_vererbung_abstrakte_klassen/de","/01_programmierung/02_java/01_oop_teil_i/05_vererbung_abstrakte_klassen","content/01_Programmierung/02_Java/01_OOP_Teil_I/05_Vererbung_Abstrakte_Klassen/de.md",5,"I.2.1.6",[16],[],{"key":140,"slug":141,"title":142,"cleanTitle":142,"numberedTitle":143,"description":144,"path":145,"basePath":146,"filePath":147,"pageType":58,"hidden":13,"effectiveHidden":13,"order":33,"depth":59,"number":148,"ownAudience":16,"audiences":149,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":150},"01_programmierung/02_java/02_schleifen_arrays_statischemethoden","02_schleifen_arrays_statischemethoden","Schleifen, Arrays und statische Methoden","I.2.2 Schleifen, Arrays und statische Methoden","Kontrollstrukturen, Array-Datenstrukturen und der Einsatz von static.","/01_programmierung/02_java/02_schleifen_arrays_statischemethoden/de","/01_programmierung/02_java/02_schleifen_arrays_statischemethoden","content/01_Programmierung/02_Java/02_Schleifen_Arrays_StatischeMethoden/de.md","I.2.2",[16],[151,164,177],{"key":152,"slug":153,"title":154,"cleanTitle":154,"numberedTitle":155,"description":156,"path":157,"basePath":158,"filePath":159,"pageType":32,"hidden":13,"effectiveHidden":13,"order":160,"depth":74,"number":161,"ownAudience":16,"audiences":162,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":163},"01_programmierung/02_java/02_schleifen_arrays_statischemethoden/06_statische_variablen_und_methoden","06_statische_variablen_und_methoden","Statische Variablen und Methoden","I.2.2.1 Statische Variablen und Methoden","Unterschied zwischen Instanz- und Klassenebene in Java.","/01_programmierung/02_java/02_schleifen_arrays_statischemethoden/06_statische_variablen_und_methoden/de","/01_programmierung/02_java/02_schleifen_arrays_statischemethoden/06_statische_variablen_und_methoden","content/01_Programmierung/02_Java/02_Schleifen_Arrays_StatischeMethoden/06_Statische_Variablen_und_Methoden/de.md",6,"I.2.2.1",[16],[],{"key":165,"slug":166,"title":167,"cleanTitle":167,"numberedTitle":168,"description":169,"path":170,"basePath":171,"filePath":172,"pageType":32,"hidden":13,"effectiveHidden":13,"order":173,"depth":74,"number":174,"ownAudience":16,"audiences":175,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":176},"01_programmierung/02_java/02_schleifen_arrays_statischemethoden/07_arrays","07_arrays","Arrays","I.2.2.2 Arrays","Ein- und mehrdimensionale Arrays, Initialisierung und typische Fehlerquellen.","/01_programmierung/02_java/02_schleifen_arrays_statischemethoden/07_arrays/de","/01_programmierung/02_java/02_schleifen_arrays_statischemethoden/07_arrays","content/01_Programmierung/02_Java/02_Schleifen_Arrays_StatischeMethoden/07_Arrays/de.md",7,"I.2.2.2",[16],[],{"key":178,"slug":179,"title":180,"cleanTitle":180,"numberedTitle":181,"description":182,"path":183,"basePath":184,"filePath":185,"pageType":32,"hidden":13,"effectiveHidden":13,"order":186,"depth":74,"number":187,"ownAudience":16,"audiences":188,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":189},"01_programmierung/02_java/02_schleifen_arrays_statischemethoden/08_schleifen_und_uebungen","08_schleifen_und_uebungen","Schleifen und Uebungen","I.2.2.3 Schleifen und Uebungen","for- und while-Schleifen, Summenformeln, Suche und verschachtelte Iteration.","/01_programmierung/02_java/02_schleifen_arrays_statischemethoden/08_schleifen_und_uebungen/de","/01_programmierung/02_java/02_schleifen_arrays_statischemethoden/08_schleifen_und_uebungen","content/01_Programmierung/02_Java/02_Schleifen_Arrays_StatischeMethoden/08_Schleifen_und_Uebungen/de.md",8,"I.2.2.3",[16],[],{"key":191,"slug":192,"title":193,"cleanTitle":193,"numberedTitle":194,"description":195,"path":196,"basePath":197,"filePath":198,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":59,"number":199,"ownAudience":16,"audiences":200,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":201},"01_programmierung/02_java/03_strukturierenmitmethoden","03_strukturierenmitmethoden","Strukturieren mit Methoden","I.2.3 Strukturieren mit Methoden","Lange Methoden in klar abgegrenzte Teilmethoden zerlegen.","/01_programmierung/02_java/03_strukturierenmitmethoden/de","/01_programmierung/02_java/03_strukturierenmitmethoden","content/01_Programmierung/02_Java/03_StrukturierenMitMethoden/de.md","I.2.3",[16],[],{"key":203,"slug":204,"title":205,"cleanTitle":205,"numberedTitle":206,"description":207,"path":208,"basePath":209,"filePath":210,"pageType":32,"hidden":13,"effectiveHidden":13,"order":74,"depth":59,"number":211,"ownAudience":16,"audiences":212,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":213},"01_programmierung/02_java/04_gueltigkeitundsichtbarkeit","04_gueltigkeitundsichtbarkeit","Gueltigkeit und Sichtbarkeit","I.2.4 Gueltigkeit und Sichtbarkeit","Scope, Lebensdauer und Zugriffsregeln von Variablen und Attributen.","/01_programmierung/02_java/04_gueltigkeitundsichtbarkeit/de","/01_programmierung/02_java/04_gueltigkeitundsichtbarkeit","content/01_Programmierung/02_Java/04_GueltigkeitUndSichtbarkeit/de.md","I.2.4",[16],[],{"key":215,"slug":216,"title":217,"cleanTitle":217,"numberedTitle":218,"description":219,"path":220,"basePath":221,"filePath":222,"pageType":58,"hidden":13,"effectiveHidden":13,"order":74,"depth":59,"number":223,"ownAudience":16,"audiences":224,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":225},"01_programmierung/02_java/04_oop_teil_ii","04_oop_teil_ii","OOP Teil II","I.2.5 OOP Teil II","Vertiefung zu Polymorphie, Typisierung, Interfaces und Modellierungsfragen.","/01_programmierung/02_java/04_oop_teil_ii/de","/01_programmierung/02_java/04_oop_teil_ii","content/01_Programmierung/02_Java/04_OOP_Teil_II/de.md","I.2.5",[16],[226,238],{"key":227,"slug":228,"title":229,"cleanTitle":229,"numberedTitle":230,"description":231,"path":232,"basePath":233,"filePath":234,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":74,"number":235,"ownAudience":16,"audiences":236,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":237},"01_programmierung/02_java/04_oop_teil_ii/01_uebungen","01_uebungen","Uebungen und Vertiefung","I.2.5.1 Uebungen und Vertiefung","Kovarianz, Polymorphie, statische Typisierung und erlaubte Zuweisungen.","/01_programmierung/02_java/04_oop_teil_ii/01_uebungen/de","/01_programmierung/02_java/04_oop_teil_ii/01_uebungen","content/01_Programmierung/02_Java/04_OOP_Teil_II/01_Uebungen/de.md","I.2.5.1",[16],[],{"key":239,"slug":240,"title":241,"cleanTitle":241,"numberedTitle":242,"description":243,"path":244,"basePath":245,"filePath":246,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":74,"number":247,"ownAudience":16,"audiences":248,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":249},"01_programmierung/02_java/04_oop_teil_ii/02_projekt_zahlen","02_projekt_zahlen","Projekt Zahlen","I.2.5.2 Projekt Zahlen","Natuerliche, ganze und rationale Zahlen mit Interfaces und sauberem Klassendesign.","/01_programmierung/02_java/04_oop_teil_ii/02_projekt_zahlen/de","/01_programmierung/02_java/04_oop_teil_ii/02_projekt_zahlen","content/01_Programmierung/02_Java/04_OOP_Teil_II/02_Projekt_Zahlen/de.md","I.2.5.2",[16],[],{"key":251,"slug":252,"title":253,"cleanTitle":253,"numberedTitle":254,"description":255,"path":256,"basePath":257,"filePath":258,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":33,"number":259,"ownAudience":16,"audiences":260,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":261},"01_programmierung/03_cleancode","03_cleancode","Clean Code","I.3 Clean Code","Grundlagen für sauberen und lesbaren Code.","/01_programmierung/03_cleancode/de","/01_programmierung/03_cleancode","content/01_Programmierung/03_CleanCode/de.md","I.3",[16],[],{"key":263,"slug":263,"title":264,"cleanTitle":264,"numberedTitle":265,"description":266,"path":267,"basePath":268,"filePath":269,"pageType":12,"hidden":13,"effectiveHidden":13,"order":186,"depth":14,"number":270,"ownAudience":62,"audiences":271,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":272},"08_kuenstlicheintelligenz","Künstliche Intelligenz","II Künstliche Intelligenz","Maschinelles Lernen und intelligente Systeme.","/08_kuenstlicheintelligenz/de","/08_kuenstlicheintelligenz","content/08_KuenstlicheIntelligenz/de.md","II",[16],[273,359,407,827,949],{"key":274,"slug":275,"title":276,"cleanTitle":276,"numberedTitle":277,"description":278,"path":279,"basePath":280,"filePath":281,"pageType":58,"hidden":13,"effectiveHidden":13,"order":14,"depth":33,"number":282,"ownAudience":62,"audiences":283,"coverDeLight":284,"coverEnLight":285,"coverDeDark":286,"coverEnDark":287,"children":288},"08_kuenstlicheintelligenz/01_was_ist_ki","01_was_ist_ki","Einführung in das Maschinelle Lernen","II.1 Einführung in das Maschinelle Lernen","Ein Überblick über die fundamentalen Konzepte des Maschinellen Lernens.","/08_kuenstlicheintelligenz/01_was_ist_ki/de","/08_kuenstlicheintelligenz/01_was_ist_ki","content/08_KuenstlicheIntelligenz/01_was_ist_ki/de.md","II.1",[16],"cover-de-light.webp","cover-en-light.webp","cover-de-dark.webp","cover-en-dark.webp",[289,300,312,323,335,347],{"key":290,"slug":291,"title":264,"cleanTitle":264,"numberedTitle":292,"description":293,"path":294,"basePath":295,"filePath":296,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":59,"number":297,"ownAudience":16,"audiences":298,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":299},"08_kuenstlicheintelligenz/01_was_ist_ki/01-kuenstliche-intelligenz","01-kuenstliche-intelligenz","II.1.1 Künstliche Intelligenz","Unterseite zu Künstliche Intelligenz","/08_kuenstlicheintelligenz/01_was_ist_ki/01-kuenstliche-intelligenz/de","/08_kuenstlicheintelligenz/01_was_ist_ki/01-kuenstliche-intelligenz","content/08_KuenstlicheIntelligenz/01_was_ist_ki/01-kuenstliche-intelligenz/de.md","II.1.1",[16],[],{"key":301,"slug":302,"title":303,"cleanTitle":303,"numberedTitle":304,"description":305,"path":306,"basePath":307,"filePath":308,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":59,"number":309,"ownAudience":16,"audiences":310,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":311},"08_kuenstlicheintelligenz/01_was_ist_ki/02-was-ist-ml","02-was-ist-ml","Was ist ML","II.1.2 Was ist ML","Eine Einführung in die Grundlagen des Maschinellen Lernens.","/08_kuenstlicheintelligenz/01_was_ist_ki/02-was-ist-ml/de","/08_kuenstlicheintelligenz/01_was_ist_ki/02-was-ist-ml","content/08_KuenstlicheIntelligenz/01_was_ist_ki/02-was-ist-ml/de.md","II.1.2",[16],[],{"key":313,"slug":314,"title":315,"cleanTitle":315,"numberedTitle":316,"description":62,"path":317,"basePath":318,"filePath":319,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":59,"number":320,"ownAudience":16,"audiences":321,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":322},"08_kuenstlicheintelligenz/01_was_ist_ki/03-datascience_und_datenarten","03-datascience_und_datenarten","Qualitative und quantitative Merkmale","II.1.3 Qualitative und quantitative Merkmale","/08_kuenstlicheintelligenz/01_was_ist_ki/03-datascience_und_datenarten/de","/08_kuenstlicheintelligenz/01_was_ist_ki/03-datascience_und_datenarten","content/08_KuenstlicheIntelligenz/01_was_ist_ki/03-DataScience_und_Datenarten/de.md","II.1.3",[16],[],{"key":324,"slug":325,"title":326,"cleanTitle":326,"numberedTitle":327,"description":328,"path":329,"basePath":330,"filePath":331,"pageType":32,"hidden":13,"effectiveHidden":13,"order":74,"depth":59,"number":332,"ownAudience":16,"audiences":333,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":334},"08_kuenstlicheintelligenz/01_was_ist_ki/04_featureextraction","04_featureextraction","Feature Extraction","II.1.4 Feature Extraction","Von Rohdaten wie Audioaufnahmen zu Merkmalen und Datensätzen.","/08_kuenstlicheintelligenz/01_was_ist_ki/04_featureextraction/de","/08_kuenstlicheintelligenz/01_was_ist_ki/04_featureextraction","content/08_KuenstlicheIntelligenz/01_was_ist_ki/04_featureextraction/de.md","II.1.4",[16],[],{"key":336,"slug":337,"title":338,"cleanTitle":338,"numberedTitle":339,"description":340,"path":341,"basePath":342,"filePath":343,"pageType":32,"hidden":13,"effectiveHidden":13,"order":135,"depth":59,"number":344,"ownAudience":16,"audiences":345,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":346},"08_kuenstlicheintelligenz/01_was_ist_ki/05-lernparadigmen_von_ml","05-lernparadigmen_von_ml","Arten von ML","II.1.5 Arten von ML","Ueberblick ueber Ueberwachtes, Unueberwachtes und Verstaerkendes Lernen.","/08_kuenstlicheintelligenz/01_was_ist_ki/05-lernparadigmen_von_ml/de","/08_kuenstlicheintelligenz/01_was_ist_ki/05-lernparadigmen_von_ml","content/08_KuenstlicheIntelligenz/01_was_ist_ki/05-lernparadigmen_von_ml/de.md","II.1.5",[16],[],{"key":348,"slug":349,"title":350,"cleanTitle":350,"numberedTitle":351,"description":352,"path":353,"basePath":354,"filePath":355,"pageType":32,"hidden":13,"effectiveHidden":13,"order":160,"depth":59,"number":356,"ownAudience":16,"audiences":357,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":358},"08_kuenstlicheintelligenz/01_was_ist_ki/06-ueberblick","06-ueberblick","Ueberblick","II.1.6 Ueberblick","Zusammenfassung der wichtigsten Begriffe aus dem Unterkapitel Was ist KI.","/08_kuenstlicheintelligenz/01_was_ist_ki/06-ueberblick/de","/08_kuenstlicheintelligenz/01_was_ist_ki/06-ueberblick","content/08_KuenstlicheIntelligenz/01_was_ist_ki/06-ueberblick/de.md","II.1.6",[16],[],{"key":360,"slug":361,"title":362,"cleanTitle":362,"numberedTitle":363,"description":364,"path":365,"basePath":366,"filePath":367,"pageType":12,"hidden":13,"effectiveHidden":13,"order":33,"depth":33,"number":368,"ownAudience":62,"audiences":369,"coverDeLight":284,"coverEnLight":285,"coverDeDark":286,"coverEnDark":287,"children":370},"08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele","grundlagen-und-datenbeispiele","Grundlagen und Datensatzbeispiele","II.2 Grundlagen und Datensatzbeispiele","Unterseite zu Grundlagen und Datensatzbeispiele","/08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/de","/08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele","content/08_KuenstlicheIntelligenz/grundlagen-und-datenbeispiele/de.md","II.2",[],[371,383,395],{"key":372,"slug":373,"title":374,"cleanTitle":374,"numberedTitle":375,"description":376,"path":377,"basePath":378,"filePath":379,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":59,"number":380,"ownAudience":62,"audiences":381,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":382},"08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/datensatzbeispiele","datensatzbeispiele","Datenarten und Datensatzbeispiele","II.2.1 Datenarten und Datensatzbeispiele","Unterseite zu Datensatzbeispiele","/08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/datensatzbeispiele/de","/08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/datensatzbeispiele","content/08_KuenstlicheIntelligenz/grundlagen-und-datenbeispiele/datensatzbeispiele/de.md","II.2.1",[],[],{"key":384,"slug":385,"title":386,"cleanTitle":386,"numberedTitle":387,"description":388,"path":389,"basePath":390,"filePath":391,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":59,"number":392,"ownAudience":62,"audiences":393,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":394},"08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/dinstanzm","dinstanzm","Distanzmaße","II.2.2 Distanzmaße","Unterseite zu Distanzmaße","/08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/dinstanzm/de","/08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/dinstanzm","content/08_KuenstlicheIntelligenz/grundlagen-und-datenbeispiele/dinstanzm/de.md","II.2.2",[],[],{"key":396,"slug":397,"title":398,"cleanTitle":398,"numberedTitle":399,"description":400,"path":401,"basePath":402,"filePath":403,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":59,"number":404,"ownAudience":62,"audiences":405,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":406},"08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/suche","suche","Suche, Precision und Recall","II.2.3 Suche, Precision und Recall","Unterseite zu Suche, Precision und Recall","/08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/suche/de","/08_kuenstlicheintelligenz/grundlagen-und-datenbeispiele/suche","content/08_KuenstlicheIntelligenz/grundlagen-und-datenbeispiele/suche/de.md","II.2.3",[],[],{"key":408,"slug":409,"title":410,"cleanTitle":410,"numberedTitle":411,"description":412,"path":413,"basePath":414,"filePath":415,"pageType":12,"hidden":13,"effectiveHidden":13,"order":59,"depth":33,"number":416,"ownAudience":62,"audiences":417,"coverDeLight":284,"coverEnLight":285,"coverDeDark":286,"coverEnDark":287,"children":418},"08_kuenstlicheintelligenz/02_supervisedlearning","02_supervisedlearning","Überwachtes Lernen","II.3 Überwachtes Lernen","Unterseite zu 02_supervisedlearning","/08_kuenstlicheintelligenz/02_supervisedlearning/de","/08_kuenstlicheintelligenz/02_supervisedlearning","content/08_KuenstlicheIntelligenz/02_supervisedlearning/de.md","II.3",[16],[419,515,527,563,575,815],{"key":420,"slug":421,"title":422,"cleanTitle":422,"numberedTitle":423,"description":424,"path":425,"basePath":426,"filePath":427,"pageType":58,"hidden":13,"effectiveHidden":13,"order":14,"depth":59,"number":428,"ownAudience":62,"audiences":429,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":430},"08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl","01_grundlagen_des_sl","Grundlagen des Supervised Learnings","II.3.1 Grundlagen des Supervised Learnings","Unterseite zu Grundlagen des Supervised Learnings","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/de","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl","content/08_KuenstlicheIntelligenz/02_supervisedlearning/01_grundlagen_des_sl/de.md","II.3.1",[16],[431,443,455,467,479,491,503],{"key":432,"slug":433,"title":434,"cleanTitle":434,"numberedTitle":435,"description":436,"path":437,"basePath":438,"filePath":439,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":74,"number":440,"ownAudience":62,"audiences":441,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":442},"08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/02_klassifikation_mit_entscheidungsbaumen","02_klassifikation_mit_entscheidungsbaumen","Klassifikation mit Entscheidungsbäumen","II.3.1.1 Klassifikation mit Entscheidungsbäumen","Unterseite zu Klassifikation mit Entscheidungsbäumen","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/02_klassifikation_mit_entscheidungsbaumen/de","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/02_klassifikation_mit_entscheidungsbaumen","content/08_KuenstlicheIntelligenz/02_supervisedlearning/01_grundlagen_des_sl/02_klassifikation_mit_entscheidungsbaumen/de.md","II.3.1.1",[],[],{"key":444,"slug":445,"title":446,"cleanTitle":446,"numberedTitle":447,"description":448,"path":449,"basePath":450,"filePath":451,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":74,"number":452,"ownAudience":62,"audiences":453,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":454},"08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/03_regression_mit_entscheidungsbaemen","03_regression_mit_entscheidungsbaemen","Regression mit Entscheidungsbäumen","II.3.1.2 Regression mit Entscheidungsbäumen","Unterseite zu Regression mit Entscheidungsbäumen","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/03_regression_mit_entscheidungsbaemen/de","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/03_regression_mit_entscheidungsbaemen","content/08_KuenstlicheIntelligenz/02_supervisedlearning/01_grundlagen_des_sl/03_regression_mit_entscheidungsbaemen/de.md","II.3.1.2",[],[],{"key":456,"slug":457,"title":458,"cleanTitle":458,"numberedTitle":459,"description":460,"path":461,"basePath":462,"filePath":463,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":74,"number":464,"ownAudience":62,"audiences":465,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":466},"08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/01_problemstellungen_des_sl","01_problemstellungen_des_sl","Aufgabenstellungen des Überwachten Lernens","II.3.1.3 Aufgabenstellungen des Überwachten Lernens","Unterseite zu Aufgabenstellungen des Überwachten Lernens","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/01_problemstellungen_des_sl/de","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/01_problemstellungen_des_sl","content/08_KuenstlicheIntelligenz/02_supervisedlearning/01_grundlagen_des_sl/01_problemstellungen_des_sl/de.md","II.3.1.3",[],[],{"key":468,"slug":469,"title":470,"cleanTitle":470,"numberedTitle":471,"description":472,"path":473,"basePath":474,"filePath":475,"pageType":32,"hidden":13,"effectiveHidden":13,"order":74,"depth":74,"number":476,"ownAudience":62,"audiences":477,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":478},"08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/04_beurteilung_von_klassifikatoren","04_beurteilung_von_klassifikatoren","Beurteilung von Klassifikatoren","II.3.1.4 Beurteilung von Klassifikatoren","Unterseite zu 04_beurteilung_von_klassifikatoren","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/04_beurteilung_von_klassifikatoren/de","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/04_beurteilung_von_klassifikatoren","content/08_KuenstlicheIntelligenz/02_supervisedlearning/01_grundlagen_des_sl/04_beurteilung_von_klassifikatoren/de.md","II.3.1.4",[],[],{"key":480,"slug":481,"title":482,"cleanTitle":482,"numberedTitle":483,"description":484,"path":485,"basePath":486,"filePath":487,"pageType":32,"hidden":13,"effectiveHidden":13,"order":135,"depth":74,"number":488,"ownAudience":62,"audiences":489,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":490},"08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/05_beurteilung_von_regressionsmodellen","05_beurteilung_von_regressionsmodellen","Beurteilung von Modellen der Regression","II.3.1.5 Beurteilung von Modellen der Regression","Unterseite zu Beurteilung von Modellen der Regression","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/05_beurteilung_von_regressionsmodellen/de","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/05_beurteilung_von_regressionsmodellen","content/08_KuenstlicheIntelligenz/02_supervisedlearning/01_grundlagen_des_sl/05_beurteilung_von_regressionsmodellen/de.md","II.3.1.5",[],[],{"key":492,"slug":493,"title":494,"cleanTitle":494,"numberedTitle":495,"description":496,"path":497,"basePath":498,"filePath":499,"pageType":32,"hidden":13,"effectiveHidden":13,"order":160,"depth":74,"number":500,"ownAudience":16,"audiences":501,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":502},"08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/01-lineare-regression","01-lineare-regression","Lineare Regression","II.3.1.6 Lineare Regression","Grundlagen der linearen Regression im überwachten Lernen.","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/01-lineare-regression/de","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/01-lineare-regression","content/08_KuenstlicheIntelligenz/02_supervisedlearning/01_grundlagen_des_sl/01-lineare-regression/de.md","II.3.1.6",[16],[],{"key":504,"slug":505,"title":506,"cleanTitle":506,"numberedTitle":507,"description":508,"path":509,"basePath":510,"filePath":511,"pageType":32,"hidden":13,"effectiveHidden":13,"order":173,"depth":74,"number":512,"ownAudience":62,"audiences":513,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":514},"08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/06_diskriminative_vs_generative_modellederklassifikation","06_diskriminative_vs_generative_modellederklassifikation","Diskriminative und Generative Modelle der Klassifikation","II.3.1.7 Diskriminative und Generative Modelle der Klassifikation","Unterseite zu Diskriminative und Generative Modelle der Klassifikation","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/06_diskriminative_vs_generative_modellederklassifikation/de","/08_kuenstlicheintelligenz/02_supervisedlearning/01_grundlagen_des_sl/06_diskriminative_vs_generative_modellederklassifikation","content/08_KuenstlicheIntelligenz/02_supervisedlearning/01_grundlagen_des_sl/06_diskriminative_vs_generative_modellederklassifikation/de.md","II.3.1.7",[],[],{"key":516,"slug":517,"title":518,"cleanTitle":518,"numberedTitle":519,"description":520,"path":521,"basePath":522,"filePath":523,"pageType":12,"hidden":13,"effectiveHidden":13,"order":33,"depth":59,"number":524,"ownAudience":62,"audiences":525,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":526},"08_kuenstlicheintelligenz/02_supervisedlearning/03_knn","03_knn","KNN","II.3.2 KNN","Unterseite zu KNN","/08_kuenstlicheintelligenz/02_supervisedlearning/03_knn/de","/08_kuenstlicheintelligenz/02_supervisedlearning/03_knn","content/08_KuenstlicheIntelligenz/02_supervisedlearning/03_knn/de.md","II.3.2",[],[],{"key":528,"slug":529,"title":530,"cleanTitle":530,"numberedTitle":531,"description":532,"path":533,"basePath":534,"filePath":535,"pageType":12,"hidden":13,"effectiveHidden":13,"order":59,"depth":59,"number":536,"ownAudience":62,"audiences":537,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":538},"08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn","02_fnn","FNNs","II.3.3 FNNs","Unterseite zu FNNs","/08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn/de","/08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn","content/08_KuenstlicheIntelligenz/02_supervisedlearning/02_fnn/de.md","II.3.3",[16],[539,551],{"key":540,"slug":541,"title":542,"cleanTitle":542,"numberedTitle":543,"description":544,"path":545,"basePath":546,"filePath":547,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":74,"number":548,"ownAudience":16,"audiences":549,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":550},"08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn/aktivierungsfunktionen","aktivierungsfunktionen","Aktivierungsfunktionen","II.3.3.1 Aktivierungsfunktionen","Unterseite zu Aktivierungsfunktionen","/08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn/aktivierungsfunktionen/de","/08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn/aktivierungsfunktionen","content/08_KuenstlicheIntelligenz/02_supervisedlearning/02_fnn/aktivierungsfunktionen/de.md","II.3.3.1",[16],[],{"key":552,"slug":553,"title":554,"cleanTitle":554,"numberedTitle":555,"description":556,"path":557,"basePath":558,"filePath":559,"pageType":32,"hidden":13,"effectiveHidden":13,"order":-4,"depth":74,"number":560,"ownAudience":62,"audiences":561,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":562},"08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn/kunstliche-neuronen","kunstliche-neuronen","Künstliche Neuronen","II.3.3.2 Künstliche Neuronen","Unterseite zu Künstliche Neuronen","/08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn/kunstliche-neuronen/de","/08_kuenstlicheintelligenz/02_supervisedlearning/02_fnn/kunstliche-neuronen","content/08_KuenstlicheIntelligenz/02_supervisedlearning/02_fnn/kunstliche-neuronen/de.md","II.3.3.2",[],[],{"key":564,"slug":565,"title":566,"cleanTitle":566,"numberedTitle":567,"description":568,"path":569,"basePath":570,"filePath":571,"pageType":58,"hidden":13,"effectiveHidden":13,"order":74,"depth":59,"number":572,"ownAudience":62,"audiences":573,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":574},"08_kuenstlicheintelligenz/02_supervisedlearning/04_svms","04_svms","SVMs","II.3.4 SVMs","Unterseite zu SVMs","/08_kuenstlicheintelligenz/02_supervisedlearning/04_svms/de","/08_kuenstlicheintelligenz/02_supervisedlearning/04_svms","content/08_KuenstlicheIntelligenz/02_supervisedlearning/04_svms/de.md","II.3.4",[],[],{"key":576,"slug":577,"title":578,"cleanTitle":578,"numberedTitle":579,"description":580,"path":581,"basePath":582,"filePath":583,"pageType":12,"hidden":13,"effectiveHidden":13,"order":160,"depth":59,"number":584,"ownAudience":62,"audiences":585,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":586},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung","05_verfahren_zur_modellanpassung","Verfahren zur Modellanpassung","II.3.5 Verfahren zur Modellanpassung","Wie Modelle ihre Parameter an Trainingsdaten anpassen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/de.md","II.3.5",[],[587,671,743],{"key":588,"slug":589,"title":590,"cleanTitle":590,"numberedTitle":591,"description":592,"path":593,"basePath":594,"filePath":595,"pageType":58,"hidden":13,"effectiveHidden":13,"order":14,"depth":74,"number":596,"ownAudience":62,"audiences":597,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":598},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung","01_gradientenbasierte_optimierung","Gradientenbasierte Optimierung beim Training von FNNs","II.3.5.1 Gradientenbasierte Optimierung beim Training von FNNs","Parameter schrittweise mit Hilfe von Gradienten verbessern","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/de.md","II.3.5.1",[],[599,611,623,635,647,659],{"key":600,"slug":601,"title":602,"cleanTitle":602,"numberedTitle":603,"description":604,"path":605,"basePath":606,"filePath":607,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":135,"number":608,"ownAudience":62,"audiences":609,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":610},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/funktionenbeimfnn-training","funktionenbeimfnn-training","Optimierungsproblem: Training von FNNs","II.3.5.1.1 Optimierungsproblem: Training von FNNs","Wie lassen sich die Parameter eines FNNs zur Vorhersage eines Trainingsdatensatzes anpassen?","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/funktionenbeimfnn-training/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/funktionenbeimfnn-training","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/funktionenbeimfnn-training/de.md","II.3.5.1.1",[],[],{"key":612,"slug":613,"title":614,"cleanTitle":614,"numberedTitle":615,"description":616,"path":617,"basePath":618,"filePath":619,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":135,"number":620,"ownAudience":62,"audiences":621,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":622},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/01_gradientenabstieg","01_gradientenabstieg","Gradientenabstiegsverfahren","II.3.5.1.2 Gradientenabstiegsverfahren","Ein grundlegendes Verfahren zum Minimieren einer Verlustfunktion","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/01_gradientenabstieg/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/01_gradientenabstieg","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/01_gradientenabstieg/de.md","II.3.5.1.2",[],[],{"key":624,"slug":625,"title":626,"cleanTitle":626,"numberedTitle":627,"description":628,"path":629,"basePath":630,"filePath":631,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":135,"number":632,"ownAudience":62,"audiences":633,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":634},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/02_stochastischer_gradientenabstieg","02_stochastischer_gradientenabstieg","Verfahrensüberblick und Alternativen","II.3.5.1.3 Verfahrensüberblick und Alternativen","Gegenüberstellung, Verfahren höherer Ordnung","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/02_stochastischer_gradientenabstieg/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/02_stochastischer_gradientenabstieg","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/02_stochastischer_gradientenabstieg/de.md","II.3.5.1.3",[],[],{"key":636,"slug":637,"title":638,"cleanTitle":638,"numberedTitle":639,"description":640,"path":641,"basePath":642,"filePath":643,"pageType":32,"hidden":13,"effectiveHidden":13,"order":74,"depth":135,"number":644,"ownAudience":62,"audiences":645,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":646},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/03_mini_batch_verfahren","03_mini_batch_verfahren","Mini-Batch-Verfahren und Optimizer","II.3.5.1.4 Mini-Batch-Verfahren und Optimizer","Gradienten aus kleinen Gruppen von Trainingsbeispielen berechnen, Verschiedene Verwendungsansätze des Gradienten","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/03_mini_batch_verfahren/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/03_mini_batch_verfahren","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/03_mini_batch_verfahren/de.md","II.3.5.1.4",[],[],{"key":648,"slug":649,"title":650,"cleanTitle":650,"numberedTitle":651,"description":652,"path":653,"basePath":654,"filePath":655,"pageType":32,"hidden":13,"effectiveHidden":13,"order":135,"depth":135,"number":656,"ownAudience":62,"audiences":657,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":658},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/04_backpropagation","04_backpropagation","Backpropagation","II.3.5.1.5 Backpropagation","Gradienten in neuronalen Netzen effizient berechnen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/04_backpropagation/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/04_backpropagation","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/04_backpropagation/de.md","II.3.5.1.5",[],[],{"key":660,"slug":661,"title":662,"cleanTitle":662,"numberedTitle":663,"description":664,"path":665,"basePath":666,"filePath":667,"pageType":32,"hidden":13,"effectiveHidden":13,"order":-4,"depth":135,"number":668,"ownAudience":62,"audiences":669,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":670},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/mathematischeranhang_diffrechnung","mathematischeranhang_diffrechnung","Mathematischer Anhang: Differentialrechnung","II.3.5.1.6 Mathematischer Anhang: Differentialrechnung","Unterseite zu Mathematischer Anhang: Differentialrechnung","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/mathematischeranhang_diffrechnung/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/mathematischeranhang_diffrechnung","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/01_gradientenbasierte_optimierung/mathematischeranhang_diffrechnung/de.md","II.3.5.1.6",[],[],{"key":672,"slug":673,"title":674,"cleanTitle":674,"numberedTitle":675,"description":676,"path":677,"basePath":678,"filePath":679,"pageType":58,"hidden":13,"effectiveHidden":13,"order":33,"depth":74,"number":680,"ownAudience":62,"audiences":681,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":682},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung","02_lineare_ausgleichsrechnung","Lineare Ausgleichsrechnung","II.3.5.2 Lineare Ausgleichsrechnung","Lineare Modelle so anpassen, dass Fehlerquadrate klein werden","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/de.md","II.3.5.2",[],[683,695,707,719,731],{"key":684,"slug":685,"title":686,"cleanTitle":686,"numberedTitle":687,"description":688,"path":689,"basePath":690,"filePath":691,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":135,"number":692,"ownAudience":62,"audiences":693,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":694},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/01_methode_der_kleinsten_quadrate","01_methode_der_kleinsten_quadrate","Methode der kleinsten Quadrate","II.3.5.2.1 Methode der kleinsten Quadrate","Eine Gerade oder Funktion möglichst passend an Daten legen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/01_methode_der_kleinsten_quadrate/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/01_methode_der_kleinsten_quadrate","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/01_methode_der_kleinsten_quadrate/de.md","II.3.5.2.1",[],[],{"key":696,"slug":697,"title":698,"cleanTitle":698,"numberedTitle":699,"description":700,"path":701,"basePath":702,"filePath":703,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":135,"number":704,"ownAudience":62,"audiences":705,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":706},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/02_normalengleichungen","02_normalengleichungen","Normalengleichungen","II.3.5.2.2 Normalengleichungen","Least-Squares-Probleme als lineares Gleichungssystem lösen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/02_normalengleichungen/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/02_normalengleichungen","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/02_normalengleichungen/de.md","II.3.5.2.2",[],[],{"key":708,"slug":709,"title":710,"cleanTitle":710,"numberedTitle":711,"description":712,"path":713,"basePath":714,"filePath":715,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":135,"number":716,"ownAudience":62,"audiences":717,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":718},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/03_qr_zerlegung","03_qr_zerlegung","QR-Zerlegung","II.3.5.2.3 QR-Zerlegung","Least-Squares-Probleme stabil mit orthogonalen Matrizen lösen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/03_qr_zerlegung/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/03_qr_zerlegung","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/03_qr_zerlegung/de.md","II.3.5.2.3",[],[],{"key":720,"slug":721,"title":722,"cleanTitle":722,"numberedTitle":723,"description":724,"path":725,"basePath":726,"filePath":727,"pageType":32,"hidden":13,"effectiveHidden":13,"order":74,"depth":135,"number":728,"ownAudience":62,"audiences":729,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":730},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/04_householder_transformationen","04_householder_transformationen","Householder-Transformationen","II.3.5.2.4 Householder-Transformationen","Spiegelungen als Bausteine stabiler Matrixzerlegungen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/04_householder_transformationen/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/04_householder_transformationen","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/04_householder_transformationen/de.md","II.3.5.2.4",[],[],{"key":732,"slug":733,"title":734,"cleanTitle":734,"numberedTitle":735,"description":736,"path":737,"basePath":738,"filePath":739,"pageType":32,"hidden":13,"effectiveHidden":13,"order":135,"depth":135,"number":740,"ownAudience":62,"audiences":741,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":742},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/05_regularisierung_ridge_lasso","05_regularisierung_ridge_lasso","Regularisierung: Ridge und Lasso","II.3.5.2.5 Regularisierung: Ridge und Lasso","Wie Ridge- und Lasso-Regression Least Squares erweitern","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/05_regularisierung_ridge_lasso/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/05_regularisierung_ridge_lasso","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/02_lineare_ausgleichsrechnung/05_regularisierung_ridge_lasso/de.md","II.3.5.2.5",[],[],{"key":744,"slug":745,"title":746,"cleanTitle":746,"numberedTitle":747,"description":748,"path":749,"basePath":750,"filePath":751,"pageType":58,"hidden":13,"effectiveHidden":13,"order":59,"depth":74,"number":752,"ownAudience":62,"audiences":753,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":754},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung","03_statistische_parameterschaetzung","Statistische Parameterschätzung","II.3.5.3 Statistische Parameterschätzung","Parameter als Erklärung für beobachtete Daten bestimmen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/de.md","II.3.5.3",[],[755,767,779,791,803],{"key":756,"slug":757,"title":758,"cleanTitle":758,"numberedTitle":759,"description":760,"path":761,"basePath":762,"filePath":763,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":135,"number":764,"ownAudience":62,"audiences":765,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":766},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/01_maximum_likelihood_schaetzung","01_maximum_likelihood_schaetzung","Maximum-Likelihood-Schätzung","II.3.5.3.1 Maximum-Likelihood-Schätzung","Parameter wählen, unter denen die beobachteten Daten möglichst wahrscheinlich sind","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/01_maximum_likelihood_schaetzung/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/01_maximum_likelihood_schaetzung","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/01_maximum_likelihood_schaetzung/de.md","II.3.5.3.1",[],[],{"key":768,"slug":769,"title":770,"cleanTitle":770,"numberedTitle":771,"description":772,"path":773,"basePath":774,"filePath":775,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":135,"number":776,"ownAudience":62,"audiences":777,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":778},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/02_latente_variablen","02_latente_variablen","Latente Variablen","II.3.5.3.2 Latente Variablen","Verborgene Größen in statistischen Modellen berücksichtigen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/02_latente_variablen/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/02_latente_variablen","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/02_latente_variablen/de.md","II.3.5.3.2",[],[],{"key":780,"slug":781,"title":782,"cleanTitle":782,"numberedTitle":783,"description":784,"path":785,"basePath":786,"filePath":787,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":135,"number":788,"ownAudience":62,"audiences":789,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":790},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/03_e_schritt","03_e_schritt","E-Schritt","II.3.5.3.3 E-Schritt","Erwartungen über verborgene Variablen berechnen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/03_e_schritt/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/03_e_schritt","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/03_e_schritt/de.md","II.3.5.3.3",[],[],{"key":792,"slug":793,"title":794,"cleanTitle":794,"numberedTitle":795,"description":796,"path":797,"basePath":798,"filePath":799,"pageType":32,"hidden":13,"effectiveHidden":13,"order":74,"depth":135,"number":800,"ownAudience":62,"audiences":801,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":802},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/04_m_schritt","04_m_schritt","M-Schritt","II.3.5.3.4 M-Schritt","Parameter anhand der erwarteten verborgenen Informationen verbessern","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/04_m_schritt/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/04_m_schritt","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/04_m_schritt/de.md","II.3.5.3.4",[],[],{"key":804,"slug":805,"title":806,"cleanTitle":806,"numberedTitle":807,"description":808,"path":809,"basePath":810,"filePath":811,"pageType":32,"hidden":13,"effectiveHidden":13,"order":135,"depth":135,"number":812,"ownAudience":62,"audiences":813,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":814},"08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/05_em_algorithmus","05_em_algorithmus","EM-Algorithmus","II.3.5.3.5 EM-Algorithmus","Abwechselnd verborgene Informationen und Parameter schätzen","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/05_em_algorithmus/de","/08_kuenstlicheintelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/05_em_algorithmus","content/08_KuenstlicheIntelligenz/02_supervisedlearning/05_verfahren_zur_modellanpassung/03_statistische_parameterschaetzung/05_em_algorithmus/de.md","II.3.5.3.5",[],[],{"key":816,"slug":817,"title":818,"cleanTitle":818,"numberedTitle":819,"description":820,"path":821,"basePath":822,"filePath":823,"pageType":32,"hidden":13,"effectiveHidden":13,"order":173,"depth":59,"number":824,"ownAudience":62,"audiences":825,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":826},"08_kuenstlicheintelligenz/02_supervisedlearning/modelzoo","modelzoo","Modell Zoo","II.3.6 Modell Zoo","Unterseite zu Modell Zoo","/08_kuenstlicheintelligenz/02_supervisedlearning/modelzoo/de","/08_kuenstlicheintelligenz/02_supervisedlearning/modelzoo","content/08_KuenstlicheIntelligenz/02_supervisedlearning/modelzoo/de.md","II.3.6",[],[],{"key":828,"slug":829,"title":830,"cleanTitle":830,"numberedTitle":831,"description":832,"path":833,"basePath":834,"filePath":835,"pageType":12,"hidden":13,"effectiveHidden":13,"order":74,"depth":33,"number":836,"ownAudience":62,"audiences":837,"coverDeLight":284,"coverEnLight":285,"coverDeDark":286,"coverEnDark":287,"children":838},"08_kuenstlicheintelligenz/05_unsupervisedlearning","05_unsupervisedlearning","Unüberwachtes Lernen","II.4 Unüberwachtes Lernen","Unterseite zu Unüberwachtem Lernen","/08_kuenstlicheintelligenz/05_unsupervisedlearning/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/de.md","II.4",[16],[839,851,863,875,937],{"key":840,"slug":841,"title":842,"cleanTitle":842,"numberedTitle":843,"description":844,"path":845,"basePath":846,"filePath":847,"pageType":58,"hidden":13,"effectiveHidden":13,"order":-4,"depth":59,"number":848,"ownAudience":62,"audiences":849,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":850},"08_kuenstlicheintelligenz/05_unsupervisedlearning/anomalydetection","anomalydetection","Anomalieerkennung","II.4.1 Anomalieerkennung","Unterseite zu Anomalieerkennung","/08_kuenstlicheintelligenz/05_unsupervisedlearning/anomalydetection/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/anomalydetection","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/anomalydetection/de.md","II.4.1",[],[],{"key":852,"slug":853,"title":854,"cleanTitle":854,"numberedTitle":855,"description":856,"path":857,"basePath":858,"filePath":859,"pageType":58,"hidden":13,"effectiveHidden":13,"order":-4,"depth":59,"number":860,"ownAudience":62,"audiences":861,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":862},"08_kuenstlicheintelligenz/05_unsupervisedlearning/associationrulelearning","associationrulelearning","Assoziationsregel-Lernen","II.4.2 Assoziationsregel-Lernen","Unterseite zu Assoziationsregel-Lernen","/08_kuenstlicheintelligenz/05_unsupervisedlearning/associationrulelearning/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/associationrulelearning","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/associationrulelearning/de.md","II.4.2",[],[],{"key":864,"slug":865,"title":866,"cleanTitle":866,"numberedTitle":867,"description":868,"path":869,"basePath":870,"filePath":871,"pageType":32,"hidden":13,"effectiveHidden":13,"order":-4,"depth":59,"number":872,"ownAudience":62,"audiences":873,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":874},"08_kuenstlicheintelligenz/05_unsupervisedlearning/aufgabendesul","aufgabendesul","Aufgaben im Unsupervised Learning","II.4.3 Aufgaben im Unsupervised Learning","Unterseite zu Aufgaben im Unsupervised Learning","/08_kuenstlicheintelligenz/05_unsupervisedlearning/aufgabendesul/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/aufgabendesul","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/aufgabendesul/de.md","II.4.3",[],[],{"key":876,"slug":877,"title":878,"cleanTitle":878,"numberedTitle":879,"description":880,"path":881,"basePath":882,"filePath":883,"pageType":58,"hidden":13,"effectiveHidden":13,"order":-4,"depth":59,"number":884,"ownAudience":62,"audiences":885,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":886},"08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering","clustering","Clustering","II.4.4 Clustering","Unterseite zu Clustering","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/clustering/de.md","II.4.4",[16],[887,899,911,924],{"key":888,"slug":889,"title":890,"cleanTitle":890,"numberedTitle":891,"description":892,"path":893,"basePath":894,"filePath":895,"pageType":32,"hidden":13,"effectiveHidden":13,"order":14,"depth":74,"number":896,"ownAudience":62,"audiences":897,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":898},"08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/dbscan","dbscan","DBSCAN","II.4.4.1 DBSCAN","Unterseite zu DBSCAN","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/dbscan/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/dbscan","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/clustering/dbscan/de.md","II.4.4.1",[],[],{"key":900,"slug":901,"title":902,"cleanTitle":902,"numberedTitle":903,"description":904,"path":905,"basePath":906,"filePath":907,"pageType":32,"hidden":13,"effectiveHidden":13,"order":33,"depth":74,"number":908,"ownAudience":62,"audiences":909,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":910},"08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/kmeans","kmeans","Das k-Means Verfahren","II.4.4.2 Das k-Means Verfahren","Unterseite zu Das k-Means Verfahren","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/kmeans/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/kmeans","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/clustering/kmeans/de.md","II.4.4.2",[],[],{"key":912,"slug":913,"title":914,"cleanTitle":915,"numberedTitle":916,"description":917,"path":918,"basePath":919,"filePath":920,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":74,"number":921,"ownAudience":16,"audiences":922,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":923},"08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/01-einfuehrung-kmeans","01-einfuehrung-kmeans","01-Einführung in K-Means Clustering","Einführung in K-Means Clustering","II.4.4.3 Einführung in K-Means Clustering","Grundlagen und interaktive Visualisierung des K-Means Algorithmus.","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/01-einfuehrung-kmeans/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/01-einfuehrung-kmeans","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/clustering/01-einfuehrung-kmeans/de.md","II.4.4.3",[16],[],{"key":925,"slug":926,"title":927,"cleanTitle":928,"numberedTitle":929,"description":930,"path":931,"basePath":932,"filePath":933,"pageType":32,"hidden":13,"effectiveHidden":13,"order":74,"depth":74,"number":934,"ownAudience":16,"audiences":935,"coverDeLight":18,"coverEnLight":19,"coverDeDark":20,"coverEnDark":21,"children":936},"08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/02-einfuehrung-dbscan","02-einfuehrung-dbscan","02-Einführung in DBSCAN Clustering","Einführung in DBSCAN Clustering","II.4.4.4 Einführung in DBSCAN Clustering","Grundlagen und interaktive Visualisierung des DBSCAN Algorithmus.","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/02-einfuehrung-dbscan/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/clustering/02-einfuehrung-dbscan","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/clustering/02-einfuehrung-dbscan/de.md","II.4.4.4",[16],[],{"key":938,"slug":939,"title":940,"cleanTitle":940,"numberedTitle":941,"description":942,"path":943,"basePath":944,"filePath":945,"pageType":58,"hidden":13,"effectiveHidden":13,"order":-4,"depth":59,"number":946,"ownAudience":62,"audiences":947,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":948},"08_kuenstlicheintelligenz/05_unsupervisedlearning/dimensionalityreduction","dimensionalityreduction","Dimensionsreduktion","II.4.5 Dimensionsreduktion","Unterseite zu Dimensionsreduktion","/08_kuenstlicheintelligenz/05_unsupervisedlearning/dimensionalityreduction/de","/08_kuenstlicheintelligenz/05_unsupervisedlearning/dimensionalityreduction","content/08_KuenstlicheIntelligenz/05_unsupervisedlearning/dimensionalityreduction/de.md","II.4.5",[],[],{"key":950,"slug":951,"title":952,"cleanTitle":952,"numberedTitle":953,"description":954,"path":955,"basePath":956,"filePath":957,"pageType":12,"hidden":13,"effectiveHidden":13,"order":135,"depth":33,"number":958,"ownAudience":62,"audiences":959,"coverDeLight":284,"coverEnLight":285,"coverDeDark":286,"coverEnDark":287,"children":960},"08_kuenstlicheintelligenz/06_reinforcementlearning","06_reinforcementlearning","Verstärkendes Lernen","II.5 Verstärkendes Lernen","Unterseite zu Verstärkendes Lernen","/08_kuenstlicheintelligenz/06_reinforcementlearning/de","/08_kuenstlicheintelligenz/06_reinforcementlearning","content/08_KuenstlicheIntelligenz/06_reinforcementlearning/de.md","II.5",[16],[961,973,986],{"key":962,"slug":963,"title":964,"cleanTitle":964,"numberedTitle":965,"description":966,"path":967,"basePath":968,"filePath":969,"pageType":58,"hidden":13,"effectiveHidden":13,"order":14,"depth":59,"number":970,"ownAudience":62,"audiences":971,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":972},"08_kuenstlicheintelligenz/06_reinforcementlearning/rlfoundations","rlfoundations","Grundlagen des Reinforcement Learnings","II.5.1 Grundlagen des Reinforcement Learnings","Unterseite zu Grundlagen des Reinforcement Learnings","/08_kuenstlicheintelligenz/06_reinforcementlearning/rlfoundations/de","/08_kuenstlicheintelligenz/06_reinforcementlearning/rlfoundations","content/08_KuenstlicheIntelligenz/06_reinforcementlearning/rlfoundations/de.md","II.5.1",[],[],{"key":974,"slug":975,"title":976,"cleanTitle":977,"numberedTitle":978,"description":979,"path":980,"basePath":981,"filePath":982,"pageType":58,"hidden":13,"effectiveHidden":13,"order":33,"depth":59,"number":983,"ownAudience":16,"audiences":984,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":985},"08_kuenstlicheintelligenz/06_reinforcementlearning/02-werte-lernen","02-werte-lernen","02-Einführung in value-based Reinforcement Learning","Einführung in value-based Reinforcement Learning","II.5.2 Einführung in value-based Reinforcement Learning","Grundlagen und interaktive Visualisierung von Q-Learning für das NIM-Spiel.","/08_kuenstlicheintelligenz/06_reinforcementlearning/02-werte-lernen/de","/08_kuenstlicheintelligenz/06_reinforcementlearning/02-werte-lernen","content/08_KuenstlicheIntelligenz/06_reinforcementlearning/02-werte-lernen/de.md","II.5.2",[16],[],{"key":987,"slug":988,"title":989,"cleanTitle":990,"numberedTitle":991,"description":992,"path":993,"basePath":994,"filePath":995,"pageType":32,"hidden":13,"effectiveHidden":13,"order":59,"depth":59,"number":996,"ownAudience":16,"audiences":997,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":998},"08_kuenstlicheintelligenz/06_reinforcementlearning/01-strategien-lernen","01-strategien-lernen","01-Einführung in policy-based Reinforcement Learning","Einführung in policy-based Reinforcement Learning","II.5.3 Einführung in policy-based Reinforcement Learning","Grundlagen und interaktive Visualisierung einer Adaption von MENACE für das NIM-Spiel.","/08_kuenstlicheintelligenz/06_reinforcementlearning/01-strategien-lernen/de","/08_kuenstlicheintelligenz/06_reinforcementlearning/01-strategien-lernen","content/08_KuenstlicheIntelligenz/06_reinforcementlearning/01-strategien-lernen/de.md","II.5.3",[16],[],{"key":1000,"slug":1000,"title":1001,"cleanTitle":1001,"numberedTitle":1001,"description":62,"path":62,"basePath":1002,"filePath":62,"pageType":62,"hidden":13,"effectiveHidden":13,"order":-4,"depth":14,"number":62,"ownAudience":62,"audiences":1003,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":1004},"_info","Info","/_info",[16],[1005,1016,1027,1038],{"key":1006,"slug":1007,"title":1008,"cleanTitle":1008,"numberedTitle":1008,"description":1009,"path":1010,"basePath":1011,"filePath":1012,"pageType":32,"hidden":13,"effectiveHidden":13,"order":1013,"depth":33,"number":62,"ownAudience":16,"audiences":1014,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":1015},"_info/10_datenschutz","10_datenschutz","Datenschutzerklärung","Informationen zum Datenschutz und zur Verarbeitung personenbezogener Daten.","/_info/10_datenschutz/de","/_info/10_datenschutz","content/_Info/10_Datenschutz/de.md",10,[16],[],{"key":1017,"slug":1018,"title":1019,"cleanTitle":1019,"numberedTitle":1019,"description":1020,"path":1021,"basePath":1022,"filePath":1023,"pageType":32,"hidden":13,"effectiveHidden":13,"order":1024,"depth":33,"number":62,"ownAudience":16,"audiences":1025,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":1026},"_info/11_impressum","11_impressum","Impressum","Impressum fuer das interaktive Buch.","/_info/11_impressum/de","/_info/11_impressum","content/_Info/11_Impressum/de.md",11,[16],[],{"key":1028,"slug":1029,"title":1030,"cleanTitle":1030,"numberedTitle":1030,"description":1031,"path":1032,"basePath":1033,"filePath":1034,"pageType":32,"hidden":13,"effectiveHidden":13,"order":1035,"depth":33,"number":62,"ownAudience":16,"audiences":1036,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":1037},"_info/12_lizenzenunddrittanbieter","12_lizenzenunddrittanbieter","Lizenzen & Drittanbieter","Übersicht der verwendeten Open-Source-Komponenten, Lizenzen und Datenschutz-Hinweise.","/_info/12_lizenzenunddrittanbieter/de","/_info/12_lizenzenunddrittanbieter","content/_Info/12_LizenzenUndDrittanbieter/de.md",12,[16],[],{"key":1039,"slug":1040,"title":1041,"cleanTitle":1041,"numberedTitle":1041,"description":1042,"path":1043,"basePath":1044,"filePath":1045,"pageType":58,"hidden":13,"effectiveHidden":13,"order":1046,"depth":33,"number":62,"ownAudience":16,"audiences":1047,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":1048},"_info/13_mailinglisteundnewsletter","13_mailinglisteundnewsletter","Mailingliste und Newsletter","Benachrichtigung über Neuigkeiten","/_info/13_mailinglisteundnewsletter/de","/_info/13_mailinglisteundnewsletter","content/_Info/13_MailingListeUndNewsLetter/de.md",13,[16],[1049,1061],{"key":1050,"slug":1051,"title":1052,"cleanTitle":1052,"numberedTitle":1053,"description":1054,"path":1055,"basePath":1056,"filePath":1057,"pageType":32,"hidden":13,"effectiveHidden":13,"order":-4,"depth":59,"number":1058,"ownAudience":16,"audiences":1059,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":1060},"_info/13_mailinglisteundnewsletter/ifk","ifk","Mailingliste Informatiklehrer Köln und Umgebung","1 Mailingliste Informatiklehrer Köln und Umgebung","Diskussion und Austausch in der weiteren Kölner Region","/_info/13_mailinglisteundnewsletter/ifk/de","/_info/13_mailinglisteundnewsletter/ifk","content/_Info/13_MailingListeUndNewsLetter/ifk/de.md","1",[16],[],{"key":1062,"slug":1063,"title":1064,"cleanTitle":1064,"numberedTitle":1065,"description":1066,"path":1067,"basePath":1068,"filePath":1069,"pageType":32,"hidden":13,"effectiveHidden":13,"order":-4,"depth":59,"number":1070,"ownAudience":16,"audiences":1071,"coverDeLight":62,"coverEnLight":62,"coverDeDark":62,"coverEnDark":62,"children":1072},"_info/13_mailinglisteundnewsletter/newsletter","newsletter","Newsletter","2 Newsletter","Anmeldung zum Newsletter","/_info/13_mailinglisteundnewsletter/newsletter/de","/_info/13_mailinglisteundnewsletter/newsletter","content/_Info/13_MailingListeUndNewsLetter/newsletter/de.md","2",[16],[],{"_path":208,"_dir":204,"_draft":13,"_partial":13,"_locale":62,"title":205,"description":207,"navigation":1074,"author":1075,"audience":16,"pageType":32,"order":74,"body":1076,"_type":3169,"_id":3170,"_source":32,"_file":3171,"_stem":3172,"_extension":3173},true,"HM_JDS",{"type":1077,"children":1078,"toc":3135},"root",[1079,1087,1093,1113,1120,1125,1150,1155,1161,1166,1184,1189,1202,1207,1344,1372,1377,1383,1392,1397,1433,1438,1444,1472,1477,1519,1524,1542,1548,1553,1558,1581,1586,1592,1597,1602,1621,1626,1639,1645,1716,1722,1750,1755,1761,1961,1974,2006,2011,2017,2067,2073,2121,2127,2132,2150,2156,2161,2184,2189,2195,2200,2241,2253,2259,2264,2346,2379,2384,2390,2402,2415,2420,2426,2662,2667,2673,2678,2683,2711,2716,2722,2764,2770,2835,2840,2846,2851,2886,2892,2920,2926,2931,2937,2942,2948,2953,2958,2981,2986,2992,3022,3027,3033,3038,3043,3066,3071,3079,3084,3090,3095,3101,3113,3119,3124,3129],{"type":1080,"tag":1081,"props":1082,"children":1084},"element","h1",{"id":1083},"gueltigkeit-und-sichtbarkeit",[1085],{"type":1086,"value":205},"text",{"type":1080,"tag":1088,"props":1089,"children":1090},"p",{},[1091],{"type":1086,"value":1092},"Dieses Kapitel basiert auf dem Arbeitsblatt zu \"Sichtbarkeit und Lebensdauer von Variablen\". Es verbindet drei Felder, die in Java regelmaessig zu Fehlern fuehren:",{"type":1080,"tag":1094,"props":1095,"children":1096},"ol",{},[1097,1103,1108],{"type":1080,"tag":1098,"props":1099,"children":1100},"li",{},[1101],{"type":1086,"value":1102},"scope (Sichtbarkeit)",{"type":1080,"tag":1098,"props":1104,"children":1105},{},[1106],{"type":1086,"value":1107},"extent (Lebensdauer)",{"type":1080,"tag":1098,"props":1109,"children":1110},{},[1111],{"type":1086,"value":1112},"Namensueberschattung und Vererbungskontexte",{"type":1080,"tag":1114,"props":1115,"children":1117},"h2",{"id":1116},"zwei-grundbegriffe",[1118],{"type":1086,"value":1119},"Zwei Grundbegriffe",{"type":1080,"tag":1088,"props":1121,"children":1122},{},[1123],{"type":1086,"value":1124},"Das Arbeitsblatt trennt sehr klar:",{"type":1080,"tag":1126,"props":1127,"children":1128},"ul",{},[1129,1140],{"type":1080,"tag":1098,"props":1130,"children":1131},{},[1132,1138],{"type":1080,"tag":1133,"props":1134,"children":1135},"strong",{},[1136],{"type":1086,"value":1137},"Sichtbarkeit (scope)",{"type":1086,"value":1139},": Wo im Quelltext darf auf eine Variable zugegriffen werden?",{"type":1080,"tag":1098,"props":1141,"children":1142},{},[1143,1148],{"type":1080,"tag":1133,"props":1144,"children":1145},{},[1146],{"type":1086,"value":1147},"Lebensdauer (extent)",{"type":1086,"value":1149},": Wann existiert die Variable im Speicher?",{"type":1080,"tag":1088,"props":1151,"children":1152},{},[1153],{"type":1086,"value":1154},"Eine Variable kann also sichtbar sein, aber schon nicht mehr existieren, oder existieren, aber ausserhalb des aktuellen Scopes liegen.",{"type":1080,"tag":1114,"props":1156,"children":1158},{"id":1157},"lokale-variable-parameter-instanzvariable",[1159],{"type":1086,"value":1160},"Lokale Variable, Parameter, Instanzvariable",{"type":1080,"tag":1088,"props":1162,"children":1163},{},[1164],{"type":1086,"value":1165},"In der Praxis kommen drei Typen staendig vor:",{"type":1080,"tag":1094,"props":1167,"children":1168},{},[1169,1174,1179],{"type":1080,"tag":1098,"props":1170,"children":1171},{},[1172],{"type":1086,"value":1173},"lokale Variablen innerhalb einer Methode",{"type":1080,"tag":1098,"props":1175,"children":1176},{},[1177],{"type":1086,"value":1178},"Parameter der Methode",{"type":1080,"tag":1098,"props":1180,"children":1181},{},[1182],{"type":1086,"value":1183},"Instanzvariablen (Attribute der Klasse)",{"type":1080,"tag":1088,"props":1185,"children":1186},{},[1187],{"type":1086,"value":1188},"Wenn Namen mehrfach verwendet werden, entsteht Ueberschattung.",{"type":1080,"tag":1114,"props":1190,"children":1192},{"id":1191},"namensueberschattung-und-this",[1193,1195],{"type":1086,"value":1194},"Namensueberschattung und ",{"type":1080,"tag":1196,"props":1197,"children":1199},"code",{"className":1198},[],[1200],{"type":1086,"value":1201},"this",{"type":1080,"tag":1088,"props":1203,"children":1204},{},[1205],{"type":1086,"value":1206},"Das Arbeitsblatt zeigt klassische Beispiele:",{"type":1080,"tag":1208,"props":1209,"children":1213},"pre",{"className":1210,"code":1211,"language":1212,"meta":62,"style":62},"language-java shiki shiki-themes github-light github-dark","class X {\n    private int a;\n\n    public void setA(int a) {\n        this.a = a;\n    }\n}\n","java",[1214],{"type":1080,"tag":1196,"props":1215,"children":1216},{"__ignoreMap":62},[1217,1240,1258,1266,1305,1328,1336],{"type":1080,"tag":1218,"props":1219,"children":1221},"span",{"class":1220,"line":14},"line",[1222,1228,1234],{"type":1080,"tag":1218,"props":1223,"children":1225},{"style":1224},"--shiki-default:#D73A49;--shiki-dark:#F97583",[1226],{"type":1086,"value":1227},"class",{"type":1080,"tag":1218,"props":1229,"children":1231},{"style":1230},"--shiki-default:#6F42C1;--shiki-dark:#B392F0",[1232],{"type":1086,"value":1233}," X",{"type":1080,"tag":1218,"props":1235,"children":1237},{"style":1236},"--shiki-default:#24292E;--shiki-dark:#E1E4E8",[1238],{"type":1086,"value":1239}," {\n",{"type":1080,"tag":1218,"props":1241,"children":1242},{"class":1220,"line":33},[1243,1248,1253],{"type":1080,"tag":1218,"props":1244,"children":1245},{"style":1224},[1246],{"type":1086,"value":1247},"    private",{"type":1080,"tag":1218,"props":1249,"children":1250},{"style":1224},[1251],{"type":1086,"value":1252}," int",{"type":1080,"tag":1218,"props":1254,"children":1255},{"style":1236},[1256],{"type":1086,"value":1257}," a;\n",{"type":1080,"tag":1218,"props":1259,"children":1260},{"class":1220,"line":59},[1261],{"type":1080,"tag":1218,"props":1262,"children":1263},{"emptyLinePlaceholder":1074},[1264],{"type":1086,"value":1265},"\n",{"type":1080,"tag":1218,"props":1267,"children":1268},{"class":1220,"line":74},[1269,1274,1279,1284,1289,1294,1300],{"type":1080,"tag":1218,"props":1270,"children":1271},{"style":1224},[1272],{"type":1086,"value":1273},"    public",{"type":1080,"tag":1218,"props":1275,"children":1276},{"style":1224},[1277],{"type":1086,"value":1278}," void",{"type":1080,"tag":1218,"props":1280,"children":1281},{"style":1230},[1282],{"type":1086,"value":1283}," setA",{"type":1080,"tag":1218,"props":1285,"children":1286},{"style":1236},[1287],{"type":1086,"value":1288},"(",{"type":1080,"tag":1218,"props":1290,"children":1291},{"style":1224},[1292],{"type":1086,"value":1293},"int",{"type":1080,"tag":1218,"props":1295,"children":1297},{"style":1296},"--shiki-default:#E36209;--shiki-dark:#FFAB70",[1298],{"type":1086,"value":1299}," a",{"type":1080,"tag":1218,"props":1301,"children":1302},{"style":1236},[1303],{"type":1086,"value":1304},") {\n",{"type":1080,"tag":1218,"props":1306,"children":1307},{"class":1220,"line":135},[1308,1314,1319,1324],{"type":1080,"tag":1218,"props":1309,"children":1311},{"style":1310},"--shiki-default:#005CC5;--shiki-dark:#79B8FF",[1312],{"type":1086,"value":1313},"        this",{"type":1080,"tag":1218,"props":1315,"children":1316},{"style":1236},[1317],{"type":1086,"value":1318},".a ",{"type":1080,"tag":1218,"props":1320,"children":1321},{"style":1224},[1322],{"type":1086,"value":1323},"=",{"type":1080,"tag":1218,"props":1325,"children":1326},{"style":1236},[1327],{"type":1086,"value":1257},{"type":1080,"tag":1218,"props":1329,"children":1330},{"class":1220,"line":160},[1331],{"type":1080,"tag":1218,"props":1332,"children":1333},{"style":1236},[1334],{"type":1086,"value":1335},"    }\n",{"type":1080,"tag":1218,"props":1337,"children":1338},{"class":1220,"line":173},[1339],{"type":1080,"tag":1218,"props":1340,"children":1341},{"style":1236},[1342],{"type":1086,"value":1343},"}\n",{"type":1080,"tag":1088,"props":1345,"children":1346},{},[1347,1349,1354,1356,1362,1364,1370],{"type":1086,"value":1348},"Ohne ",{"type":1080,"tag":1196,"props":1350,"children":1352},{"className":1351},[],[1353],{"type":1086,"value":1201},{"type":1086,"value":1355}," wuerde der Parameter ",{"type":1080,"tag":1196,"props":1357,"children":1359},{"className":1358},[],[1360],{"type":1086,"value":1361},"a",{"type":1086,"value":1363}," sich selbst zugewiesen werden. Mit ",{"type":1080,"tag":1196,"props":1365,"children":1367},{"className":1366},[],[1368],{"type":1086,"value":1369},"this.a",{"type":1086,"value":1371}," greifst du explizit auf das Attribut zu.",{"type":1080,"tag":1088,"props":1373,"children":1374},{},[1375],{"type":1086,"value":1376},"Dasselbe gilt, wenn in einer Methode eine lokale Variable denselben Namen traegt wie ein Attribut.",{"type":1080,"tag":1114,"props":1378,"children":1380},{"id":1379},"zugriffsmodifier-und-sichtbarkeit",[1381],{"type":1086,"value":1382},"Zugriffsmodifier und Sichtbarkeit",{"type":1080,"tag":1088,"props":1384,"children":1385},{},[1386],{"type":1080,"tag":1387,"props":1388,"children":1391},"img",{"alt":1389,"src":1390},"Abbildung 1","./media/s01-pdf-obj032.png",[],{"type":1080,"tag":1088,"props":1393,"children":1394},{},[1395],{"type":1086,"value":1396},"Das Arbeitsblatt knuepft an OOP-I an:",{"type":1080,"tag":1126,"props":1398,"children":1399},{},[1400,1411,1422],{"type":1080,"tag":1098,"props":1401,"children":1402},{},[1403,1409],{"type":1080,"tag":1196,"props":1404,"children":1406},{"className":1405},[],[1407],{"type":1086,"value":1408},"private",{"type":1086,"value":1410},": nur in der eigenen Klasse",{"type":1080,"tag":1098,"props":1412,"children":1413},{},[1414,1420],{"type":1080,"tag":1196,"props":1415,"children":1417},{"className":1416},[],[1418],{"type":1086,"value":1419},"protected",{"type":1086,"value":1421},": in Klasse und Subklassen (plus package-Regeln)",{"type":1080,"tag":1098,"props":1423,"children":1424},{},[1425,1431],{"type":1080,"tag":1196,"props":1426,"children":1428},{"className":1427},[],[1429],{"type":1086,"value":1430},"public",{"type":1086,"value":1432},": allgemein sichtbar",{"type":1080,"tag":1088,"props":1434,"children":1435},{},[1436],{"type":1086,"value":1437},"Die Wahl des Modifiers bestimmt, welche Stellen im Programm ueberhaupt auf welche Daten zugreifen duerfen.",{"type":1080,"tag":1114,"props":1439,"children":1441},{"id":1440},"sichtbarkeit-in-vererbungssituationen",[1442],{"type":1086,"value":1443},"Sichtbarkeit in Vererbungssituationen",{"type":1080,"tag":1088,"props":1445,"children":1446},{},[1447,1449,1455,1457,1463,1464,1470],{"type":1086,"value":1448},"Das Arbeitsblatt enthaelt Aufgaben mit Klassenhierarchien (",{"type":1080,"tag":1196,"props":1450,"children":1452},{"className":1451},[],[1453],{"type":1086,"value":1454},"KlasseA",{"type":1086,"value":1456},", ",{"type":1080,"tag":1196,"props":1458,"children":1460},{"className":1459},[],[1461],{"type":1086,"value":1462},"KlasseB",{"type":1086,"value":1456},{"type":1080,"tag":1196,"props":1465,"children":1467},{"className":1466},[],[1468],{"type":1086,"value":1469},"KlasseC",{"type":1086,"value":1471},") und ueberschriebenen Methoden.",{"type":1080,"tag":1088,"props":1473,"children":1474},{},[1475],{"type":1086,"value":1476},"Typische Fragen dabei:",{"type":1080,"tag":1094,"props":1478,"children":1479},{},[1480,1493,1506],{"type":1080,"tag":1098,"props":1481,"children":1482},{},[1483,1485,1491],{"type":1086,"value":1484},"Welche Variable ist in ",{"type":1080,"tag":1196,"props":1486,"children":1488},{"className":1487},[],[1489],{"type":1086,"value":1490},"methode1",{"type":1086,"value":1492}," sichtbar?",{"type":1080,"tag":1098,"props":1494,"children":1495},{},[1496,1498,1504],{"type":1086,"value":1497},"Welche in ",{"type":1080,"tag":1196,"props":1499,"children":1501},{"className":1500},[],[1502],{"type":1086,"value":1503},"methode2",{"type":1086,"value":1505},"?",{"type":1080,"tag":1098,"props":1507,"children":1508},{},[1509,1511,1517],{"type":1086,"value":1510},"Welche Ausgabe entsteht in ",{"type":1080,"tag":1196,"props":1512,"children":1514},{"className":1513},[],[1515],{"type":1086,"value":1516},"main",{"type":1086,"value":1518}," und warum?",{"type":1080,"tag":1088,"props":1520,"children":1521},{},[1522],{"type":1086,"value":1523},"Die richtige Loesung erfordert immer die Kombination aus:",{"type":1080,"tag":1126,"props":1525,"children":1526},{},[1527,1532,1537],{"type":1080,"tag":1098,"props":1528,"children":1529},{},[1530],{"type":1086,"value":1531},"statischem Typ der Referenz",{"type":1080,"tag":1098,"props":1533,"children":1534},{},[1535],{"type":1086,"value":1536},"dynamischem Typ des Objekts",{"type":1080,"tag":1098,"props":1538,"children":1539},{},[1540],{"type":1086,"value":1541},"scope-Regeln innerhalb der Methode",{"type":1080,"tag":1114,"props":1543,"children":1545},{"id":1544},"wertebelegungstabellen-als-technik",[1546],{"type":1086,"value":1547},"Wertebelegungstabellen als Technik",{"type":1080,"tag":1088,"props":1549,"children":1550},{},[1551],{"type":1086,"value":1552},"Das Arbeitsblatt fordert explizit Tabellen, in denen pro Programmschritt der Variablenwert notiert wird. Diese Technik ist sehr wirksam bei verschachtelten Methodenaufrufen.",{"type":1080,"tag":1088,"props":1554,"children":1555},{},[1556],{"type":1086,"value":1557},"Empfehlung:",{"type":1080,"tag":1094,"props":1559,"children":1560},{},[1561,1566,1571,1576],{"type":1080,"tag":1098,"props":1562,"children":1563},{},[1564],{"type":1086,"value":1565},"Zeilennummer/Schritt notieren",{"type":1080,"tag":1098,"props":1567,"children":1568},{},[1569],{"type":1086,"value":1570},"relevante Variablen als Spalten",{"type":1080,"tag":1098,"props":1572,"children":1573},{},[1574],{"type":1086,"value":1575},"nach jedem Sprung in Methode Werte aktualisieren",{"type":1080,"tag":1098,"props":1577,"children":1578},{},[1579],{"type":1086,"value":1580},"Rueckspruenge und Rueckgabewerte markieren",{"type":1080,"tag":1088,"props":1582,"children":1583},{},[1584],{"type":1086,"value":1585},"Gerade bei gleichnamigen Variablen auf verschiedenen Ebenen verhindert das viele Denkfehler.",{"type":1080,"tag":1114,"props":1587,"children":1589},{"id":1588},"beispielmuster-statisch-vs-nicht-statisch",[1590],{"type":1086,"value":1591},"Beispielmuster: statisch vs. nicht-statisch",{"type":1080,"tag":1088,"props":1593,"children":1594},{},[1595],{"type":1086,"value":1596},"Das Blatt enthaelt auch Aufgaben mit statischen Variablen in Methodenketten.",{"type":1080,"tag":1088,"props":1598,"children":1599},{},[1600],{"type":1086,"value":1601},"Wichtige Unterscheidung:",{"type":1080,"tag":1126,"props":1603,"children":1604},{},[1605,1616],{"type":1080,"tag":1098,"props":1606,"children":1607},{},[1608,1614],{"type":1080,"tag":1196,"props":1609,"children":1611},{"className":1610},[],[1612],{"type":1086,"value":1613},"static",{"type":1086,"value":1615}," gehoert zur Klasse",{"type":1080,"tag":1098,"props":1617,"children":1618},{},[1619],{"type":1086,"value":1620},"Instanzvariablen gehoeren zu konkreten Objekten",{"type":1080,"tag":1088,"props":1622,"children":1623},{},[1624],{"type":1086,"value":1625},"Das hat unmittelbare Folgen fuer Sichtbarkeit und Lebensdauer:",{"type":1080,"tag":1126,"props":1627,"children":1628},{},[1629,1634],{"type":1080,"tag":1098,"props":1630,"children":1631},{},[1632],{"type":1086,"value":1633},"Klassenvariablen leben, solange die Klasse geladen ist.",{"type":1080,"tag":1098,"props":1635,"children":1636},{},[1637],{"type":1086,"value":1638},"lokale Variablen leben nur waehrend des Methodenaufrufs.",{"type":1080,"tag":1114,"props":1640,"children":1642},{"id":1641},"haeufige-fehler-in-diesem-kapitel",[1643],{"type":1086,"value":1644},"Haeufige Fehler in diesem Kapitel",{"type":1080,"tag":1094,"props":1646,"children":1647},{},[1648,1663,1673,1691,1706],{"type":1080,"tag":1098,"props":1649,"children":1650},{},[1651,1661],{"type":1080,"tag":1133,"props":1652,"children":1653},{},[1654,1659],{"type":1080,"tag":1196,"props":1655,"children":1657},{"className":1656},[],[1658],{"type":1086,"value":1201},{"type":1086,"value":1660}," bei Ueberschattung vergessen",{"type":1086,"value":1662},"\nAttribut wird nicht wie erwartet geaendert.",{"type":1080,"tag":1098,"props":1664,"children":1665},{},[1666,1671],{"type":1080,"tag":1133,"props":1667,"children":1668},{},[1669],{"type":1086,"value":1670},"Lebensdauer lokaler Variablen unterschaetzt",{"type":1086,"value":1672},"\nNach Methodenende sind sie weg.",{"type":1080,"tag":1098,"props":1674,"children":1675},{},[1676,1681,1683,1689],{"type":1080,"tag":1133,"props":1677,"children":1678},{},[1679],{"type":1086,"value":1680},"Sichtbarkeit mit Erreichbarkeit verwechselt",{"type":1086,"value":1682},"\nEine Referenz kann sichtbar sein, aber ",{"type":1080,"tag":1196,"props":1684,"children":1686},{"className":1685},[],[1687],{"type":1086,"value":1688},"null",{"type":1086,"value":1690}," enthalten.",{"type":1080,"tag":1098,"props":1692,"children":1693},{},[1694,1699,1704],{"type":1080,"tag":1133,"props":1695,"children":1696},{},[1697],{"type":1086,"value":1698},"Vererbte Member falsch eingeschaetzt",{"type":1080,"tag":1196,"props":1700,"children":1702},{"className":1701},[],[1703],{"type":1086,"value":1408},{"type":1086,"value":1705}," der Oberklasse ist in Subklasse nicht direkt sichtbar.",{"type":1080,"tag":1098,"props":1707,"children":1708},{},[1709,1714],{"type":1080,"tag":1133,"props":1710,"children":1711},{},[1712],{"type":1086,"value":1713},"statische und instanzbezogene Daten gemischt",{"type":1086,"value":1715},"\nFuehrt zu schwer nachvollziehbarem Zustand.",{"type":1080,"tag":1114,"props":1717,"children":1719},{"id":1718},"methodische-loesestrategie-fuer-sichtbarkeitsaufgaben",[1720],{"type":1086,"value":1721},"Methodische Loesestrategie fuer Sichtbarkeitsaufgaben",{"type":1080,"tag":1094,"props":1723,"children":1724},{},[1725,1730,1735,1740,1745],{"type":1080,"tag":1098,"props":1726,"children":1727},{},[1728],{"type":1086,"value":1729},"Marker fuer jede Variable setzen: lokal, Parameter, Instanz, statisch.",{"type":1080,"tag":1098,"props":1731,"children":1732},{},[1733],{"type":1086,"value":1734},"Bei Namensgleichheit sofort notieren, welche Ebene gemeint ist.",{"type":1080,"tag":1098,"props":1736,"children":1737},{},[1738],{"type":1086,"value":1739},"Vor jedem Methodenaufruf aktuellen Zustand protokollieren.",{"type":1080,"tag":1098,"props":1741,"children":1742},{},[1743],{"type":1086,"value":1744},"Bei Rueckkehr aus Methode Rueckgabewert und Seiteneffekte trennen.",{"type":1080,"tag":1098,"props":1746,"children":1747},{},[1748],{"type":1086,"value":1749},"Erst danach Ausgabezeilen auswerten.",{"type":1080,"tag":1088,"props":1751,"children":1752},{},[1753],{"type":1086,"value":1754},"Diese Reihenfolge ist deutlich robuster als \"im Kopf improvisieren\".",{"type":1080,"tag":1114,"props":1756,"children":1758},{"id":1757},"beispiel-zur-klarstellung",[1759],{"type":1086,"value":1760},"Beispiel zur Klarstellung",{"type":1080,"tag":1208,"props":1762,"children":1764},{"className":1210,"code":1763,"language":1212,"meta":62,"style":62},"class Test {\n    private int k;\n\n    public void methode1(int i) {\n        k = i;\n    }\n\n    public int methode3(int i) {\n        int k = i;\n        return i * k;\n    }\n}\n",[1765],{"type":1080,"tag":1196,"props":1766,"children":1767},{"__ignoreMap":62},[1768,1784,1800,1807,1840,1857,1864,1871,1903,1925,1947,1954],{"type":1080,"tag":1218,"props":1769,"children":1770},{"class":1220,"line":14},[1771,1775,1780],{"type":1080,"tag":1218,"props":1772,"children":1773},{"style":1224},[1774],{"type":1086,"value":1227},{"type":1080,"tag":1218,"props":1776,"children":1777},{"style":1230},[1778],{"type":1086,"value":1779}," Test",{"type":1080,"tag":1218,"props":1781,"children":1782},{"style":1236},[1783],{"type":1086,"value":1239},{"type":1080,"tag":1218,"props":1785,"children":1786},{"class":1220,"line":33},[1787,1791,1795],{"type":1080,"tag":1218,"props":1788,"children":1789},{"style":1224},[1790],{"type":1086,"value":1247},{"type":1080,"tag":1218,"props":1792,"children":1793},{"style":1224},[1794],{"type":1086,"value":1252},{"type":1080,"tag":1218,"props":1796,"children":1797},{"style":1236},[1798],{"type":1086,"value":1799}," k;\n",{"type":1080,"tag":1218,"props":1801,"children":1802},{"class":1220,"line":59},[1803],{"type":1080,"tag":1218,"props":1804,"children":1805},{"emptyLinePlaceholder":1074},[1806],{"type":1086,"value":1265},{"type":1080,"tag":1218,"props":1808,"children":1809},{"class":1220,"line":74},[1810,1814,1818,1823,1827,1831,1836],{"type":1080,"tag":1218,"props":1811,"children":1812},{"style":1224},[1813],{"type":1086,"value":1273},{"type":1080,"tag":1218,"props":1815,"children":1816},{"style":1224},[1817],{"type":1086,"value":1278},{"type":1080,"tag":1218,"props":1819,"children":1820},{"style":1230},[1821],{"type":1086,"value":1822}," methode1",{"type":1080,"tag":1218,"props":1824,"children":1825},{"style":1236},[1826],{"type":1086,"value":1288},{"type":1080,"tag":1218,"props":1828,"children":1829},{"style":1224},[1830],{"type":1086,"value":1293},{"type":1080,"tag":1218,"props":1832,"children":1833},{"style":1296},[1834],{"type":1086,"value":1835}," i",{"type":1080,"tag":1218,"props":1837,"children":1838},{"style":1236},[1839],{"type":1086,"value":1304},{"type":1080,"tag":1218,"props":1841,"children":1842},{"class":1220,"line":135},[1843,1848,1852],{"type":1080,"tag":1218,"props":1844,"children":1845},{"style":1236},[1846],{"type":1086,"value":1847},"        k ",{"type":1080,"tag":1218,"props":1849,"children":1850},{"style":1224},[1851],{"type":1086,"value":1323},{"type":1080,"tag":1218,"props":1853,"children":1854},{"style":1236},[1855],{"type":1086,"value":1856}," i;\n",{"type":1080,"tag":1218,"props":1858,"children":1859},{"class":1220,"line":160},[1860],{"type":1080,"tag":1218,"props":1861,"children":1862},{"style":1236},[1863],{"type":1086,"value":1335},{"type":1080,"tag":1218,"props":1865,"children":1866},{"class":1220,"line":173},[1867],{"type":1080,"tag":1218,"props":1868,"children":1869},{"emptyLinePlaceholder":1074},[1870],{"type":1086,"value":1265},{"type":1080,"tag":1218,"props":1872,"children":1873},{"class":1220,"line":186},[1874,1878,1882,1887,1891,1895,1899],{"type":1080,"tag":1218,"props":1875,"children":1876},{"style":1224},[1877],{"type":1086,"value":1273},{"type":1080,"tag":1218,"props":1879,"children":1880},{"style":1224},[1881],{"type":1086,"value":1252},{"type":1080,"tag":1218,"props":1883,"children":1884},{"style":1230},[1885],{"type":1086,"value":1886}," methode3",{"type":1080,"tag":1218,"props":1888,"children":1889},{"style":1236},[1890],{"type":1086,"value":1288},{"type":1080,"tag":1218,"props":1892,"children":1893},{"style":1224},[1894],{"type":1086,"value":1293},{"type":1080,"tag":1218,"props":1896,"children":1897},{"style":1296},[1898],{"type":1086,"value":1835},{"type":1080,"tag":1218,"props":1900,"children":1901},{"style":1236},[1902],{"type":1086,"value":1304},{"type":1080,"tag":1218,"props":1904,"children":1906},{"class":1220,"line":1905},9,[1907,1912,1917,1921],{"type":1080,"tag":1218,"props":1908,"children":1909},{"style":1224},[1910],{"type":1086,"value":1911},"        int",{"type":1080,"tag":1218,"props":1913,"children":1914},{"style":1236},[1915],{"type":1086,"value":1916}," k ",{"type":1080,"tag":1218,"props":1918,"children":1919},{"style":1224},[1920],{"type":1086,"value":1323},{"type":1080,"tag":1218,"props":1922,"children":1923},{"style":1236},[1924],{"type":1086,"value":1856},{"type":1080,"tag":1218,"props":1926,"children":1927},{"class":1220,"line":1013},[1928,1933,1938,1943],{"type":1080,"tag":1218,"props":1929,"children":1930},{"style":1224},[1931],{"type":1086,"value":1932},"        return",{"type":1080,"tag":1218,"props":1934,"children":1935},{"style":1236},[1936],{"type":1086,"value":1937}," i ",{"type":1080,"tag":1218,"props":1939,"children":1940},{"style":1224},[1941],{"type":1086,"value":1942},"*",{"type":1080,"tag":1218,"props":1944,"children":1945},{"style":1236},[1946],{"type":1086,"value":1799},{"type":1080,"tag":1218,"props":1948,"children":1949},{"class":1220,"line":1024},[1950],{"type":1080,"tag":1218,"props":1951,"children":1952},{"style":1236},[1953],{"type":1086,"value":1335},{"type":1080,"tag":1218,"props":1955,"children":1956},{"class":1220,"line":1035},[1957],{"type":1080,"tag":1218,"props":1958,"children":1959},{"style":1236},[1960],{"type":1086,"value":1343},{"type":1080,"tag":1088,"props":1962,"children":1963},{},[1964,1966,1972],{"type":1086,"value":1965},"Hier gibt es zwei ",{"type":1080,"tag":1196,"props":1967,"children":1969},{"className":1968},[],[1970],{"type":1086,"value":1971},"k",{"type":1086,"value":1973},":",{"type":1080,"tag":1126,"props":1975,"children":1976},{},[1977,1988],{"type":1080,"tag":1098,"props":1978,"children":1979},{},[1980,1982],{"type":1086,"value":1981},"Attribut ",{"type":1080,"tag":1196,"props":1983,"children":1985},{"className":1984},[],[1986],{"type":1086,"value":1987},"this.k",{"type":1080,"tag":1098,"props":1989,"children":1990},{},[1991,1993,1998,2000],{"type":1086,"value":1992},"lokale Variable ",{"type":1080,"tag":1196,"props":1994,"children":1996},{"className":1995},[],[1997],{"type":1086,"value":1971},{"type":1086,"value":1999}," in ",{"type":1080,"tag":1196,"props":2001,"children":2003},{"className":2002},[],[2004],{"type":1086,"value":2005},"methode3",{"type":1080,"tag":1088,"props":2007,"children":2008},{},[2009],{"type":1086,"value":2010},"Diese sind verschieden. Die lokale Variable ueberschattet das Attribut nur innerhalb der Methode.",{"type":1080,"tag":1114,"props":2012,"children":2014},{"id":2013},"uebungsaufgaben-zur-vertiefung",[2015],{"type":1086,"value":2016},"Uebungsaufgaben zur Vertiefung",{"type":1080,"tag":1094,"props":2018,"children":2019},{},[2020,2032,2037,2049,2062],{"type":1080,"tag":1098,"props":2021,"children":2022},{},[2023,2025,2030],{"type":1086,"value":2024},"Analysiere ein kleines Programm mit drei gleichnamigen Variablen (",{"type":1080,"tag":1196,"props":2026,"children":2028},{"className":2027},[],[2029],{"type":1086,"value":1361},{"type":1086,"value":2031},") auf unterschiedlichen Ebenen.",{"type":1080,"tag":1098,"props":2033,"children":2034},{},[2035],{"type":1086,"value":2036},"Erstelle eine vollstaendige Wertebelegungstabelle fuer den Ablauf.",{"type":1080,"tag":1098,"props":2038,"children":2039},{},[2040,2042,2047],{"type":1086,"value":2041},"Schreibe ein Beispiel, in dem ",{"type":1080,"tag":1196,"props":2043,"children":2045},{"className":2044},[],[2046],{"type":1086,"value":1369},{"type":1086,"value":2048}," noetig ist.",{"type":1080,"tag":1098,"props":2050,"children":2051},{},[2052,2054,2060],{"type":1086,"value":2053},"Schreibe ein Beispiel mit ",{"type":1080,"tag":1196,"props":2055,"children":2057},{"className":2056},[],[2058],{"type":1086,"value":2059},"static int x",{"type":1086,"value":2061},", das Methodenaufrufe ueber mehrere Zweige beeinflusst.",{"type":1080,"tag":1098,"props":2063,"children":2064},{},[2065],{"type":1086,"value":2066},"Formuliere fuer jede Variable explizit: scope, Lebensdauer, Speicherort.",{"type":1080,"tag":1114,"props":2068,"children":2070},{"id":2069},"praxishinweise-fuer-sauberen-code",[2071],{"type":1086,"value":2072},"Praxishinweise fuer sauberen Code",{"type":1080,"tag":1094,"props":2074,"children":2075},{},[2076,2081,2086,2106,2111],{"type":1080,"tag":1098,"props":2077,"children":2078},{},[2079],{"type":1086,"value":2080},"Namen nicht unnoetig mehrfach verwenden.",{"type":1080,"tag":1098,"props":2082,"children":2083},{},[2084],{"type":1086,"value":2085},"Kurze Methoden reduzieren Scope-Komplexitaet.",{"type":1080,"tag":1098,"props":2087,"children":2088},{},[2089,2091,2097,2098,2104],{"type":1086,"value":2090},"Seiteneffekte deutlich benennen (",{"type":1080,"tag":1196,"props":2092,"children":2094},{"className":2093},[],[2095],{"type":1086,"value":2096},"set...",{"type":1086,"value":1456},{"type":1080,"tag":1196,"props":2099,"children":2101},{"className":2100},[],[2102],{"type":1086,"value":2103},"update...",{"type":1086,"value":2105},").",{"type":1080,"tag":1098,"props":2107,"children":2108},{},[2109],{"type":1086,"value":2110},"Bei kompliziertem Ablauf mit Debugger oder Tabelle arbeiten.",{"type":1080,"tag":1098,"props":2112,"children":2113},{},[2114,2119],{"type":1080,"tag":1196,"props":2115,"children":2117},{"className":2116},[],[2118],{"type":1086,"value":1408},{"type":1086,"value":2120}," als Standard, Sichtbarkeit nur bei Bedarf oeffnen.",{"type":1080,"tag":1114,"props":2122,"children":2124},{"id":2123},"zusammenfassung",[2125],{"type":1086,"value":2126},"Zusammenfassung",{"type":1080,"tag":1088,"props":2128,"children":2129},{},[2130],{"type":1086,"value":2131},"Das Arbeitsblatt liefert die Kernbotschaft sehr deutlich:",{"type":1080,"tag":1126,"props":2133,"children":2134},{},[2135,2140,2145],{"type":1080,"tag":1098,"props":2136,"children":2137},{},[2138],{"type":1086,"value":2139},"Viele \"mystische\" Java-Fehler sind in Wahrheit Scope- und Lebensdauerfragen.",{"type":1080,"tag":1098,"props":2141,"children":2142},{},[2143],{"type":1086,"value":2144},"Wer Sichtbarkeit und Wertebelegung systematisch analysiert, loest solche Aufgaben reproduzierbar.",{"type":1080,"tag":1098,"props":2146,"children":2147},{},[2148],{"type":1086,"value":2149},"Diese Kompetenz ist Voraussetzung fuer sichere Arbeit mit Vererbung, Polymorphie und groesseren Projekten.",{"type":1080,"tag":1114,"props":2151,"children":2153},{"id":2152},"scope-analyse-als-feste-methode",[2154],{"type":1086,"value":2155},"Scope-Analyse als feste Methode",{"type":1080,"tag":1088,"props":2157,"children":2158},{},[2159],{"type":1086,"value":2160},"Das Arbeitsblatt zeigt, dass viele Aufgaben nur dann sicher loesbar sind, wenn Scope und Lebensdauer explizit verfolgt werden. Eine robuste Methode besteht aus vier Schritten:",{"type":1080,"tag":1094,"props":2162,"children":2163},{},[2164,2169,2174,2179],{"type":1080,"tag":1098,"props":2165,"children":2166},{},[2167],{"type":1086,"value":2168},"Alle Variablen deklarationsnah markieren (lokal, Parameter, Instanz, statisch).",{"type":1080,"tag":1098,"props":2170,"children":2171},{},[2172],{"type":1086,"value":2173},"Fuer jede Methode den sichtbaren Bereich notieren.",{"type":1080,"tag":1098,"props":2175,"children":2176},{},[2177],{"type":1086,"value":2178},"Bei jedem Aufruf einen neuen Kontext aufmachen.",{"type":1080,"tag":1098,"props":2180,"children":2181},{},[2182],{"type":1086,"value":2183},"Bei Rueckkehr den Kontext sauber schliessen.",{"type":1080,"tag":1088,"props":2185,"children":2186},{},[2187],{"type":1086,"value":2188},"Das ist im Prinzip ein manuelles Stack-Modell.",{"type":1080,"tag":1114,"props":2190,"children":2192},{"id":2191},"namensgleichheit-gezielt-vermeiden",[2193],{"type":1086,"value":2194},"Namensgleichheit gezielt vermeiden",{"type":1080,"tag":1088,"props":2196,"children":2197},{},[2198],{"type":1086,"value":2199},"Ueberschattung ist in Java erlaubt, aber oft unnoetig riskant. Besonders in Lerncode gilt:",{"type":1080,"tag":1126,"props":2201,"children":2202},{},[2203,2215],{"type":1080,"tag":1098,"props":2204,"children":2205},{},[2206,2208,2213],{"type":1086,"value":2207},"Parameter und Attribute nicht gleich benennen, wenn ",{"type":1080,"tag":1196,"props":2209,"children":2211},{"className":2210},[],[2212],{"type":1086,"value":1201},{"type":1086,"value":2214}," noch unsicher ist.",{"type":1080,"tag":1098,"props":2216,"children":2217},{},[2218,2220,2226,2227,2233,2234,2240],{"type":1086,"value":2219},"Lokale Variablen mit klarer Rolle benennen (",{"type":1080,"tag":1196,"props":2221,"children":2223},{"className":2222},[],[2224],{"type":1086,"value":2225},"summe",{"type":1086,"value":1456},{"type":1080,"tag":1196,"props":2228,"children":2230},{"className":2229},[],[2231],{"type":1086,"value":2232},"count",{"type":1086,"value":1456},{"type":1080,"tag":1196,"props":2235,"children":2237},{"className":2236},[],[2238],{"type":1086,"value":2239},"index",{"type":1086,"value":2105},{"type":1080,"tag":1088,"props":2242,"children":2243},{},[2244,2246,2251],{"type":1086,"value":2245},"Wenn Namensgleichheit doch gebraucht wird, muss ",{"type":1080,"tag":1196,"props":2247,"children":2249},{"className":2248},[],[2250],{"type":1086,"value":1201},{"type":1086,"value":2252}," konsequent genutzt werden.",{"type":1080,"tag":1114,"props":2254,"children":2256},{"id":2255},"lebensdauer-konkret-im-methodenaufruf",[2257],{"type":1086,"value":2258},"Lebensdauer konkret im Methodenaufruf",{"type":1080,"tag":1088,"props":2260,"children":2261},{},[2262],{"type":1086,"value":2263},"Beispielmuster:",{"type":1080,"tag":1208,"props":2265,"children":2267},{"className":1210,"code":2266,"language":1212,"meta":62,"style":62},"public int methode3(int i) {\n    int k = i;\n    return i * k;\n}\n",[2268],{"type":1080,"tag":1196,"props":2269,"children":2270},{"__ignoreMap":62},[2271,2299,2319,2339],{"type":1080,"tag":1218,"props":2272,"children":2273},{"class":1220,"line":14},[2274,2278,2282,2286,2290,2294],{"type":1080,"tag":1218,"props":2275,"children":2276},{"style":1224},[2277],{"type":1086,"value":1430},{"type":1080,"tag":1218,"props":2279,"children":2280},{"style":1224},[2281],{"type":1086,"value":1252},{"type":1080,"tag":1218,"props":2283,"children":2284},{"style":1230},[2285],{"type":1086,"value":1886},{"type":1080,"tag":1218,"props":2287,"children":2288},{"style":1236},[2289],{"type":1086,"value":1288},{"type":1080,"tag":1218,"props":2291,"children":2292},{"style":1224},[2293],{"type":1086,"value":1293},{"type":1080,"tag":1218,"props":2295,"children":2296},{"style":1236},[2297],{"type":1086,"value":2298}," i) {\n",{"type":1080,"tag":1218,"props":2300,"children":2301},{"class":1220,"line":33},[2302,2307,2311,2315],{"type":1080,"tag":1218,"props":2303,"children":2304},{"style":1224},[2305],{"type":1086,"value":2306},"    int",{"type":1080,"tag":1218,"props":2308,"children":2309},{"style":1236},[2310],{"type":1086,"value":1916},{"type":1080,"tag":1218,"props":2312,"children":2313},{"style":1224},[2314],{"type":1086,"value":1323},{"type":1080,"tag":1218,"props":2316,"children":2317},{"style":1236},[2318],{"type":1086,"value":1856},{"type":1080,"tag":1218,"props":2320,"children":2321},{"class":1220,"line":59},[2322,2327,2331,2335],{"type":1080,"tag":1218,"props":2323,"children":2324},{"style":1224},[2325],{"type":1086,"value":2326},"    return",{"type":1080,"tag":1218,"props":2328,"children":2329},{"style":1236},[2330],{"type":1086,"value":1937},{"type":1080,"tag":1218,"props":2332,"children":2333},{"style":1224},[2334],{"type":1086,"value":1942},{"type":1080,"tag":1218,"props":2336,"children":2337},{"style":1236},[2338],{"type":1086,"value":1799},{"type":1080,"tag":1218,"props":2340,"children":2341},{"class":1220,"line":74},[2342],{"type":1080,"tag":1218,"props":2343,"children":2344},{"style":1236},[2345],{"type":1086,"value":1343},{"type":1080,"tag":1126,"props":2347,"children":2348},{},[2349,2362,2374],{"type":1080,"tag":1098,"props":2350,"children":2351},{},[2352,2354,2360],{"type":1086,"value":2353},"Parameter ",{"type":1080,"tag":1196,"props":2355,"children":2357},{"className":2356},[],[2358],{"type":1086,"value":2359},"i",{"type":1086,"value":2361}," lebt waehrend des Aufrufs.",{"type":1080,"tag":1098,"props":2363,"children":2364},{},[2365,2367,2372],{"type":1086,"value":2366},"Lokale Variable ",{"type":1080,"tag":1196,"props":2368,"children":2370},{"className":2369},[],[2371],{"type":1086,"value":1971},{"type":1086,"value":2373}," lebt ebenfalls nur waehrend dieses Aufrufs.",{"type":1080,"tag":1098,"props":2375,"children":2376},{},[2377],{"type":1086,"value":2378},"Instanzvariablen leben so lange wie das Objekt.",{"type":1080,"tag":1088,"props":2380,"children":2381},{},[2382],{"type":1086,"value":2383},"Diese Unterscheidung ist entscheidend fuer das Verstaendnis von Nebeneffekten.",{"type":1080,"tag":1114,"props":2385,"children":2387},{"id":2386},"statische-variablen-im-ablauf-verfolgen",[2388],{"type":1086,"value":2389},"Statische Variablen im Ablauf verfolgen",{"type":1080,"tag":1088,"props":2391,"children":2392},{},[2393,2395,2400],{"type":1086,"value":2394},"Das Blatt nutzt Aufgaben mit ",{"type":1080,"tag":1196,"props":2396,"children":2398},{"className":2397},[],[2399],{"type":1086,"value":1613},{"type":1086,"value":2401},"-Feldern und mehreren Methoden. Dabei helfen zwei Regeln:",{"type":1080,"tag":1094,"props":2403,"children":2404},{},[2405,2410],{"type":1080,"tag":1098,"props":2406,"children":2407},{},[2408],{"type":1086,"value":2409},"Eine statische Variable ist pro Klasse genau einmal vorhanden.",{"type":1080,"tag":1098,"props":2411,"children":2412},{},[2413],{"type":1086,"value":2414},"Jeder Aufruf kann denselben globalen Wert veraendern.",{"type":1080,"tag":1088,"props":2416,"children":2417},{},[2418],{"type":1086,"value":2419},"Deshalb sind statische Felder in Aufgaben mit rekursionsartigen Aufrufketten besonders fehleranfaellig.",{"type":1080,"tag":1114,"props":2421,"children":2423},{"id":2422},"beispiel-fuer-ueberschattung-in-einer-klasse",[2424],{"type":1086,"value":2425},"Beispiel fuer Ueberschattung in einer Klasse",{"type":1080,"tag":1208,"props":2427,"children":2429},{"className":1210,"code":2428,"language":1212,"meta":62,"style":62},"class Demo {\n    private int a = 10;\n\n    public void setA(int a) {\n        this.a = a;\n    }\n\n    public void test() {\n        int a = 3;\n        System.out.println(a);      // lokale Variable\n        System.out.println(this.a); // Attribut\n    }\n}\n",[2430],{"type":1080,"tag":1196,"props":2431,"children":2432},{"__ignoreMap":62},[2433,2449,2479,2486,2517,2536,2543,2550,2571,2595,2619,2648,2655],{"type":1080,"tag":1218,"props":2434,"children":2435},{"class":1220,"line":14},[2436,2440,2445],{"type":1080,"tag":1218,"props":2437,"children":2438},{"style":1224},[2439],{"type":1086,"value":1227},{"type":1080,"tag":1218,"props":2441,"children":2442},{"style":1230},[2443],{"type":1086,"value":2444}," Demo",{"type":1080,"tag":1218,"props":2446,"children":2447},{"style":1236},[2448],{"type":1086,"value":1239},{"type":1080,"tag":1218,"props":2450,"children":2451},{"class":1220,"line":33},[2452,2456,2460,2465,2469,2474],{"type":1080,"tag":1218,"props":2453,"children":2454},{"style":1224},[2455],{"type":1086,"value":1247},{"type":1080,"tag":1218,"props":2457,"children":2458},{"style":1224},[2459],{"type":1086,"value":1252},{"type":1080,"tag":1218,"props":2461,"children":2462},{"style":1236},[2463],{"type":1086,"value":2464}," a ",{"type":1080,"tag":1218,"props":2466,"children":2467},{"style":1224},[2468],{"type":1086,"value":1323},{"type":1080,"tag":1218,"props":2470,"children":2471},{"style":1310},[2472],{"type":1086,"value":2473}," 10",{"type":1080,"tag":1218,"props":2475,"children":2476},{"style":1236},[2477],{"type":1086,"value":2478},";\n",{"type":1080,"tag":1218,"props":2480,"children":2481},{"class":1220,"line":59},[2482],{"type":1080,"tag":1218,"props":2483,"children":2484},{"emptyLinePlaceholder":1074},[2485],{"type":1086,"value":1265},{"type":1080,"tag":1218,"props":2487,"children":2488},{"class":1220,"line":74},[2489,2493,2497,2501,2505,2509,2513],{"type":1080,"tag":1218,"props":2490,"children":2491},{"style":1224},[2492],{"type":1086,"value":1273},{"type":1080,"tag":1218,"props":2494,"children":2495},{"style":1224},[2496],{"type":1086,"value":1278},{"type":1080,"tag":1218,"props":2498,"children":2499},{"style":1230},[2500],{"type":1086,"value":1283},{"type":1080,"tag":1218,"props":2502,"children":2503},{"style":1236},[2504],{"type":1086,"value":1288},{"type":1080,"tag":1218,"props":2506,"children":2507},{"style":1224},[2508],{"type":1086,"value":1293},{"type":1080,"tag":1218,"props":2510,"children":2511},{"style":1296},[2512],{"type":1086,"value":1299},{"type":1080,"tag":1218,"props":2514,"children":2515},{"style":1236},[2516],{"type":1086,"value":1304},{"type":1080,"tag":1218,"props":2518,"children":2519},{"class":1220,"line":135},[2520,2524,2528,2532],{"type":1080,"tag":1218,"props":2521,"children":2522},{"style":1310},[2523],{"type":1086,"value":1313},{"type":1080,"tag":1218,"props":2525,"children":2526},{"style":1236},[2527],{"type":1086,"value":1318},{"type":1080,"tag":1218,"props":2529,"children":2530},{"style":1224},[2531],{"type":1086,"value":1323},{"type":1080,"tag":1218,"props":2533,"children":2534},{"style":1236},[2535],{"type":1086,"value":1257},{"type":1080,"tag":1218,"props":2537,"children":2538},{"class":1220,"line":160},[2539],{"type":1080,"tag":1218,"props":2540,"children":2541},{"style":1236},[2542],{"type":1086,"value":1335},{"type":1080,"tag":1218,"props":2544,"children":2545},{"class":1220,"line":173},[2546],{"type":1080,"tag":1218,"props":2547,"children":2548},{"emptyLinePlaceholder":1074},[2549],{"type":1086,"value":1265},{"type":1080,"tag":1218,"props":2551,"children":2552},{"class":1220,"line":186},[2553,2557,2561,2566],{"type":1080,"tag":1218,"props":2554,"children":2555},{"style":1224},[2556],{"type":1086,"value":1273},{"type":1080,"tag":1218,"props":2558,"children":2559},{"style":1224},[2560],{"type":1086,"value":1278},{"type":1080,"tag":1218,"props":2562,"children":2563},{"style":1230},[2564],{"type":1086,"value":2565}," test",{"type":1080,"tag":1218,"props":2567,"children":2568},{"style":1236},[2569],{"type":1086,"value":2570},"() {\n",{"type":1080,"tag":1218,"props":2572,"children":2573},{"class":1220,"line":1905},[2574,2578,2582,2586,2591],{"type":1080,"tag":1218,"props":2575,"children":2576},{"style":1224},[2577],{"type":1086,"value":1911},{"type":1080,"tag":1218,"props":2579,"children":2580},{"style":1236},[2581],{"type":1086,"value":2464},{"type":1080,"tag":1218,"props":2583,"children":2584},{"style":1224},[2585],{"type":1086,"value":1323},{"type":1080,"tag":1218,"props":2587,"children":2588},{"style":1310},[2589],{"type":1086,"value":2590}," 3",{"type":1080,"tag":1218,"props":2592,"children":2593},{"style":1236},[2594],{"type":1086,"value":2478},{"type":1080,"tag":1218,"props":2596,"children":2597},{"class":1220,"line":1013},[2598,2603,2608,2613],{"type":1080,"tag":1218,"props":2599,"children":2600},{"style":1236},[2601],{"type":1086,"value":2602},"        System.out.",{"type":1080,"tag":1218,"props":2604,"children":2605},{"style":1230},[2606],{"type":1086,"value":2607},"println",{"type":1080,"tag":1218,"props":2609,"children":2610},{"style":1236},[2611],{"type":1086,"value":2612},"(a);      ",{"type":1080,"tag":1218,"props":2614,"children":2616},{"style":2615},"--shiki-default:#6A737D;--shiki-dark:#6A737D",[2617],{"type":1086,"value":2618},"// lokale Variable\n",{"type":1080,"tag":1218,"props":2620,"children":2621},{"class":1220,"line":1024},[2622,2626,2630,2634,2638,2643],{"type":1080,"tag":1218,"props":2623,"children":2624},{"style":1236},[2625],{"type":1086,"value":2602},{"type":1080,"tag":1218,"props":2627,"children":2628},{"style":1230},[2629],{"type":1086,"value":2607},{"type":1080,"tag":1218,"props":2631,"children":2632},{"style":1236},[2633],{"type":1086,"value":1288},{"type":1080,"tag":1218,"props":2635,"children":2636},{"style":1310},[2637],{"type":1086,"value":1201},{"type":1080,"tag":1218,"props":2639,"children":2640},{"style":1236},[2641],{"type":1086,"value":2642},".a); ",{"type":1080,"tag":1218,"props":2644,"children":2645},{"style":2615},[2646],{"type":1086,"value":2647},"// Attribut\n",{"type":1080,"tag":1218,"props":2649,"children":2650},{"class":1220,"line":1035},[2651],{"type":1080,"tag":1218,"props":2652,"children":2653},{"style":1236},[2654],{"type":1086,"value":1335},{"type":1080,"tag":1218,"props":2656,"children":2657},{"class":1220,"line":1046},[2658],{"type":1080,"tag":1218,"props":2659,"children":2660},{"style":1236},[2661],{"type":1086,"value":1343},{"type":1080,"tag":1088,"props":2663,"children":2664},{},[2665],{"type":1086,"value":2666},"Dieses minimale Beispiel deckt den Kern vieler Blattfragen ab.",{"type":1080,"tag":1114,"props":2668,"children":2670},{"id":2669},"wertebelegungstabellen-richtig-fuehren",[2671],{"type":1086,"value":2672},"Wertebelegungstabellen richtig fuehren",{"type":1080,"tag":1088,"props":2674,"children":2675},{},[2676],{"type":1086,"value":2677},"Damit Tabellen wirklich helfen, sollten sie standardisiert sein:",{"type":1080,"tag":1088,"props":2679,"children":2680},{},[2681],{"type":1086,"value":2682},"Spalten:",{"type":1080,"tag":1094,"props":2684,"children":2685},{},[2686,2691,2696,2701,2706],{"type":1080,"tag":1098,"props":2687,"children":2688},{},[2689],{"type":1086,"value":2690},"Programmschritt oder Zeilennummer",{"type":1080,"tag":1098,"props":2692,"children":2693},{},[2694],{"type":1086,"value":2695},"aktive Methode",{"type":1080,"tag":1098,"props":2697,"children":2698},{},[2699],{"type":1086,"value":2700},"lokale Variablen",{"type":1080,"tag":1098,"props":2702,"children":2703},{},[2704],{"type":1086,"value":2705},"Instanzvariablen",{"type":1080,"tag":1098,"props":2707,"children":2708},{},[2709],{"type":1086,"value":2710},"statische Variablen",{"type":1080,"tag":1088,"props":2712,"children":2713},{},[2714],{"type":1086,"value":2715},"Bei jedem Methodenwechsel wird eine neue Zeile geschrieben. So bleiben Spruenge und Rueckkehrpunkte nachvollziehbar.",{"type":1080,"tag":1114,"props":2717,"children":2719},{"id":2718},"typische-fehlmuster-bei-sichtbarkeitsaufgaben",[2720],{"type":1086,"value":2721},"Typische Fehlmuster bei Sichtbarkeitsaufgaben",{"type":1080,"tag":1094,"props":2723,"children":2724},{},[2725,2730,2742,2754,2759],{"type":1080,"tag":1098,"props":2726,"children":2727},{},[2728],{"type":1086,"value":2729},"Attributwert mit lokalem Wert verwechselt.",{"type":1080,"tag":1098,"props":2731,"children":2732},{},[2733,2735,2740],{"type":1086,"value":2734},"Annahme, dass ",{"type":1080,"tag":1196,"props":2736,"children":2738},{"className":2737},[],[2739],{"type":1086,"value":1408},{"type":1086,"value":2741}," in Subklasse direkt sichtbar ist.",{"type":1080,"tag":1098,"props":2743,"children":2744},{},[2745,2747,2752],{"type":1086,"value":2746},"Vergessen, dass ",{"type":1080,"tag":1196,"props":2748,"children":2750},{"className":2749},[],[2751],{"type":1086,"value":1613},{"type":1086,"value":2753}," klassenweit geteilt ist.",{"type":1080,"tag":1098,"props":2755,"children":2756},{},[2757],{"type":1086,"value":2758},"Rueckgabewert mit Seiteneffekt gleichgesetzt.",{"type":1080,"tag":1098,"props":2760,"children":2761},{},[2762],{"type":1086,"value":2763},"Variablenzustand nur am Ende statt schrittweise betrachtet.",{"type":1080,"tag":1114,"props":2765,"children":2767},{"id":2766},"uebungspaket-fuer-vertiefung",[2768],{"type":1086,"value":2769},"Uebungspaket fuer Vertiefung",{"type":1080,"tag":1094,"props":2771,"children":2772},{},[2773,2801,2806,2811,2830],{"type":1080,"tag":1098,"props":2774,"children":2775},{},[2776,2778,2784,2786,2792,2794,2799],{"type":1086,"value":2777},"Schreibe eine Klasse mit Attribut ",{"type":1080,"tag":1196,"props":2779,"children":2781},{"className":2780},[],[2782],{"type":1086,"value":2783},"x",{"type":1086,"value":2785},", Methode ",{"type":1080,"tag":1196,"props":2787,"children":2789},{"className":2788},[],[2790],{"type":1086,"value":2791},"setX(int x)",{"type":1086,"value":2793}," und lokaler ",{"type":1080,"tag":1196,"props":2795,"children":2797},{"className":2796},[],[2798],{"type":1086,"value":2783},{"type":1086,"value":2800}," in zweiter Methode.",{"type":1080,"tag":1098,"props":2802,"children":2803},{},[2804],{"type":1086,"value":2805},"Erstelle Tabelle fuer einen Ablauf mit drei Methodenaufrufen.",{"type":1080,"tag":1098,"props":2807,"children":2808},{},[2809],{"type":1086,"value":2810},"Ergaenze eine statische Variable und wiederhole die Analyse.",{"type":1080,"tag":1098,"props":2812,"children":2813},{},[2814,2816,2821,2823,2828],{"type":1086,"value":2815},"Fuehre Vererbung ein und pruefe Sichtbarkeit von ",{"type":1080,"tag":1196,"props":2817,"children":2819},{"className":2818},[],[2820],{"type":1086,"value":1408},{"type":1086,"value":2822}," vs ",{"type":1080,"tag":1196,"props":2824,"children":2826},{"className":2825},[],[2827],{"type":1086,"value":1419},{"type":1086,"value":2829},".",{"type":1080,"tag":1098,"props":2831,"children":2832},{},[2833],{"type":1086,"value":2834},"Begruende jede Ausgabezeile schriftlich.",{"type":1080,"tag":1088,"props":2836,"children":2837},{},[2838],{"type":1086,"value":2839},"Diese Reihe entspricht dem Aufgabencharakter des Arbeitsblatts.",{"type":1080,"tag":1114,"props":2841,"children":2843},{"id":2842},"debugging-hinweise-fuer-praxiscode",[2844],{"type":1086,"value":2845},"Debugging-Hinweise fuer Praxiscode",{"type":1080,"tag":1088,"props":2847,"children":2848},{},[2849],{"type":1086,"value":2850},"Wenn unerwartete Werte auftauchen:",{"type":1080,"tag":1094,"props":2852,"children":2853},{},[2854,2859,2871,2876,2881],{"type":1080,"tag":1098,"props":2855,"children":2856},{},[2857],{"type":1086,"value":2858},"Suche nach Namensgleichheit zwischen Parametern und Attributen.",{"type":1080,"tag":1098,"props":2860,"children":2861},{},[2862,2864,2869],{"type":1086,"value":2863},"Pruefe, ob ",{"type":1080,"tag":1196,"props":2865,"children":2867},{"className":2866},[],[2868],{"type":1086,"value":1201},{"type":1086,"value":2870}," fehlt.",{"type":1080,"tag":1098,"props":2872,"children":2873},{},[2874],{"type":1086,"value":2875},"Pruefe, ob statische Felder unerwartet mitveraendert werden.",{"type":1080,"tag":1098,"props":2877,"children":2878},{},[2879],{"type":1086,"value":2880},"Pruefe, ob eine Methode Werte nur lokal aendert statt am Objekt.",{"type":1080,"tag":1098,"props":2882,"children":2883},{},[2884],{"type":1086,"value":2885},"Setze gezielte Log-Ausgaben an Methodenanfang und -ende.",{"type":1080,"tag":1114,"props":2887,"children":2889},{"id":2888},"bewertungsraster-fuer-lernkontrollen",[2890],{"type":1086,"value":2891},"Bewertungsraster fuer Lernkontrollen",{"type":1080,"tag":1094,"props":2893,"children":2894},{},[2895,2900,2905,2910,2915],{"type":1080,"tag":1098,"props":2896,"children":2897},{},[2898],{"type":1086,"value":2899},"Scope korrekt erkannt.",{"type":1080,"tag":1098,"props":2901,"children":2902},{},[2903],{"type":1086,"value":2904},"Lebensdauer korrekt beschrieben.",{"type":1080,"tag":1098,"props":2906,"children":2907},{},[2908],{"type":1086,"value":2909},"Ueberschattung korrekt aufgeloest.",{"type":1080,"tag":1098,"props":2911,"children":2912},{},[2913],{"type":1086,"value":2914},"Statische und instanzbezogene Werte getrennt analysiert.",{"type":1080,"tag":1098,"props":2916,"children":2917},{},[2918],{"type":1086,"value":2919},"Ausgaben schrittweise und nachvollziehbar begruendet.",{"type":1080,"tag":1114,"props":2921,"children":2923},{"id":2922},"warum-dieses-kapitel-so-wichtig-ist",[2924],{"type":1086,"value":2925},"Warum dieses Kapitel so wichtig ist",{"type":1080,"tag":1088,"props":2927,"children":2928},{},[2929],{"type":1086,"value":2930},"Viele spaetere Probleme in OOP-II wirken auf den ersten Blick \"kompliziert\", sind aber in Wahrheit Scope-/Sichtbarkeitsfehler. Wer dieses Kapitel sicher beherrscht, kann Polymorphie- und Vererbungsaufgaben deutlich stabiler loesen.",{"type":1080,"tag":1114,"props":2932,"children":2934},{"id":2933},"abschluss",[2935],{"type":1086,"value":2936},"Abschluss",{"type":1080,"tag":1088,"props":2938,"children":2939},{},[2940],{"type":1086,"value":2941},"Das Arbeitsblatt liefert mit Sichtbarkeit und Lebensdauer ein Analysewerkzeug, das weit ueber Einsteigeraufgaben hinausgeht. Die konsequente Tabellenmethode macht komplexe Programmablaeufe transparent und reduziert Fehlinterpretationen drastisch.",{"type":1080,"tag":1114,"props":2943,"children":2945},{"id":2944},"abschlussaufgabe-zu-scope-und-lebensdauer",[2946],{"type":1086,"value":2947},"Abschlussaufgabe zu Scope und Lebensdauer",{"type":1080,"tag":1088,"props":2949,"children":2950},{},[2951],{"type":1086,"value":2952},"Erstelle ein kleines Programm mit drei Klassen, in dem absichtlich gleichnamige Variablen auf verschiedenen Ebenen vorkommen.",{"type":1080,"tag":1088,"props":2954,"children":2955},{},[2956],{"type":1086,"value":2957},"Aufgabe:",{"type":1080,"tag":1094,"props":2959,"children":2960},{},[2961,2966,2971,2976],{"type":1080,"tag":1098,"props":2962,"children":2963},{},[2964],{"type":1086,"value":2965},"Fuehre das Programm aus und notiere alle Ausgaben.",{"type":1080,"tag":1098,"props":2967,"children":2968},{},[2969],{"type":1086,"value":2970},"Erstelle eine Wertebelegungstabelle ueber den gesamten Ablauf.",{"type":1080,"tag":1098,"props":2972,"children":2973},{},[2974],{"type":1086,"value":2975},"Markiere fuer jede Variable Scope und Lebensdauer.",{"type":1080,"tag":1098,"props":2977,"children":2978},{},[2979],{"type":1086,"value":2980},"Ersetze anschliessend alle kritischen Namensgleichheiten durch bessere Namen und vergleiche die Lesbarkeit.",{"type":1080,"tag":1088,"props":2982,"children":2983},{},[2984],{"type":1086,"value":2985},"Diese Aufgabe macht den Kern des Arbeitsblatts praxisnah sichtbar.",{"type":1080,"tag":1114,"props":2987,"children":2989},{"id":2988},"pruefungsnahe-kurzfragen",[2990],{"type":1086,"value":2991},"Pruefungsnahe Kurzfragen",{"type":1080,"tag":1094,"props":2993,"children":2994},{},[2995,3000,3005,3017],{"type":1080,"tag":1098,"props":2996,"children":2997},{},[2998],{"type":1086,"value":2999},"Definiere Scope und Lebensdauer in je einem Satz.",{"type":1080,"tag":1098,"props":3001,"children":3002},{},[3003],{"type":1086,"value":3004},"Wann verdeckt eine lokale Variable ein Attribut?",{"type":1080,"tag":1098,"props":3006,"children":3007},{},[3008,3010,3015],{"type":1086,"value":3009},"Welche Rolle spielt ",{"type":1080,"tag":1196,"props":3011,"children":3013},{"className":3012},[],[3014],{"type":1086,"value":1201},{"type":1086,"value":3016}," bei Namensgleichheit?",{"type":1080,"tag":1098,"props":3018,"children":3019},{},[3020],{"type":1086,"value":3021},"Warum sind Wertebelegungstabellen bei komplexen Aufrufen hilfreich?",{"type":1080,"tag":1088,"props":3023,"children":3024},{},[3025],{"type":1086,"value":3026},"Diese Fragen pruefen direkt die Analysefaehigkeit aus dem Arbeitsblatt.",{"type":1080,"tag":1114,"props":3028,"children":3030},{"id":3029},"weiterfuehrende-praxisaufgabe",[3031],{"type":1086,"value":3032},"Weiterfuehrende Praxisaufgabe",{"type":1080,"tag":1088,"props":3034,"children":3035},{},[3036],{"type":1086,"value":3037},"Analysiere ein kleines Programm mit drei Methoden, einer Klassenvariable und zwei Instanzvariablen.",{"type":1080,"tag":1088,"props":3039,"children":3040},{},[3041],{"type":1086,"value":3042},"Arbeitsauftrag:",{"type":1080,"tag":1094,"props":3044,"children":3045},{},[3046,3051,3056,3061],{"type":1080,"tag":1098,"props":3047,"children":3048},{},[3049],{"type":1086,"value":3050},"Zeichne den Aufrufverlauf als Sequenz.",{"type":1080,"tag":1098,"props":3052,"children":3053},{},[3054],{"type":1086,"value":3055},"Erstelle eine Wertebelegungstabelle fuer jeden Methodeneintritt und -austritt.",{"type":1080,"tag":1098,"props":3057,"children":3058},{},[3059],{"type":1086,"value":3060},"Markiere in jeder Zeile, welche Variablen sichtbar sind.",{"type":1080,"tag":1098,"props":3062,"children":3063},{},[3064],{"type":1086,"value":3065},"Notiere, wann lokale Variablen den Scope verlassen.",{"type":1080,"tag":1088,"props":3067,"children":3068},{},[3069],{"type":1086,"value":3070},"Abschlussfrage:",{"type":1080,"tag":1126,"props":3072,"children":3073},{},[3074],{"type":1080,"tag":1098,"props":3075,"children":3076},{},[3077],{"type":1086,"value":3078},"Welche konkrete Codeaenderung reduziert Verwechslungsgefahr am staerksten (Umbenennen, Aufteilen, Kapseln)?",{"type":1080,"tag":1088,"props":3080,"children":3081},{},[3082],{"type":1086,"value":3083},"Diese Praxisaufgabe verbindet Scope-Theorie mit konkreter Debug-Arbeit.",{"type":1080,"tag":1114,"props":3085,"children":3087},{"id":3086},"mini-reflexion",[3088],{"type":1086,"value":3089},"Mini-Reflexion",{"type":1080,"tag":1088,"props":3091,"children":3092},{},[3093],{"type":1086,"value":3094},"Wenn in einer Aufgabe ein Wert \"unerwartet\" ist, sollte zuerst nicht der Algorithmus verdaechtigt werden, sondern die Sichtbarkeitslage: Welche Variable mit gleichem Namen ist gerade aktiv, und welche wurde tatsaechlich geaendert? Diese Denkweise spart in Scope-Aufgaben sehr viel Zeit.",{"type":1080,"tag":1114,"props":3096,"children":3098},{"id":3097},"zusatzaufgabe",[3099],{"type":1086,"value":3100},"Zusatzaufgabe",{"type":1080,"tag":1088,"props":3102,"children":3103},{},[3104,3106,3111],{"type":1086,"value":3105},"Schreibe eine Methode, in der ein Parameter denselben Namen wie ein Attribut hat, und dokumentiere den Unterschied zwischen Zugriff mit und ohne ",{"type":1080,"tag":1196,"props":3107,"children":3109},{"className":3108},[],[3110],{"type":1086,"value":1201},{"type":1086,"value":3112},". Fuehre danach dieselbe Methode mit umbenannten Parametern aus und vergleiche Lesbarkeit und Fehlerrisiko.",{"type":1080,"tag":1114,"props":3114,"children":3116},{"id":3115},"schlussgedanke",[3117],{"type":1086,"value":3118},"Schlussgedanke",{"type":1080,"tag":1088,"props":3120,"children":3121},{},[3122],{"type":1086,"value":3123},"Scope-Probleme wirken oft unsichtbar, bis ein Wert \"unerwartet\" kippt. Wer systematisch in Kontexten denkt (Klasse, Objekt, Methode, Block), loest solche Fehler deutlich schneller und mit weniger Trial-and-Error.",{"type":1080,"tag":1088,"props":3125,"children":3126},{},[3127],{"type":1086,"value":3128},"Als Faustregel gilt: Je mehr Namensgleichheiten und statische Nebenwirkungen in einem Codeabschnitt auftreten, desto konsequenter sollte mit Tabellen, klaren Variablennamen und kurzen Methoden gearbeitet werden.",{"type":1080,"tag":3130,"props":3131,"children":3132},"style",{},[3133],{"type":1086,"value":3134},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":62,"searchDepth":33,"depth":33,"links":3136},[3137,3138,3139,3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168],{"id":1116,"depth":33,"text":1119},{"id":1157,"depth":33,"text":1160},{"id":1191,"depth":33,"text":3140},"Namensueberschattung und this",{"id":1379,"depth":33,"text":1382},{"id":1440,"depth":33,"text":1443},{"id":1544,"depth":33,"text":1547},{"id":1588,"depth":33,"text":1591},{"id":1641,"depth":33,"text":1644},{"id":1718,"depth":33,"text":1721},{"id":1757,"depth":33,"text":1760},{"id":2013,"depth":33,"text":2016},{"id":2069,"depth":33,"text":2072},{"id":2123,"depth":33,"text":2126},{"id":2152,"depth":33,"text":2155},{"id":2191,"depth":33,"text":2194},{"id":2255,"depth":33,"text":2258},{"id":2386,"depth":33,"text":2389},{"id":2422,"depth":33,"text":2425},{"id":2669,"depth":33,"text":2672},{"id":2718,"depth":33,"text":2721},{"id":2766,"depth":33,"text":2769},{"id":2842,"depth":33,"text":2845},{"id":2888,"depth":33,"text":2891},{"id":2922,"depth":33,"text":2925},{"id":2933,"depth":33,"text":2936},{"id":2944,"depth":33,"text":2947},{"id":2988,"depth":33,"text":2991},{"id":3029,"depth":33,"text":3032},{"id":3086,"depth":33,"text":3089},{"id":3097,"depth":33,"text":3100},{"id":3115,"depth":33,"text":3118},"markdown","content:01_Programmierung:02_Java:04_GueltigkeitUndSichtbarkeit:de.md","01_Programmierung/02_Java/04_GueltigkeitUndSichtbarkeit/de.md","01_Programmierung/02_Java/04_GueltigkeitUndSichtbarkeit/de","md",1787079992880]