Unterschiede zwischen den Revisionen 51 und 52
Revision 51 vom 2010-10-07 16:11:54
Größe: 5854
Kommentar:
Revision 52 vom 2010-10-08 10:40:03
Größe: 6639
Autor: Bernd
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 13: Zeile 13:
||Perl ||Bernhard||Bernd, Oliver2, Harald, Erkan || ||Perl ||Bernhard ||Bernd, Oliver2, Harald, Erkan ||
Zeile 19: Zeile 19:
||Javascript ||Tim, Bernhard||Javascript || ||Javascript ||Tim, Bernhard ||Javascript ||
Zeile 115: Zeile 115:
||(yet another) Small-C Interpreter/Compiler [[#yascc|yascc]] || Programmiersprachenunabhängig || Bernd ||


== Einschränkungen / zusätzliche Informationen ==
==== yascc ====
 * sicher nicht als Einstiegsaufgabe geeignet, hätte aber den ungeheuren Vorteil, dass wir uns so von innen und von aussen zugleich gleich auf zweierlei Weisen dem Thema Programmierung nähern könnten.
 * Small-C muss es dabei nicht unbedingt sein, stattdessen gerne auch eine beliebige andere Sprache. <<BR>> Small-C hatte ich bloß gewählt weil es so schön verkrüppelt ist und sich daher recht einfach umsetzen lassen sollte.
 * Sollte ein Compiler statt eines Interpreters als Ziel gesetzt werden, so dürfte mit diesem Projekt gleichzeitig auch Assembler abgedeckt werden.
Zeile 126: Zeile 135:
Zeile 132: Zeile 142:
Zeile 135: Zeile 146:
Zeile 138: Zeile 150:

Interessen- und Angebotsmatrix

Programmiersprachen

... interessiert mich

... kann ich etwas zu beitragen

Java

Stefan, Harald, Thomas, Sabrina, Axel

Oliver, Oliver2, Jens

Assembler

Bernd, Harald, Oliver2

Harald, Bernd, Bernd2, Thomas, Axel, Jens

Haskell

Bernd, Harald, Jens

Harald

Php

Bernd, Stefan, Sabrin, Tim

Rolf, Nadja, Axel, Oliver2

C

Moritz, Harald, Tim, Bernhard

Rolf, Bernd, Bernd2, Oliver2, Thomas

C++

Harald, Sabrina

Bernd2, Oliver2, Thomas, Axel, Jens

Python

Sabrina, Oliver2

Bernd, Moritz, Harald, Jens

Prolog

Bernd, Jens

Harald

Lisp (Common Lisp, Scheme, Clojure)

Jens

Harald

Perl

Bernhard

Bernd, Oliver2, Harald, Erkan

Lua

Bernd, Harald, Erkan

Cobol

Axel, Oliver2

Gambas

Rolf, Oliver2

Forth

Harald

Fortran

Axel

Javascript

Tim, Bernhard

Javascript

Scala

Harald

Tcl

Oliver2

Paradigmen und Konzepte

... interessiert mich

... kann ich etwas zu beitragen

GUI Design

Bernd2, Oliver2, Harald, Sabrina, Jens

Multithreading

Axel, Harald, Oliver2

Jens

plattformübergreifende ~

Oliver2, Jens

Objektorientierung

Oliver2

Oliver, Jens

Agile Software Development

Harald

Domain Driven Design

Harald

reguläre Ausdrücke

Moritz, Thomas, Bernd

Aspektorientierung

Oliver

Unit-Testing

Thomas

Linux-Systemprogrammierung

Bernd

Entwicklungsumgebungen / Frameworks

... interessiert mich

... kann ich etwas zu beitragen

Eclipse

Bernd2, Harald, Sabrina, Axel

Oliver

QT Creator

Oliver2, Harald, Jens

Thomas ?, Axel ?

Hibernate

Harald

Oliver

Maven

Harald

Oliver

Ajax

Harald

Code::Blocks

Sabrina

Anjuta

Oliver2

Spring Framework /MVC /AOP /AspectJ

Oliver

Apache Wicket

Oliver

Selenium 2

Oliver

JUnit

Oliver

Netbeans

Oliver2

Rails

Oliver

Werkzeuge

... interessiert mich

... kann ich etwas zu beitragen

Make

Moritz, Oliver2, Jens

Bernd, Thomas

configure

Harald, Oliver2, Jens

Bernd, Thomas

Compiler

Harald, Oliver2

Bernd, Thomas

Linker

Harald, Oliver2

Bernd, Thomas

diff, patch, quilt

Harald, Oliver2

Harald, Thomas, Jens

git

Axel, Oliver2

Harald, Jens

mercurial

Axel, Oliver2

Harald, Jens

subversion

Axel

Harald, Thomas, Oliver2

Assembler

Oliver2

Bernd, Thomas

Debugger

Oliver2

Bernd, Thomas

doxygen

Harald

Thomas

bugzilla

Harald

Lexer- / Parsergeneratoren

Harald, Bernd, Thomas

LaTeX-listings

Harald

cweb

Harald

cmake

Jens

Thomas

javadoc

Libraries

... interessiert mich

... kann ich etwas zu beitragen

Qt / KDE

Harald, Oliver2, Jens

Thomas, Axel

glib / gtk+

Axel, Oliver2

Bernd

openGL

Axel, Oliver2

Bernd

Xlib

Harald

Bernd

Swing

Oliver, Oliver2

Compilerbau

... interessiert mich

... kann ich etwas zu beitragen

Lexer / Parser

Harald, Bernd

Grammatiken

Harald, Bernd

syntaxgerichtete Übersetzung

Bernd

Codeerzeugung

Bernd

(Bernd)

Optimierungsstrategien

Bernd

(Bernd)

Einschränkungen / zusätzliche Informationen

* Assembler (als Sprache): hier haben alle "Anbieter" im wesentlichen noch Kenntnisse aus den Anfangsgründen der Programmierung. Im Workshop ginge es dann darum, sich aktuelle Kenntnisse in der Linux-Umgebung zu erarbeiten.

* Assembler (als tool): hierbei geht es im Gegensatz zum oberen Thema um die Bedienung des GNU-Assemblers, von nasm und anderen tools.

* reguläre Ausdrücke: Hier können beide Anbieter nur allgemeine Grundlagen vermitteln, Moritz vorzugsweise am Besipiel von Python.

* Unit-Testing: Thomas kann dieses als Teil des Entwicklungsprozesses vorstellen.

* configure: Nur eine grobe Übersicht, keine Details

* lex & yacc: Nur oberflächliche Kenntnisse vorhanden, keine Praxiserfahrung

Ideen für Programmieraufgaben / Projekte:

Projekte

was?

Umgebung / Voraussetzungen

Vorschlag von

Projekt-Controlling Tool

XML, GUI, Qt, subversion

Thomas

Wikimedia-Picture-Picker

Java, Perl, Python, GUI

Harald

ICU-konforme utf8-Sortierung

Perl, Python, Java, C++, PHP

Harald

Text-Übersetzungs-Alignment

C, C++

Harald

Shoebox-Interlinearisator

GUI, Qt, Java, C++, PHP, Javascript/AJAX

Harald

Apache/Exim-Skripte

Perl

Erkan

MySQL StoredProcedures

Perl

Erkan

MySQL-Proxy-Hooks

Lua

Erkan

PowerDNS-Hooks

Lua

Erkan

DNS-Management (über Weboberfläche) + IP Adress Management (Tool sollte auch DNSSEC können)

Apache, MySQL, PHP

Oliver2

(yet another) Small-C Interpreter/Compiler yascc

Programmiersprachenunabhängig

Bernd

Einschränkungen / zusätzliche Informationen

yascc

  • sicher nicht als Einstiegsaufgabe geeignet, hätte aber den ungeheuren Vorteil, dass wir uns so von innen und von aussen zugleich gleich auf zweierlei Weisen dem Thema Programmierung nähern könnten.
  • Small-C muss es dabei nicht unbedingt sein, stattdessen gerne auch eine beliebige andere Sprache.
    Small-C hatte ich bloß gewählt weil es so schön verkrüppelt ist und sich daher recht einfach umsetzen lassen sollte.

  • Sollte ein Compiler statt eines Interpreters als Ziel gesetzt werden, so dürfte mit diesem Projekt gleichzeitig auch Assembler abgedeckt werden.


Literatur

Literatur kann Bedarfsfall zu folgenden Themen gestellt werden:

Bernd

  • allgemein
    • x86 Rechnerarchitektur
    • Linux Kernelarchitektur
    • Linux/Unix Systemprogrammierung
  • Programmiersprachen
    • C
    • Lua
    • Perl
    • Python
    • Ruby
  • Werkzeuge
    • Make
    • GNU autotools
  • Libraries
    • glib/gtk+
    • openGL
  • Standards
    • XML

lugfrankfurt: Programmierworkshop (zuletzt geändert am 2012-04-05 11:44:27 durch SteffenBauer)