HOMEINFODOKUFILESFORUMUEBER UNS
 
niCE LOGO

Allg. Infos

 

Projektmotivationen: "niCE"

Inhalt


Alle Lernwilligen und Interessierten oder auch User vorab WILLKOMMEN. Sie sind hier auf der einführenden Seite des Projekts "new insignificant COMPRESSION ENGINE" gelandet.
Was ist dieses Projekt? Warum ist dieses Projekt entstanden?
Was wird Sie auf diesen Seiten erwarten (insbesondere welche Themengebiete)? Warum sollte es sich für Sie lohnen, hier etwas zu schmökern? All diese Fragen werde ich versuchen im folgenden Text zu beantworten.
Außerdem sind auch hier all unsere "Lieblingslinks" zu den verschiedenen Themengebieten gesammelt.

Allgemein:

Um zu erklären, warum dieses Projekt entstand, muss zuerst beschrieben werden, wer wir sind: alle Teammitglieder besuchen eine Fachhochschule für Elektronische Informationsdienste (eig. Informatik, nur klingt EID viel professioneller). Im Zuge dieser Ausbildung findet auch jedes Jahr der Gegenstand "IT-Projektmanagement" statt, in welchem sich die Studenten ein Projekt selbst wählen müssen und dies im Rahmen der Lehrveranstaltung betreuen müssen.

Im Semester 2000/2003 riefen wir deshalb das Projekt niCE (new insignificant Compression Engine) ins Leben. Dieses Projekt verfolgt jedoch nicht das ehrgeizige Ziel, die Welt der Datenkomprimierung zu revolutionieren (wer auf dieser Seite etwas derartiges sucht, dem werden wohl andere Seiten mehr zu bieten haben), sondern sollte lediglich dazu dienen, die aus den Fächern Informatik (C-Programmierung), Projektmanagement und Telekommunikation (Komprimierung) vermittelten Grundlagen praktisch zu vertiefen. Dabei hoffen wir auch in späterer Folge anderen Studenten und Interessierten eine hilfreiche Referenz zu genannten Themen zur Verfügung zu stellen. Die graue Theorie soll so spielerisch leicht erlernbar und umsetzbar sein soll, und kein trockenes Lernen.

Top

Informatik (C-Programmieren):

Da wir beim Entstehen des Projekts gerade das 2.Semester besuchten und im 1.Semester die C-Programmierung kennen lernen durften (?? mussten ???), war ein Kriterium für unser Projekt, dass es in C umgesetzt werden sollte und die Grenzen unseres bisherigen C Wissens erweitern sollte und vor allem auch wirklich umsetzbar sein. Außerdem war uns wichtig - da wir von Anfang an planten, den Quellcode zu veröffentlichen - besonders übersichtlichen, leicht zu lesenden Code zu produzieren (und deshalb auch einen "Styleguide" erstellten). Weiters sollte erwähnt werden, dass unser Programm keine graphische Oberfläche oder dergleichen besitzt, sondern ein reines Konsolenprogramm ist.

Zu finden sind in unserem Code deshalb Beispiele zum Erstellen, Traversieren (Durchlaufen), Löschen von Bäumen (wir haben eigentlich relativ oft dynamische Datenstrukturen verwendet (nicht nur Bäume)), Bitmanipulation, Argumente aus der Eingabeaufforderung abarbeiten, und so weiter ... Das heißt, dass wir hier nicht ein weiteres Tutorial zur Verfügung stellen möchten, das C von Grund auf erklärt, sondern praktische Umsetzungen der Möglichkeiten in C aufzeigt.

Links zu "Programmieren"

Pronix   hervorragende Tutorials (mein absolutes Lieblings C-Tutorial - detailliert und verständlich erklärt), wirbt auch für sein C-Buch (soll auch hervorragend sein (hab es leider noch nicht gelesen)) und gute Linksammlung
C - Tutorial von Bäumle   gutes C Tutorial (Link von Pronix-Sammlung übernommen)
ANSI C Bibliotheken (stdlib.h, stdio.h, ...)   Sammlung aller Funktionen der Standardbibliotheken des C-Standards; mit kurzen Erklärungen
     
Programmersheaven   Haufenweise Quellcode, Text, Foren, usw. zu allen mögliche Programmiersprachen - erste Anlaufstelle für Entwickler

Top

Projektmanagement:

Jetzt wo Sie im vorangehenden Absatz gelesen haben "2.Semester", werden Sie wohl denken, was soll ich hier lernen - vor allem, wenn Sie selbst schon an einigen Projekten mitgearbeitet haben. Dieser Abschnitt ist auch NICHT gedacht für professionelle Projektmanager und versucht auch nicht das umfangreiche Thema des Projektmanagements von oben nach unten theoretisch aufzurollen. NEIN, wir haben uns lediglich bemühen zu beschreiben wie wir unser Projekt umgesetzt haben. Dies war in erster Linie dazu gedacht uns selbst bei kommenden Projekten, die Arbeit zu erleichtern, da wir somit schon die einzelnen Tätigkeiten des PM zusammengefasst hätten, um uns nicht erneut von vorne mit dieser Materie beschäftigen zu müssen. Aus dieser Motivation könnte das Projekt natürlich auch für andere interessant sein, die kleinere Projekte verwirklichen wollen/müssen und dabei noch nicht den Grad an Organisation erreicht haben, den sie sich eventuell wünschen oder sich einfach nur ansehen möchten wie gut/schlecht wir das Ganze aufgezogen haben.

Dabei werden wir unsere einzelnen Projektschritte allgemein erläutern und unser Projekt manchmal als Beispiel heranziehen. Alle Schritte von Projektdefinition bzw. Voranalyse bzw. Machbarkeitsanalyse, Analyse des Projekts allgemein (was soll eig. erreicht werden?), Pflichtenheft, usw. werden dabei behandelt. Genaueres dazu finden Sie jedoch in der Projektmanagementdoku.

Links zu "Projektmanagement"

Virtuelles Software Engineering Kompentenzzentrum   Wissensarchiv zu Softwareengineering
Projekthandbuch.de   Projektmanagement ziemlich ausführlich erklärt
Pflichtenheft.de   ausführliche Erklärungen zu Pflichtenheften
     
BUCH: Internetprojekte von <start> bis </ende>   Buch über IT-Projektmanagement (aufgeteilt in vier Bereiche von vier Autoren); die Teile von Martin Post und Wolfgang Wiese sind äußert gut und praktisch umsetzbar in Projekten

Top

Kompression:

Kurz erklärt: ??? Was ist Kompression ???

Kompression beschreibt den Versuch Datenmengen zu verkleinern (für eine nähere Beschreibung siehe KompressionsBasics).

Huffman-Algorithmus

Im Zusammenhang, damit dass wir vor unserem Projekt Baumstrukturen als Datentypen nur theoretisch gehört hatten, war für uns ziemlich schnell klar, welche Kompressionsverfahren wir umsetzen wollten: Huffman Codierung. Dabei wird versucht, den Umstand auszunutzen, dass z.B. in Texten manche Buchstaben öfters vorkommen als andere. Bei normaler Textkodierung wird aber für jeden Buchstaben gleich viel Speicherplatz verwendet, um das Hantieren mit den Buchstaben zu erleichtern, da man bei fixer Länge genau weiss, an welcher Speicherstelle ein Buchstabe aufhört und ein anderer beginnt. Für nähere Informationen möchte ich wieder auf die Progammdoku verweisen.

Lauflängenkodierung

Außerdem verwenden wir bevor wir den Huffman-Algorithmus anwenden, auch noch die Lauflängencodierung (engl. run-length-coding) - eine sehr simple Kompressionsart. Dabei wird ausgenutzt, dass Buchstaben manchmal mehrmals direkt hintereinander vorkommen. Kleines Verständnisbeispiel (ACHTUNG: ziemlich vereinfacht und lässt einige Dinge außer Acht):
Wenn in einem Text "HHHHHallo" steht, wäre es doch effizienter einfach nur "H5allo" zu schreiben, was bedeuten könnte H 5mal hintereinander, dann normal weiter.

Soviel zum Thema Kompression / Telekommunikationsteil als ersten Überblick und Hinweis was Sie an praktischer Umsetzung auf diesen Seiten erwartet.

Links zu "Komprimierung"

Arturo Campos home page   Vielversprechende Website mit Artikel über Lauflängen- und Huffmankomprimierung
Projekt Datenkompression   Projektarbeit über Datenkompression mit Pascal Quellcodes
Kompressionsalgorithmen   Einführung in Kompressionsalgorithmen (Basics)
datacompression.info   viele Links zu Datenkomprimierung
     
BUCH: Introduction to Data Compression   ausgezeichnetes Buch zum Thema Datenkompression; Theorie genau erklärt!!

Top

Sonstiges:

Da wir diesen Teil unserer Seite als auch Linksammlung verwenden wollen, müssen wir hier natürlich auch jene Links anbringen, die in keine der oben genannten Kategorien passt. Unter diesen Links befinden sich verweise, die uns während dem Projekt untergekommen sind und die wir als sehr hilfreich empfunden haben, bzw. einfach nur der Meinung waren, dass sich dahinter gute Seiten befinden.

Links zu "Sonstiges"

Sourceforge Seite   unterstützt Open-Source Projekte mit vielen nützlichen Services (bereits bei der Entwicklung)
Oreilly "OpenSource" Buch   Text über Open Source und Lizenzen
Suchfibel   Erläuterung zur Funktionsweise von Suchmaschinen (leichter finden, Webseitenranking verbessern, leichter gefunden werden,...)
DokuWelt   Viele Dokus und Links zu diversen Themen

Top

Pötschner

SourceForge.net Logo