Sei sulla pagina 1di 4

Wenglor Students Software Challenge – 2018

Description:

Processing large files in an efficient manner is of top importance in real world applications. The
objective of this application is to resolve the processing tasks described below by using the
least amount of resources as possible.

Problem to be solved:

On the provided Input Files execute a set of provided image basic operations (i.e image
translation and matrix convolution) in as possible as efficient manner, oferring results as
output image files accompanied by a web based user interface app.

For the following provided challenge archive containing:

Input Files – folder containing 10 X BMP 24bpp color images


Operations file - Operations.txt containing two basic operations:
• image translation of an image rectangle from a source position to a destination
position (i.e translate 350 75 800 400 1450 1050) where:
◦ first number - X coordinate of the source image rectangle(i.e 350)
◦ second number - Y coordinate of the source image rectangle(i.e 75)
◦ third number - Width of the image rectangle to be translated (i.e 800)
◦ fourth number - Height of the image rectangle to be translated (i.e 400)
◦ fifth number - X coordinate of the destination image rectangle (i.e 1450)
◦ sixth number - Y coordinate of the destination image rectangle (i.e 1050)
• convolution matrix of a specified source image rectangle with a specified convolution
3x3 size matrix ( i.e convolution 30 1000 600 300
-1 -1 -1
-1 8 -1
-1 -1 -1 ) where:
◦ first number - X coordinate of the source image rectangle (i.e 30)
◦ second number - Y coordinate of the source image rectangle (i.e 1000)
◦ third number - Width of the source image rectangle (i.e 600)
◦ fourth number - Height of the source image rectangle (i.e 300)
◦ 3x3 convolution matrix coefficients
Output Files – folder containing transformed BMP images provided by you. If not available the
folder must be created.
Sample Files – folder containing sample BMP images to better understand the requirements.
The sample image operations defined inside the Operations.txt file applied on the input image
files resulted into the output image files.
evaluator.exe – application evaluating your executable in terms of execution time (CPU cycles)
and peak memory consumption

complete the following tasks:

Task 1: Web-based User Interface - provide a web-based user interface which must be
able to:
1. Access the images in the Input and Output folders on the file system
2. Display for each input image in the Input folder, the corresponding output
image generated by the application described in Task 2
3. The GUI must allow stepping through the images by user interaction (E.g.
clicking on Next/Previous buttons
4. The GUI must be accessible in the browser by accessing http://127.0.0.1
This is how a simple GUI could look like

5. Please include source files and instructions about running the application

Task 2: Console application - provide a console application which must be able to:
1. Load all the images from the provided Input Files folder
2. Load the provided image operations file – Operations.txt
3. Apply provided operations on every image of the provided input image folder
4. Save/Write the transformed result image into the Output Files folder

The console application must be an executable application in order to be


properly evaluated by the provided evaluation tool.
Submissions: will consist of the source code and the compiled executables – please archive
these. For the web interface, please also include the development versions of the files
(unminified)

Scoring: Code from each entry will be made public when the results are published. The scoring
will be done with the help of the evaluator tool included in this package.

Validation: The resulted transformed images are evaluated for corectness. Every valid entry will
be scored on a 100p scale as follows:

Task 1: 20p
Task 2: 40p
- 10p peak memory consumption:
your_score = LMC/YMC*10p
LMC - lowest peak memory consumption
YMC - peak memory consumption of your application
- 30p execution speed: the total time spent to complete correctly all tasks:
your_score = LET/YET*30p
LET - lowest execution time
YET - execution time of your application
Task 1 + Task 2: 10 p
Application design & code readability: 30p
your_score = code review performed by the contest's organizer

At least 50p are needed to qualify for a prize. Only the first three projects registering
the highest score will be financially rewarded, as specified in the flyer.

Restrictions:
1. You must be a student to participate in this contest
2. Implementing Task 2 will be done in one of the following languages: C++, C# (at
least .NET 4.0), Python

Testing Environment:
1. Windows 7 SP1 on Intel Core i7-3770 CPU
2. For evaluation purposes, the evaluator.exe tool provided in the package will be used.
3. We will use Google Chrome for reviewing the web interface

Using evaluator.exe: copy your executable file in the package folder and run the evaluator tool
with your executable as start parameter. Once the evaluation is ready, it will generate a report
containing the evaluation results.
Things that might help you:
1. using different libraries such as boost
2. consider using a multi-threaded approach
3. think about making compromises between execution speed and memory
consumption
4. think about optimizing the provided operations file before applying the operations

Contest schedule as follows:


13 – 30 november 2018
Providing your solutions (source files included) to ovidiu.bodea@wenglor.com.

03 december – 10 december 2018


Evaluating solutions by the contest organizer. This also includes the need to
present your solution at the company site. We will contact you if this will be the case.

21 december 2018
Latest date for granting contest awards.

Further/detailed informations: please contact ovidiu.bodea@wenglor.com


vlad.sebesan@wenglor.com

Potrebbero piacerti anche