Applied Informatics
What is Applied Informatics?
Informatics is the science of the systematic and automatic processing
of information.
Research is done in the areas of:
- structure, characteristics and description of information and information processing.
- construction, function and structure of infromation processing machines (Computers).
- development of experimental and product oriented information processing systems.
- development of structured, formal and mathematical models in fields of application.
- software engeneering emphasizing flexibility, reusability, correctness and human-computer-interaction.
- Soft- and hardware-construction.
- Maintaining and adapting existent application systems.
- Network administration.
- Teaching.
- Reasearch in science and industry.
The attribute 'Applied' in Applied Informatics refers to the fact that students of Applied Informatics have the opportunity to include ten percent more courses of a different field of science, such as biology, physics, business etc., into their studies than in regular Informatics programs.
Computer scientists work in a number of fields during their professional life. A sound knowledge of the area of application is required to adequately solve its problems. Students of Applied Informatics have the chance to do in depth studies in such an area during their university education.
Work Samples
Here are a few examples of my work, some related to courses I took at the university,
some from private explorings and internships (with permission).
Note: The following examples have all been compiled and tested. However, do not use the code in critical applications without further, thorough testing! I take on no responsibility for any damage which migth come from the use of these examples!
C
The following examples originate from the C-Praktikum and Informatik- Praktikum. The C-Praktikum was dominated by pattern- and stringmatching algorithms, because the instructor specialized in biological sequence analysis. The programming assignments are passed out to groups of two students (extreme programming) in the Informatik-Praktikum, my partner was Daniel Fredrich.Perl
The following examples in perl stem from personal exploring. Object oriented programming in perl is very interesting because you have to watch details which are normally taken care of by the language system.Java
Java is a fun, easy to learn object oriented language. The bezier-curve-program uses the De Casteljau algorithm. It can display multiple bezier curves in two modes. All parameters of the algorithm can be modified by slide rulers and the effects on the bezier-curves is displayed.LaTeX
The following sty-file implements the rules for bachelor- and master's thesis at the Faculty of Forest Science & Ecology at Georgia-Augusta. Personally, I believe their are better styles.JavaScript
The similarities of Java and JavaScript end with the names. Nevertheless, JavaScript provides an elegant way to bring dynamic behavior to a webpage.Shell Scripting
Shell-scripting is somewhat awkward :-). I prefer to use perl instead. Nevertheless, it comes in handy sometimes.Visual Basic
Part of the work of the team 'Strategies of forest management' under the direction of O. Thees and R. Lemm at the WSL in Birmensdorf (Zürich) is to develop software which provides decision support based on the results of cutting edge research. I spent an internship designing and implementing a software component (COM) in their team and had a great time.The work included the design of a timber sorting algorithm. Although this can be done in numerous ways the algorithm guarantees to find the optimal solution according to freely specifyable sorting standards and weighting functions. A heuristic algorithm is provided for faster computation. See Sortieralgorithmus for further documentation (German).
Further Languages
I have worked with a few other languages, including c++ (Templates & generative programming), php and mathematica. Generally, I should do fine with any imperative programming language, with structured and object oriented programming. I have looked into prolog a little (sw-prolog), but I have most experience with imperative, rather than functional or logic, languages.
Object Oriented Analysis of Forest Growth and Yield
AbstractForest growth and yield models are developed to assist in decision-making and model validation by providing information. The content and quality of this information varies from model to model.
Simulation models can be classified by similarities in their structure. Common types of forest growth and yield models include stand and single-tree models which can be distance-dependent or distance-independent.
Nevertheless, all types of forest growth and yield models have to deal with characteristic features of forest ecosystems and management. These include different scales in time and space, longevity, stand structure, system openness and the multitude of different interests in forest management.
There are many approaches to modeling natural phenomena. Object oriented modeling is one. The key advantage of object oriented modeling is its relatedness to the nature of human thought.
Time is often implicitly 'wired' into a program. Nevertheless, it is an important part of a model. Modeling the changing state of objects in time with a sequential program can cause problems. One such problem is the loss of information about the prior state(s) of an object while it is still needed by another object. The time-chain provides an elegant solution to this problem.
The definition of the classes which are the backbone of a model is of prime interest. The types should be useful in most kinds of forest growth and yield models to ensure compatibility while not exploding in size.
A forester, forest worker, storm or herd of animals can be seen as visitors to a stand. Interventions and other actions, even growth models, can be brought to a stand by appropriate visitors. Combining the visitor pattern with a set of common base types allows great flexibility and extensibility.