Your SlideShare is downloading. ×
Was ist der ProgrammierTrainer!
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Was ist der ProgrammierTrainer!

76
views

Published on

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

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


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
76
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ProgrammierTrainer„Ein guter Programmierer erkennt nichtdie Programmiersprachesondern das Problem“
  • 2. ProjektteamBetreuender Lehrer:Dipl.-Ing. Harald HABERSTROHProjektteam:DINHOBL ErhardREITERER Martin
  • 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. 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. 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. ProgrammierTrainer
  • 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. 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. Technologien und RealisierungVerwendete Technologien Java Embedded Python (Jython) XML (Aufgabendateien)Programmierumgebung Borland JBuilder 9.0
  • 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. 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. 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. Hamster Steuerung eines Hamsters mit einfachenBefehlen (vor, linksUm, …)Vorteil:Der Benutzer siehtsofort das Ergebnis seinerProgrammier-Tätigkeiten
  • 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. Das Ausführen vonProgrammenAutor: Erhard Dinhobl
  • 16. Die Modi ausgelagert in einen Thread1. normales Ausführen eines Programms2. debuggen eines Programms3. testen eines Programms
  • 17. Das Ausführen Pseudocodeanweisung ist eigentlichPythonanweisung Zwischenanweisungen für Informationen Pythoncode + Zwischenanweisungen durchJython ausgeführt Jythonin Java implementierter Pythoninterpreter
  • 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. 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. 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. Anhalten beim Debuggen Beispieltrace.nextLine = ‚i = 12’trace.iLineNumber = 5trace.nextStep()i = 12wait() „nächste Anweisung“ notify()
  • 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. Abbruch von Endlosschleifenweiterer Thread vor Ausführunggestartetbei Eingabe mit „read()“ Timeoutnicht weiterzählenbei Ablauf des Timeouts ExitProgram-Exception
  • 24. Das TestenProgrammvirtuellerBenutzer Eingaben AusgabenPrüfungread()
  • 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. ENDEDanke für Ihre Aufmerksamkeit