
Summer Youth School - Internship at Intel 0x7DC
Hello to all Habra students, undergraduates and graduate students! 
According to student time, the session is still far away, and even further until the summer. So while there are many options how to spend it: that is, decide where exactly to read the habr - at home, on the beach or at work.
But there is another option that you will undoubtedly enjoy if you are tired of such a vacation and want to devote time to your development and future career.
In July - August 2012 in the development centers Intel - Nizhny Novgorod and Novosibirsk will host Summer Schools-Internships (LS). More than 50 participants will be able to practice their programming skills and gain invaluable experience in real projects of the company.
The tasks that the LS participants are invited to work on this year, 0x7DC, are so interesting that even if for some reason you cannot take part in the LS (sorry, sorry), then you should get to know them better.
In total, Intel engineers formulated about fifty tasks that they themselves would love to work on, if they hadnot spent time on the formulation of these tasks , they would not have been occupied with other equally interesting tasks.
Tasks cover almost all areas of programming - from low-level (for example, “ Static analysis of program code efficiency by analyzing binary code ” or “Tool for analyzing the size of executable code”) to web programming (for example, “ Web service for visualizing data collected by Intel Inspector XE "or" Designing a website to monitor the health of a web portal using HTML 5 and CSS3 ").
There are tasks for both Windows and Linux ... and even for Android ("A useful smart and responsive mobile application for a tablet or phone that actively uses the resources of the central and graphic processors ").
.NET and C #? And there are such tasks too.
Of course, many tasks are associated with parallel programming technologies - OpenMP, TBB, Cilk and OpenCL .
Aren't you afraid of the word intrinsic? Then we suggest " Optimize the OpenCV library using the intrinsic functions of the compiler " or explore " Intrinsic compatibility for Intel / GCC / Microsoft compilers ".
Lovers of mathematics are also not deprived of tasks (for example, "Mathematical planning of resources and testing tasks ") and computer vision (examples below).
A complete list of tasks is available as a pdf file here .
But its most interesting (in my subjective opinion) representatives:
Task 15. Recognizing the shape and rotation of objects
The development goal is to create a human-machine interface, within which the user controls the operation of a program using various objects of a simple shape (cube, sphere, pencil). For this, it is necessary to determine the fact of moving / rotating the object, having input from the unified shell above various information input devices - cameras. It is proposed to take a color video stream as the basis, but if the implementation requires 3D data, the depth-map will be available through the same interface. To simplify the task, consider the faces of the object painted in different colors. Offer your own version of working with the sphere.
Task 3. Improve the work capture algorithm in the OpenMP / Intel Threading Building Blocks (TBB) libraries
Investigate the possibilities of improving the performance of the work capture algorithm in the OpenMP / Intel Threading Building Blocks (TBB) libraries for unstructured tasks taking into account information about the binding of threads to processors, machine topology, and library restrictions.
Task 21. Development of a decision-making algorithm based on unstable input from a camera.
Develop and implement a decision-making block based on data received after processing from cameras of the “Kinect for Windows” type.
The project consists of three parts:
1. Preparation of an overview of the technologies used in computer games for working with a 3D camera
2. The prototype of using a web or 3D camera to form remote control commands (directly, back, left, right, stop) with a “toy” car in a graphical application simulating the movement of a car over rough terrain. The application is written in C ++ using the D3D 10 library.
3. Virtual scene control (rotation, movement, zoom) using gestures based on information received from the Depth camera
Task 26. Application implementation of Continuous Delivery ideas
Continuous Delivery (http://continuousdelivery.com) is an ultra-innovative and fast-growing idea of continuous delivery of software to end users. Each time a programmer integrates his changes into a central code repository, a new version of the system is delivered to end users. Implementing such an approach to software delivery in practice puts the development team in front of a long list of calls:
Fully automatically make sure that the changes made do not interfere with the system’s performance.
Upload a new version of the system to the server without interrupting users.
After shipment of a new version of the system, automatically detect possible failures caused by recent changes.
Roll back the system to a previous version in case of problems and notify the author of the changes about the problem.
Develop a set of rules, following which it will be possible to achieve simultaneous parallel execution of different versions of the system.
Task 7. Emulation of interaction with a mobile device.
Description of the task. Development of a set of tools to emulate accelerometer, GPS, video camera, microphone and other sensors of a mobile device. Implementation of a universal driver that allows you to record and play events.
Then we add that in addition to working on tasks, for two months, leading Intel engineers and teachers of Russian universities will hold special lectures, seminars and trainings for you. In addition, you will have the opportunity to obtain a certificate in one of the areas in the field of Intel Programming Professional, as well as take part in the program of U.M.N.I.K.
In addition, a summer school is also a good opportunity to earn money. During the internship, remuneration is paid, and nonresident interns are given a grant to travel from the place of study to the place of internship and vice versa, plus free accommodation in a student dormitory.
The school is being held for the 13th time, and as a last resort to eliminate your doubts, I can advisean excellent post-announcement dedicated to one of the past schools , which has links to a story about past schools (no, this is not a recursion).
By the way, since then, the Intel office in Nizhny Novgorod has been modernized, especially the dining room, and a cableway across the Volga has been launched right in front of the office.
To take part in the internship you need
When the questionnaire is completed, and your idea of the solution is framed in a text editor, send all the materials to us at innl-schools@intel.com
And do not hesitate - there are only a few days left until the application deadline! ( See the LS site )
If you still have questions, they will be answered by phone +7 (831) 296-94-91.
UPD. Applications are accepted until 18:00 on May 10th.

According to student time, the session is still far away, and even further until the summer. So while there are many options how to spend it: that is, decide where exactly to read the habr - at home, on the beach or at work.
But there is another option that you will undoubtedly enjoy if you are tired of such a vacation and want to devote time to your development and future career.
In July - August 2012 in the development centers Intel - Nizhny Novgorod and Novosibirsk will host Summer Schools-Internships (LS). More than 50 participants will be able to practice their programming skills and gain invaluable experience in real projects of the company.
The tasks that the LS participants are invited to work on this year, 0x7DC, are so interesting that even if for some reason you cannot take part in the LS (sorry, sorry), then you should get to know them better.
Tasks
In total, Intel engineers formulated about fifty tasks that they themselves would love to work on, if they had
Tasks cover almost all areas of programming - from low-level (for example, “ Static analysis of program code efficiency by analyzing binary code ” or “Tool for analyzing the size of executable code”) to web programming (for example, “ Web service for visualizing data collected by Intel Inspector XE "or" Designing a website to monitor the health of a web portal using HTML 5 and CSS3 ").
There are tasks for both Windows and Linux ... and even for Android ("A useful smart and responsive mobile application for a tablet or phone that actively uses the resources of the central and graphic processors ").
.NET and C #? And there are such tasks too.
Of course, many tasks are associated with parallel programming technologies - OpenMP, TBB, Cilk and OpenCL .
Aren't you afraid of the word intrinsic? Then we suggest " Optimize the OpenCV library using the intrinsic functions of the compiler " or explore " Intrinsic compatibility for Intel / GCC / Microsoft compilers ".
Lovers of mathematics are also not deprived of tasks (for example, "Mathematical planning of resources and testing tasks ") and computer vision (examples below).
A complete list of tasks is available as a pdf file here .
But its most interesting (in my subjective opinion) representatives:
Task 15. Recognizing the shape and rotation of objects
The development goal is to create a human-machine interface, within which the user controls the operation of a program using various objects of a simple shape (cube, sphere, pencil). For this, it is necessary to determine the fact of moving / rotating the object, having input from the unified shell above various information input devices - cameras. It is proposed to take a color video stream as the basis, but if the implementation requires 3D data, the depth-map will be available through the same interface. To simplify the task, consider the faces of the object painted in different colors. Offer your own version of working with the sphere.
Task 3. Improve the work capture algorithm in the OpenMP / Intel Threading Building Blocks (TBB) libraries
Investigate the possibilities of improving the performance of the work capture algorithm in the OpenMP / Intel Threading Building Blocks (TBB) libraries for unstructured tasks taking into account information about the binding of threads to processors, machine topology, and library restrictions.
Task 21. Development of a decision-making algorithm based on unstable input from a camera.
Develop and implement a decision-making block based on data received after processing from cameras of the “Kinect for Windows” type.
The project consists of three parts:
1. Preparation of an overview of the technologies used in computer games for working with a 3D camera
2. The prototype of using a web or 3D camera to form remote control commands (directly, back, left, right, stop) with a “toy” car in a graphical application simulating the movement of a car over rough terrain. The application is written in C ++ using the D3D 10 library.
3. Virtual scene control (rotation, movement, zoom) using gestures based on information received from the Depth camera
Task 26. Application implementation of Continuous Delivery ideas
Continuous Delivery (http://continuousdelivery.com) is an ultra-innovative and fast-growing idea of continuous delivery of software to end users. Each time a programmer integrates his changes into a central code repository, a new version of the system is delivered to end users. Implementing such an approach to software delivery in practice puts the development team in front of a long list of calls:
Fully automatically make sure that the changes made do not interfere with the system’s performance.
Upload a new version of the system to the server without interrupting users.
After shipment of a new version of the system, automatically detect possible failures caused by recent changes.
Roll back the system to a previous version in case of problems and notify the author of the changes about the problem.
Develop a set of rules, following which it will be possible to achieve simultaneous parallel execution of different versions of the system.
Task 7. Emulation of interaction with a mobile device.
Description of the task. Development of a set of tools to emulate accelerometer, GPS, video camera, microphone and other sensors of a mobile device. Implementation of a universal driver that allows you to record and play events.
Are you still in doubt - true or false?
Then we add that in addition to working on tasks, for two months, leading Intel engineers and teachers of Russian universities will hold special lectures, seminars and trainings for you. In addition, you will have the opportunity to obtain a certificate in one of the areas in the field of Intel Programming Professional, as well as take part in the program of U.M.N.I.K.
In addition, a summer school is also a good opportunity to earn money. During the internship, remuneration is paid, and nonresident interns are given a grant to travel from the place of study to the place of internship and vice versa, plus free accommodation in a student dormitory.
The school is being held for the 13th time, and as a last resort to eliminate your doubts, I can advisean excellent post-announcement dedicated to one of the past schools , which has links to a story about past schools (no, this is not a recursion).
By the way, since then, the Intel office in Nizhny Novgorod has been modernized, especially the dining room, and a cableway across the Volga has been launched right in front of the office.
I am curious. How to become a "schoolboy"?
To take part in the internship you need
- Read the full conditions of participation in the LS
- Download and fill out the application form
- Make an approximate plan for solving your chosen problem from the above full list . Since programmers are creative people, we do not have strict requirements for describing an idea.
When the questionnaire is completed, and your idea of the solution is framed in a text editor, send all the materials to us at innl-schools@intel.com
And do not hesitate - there are only a few days left until the application deadline! ( See the LS site )
If you still have questions, they will be answered by phone +7 (831) 296-94-91.
UPD. Applications are accepted until 18:00 on May 10th.