ProgrammierTrainer„Ein guter Programmierer erkennt nichtdie Programmiersprachesondern das Problem“
ProjektteamBetreuender Lehrer:Dipl.-Ing. Harald HABERSTROHProjektteam:DINHOBL ErhardREITERER Martin
Agenda Einleitung / Ausgangslage Was ist der ProgrammierTrainer? Aus welchen Teilen besteht der ProgrammierTrainer? Ar...
Einleitung / AusgangslageProblem:Programmieranfängern fällt es zu Beginn oft schwer,sich den Ablauf eines Programms vorzus...
Was ist der ProgrammierTrainer?Der ProgrammierTrainer ist ein Programm zumErlernen der Programmier-Technik.Funktionalität:...
ProgrammierTrainer
Aus welchen Teilen besteht derProgrammierTrainer?Der ProgrammierTrainer besteht aus zweigroßen Teilen: Interface zum Löse...
Arten von AufgabenEs gibt zwei verschiedene Arten vonAufgabestellungen: E/A-Aufgaben: Entspricht dem Prinzip vonKonsole-A...
Technologien und RealisierungVerwendete Technologien Java Embedded Python (Jython) XML (Aufgabendateien)Programmierumge...
Übersicht über meine zu realisierenden Teile Erstellen einer Aufgabendatei Verschlüsselung Automatisches Erzeugen vonZu...
Abspeicherung einer AufgabeAbspeicherung: Aufgaben werden in Dateien abgelegt Die Dateien befinden sich im XML-FormatInh...
Verschlüsselungskonzept… Aufgabendateien sollen verschlüsselt werden können …Gewähltes Verfahren: DES (Data Encryption Sta...
Hamster Steuerung eines Hamsters mit einfachenBefehlen (vor, linksUm, …)Vorteil:Der Benutzer siehtsofort das Ergebnis sei...
Hamster (2)Implementierung: Um den Hamster an den verschiedensten Stelleneinsetzen zu können wurde ein Hamster-Panelentwi...
Das Ausführen vonProgrammenAutor: Erhard Dinhobl
Die Modi ausgelagert in einen Thread1. normales Ausführen eines Programms2. debuggen eines Programms3. testen eines Progr...
Das Ausführen Pseudocodeanweisung ist eigentlichPythonanweisung Zwischenanweisungen für Informationen Pythoncode + Zwis...
Interaktion mit Benutzern(Eingabe/Ausgabe und Hamster)...str = read(„Text:“)...print str...AusgeführtesProgrammdef read(st...
Wichtige Faktoren bei derAusführung bei Exception  Wo ist sie aufgetreten? anhalten beim Debuggen beenden eines Progra...
try:...trace.nextLine = ‚i = 1/0‘trace.iLineNumber = 3i = 1/0...except:print ‚Fehler bei: ‘ + trace.nextLine + ‚@‘ + trace...
Anhalten beim Debuggen Beispieltrace.nextLine = ‚i = 12’trace.iLineNumber = 5trace.nextStep()i = 12wait() „nächste Anweis...
Mechanismus zum Beenden Exception wird ausgelöst  except-Klauseltry:...trace.nextLine = ‚i = 12’trace.iLineNumber = 5tra...
Abbruch von Endlosschleifenweiterer Thread vor Ausführunggestartetbei Eingabe mit „read()“ Timeoutnicht weiterzählenbei...
Das TestenProgrammvirtuellerBenutzer Eingaben AusgabenPrüfungread()
Ablauf der Überprüfung für einen TestTestDummy Ausgabe-Prüfungread()Stringprintbcheck1 = ‚true’bcheck2 = ‚true’Vergleich b...
ENDEDanke für Ihre Aufmerksamkeit
Nächste SlideShare
Wird geladen in …5
×

Was ist der ProgrammierTrainer!

147 Aufrufe

Veröffentlicht am

Präsentation zum Projekt ProgrammierTrainer - welches auf GitHub zu finden ist: https://github.com/mrqc/programmiertrainer

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
147
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Was ist der ProgrammierTrainer!

  1. 1. ProgrammierTrainer„Ein guter Programmierer erkennt nichtdie Programmiersprachesondern das Problem“
  2. 2. ProjektteamBetreuender Lehrer:Dipl.-Ing. Harald HABERSTROHProjektteam:DINHOBL ErhardREITERER Martin
  3. 3. Agenda Einleitung / Ausgangslage Was ist der ProgrammierTrainer? Aus welchen Teilen besteht der ProgrammierTrainer? Arten von Aufgaben Technologien & Realisierung Übersicht über meine zu realisierenden
  4. 4. Einleitung / AusgangslageProblem:Programmieranfängern fällt es zu Beginn oft schwer,sich den Ablauf eines Programms vorzustellen.Grund:Sie befassen sich mehr mit der Syntax derProgrammiersprache als mit dem Programmablauf.Lösung:Programmieren mussprogrammiersprachenunabhängig erlernt werden
  5. 5. Was ist der ProgrammierTrainer?Der ProgrammierTrainer ist ein Programm zumErlernen der Programmier-Technik.Funktionalität: Benutzer muss eine Aufgabe lösen Aufgabe wird in Datei abgespeichert Verschlüsselung der Aufgabendateien ist möglich Lösen der Aufgabe durch das Erstellen eines Programm-Algorithmus Benutzer benötigt keine Kenntnis über eineProgrammiersprache Erstellte Programm-Lösung kann automatisiert getestet werden
  6. 6. ProgrammierTrainer
  7. 7. Aus welchen Teilen besteht derProgrammierTrainer?Der ProgrammierTrainer besteht aus zweigroßen Teilen: Interface zum Lösen einer Aufgabenstellung(ProgrammierTrainer) Interface zum Erstellen einerAufgabenstellung (ExampleBuilder)
  8. 8. Arten von AufgabenEs gibt zwei verschiedene Arten vonAufgabestellungen: E/A-Aufgaben: Entspricht dem Prinzip vonKonsole-Anwendungen Hamster-Aufgaben: Bei dieser Art vonAufgaben muss ein Hamster in einerHamster-Welt gesteuert werden.
  9. 9. Technologien und RealisierungVerwendete Technologien Java Embedded Python (Jython) XML (Aufgabendateien)Programmierumgebung Borland JBuilder 9.0
  10. 10. Übersicht über meine zu realisierenden Teile Erstellen einer Aufgabendatei Verschlüsselung Automatisches Erzeugen vonZufallsanweisungen Automatisches Zuordnen von Pseudo-Code-Anweisungen Hamster-Steuerung & Anzeige Python-Editor Drucken
  11. 11. Abspeicherung einer AufgabeAbspeicherung: Aufgaben werden in Dateien abgelegt Die Dateien befinden sich im XML-FormatInhalt: Aufgabenbeschreibung Musterlösung Hamster-Welt (bei Hamster-Aufgaben) Programmeinstellungen (Verfügbarkeit vonHinweisen, …)
  12. 12. Verschlüsselungskonzept… Aufgabendateien sollen verschlüsselt werden können …Gewähltes Verfahren: DES (Data Encryption Standard)DES: 1974 von IBM entwickelt Schlüssellänge von 56 Bit  sicher Kann in akzeptabler Zeit nicht geknackt werden Relativ schnell durch Hardware-Unterstützung Nur wenige Angriffsmöglichkeiten (Brute-Force,differenzielle und lineare Kryptanalyse)
  13. 13. Hamster Steuerung eines Hamsters mit einfachenBefehlen (vor, linksUm, …)Vorteil:Der Benutzer siehtsofort das Ergebnis seinerProgrammier-Tätigkeiten
  14. 14. Hamster (2)Implementierung: Um den Hamster an den verschiedensten Stelleneinsetzen zu können wurde ein Hamster-Panelentwickelt Panel wurde später zu einem eigenen Dialogweiterentwickelt Dialog kann universell in Java und Python (Jython)verwendet werden.
  15. 15. Das Ausführen vonProgrammenAutor: Erhard Dinhobl
  16. 16. Die Modi ausgelagert in einen Thread1. normales Ausführen eines Programms2. debuggen eines Programms3. testen eines Programms
  17. 17. Das Ausführen Pseudocodeanweisung ist eigentlichPythonanweisung Zwischenanweisungen für Informationen Pythoncode + Zwischenanweisungen durchJython ausgeführt Jythonin Java implementierter Pythoninterpreter
  18. 18. Interaktion mit Benutzern(Eingabe/Ausgabe und Hamster)...str = read(„Text:“)...print str...AusgeführtesProgrammdef read(str):return io.read(str)# ... Methoden zur# Steuerung des# Hamsters„initscript“read(String s) {...}/* ... Methoden zurSteuerung desHamsters */„io“-ObjektPython Python JavaJythonAusgabelistboxstdout
  19. 19. Wichtige Faktoren bei derAusführung bei Exception  Wo ist sie aufgetreten? anhalten beim Debuggen beenden eines Programms (Jython bietetdiese Möglichkeit von sich aus nicht) bei Endlosschleifen nach Timeout abbrechen
  20. 20. try:...trace.nextLine = ‚i = 1/0‘trace.iLineNumber = 3i = 1/0...except:print ‚Fehler bei: ‘ + trace.nextLine + ‚@‘ + trace.iLineNumberAuftreten einer Exceptiontrace.nextLine = ‚i = 1/0‘trace.iLineNumber = 3i = 1/04: i = 1/0 setze i auf 1/0Python-Code Pseudo-CodeAusführenAnalyse des Codes
  21. 21. Anhalten beim Debuggen Beispieltrace.nextLine = ‚i = 12’trace.iLineNumber = 5trace.nextStep()i = 12wait() „nächste Anweisung“ notify()
  22. 22. Mechanismus zum Beenden Exception wird ausgelöst  except-Klauseltry:...trace.nextLine = ‚i = 12’trace.iLineNumber = 5trace.nextStep()if trace.Exit == ‘True’:raise ExitProgrami = 12...except ExitProgram:print ‚Program Aborted’except:print ‚Fehler bei ’ + trace.nextLine + ‚@’ + trace.iLineNumber
  23. 23. Abbruch von Endlosschleifenweiterer Thread vor Ausführunggestartetbei Eingabe mit „read()“ Timeoutnicht weiterzählenbei Ablauf des Timeouts ExitProgram-Exception
  24. 24. Das TestenProgrammvirtuellerBenutzer Eingaben AusgabenPrüfungread()
  25. 25. Ablauf der Überprüfung für einen TestTestDummy Ausgabe-Prüfungread()Stringprintbcheck1 = ‚true’bcheck2 = ‚true’Vergleich bestimmter Variablenmit Endwerten der AufgabendateiJA NEINTest OK TestNicht OKSind‚bcheck1’und‚bcheck2’‚true’
  26. 26. ENDEDanke für Ihre Aufmerksamkeit

×