Wie auf Klassenarbeit über Java und Struktogramme vorbereiten?
Ich mache eine Ausbildung zum Fachinformatiker für Systemintegration. Im Fach SAE habe ich ziemlich große Schwierigkeiten. Meine erste Klassenarbeit war leider schlecht – eine 4,8 – und wir schreiben insgesamt nur zwei Arbeiten. Am Montag steht die zweite an.
Ich weiß nicht, wie ich mich richtig darauf vorbereiten kann. Es geht um logische Abläufe, also zum Beispiel darum, Matheaufgaben mit Struktogrammen und Java-Code zu lösen. Genau das fällt mir aber gerade sehr schwer – vor allem die Java-Syntax.
Ich habe alle Aufgaben, die wir im Unterricht gemacht haben, aber unser Lehrer erklärt leider kaum etwas. Nachfragen bringt meist nicht viel, weil er entweder in Rätseln antwortet oder einfach sagt: „Da musst du halt nochmal nachdenken.“
Mir ist diese Ausbildung wirklich wichtig. Die Aufgaben im Betrieb machen mir Spaß, und da klappt auch alles gut – nur der Unterricht macht mir aktuell echt zu schaffen.
In Mathe war ich leider auch nie besonders gut. Im Betrieb brauche ich ja auch nicht so direkt Mathe.
5 Antworten
Ich weiß nicht, wie ich mich richtig darauf vorbereiten kann.
Nimm dir zunächst die Aufgaben vor, die du bereits im Unterricht gemacht hast. Vielleicht kommst du auch irgendwie an Aufgabenblätter alter Prüfungen.
Ansonsten fallen mir speziell zu Mathematikproblemen folgende Übungen ein:
- Das Programm soll alle Ganzzahlen zwischen 0 und einer Zahl X ausgeben. Ein zuvor definierte Zahl Y gibt an, welche Zahlen ausgelassen werden sollen. Ist Y ungerade, werden alle geraden Zahlen ausgelassen, ist sie gerade, dann alle ungeraden.
- Ermittlung der kleinsten und größten Zahl einer beliebigen Menge.
- Ermitteln aller Primzahlen zwischen 0-100.
- Berechnung des Durchschnitts einer beliebigen Menge.
- Enferne aus einer gegebenen Menge alle Elemente, die eine Differenz von 1 zu ihrem Nachfolger haben. Die Menge soll anschließend nur noch so lang sein, wie es Elemente gibt (Bsp.: [ 1, 2, 4, 6, 7, 8 ] => [ 2, 4, 8 ], die Menge hat nur noch drei Elemente).
- Gegeben seien zwei Mengen, die zu einer Menge ohne Duplikate kombiniert werden sollen (Beispiel: [ 1, 2, 3 ] und [ 2, 4, 6 ] => [ 1, 2, 3, 4, 6 ]).
- Berechnung des Quotients von zwei Zahlen ohne Verwendung der Divisionsoperators.
- Berechnung der Quersumme einer dreistelligen Zahl.
- Umdrehen einer dreistelligen Zahl (aus 123 wird 321).
- Prüfung, ob eine beliebige Ganzzahl einem Palindrom entspricht.
- Zählen aller Ganzzahlen, die keine 3 enthalten, zwischen 0 und einer beliebigen Ganzzahl.
- Prüfung, ob eine beliebige Ganzzahl Teil der Fibonacci-Folge ist.
- Berechnung des kleinsten/größten gemeinsamen Teilers zweier Zahlen.
- Zahlenraten (eine Zahl zwischen 0-100 soll in möglichst wenigen Schritten erraten werden).
- Berechnung des Produkts zweier Zahlen ohne Verwendung des Multiplikationszeichens/Bitoperatoren oder einer Schleife.
Löse die Aufgaben zuerst einmal nur mit den einfachen Bausteinen, die dir ein Struktogramm zur Verfügung stellen würde: Variablen (ohne Berücksichtigung des Datentyps), Verzweigungen, Schleifen, Funktionen (ein Struktogramm entspricht einer einzelnen Funktion). Auf Wikipedia kannst du nachschauen, welche Form die Strukturblöcke haben.
Vielleicht hilft es zusätzlich zu den Aufgaben, sich einen konkreten Beispielfall auszudenken und zu berechnen, um zu ermitteln, welche Rechenschritte es braucht. Oftmals gibt es bei solchen Aufgaben eine Kernoperation / einen Kernablauf, der/die im Grunde nur (mit anderen/modifizierten Werten) wiederholt werden muss.
Prüfe deine Lösung anhand von 2-3 Testläufen, bei denen du konkrete Werte einsetzt (bestenfalls auch Randwerte, um Ausnahmefälle mit einzubeziehen). Entweder schriftlich auf Papier oder in einem beliebigen Texteditor.
Danach übersetzt du das Ganze in Java-Code.
Genau das fällt mir aber gerade sehr schwer – vor allem die Java-Syntax.
Das Wichtigste wird einfach sein, dass du so viel wie möglich praktisch übst.
Übe direkt in einer IDE: IntelliJ IDEA / Eclipse / NetBeans / BlueJ (falls du damit schon einmal gearbeitet hast) / ..., die dir direkt Fehler anzeigt.
Aufgrund der noch wenig verbleibenden Zeit würde ich empfehlen, eines der vielen Kurztutorials zu nutzen, die man im Internet so findet (GeeksForGeeks, Programiz, o.ä.). Sicherlich sind für dich bisher nur die einfachen Grundlagen (Variablen, Operatoren, Kontrollstrukturen, Arrays) von Belang und OOP war noch kein Thema.
Ich habe alle Aufgaben, die wir im Unterricht gemacht haben, aber unser Lehrer erklärt leider kaum etwas.
Naja, also einmal abseits dessen, dass vermutlich ein Feedbackgespräch mit dem Lehrer wohl nicht schlecht wäre, gibt es doch noch einige andere Kontaktmöglichkeiten, an die du dich bereits hättest wenden können: Mitschüler, andere Lehrer, Leute aus deinem Betrieb, heutzutage sicherlich auch OpenAI/Claude/... und hier (oder in anderen Foren) könntest du die Aufgaben mit klaren Nachfragen ebenfalls einstellen.
Dankeschön ich habe bereits meinen Arbeitskollegen gefragt der Entwickler ist ob er Ratschläge für mich hat. Sonst ja ich werde die Übungen nachher gleich mal machen.
Programmieren lernt man nur durch tun. Schreibe also Deine Aufgabenstellung ab und male erstmal ein Diagramm (gern auf Papier, das reicht völlig!), vielleicht schreibst Du auch erst eine kurze Stichpunktliste, an was alles zu denken ist (zB wegen der EIngabeprüfung). Danach programmierst Du das, bis es läuft - java ist kostenlos für jeden Rechner, Eclipse oder IntelliJ (community edition) helfen enorm und sind ebenfalls kostenlos. Und dann sprich mit Deinen Klassenkameraden darüber (oder eben auch, wenn Du festsitzt)
Bei der ersten Aufgabe schwer und vermutlich frustrierend, gib nicht auf: Der Knoten platzt schneller, als Du glaubst!
Viel Erfolg für Deine Arbeit!
Habe die Arbeit schon geschrieben, lief mittelmäßig waren 2 Struktogramm Aufgaben und 2 Java Aufgaben. Die Struktogramme liefen ok. 1 Java Aufgabe hat funktioniert und die andere hat nicht funktioniert.
Jetzt ist es natürlich etwas kurzfristig, bis Montag noch einiges zu tun.
Als erstes: hast du Aufgabenblätter von Arbeiten vergangener Jahrgänge? Besser kann man die Aufgabentypen, die zu erwarten sind, nicht üben.
Was die Java-Syntax betrifft: da kann ich nur empfehlen, Tutorials durchzuarbeiten. Es gibt mehr als genug davon im Internet. Gerade, was die Syntax betrifft, würde ich mir mal das von w3schools anschauen - da kann man sich am Ende jedes Kapitels (sind ziemlich kurz gehalten) ein paar Fragen stellen lassen - sehr viele davon zur Syntax. Erfordert leider Englischkenntnisse (oder man muss sich auf einen Übersetzer verlassen).
Auch würde ich mir eigene kleine Projekte vornehmen und mit Java umsetzen. Aber das erfordert nicht unbedingt wenig Zeit.
In Struktogramme kann man sich mehr oder weniger auch mit Scratch (oder - soweit ich das überblicke - auch mit einer Testversion von EasyCODE) einarbeiten - allerdings lässt hier die Darstellung von Verzweigungen und noch mehr Mehrfachverzweigungen stark zu wünschen übrig. Außerdem dürfte das ebenfalls jeweils mehr als ein paar Stunden Einarbeitung erfordern.
Zusammenfassung: Anhand der Kürze der Zeit würde ich empfehlen: 1. Alte Aufgabenblätter (soweit vorhanden), 2. w3schools, 3. ein bis zwei kleine Projekte (Nach Vorschlägen hierzu wurde hier auf gutefrage.net schon oft gefragt)
Hab mir erlaubt eine Verschiebung Richtung Software-Entwicklung anzutriggern, weil da sicher eher jmd. helfen kann.
Hast du mal im Internet gesucht, ob's da bessere Erklärungen gibt?
notting
Ja sorry vergessen immer die Kategorie zu wechseln. Ja ich hab mal geschaut ist aber die machen es zum Teil anderst wie unser Lehrer bei Java geht das da kommt es bei ihm nur auf die Ausgabe an aber bei dem Struktugramm sollte es schon so sein wie er es will denke ich.
Tatsächlich kann ChatGPT Java Code ganz gut erklären. Hat mir dabei geholfen die Grundlagen zu verstehen.
Das mit den Strukturgrammen muss man halt leider irgendwie auswendig lernen wobei ich auch die gar nicht mal so sinnlos finde um sich an einen Code Heranzuwagen.