You need to activate javascript for this site.
Menu Conteúdo Rodapé
  1. Home
  2. Courses
  3. Computer Science and Engineering
  4. Interactive Computing and Visualization

Interactive Computing and Visualization

Code 14472
Year 1
Semester S1
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Entry requirements Programming skills.
Learning outcomes The general objectives of the course are:
- To enable students with a holistic view of computer graphics, scientific computing, and data visualization.
- To enable students with skills in shader programming.
- To enable students with skills in GPU parallel computing (e.g., compute shaders and CUDA).
- To expose students to visual representation methods and techniques that increase the understanding of complex data.
- To prepare students for the research at MSc and PhD levels.
Regarding learning objectives, at the end of course the student must at least to be able:
- To re-program the 3D graphics pipeline using a shader (e.g., Blinn-Phong shader).
- To design and develop and implement a compute shader to run general-purpose tasks in parallel on GPU.
- To design and develop a CUDA-based interactive application.
- To design and develop a scientific visualization application (e.g., molecular visualization) using shader programming and/or CUDA programming.
Syllabus Part I: Shader Programming
01. Basics of shader programming in GLSL.
02. Illumination, shading, and textures in GL SL.
03. Shaders for image processing and screen image techniques.
04. Tessellation shaders and shadows.
05. Compute shaders.

Part II: GPU Computing
06. GPU architecture.
07. CUDA programming techniques.
08. Re-design of fundamental algorithms in CUDA.
09. CUDA programming: advanced topics.
10. Integrating OpenGL, GLSL, and CUDA.

Part III: Data Visualization
11. Visualization fundamentals.
12. Visualizing abstract data.
13. Visualizing spatial data.
Main Bibliography Principal/Main:
- D. Wolf. OpenGL 4 Shading Language Cookbook, 2nd ed., PACKT Publishing, 2013.
- Shane Cook, CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, Morgan Kaufmann, 2013.
- T. Munzner. Visualization Analysis and Design, CRC Press, 2014.
- R. Grant. Data Visualization: Charts, Maps, and Interactive Graphics, CRC Press, 2018.

Complementar/Complementary:
- G. Sellers, R. Wright Jr., and N. Haemel. OpenGL SuperBible, 7th ed., Addison-Wesley Professional, 2015.
- T. Akenine-Moller, E. Haines, and N. Hoffmann. Real-Time Rendering, 3rd ed,. A.K. Peters / CRC Press, 2008.
- D. Kirk and W. Hwu. Programming Massively Parallel Processors: A Hands-On Approach, Morgan Kaufmann Publishers, 2010.
- J. Sanders and E. Kandrot. CUDA by Example: An Introduction to General-Purpose GPU Programming, Addison-Wesley Professional, 2011.
- S. Murray. Interactive Data Visualization for the Web, O’Reilly, 2013.
- I. Meirelles. Design for Information, Rockport Publishing, 2013.
Teaching Methodologies and Assessment Criteria To allow the student to acquire the skills (see learning objectives) required in course, the following activities are planned:

- 2h/week of theoretical (T) lectures on theoretical concepts, methods and algorithms, using overhead projection, white-board writing, and discussing ideas with students;
- 2h/week of practical and laboratory classes (PL), in which students apply and test concepts and
algorithms introduced in lectures by solving programming exercises proposed by the instructor;
- 2h/week tutoring for answering questions, solving problems that were not resolved in the PL classes, as well as to monitor the students in developing their projects;
Language Portuguese. Tutorial support is available in English.
Last updated on: 2025-01-10

The cookies used in this website do not collect personal information that helps to identify you. By continuing you agree to the cookie policy.