introduce teenagers to the fun of programming
play

introduce teenagers to the fun of programming Syrine Krichene - PowerPoint PPT Presentation

How we used Python to introduce teenagers to the fun of programming Syrine Krichene Software Engineer @ Criteo Anne-Marie Tousch Research Scientist @Criteo @amy8492 Problem CRITEO R&D EMPLOYEES WORLDWIDE Women 10% Men 90% 2


  1. How we used Python to introduce teenagers to the fun of programming Syrine Krichene Software Engineer @ Criteo Anne-Marie Tousch Research Scientist @Criteo @amy8492

  2. Problem CRITEO R&D EMPLOYEES WORLDWIDE Women 10% Men 90% 2 •

  3. Stereotypes vs. reality • Women under-representation is a fairly recent phenomenon • Many women programmers throughout history • We want the young people to embark! 3 •

  4. A day to discover computer science jobs • Meet women engineers • Visit our Criteo Paris office • Have fun & get some swag • Actually write some code 4 •

  5. Preparing the coding part • Discover computer science • Motivate career choice in computer science 5 •

  6. The time constraint 1h30 6 •

  7. No bugs • Setup and check all the computers • Prepare code 8 •

  8. Mentoring • Pair programming • Unblocker • Questions 9 •

  9. Have fun & Be creative • Music, games, images and video, robots • Immediate feedback 11 •

  10. Discover a real programming language • Reads like english • Multi-purpose • Rich ecosystem • Used by professionals 12 •

  11. Discover computer science topics • Robots • Games • Video & pictures processing • Data processing • Artifical intelligence • … 13 •

  12. Apply what you already know • High school Maths • High school Physics • English! 14 •

  13. Progress • It feels good to learn • Step-by-step discoveries 15 •

  14. Color-switch alike game

  15. 17 •

  16. Have fun & Be creative • Have fun -> Play Games -> Win the Game -> Be the best at your game ! • Be creative: -> change the game's set up -> change the rules -> change the graphics ... 18 •

  17. Discover a real programming language • Simple functions for loops if conditions 0 1 2 Hi 0 Hi 0 for i in range(3): 0 0 0 1 1 1 2 2 2 for i in range(3): for i in range(3): for i in range(3): 0 1 2 Hi 1 for i in range(3): Hi 1 Hi 1 print(“Hi ”, i) print(“Hi ”, i) print(“Hi ”, i) print(“Hi ”, i) print(“Hi ”, i) Hi 2 Hi 2 Hi 2 Hi 2 19 •

  18. Discover a real programming language • Simple functions for loops if conditions • Using libraries: Kivy Learn to look for information on the web! read the documentation 20 •

  19. Discover computer science topics • Create games: Action on clicks Animation 21 •

  20. Discover computer science topics • Create games: Action on clicks Animation Graphics 22 •

  21. Discover computer science topics • Create games: Action on clicks Animation Graphics Frame displays Widget interactions (master and slave) 23 •

  22. Discover computer science topics • Create games: Action on clicks Animation Graphics Frame displays Widget interactions (master and slave) Progress Game hacking 24 •

  23. Apply what you already know • Physics Use positions to check collisions Increase the speed • Math​ Use variables to automate changes​ • Logic Realistic animation​ Scoring rules • Geometry and drawings Create the widgets graphics 25 •

  24. Progress • Workshop + presentation • Increase difficulty • Discover different parts of the game • Let's hack and play the game ! 26 •

  25. Cra razy filters ers

  26. Get creative • Teens love Snapshat & Instagram • Even basic image processing is fun • Use the webcam for immediate feedback 28 •

  27. Python main.py • Powered by Kivy & Numpy • Boosted with OpenCV • GUI to ease testing • Commented in french transforms.py 29 •

  28. Image processing • Digital images • Use RGB color system to create custom colorizations 30 •

  29. From simple to complex • Draw rectangles • Draw flags • Combine effects • Use OpenCV … … AI inside !!! Demo time! 31 •

  30. Maths to the rescue • The image coordinate system • How do you draw a star? 32 •

  31. Students « avoir passé une journé née chez Criteo o m'a apporté bien plus que je ne l’imaginais. » « j'ai parti ticul ulièrement t aimé cette joie qui nous a été commun uniqué uée, jointe à l'envie de créer et de programmer en découvrant t de nouvelles choses. » 34 •

  32. Teachers • Exercises are not easy! 35 •

  33. Take-aways • Close mentoring • Competition helps creativity • Don’t hide code difficulty 36 •

  34. We’re doing it again soon! • Contact CGénial if you want to participate • Checkout our code on https://github.com/criteo/je-code-crazy-filters 37 •

Recommend


More recommend