Skip to main content

General Competition PropositionsPupin's Challenge

Who is participating and what you need to know

High school students from gymnasium and vocational/technical schools participate in this cycle of Pupin’s Challenge.

First, knowledge of the JAVA programming language is required for participants. At all workshops, Processing will be done in Java, Android and in Raspberry Pi mode, with the use of other devices and accessories. Other knowledge in computer science, such as knowledge of the C programming language, electronics and alike, acquired at school and outside of it, are welcomed.

Prior knowledge and experience in working with Raspberry Pi or Arduino devices is not required, as participants will get to know them in the workshops. However, it is necessary to learn the basic information about Arduino devices using the video lessons at the end of the text.

Important: The expert team will adapt the work of the workshops according to the knowledge of the participants and will be happy to guide and prepare them for practical work, but a certain level of prior knowledge is required to participate in this cycle.

Unlike the previous edition, this one will only feature team performances, without projects. It is planned that the teams will have 2 members (max 3, which will be determined later). To reserve a place for your team, fill out the application form here (Serbia only).

The workshops are preparations of the participants for the finals of the competition. Workshops at the Endava company in Belgrade and SynchroHub in Pančevo will provide final instructions and the necessary preparation for the finals.

During the competition part, there will also be a parallel workshop, like in the previous edition, we will have demonstration work with Arduino sets and a Processing workshop. This applies to all teams who want to learn and decide to try themselves next time in the competitive part of Pupin’s Challenge.

Workshop Programme and Finals - Introduction to Processing

In this cycle of Pupin’s Challenge, we opted for PROCESSING.

This programming course consists of 3 parts:

  • The first part is an introduction to the basics of programming using processing.
  • The second part is advanced topics that are preparation for the development of specific projects.
  • The third part is the creation of a specific program.

The workshops that have been and will be, represent an intensive overall course organized in the form of workshops with mentor work and independent work. The entire cycle is called INTRODUCTION TO PROCESSING.

All three units will be represented at all workshops.

What is Processing?

Processing is a simple tool (sketchbook) and language for learning programming based on the programming language Java, Python or JavaScript. It enables the student to start very quickly creating programs from modern and creative areas such as:

  • 3D and 2D graphics, animations, fractals
  • Image processing, neural networks
  • Simulations of particle movement
  • Games
  • Working with Raspberry Pi and Arduino
  • Programs for android devices

All three units of Processing based on JAVA will be worked on in all workshops.

First part – Introduction to the basics

  1. Introduction to Processing – Installation of tools, why processing
  2. Arrays – program flow control, colors
  3. Work with data, forms, image processing
  4. Working with input devices: keyboard and mouse
  5. Lights, objects, structures and shapes
  6. Advanced data, animations, mathematical functions, transformations

Second part – advanced topics

  1. Vectors and motion
  2. Objects – inheritance
  3. GUI, Photo processing – introduction
  4. Mathematics, fractals and working with files
  5. Ball movement using vectors and objects
  6. Forms – polygons, Loading and displaying photos, Mouse and keyboard functions
  7. Mathematics – distance 2D, Objects – inheritance, Loading JSON data
  8. GUI – Button, Image processing – Edge detection, Simulations – Particle system

The third part – practical application

This part will be implemented at the final workshops at Endava in Belgrade and SynchroHub in Pančevo.

The knowledge gained from this part is necessary for a successful performance in the final.

Useful links:


  1. Array 2D
  2. Hue
  3. Datatype Conversation
  4. Transformations – Arm
  5. Movement – Bounce
  6. Objects – Inheritance