Designing and implementing larger software projects using object-oriented methods. The students will acquire knowledge about data visualization and will learn to apply this knowledge in independent work.
- The software development cycle (specification, design, implementation, testing, maintenance), object-oriented design (object, classes, inheritance techniques, UML, templates, STL, design patterns); C++, Java
- Algorithms and Data Structures
- Searching, sorting, hashing, basic data structures, algorithms using graphs, complexity, correctness, algorithm families
- Visualization pipeline, data sources and data types, transformation and filtering of data, techniques for visualizing 1st, 2nd, and 3rd scalar data, marching cube algorithm, rendering systems and methods, ray-tracing, perception and color, color models, visualizing vector field data, information visualization of physical and abstract data, aesthetics and techniques in graphical design.
- Makefiles, version control systems, combination of different programming languages, scripting languages, debugging, profiling, numerical libraries, Matlab, computer algebra packages
- Strategies and methods of worldwide distributed (GRID) computing, current problems in the development and application of GRID middleware
- Scientific databases, data models for statistical and scientific databases, semantic and object-oriented modelling of application domains.
- Basic familiarity with the C programming language
- Memory Architecture and Data Modeling: Types, Variables, and Expressions
- Discrete mathematical structures: Sets, Recursion, Relations, Functions, and Graphs
Bibliography and teaching material includes:
- Version Control by Example, Eric Sink
- Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
- The C++ Standard Library Nicolai M. Josuttis
- Problem Solving with Algorithms and Data Structures, Brad Miller and David Ranum
- Interactive Computer Graphics Edward Angel
- The following assessment methods will be combined for the final grade:
- Weekly homework assignments
- Project on scientific data visualization
- Written final exam