CoS 510: Data Structures

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.

Asst. Prof. Mihalis Nicolaou


  • 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

Assessment methods:

  • The following assessment methods will be combined for the final grade:
    • Weekly homework assignments
    • Project on scientific data visualization
    • Written final exam