SlideShare a Scribd company logo
1 of 37
Syrine Krichene
Software Engineer @ Criteo
How we used Python to introduce
teenagers to the fun of
programming
Anne-Marie Tousch
Research Scientist @Criteo
@amy8492
2 •
Problem
Men
90%
Women
10%
CRITEO R&D EMPLOYEES
WORLDWIDE
3 •
• Women under-representation is a fairly
recent phenomenon
• Many women programmers throughout
history
• We want the young people to embark!
Stereotypes vs. reality
4 •
• Meet women engineers
• Visit our Criteo Paris office
• Have fun & get some swag
• Actually write some code
A day to discover computer
science jobs
5 •
Preparing the coding part
• Discover computer science
• Motivate career choice in computer
science
6 •
The time constraint
1h30
8 •
• Setup and check all the
computers
• Prepare code
No bugs
9 •
• Pair programming
• Unblocker
• Questions
Mentoring
11 •
Have fun
&
Be creative
• Music, games, images and
video, robots
• Immediate feedback
12 •
• Reads like english
• Multi-purpose
• Rich ecosystem
• Used by professionals
Discover a real programming
language
13 •
• Robots
• Games
• Video & pictures processing
• Data processing
• Artifical intelligence
• …
Discover computer science
topics
14 •
• High school Maths
• High school Physics
• English!
Apply what you already know
15 •
• It feels good to learn
• Step-by-step discoveries
Progress
Color-switch
alike game
17 •
18 •
• 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
...
Have fun
&
Be creative
19 •
• Simple functions
for loops
if conditions
Discover a real
programming language
for i in range(3):
print(“Hi ”, i)
Hi 0
Hi 1
Hi 2
0 1 2
for i in range(3):
print(“Hi ”, i)
Hi 0
Hi 1
Hi 2
0 1 2for i in range(3):
print(“Hi ”, i)
Hi 1
Hi 2
0 1 2for i in range(3):
print(“Hi ”, i) Hi 2
0 1 2for i in range(3):
print(“Hi ”, i)
0 1 2
20 •
• Simple functions
for loops
if conditions
• Using libraries: Kivy
Learn to look for information on the web!
read the documentation
Discover a real
programming language
21 •
• Create games:
Action on clicks
Animation
Discover computer science
topics
22 •
• Create games:
Action on clicks
Animation
Graphics
Discover computer science
topics
23 •
• Create games:
Action on clicks
Animation
Graphics
Frame displays
Widget interactions (master and slave)
Discover computer science
topics
24 •
• Create games:
Action on clicks
Animation
Graphics
Frame displays
Widget interactions (master and slave)
Progress
Game hacking
Discover computer science
topics
25 •
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
26 •
• Workshop + presentation
• Increase difficulty
• Discover different parts of the game
• Let's hack and play the game !
Progress
Crazy filters
28 •
• Teens love Snapshat & Instagram
• Even basic image processing is
fun
• Use the webcam for immediate
feedback
Get creative
29 •
• Powered by Kivy & Numpy
• Boosted with OpenCV
• GUI to ease testing
• Commented in french
Python
main.py
transforms.py
30 •
• Digital images
• Use RGB color system to
create custom colorizations
Image processing
31 •
• Draw rectangles
• Draw flags
• Combine effects
• Use OpenCV…
… AI inside !!!
From simple to complex
Demo time!
32 •
• The image coordinate system
• How do you draw a star?
Maths to the rescue
34 •
Students
« avoir passé une journée chez Criteo m'a apporté bien plus que je
ne l’imaginais. »
« j'ai particulièrement aimé cette joie qui nous
a été communiquée, jointe à l'envie de créer et
de programmer en découvrant de nouvelles
choses. »
35 •
• Exercises are not easy!
Teachers
36 •
• Close mentoring
• Competition helps creativity
• Don’t hide code difficulty
Take-aways
37 •
• Contact CGénial if you want to participate
• Checkout our code on https://github.com/criteo/je-code-crazy-filters
We’re doing it again soon!

More Related Content

Similar to PyParis -- How we used Python to introduce teenagers to the fun of programming

Hardware Hacking in schools (ACEC2014)
Hardware Hacking in schools (ACEC2014)Hardware Hacking in schools (ACEC2014)
Hardware Hacking in schools (ACEC2014)Dan Bowen
 
Teaching Machine Learning with Physical Computing - July 2023
Teaching Machine Learning with Physical Computing - July 2023Teaching Machine Learning with Physical Computing - July 2023
Teaching Machine Learning with Physical Computing - July 2023Hal Speed
 
Makerspaces in Libraries: Embracing DIY Culture in Your Library
Makerspaces in Libraries: Embracing DIY Culture in Your LibraryMakerspaces in Libraries: Embracing DIY Culture in Your Library
Makerspaces in Libraries: Embracing DIY Culture in Your LibraryEllyssa Kroski
 
No More Flat Stanley: Learning in 3D
No More Flat Stanley: Learning in 3DNo More Flat Stanley: Learning in 3D
No More Flat Stanley: Learning in 3DKaren Bosch
 
Mobile Learning Academy
Mobile Learning AcademyMobile Learning Academy
Mobile Learning AcademyRonald Lenz
 
Mobile Learning Academy general presentation
Mobile Learning Academy   general presentationMobile Learning Academy   general presentation
Mobile Learning Academy general presentationRonald Lenz
 
Makerspaces: Embracing DIY Culture at Your Library Workshop (April 2018)
Makerspaces: Embracing DIY Culture at Your Library Workshop (April 2018)Makerspaces: Embracing DIY Culture at Your Library Workshop (April 2018)
Makerspaces: Embracing DIY Culture at Your Library Workshop (April 2018)ALATechSource
 
Technology trends 2018 and beyond | PLAN Tech Day Conference
Technology trends 2018 and beyond  | PLAN Tech Day ConferenceTechnology trends 2018 and beyond  | PLAN Tech Day Conference
Technology trends 2018 and beyond | PLAN Tech Day ConferenceBrian Pichman
 
UI Beyond the Browser - Software for Hardware Projects
UI Beyond the Browser - Software for Hardware ProjectsUI Beyond the Browser - Software for Hardware Projects
UI Beyond the Browser - Software for Hardware Projectspchristensen
 
Wsrest13 gilherme keynote
Wsrest13 gilherme keynoteWsrest13 gilherme keynote
Wsrest13 gilherme keynoteruyalarcon
 
No, you don't need to learn python
No, you don't need to learn pythonNo, you don't need to learn python
No, you don't need to learn pythonQuantUniversity
 
Project management
Project managementProject management
Project managementCreech
 
CTE Video Game Programming Map 7th 12th
CTE Video Game Programming Map 7th 12thCTE Video Game Programming Map 7th 12th
CTE Video Game Programming Map 7th 12thRyan Patton
 
Confluence at NASA: Where No Wiki Has Gone Before - Atlassian Summit 2010
Confluence at NASA: Where No Wiki Has Gone Before - Atlassian Summit 2010Confluence at NASA: Where No Wiki Has Gone Before - Atlassian Summit 2010
Confluence at NASA: Where No Wiki Has Gone Before - Atlassian Summit 2010Atlassian
 
Moving Innovative Game Technology from the Lab to the Living Room
Moving Innovative Game Technology from the Lab to the Living RoomMoving Innovative Game Technology from the Lab to the Living Room
Moving Innovative Game Technology from the Lab to the Living RoomSlide_N
 
Cross-Platform Game Engine
Cross-Platform Game EngineCross-Platform Game Engine
Cross-Platform Game EngineKiyoung Moon
 
Building a Mobile, Social, Location-Based Game in 5 Weeks
Building a Mobile, Social, Location-Based Game in 5 WeeksBuilding a Mobile, Social, Location-Based Game in 5 Weeks
Building a Mobile, Social, Location-Based Game in 5 WeeksJennie Lees
 
What is Raspberry Pi
What is Raspberry PiWhat is Raspberry Pi
What is Raspberry PiDevina Dona
 
Beyond Pop-Ups and Brads
Beyond Pop-Ups and BradsBeyond Pop-Ups and Brads
Beyond Pop-Ups and BradsTina Coffey
 

Similar to PyParis -- How we used Python to introduce teenagers to the fun of programming (20)

Hardware Hacking in schools (ACEC2014)
Hardware Hacking in schools (ACEC2014)Hardware Hacking in schools (ACEC2014)
Hardware Hacking in schools (ACEC2014)
 
Unity 3D VS your team
Unity 3D VS your teamUnity 3D VS your team
Unity 3D VS your team
 
Teaching Machine Learning with Physical Computing - July 2023
Teaching Machine Learning with Physical Computing - July 2023Teaching Machine Learning with Physical Computing - July 2023
Teaching Machine Learning with Physical Computing - July 2023
 
Makerspaces in Libraries: Embracing DIY Culture in Your Library
Makerspaces in Libraries: Embracing DIY Culture in Your LibraryMakerspaces in Libraries: Embracing DIY Culture in Your Library
Makerspaces in Libraries: Embracing DIY Culture in Your Library
 
No More Flat Stanley: Learning in 3D
No More Flat Stanley: Learning in 3DNo More Flat Stanley: Learning in 3D
No More Flat Stanley: Learning in 3D
 
Mobile Learning Academy
Mobile Learning AcademyMobile Learning Academy
Mobile Learning Academy
 
Mobile Learning Academy general presentation
Mobile Learning Academy   general presentationMobile Learning Academy   general presentation
Mobile Learning Academy general presentation
 
Makerspaces: Embracing DIY Culture at Your Library Workshop (April 2018)
Makerspaces: Embracing DIY Culture at Your Library Workshop (April 2018)Makerspaces: Embracing DIY Culture at Your Library Workshop (April 2018)
Makerspaces: Embracing DIY Culture at Your Library Workshop (April 2018)
 
Technology trends 2018 and beyond | PLAN Tech Day Conference
Technology trends 2018 and beyond  | PLAN Tech Day ConferenceTechnology trends 2018 and beyond  | PLAN Tech Day Conference
Technology trends 2018 and beyond | PLAN Tech Day Conference
 
UI Beyond the Browser - Software for Hardware Projects
UI Beyond the Browser - Software for Hardware ProjectsUI Beyond the Browser - Software for Hardware Projects
UI Beyond the Browser - Software for Hardware Projects
 
Wsrest13 gilherme keynote
Wsrest13 gilherme keynoteWsrest13 gilherme keynote
Wsrest13 gilherme keynote
 
No, you don't need to learn python
No, you don't need to learn pythonNo, you don't need to learn python
No, you don't need to learn python
 
Project management
Project managementProject management
Project management
 
CTE Video Game Programming Map 7th 12th
CTE Video Game Programming Map 7th 12thCTE Video Game Programming Map 7th 12th
CTE Video Game Programming Map 7th 12th
 
Confluence at NASA: Where No Wiki Has Gone Before - Atlassian Summit 2010
Confluence at NASA: Where No Wiki Has Gone Before - Atlassian Summit 2010Confluence at NASA: Where No Wiki Has Gone Before - Atlassian Summit 2010
Confluence at NASA: Where No Wiki Has Gone Before - Atlassian Summit 2010
 
Moving Innovative Game Technology from the Lab to the Living Room
Moving Innovative Game Technology from the Lab to the Living RoomMoving Innovative Game Technology from the Lab to the Living Room
Moving Innovative Game Technology from the Lab to the Living Room
 
Cross-Platform Game Engine
Cross-Platform Game EngineCross-Platform Game Engine
Cross-Platform Game Engine
 
Building a Mobile, Social, Location-Based Game in 5 Weeks
Building a Mobile, Social, Location-Based Game in 5 WeeksBuilding a Mobile, Social, Location-Based Game in 5 Weeks
Building a Mobile, Social, Location-Based Game in 5 Weeks
 
What is Raspberry Pi
What is Raspberry PiWhat is Raspberry Pi
What is Raspberry Pi
 
Beyond Pop-Ups and Brads
Beyond Pop-Ups and BradsBeyond Pop-Ups and Brads
Beyond Pop-Ups and Brads
 

More from Anne-Marie Tousch

Large-scale recommendation, a random point of view
Large-scale recommendation, a random point of viewLarge-scale recommendation, a random point of view
Large-scale recommendation, a random point of viewAnne-Marie Tousch
 
From DevOps to MLOps: practical steps for a smooth transition
From DevOps to MLOps: practical steps for a smooth transitionFrom DevOps to MLOps: practical steps for a smooth transition
From DevOps to MLOps: practical steps for a smooth transitionAnne-Marie Tousch
 
On Machine Learning Readiness
On Machine Learning ReadinessOn Machine Learning Readiness
On Machine Learning ReadinessAnne-Marie Tousch
 
Data is beautiful​, please don't ruin it
Data is beautiful​, please don't ruin itData is beautiful​, please don't ruin it
Data is beautiful​, please don't ruin itAnne-Marie Tousch
 
Large Scale Recommendation: a view from the Trenches
Large Scale Recommendation: a view from the TrenchesLarge Scale Recommendation: a view from the Trenches
Large Scale Recommendation: a view from the TrenchesAnne-Marie Tousch
 

More from Anne-Marie Tousch (6)

Large-scale recommendation, a random point of view
Large-scale recommendation, a random point of viewLarge-scale recommendation, a random point of view
Large-scale recommendation, a random point of view
 
From DevOps to MLOps: practical steps for a smooth transition
From DevOps to MLOps: practical steps for a smooth transitionFrom DevOps to MLOps: practical steps for a smooth transition
From DevOps to MLOps: practical steps for a smooth transition
 
Why am I doing this???
Why am I doing this???Why am I doing this???
Why am I doing this???
 
On Machine Learning Readiness
On Machine Learning ReadinessOn Machine Learning Readiness
On Machine Learning Readiness
 
Data is beautiful​, please don't ruin it
Data is beautiful​, please don't ruin itData is beautiful​, please don't ruin it
Data is beautiful​, please don't ruin it
 
Large Scale Recommendation: a view from the Trenches
Large Scale Recommendation: a view from the TrenchesLarge Scale Recommendation: a view from the Trenches
Large Scale Recommendation: a view from the Trenches
 

Recently uploaded

WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfryanfarris8
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2WSO2
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNeo4j
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2
 

Recently uploaded (20)

WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital Businesses
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 

PyParis -- How we used Python to introduce teenagers to the fun of programming

  • 1. Syrine Krichene Software Engineer @ Criteo How we used Python to introduce teenagers to the fun of programming Anne-Marie Tousch Research Scientist @Criteo @amy8492
  • 3. 3 • • Women under-representation is a fairly recent phenomenon • Many women programmers throughout history • We want the young people to embark! Stereotypes vs. reality
  • 4. 4 • • Meet women engineers • Visit our Criteo Paris office • Have fun & get some swag • Actually write some code A day to discover computer science jobs
  • 5. 5 • Preparing the coding part • Discover computer science • Motivate career choice in computer science
  • 6. 6 • The time constraint 1h30
  • 7.
  • 8. 8 • • Setup and check all the computers • Prepare code No bugs
  • 9. 9 • • Pair programming • Unblocker • Questions Mentoring
  • 10.
  • 11. 11 • Have fun & Be creative • Music, games, images and video, robots • Immediate feedback
  • 12. 12 • • Reads like english • Multi-purpose • Rich ecosystem • Used by professionals Discover a real programming language
  • 13. 13 • • Robots • Games • Video & pictures processing • Data processing • Artifical intelligence • … Discover computer science topics
  • 14. 14 • • High school Maths • High school Physics • English! Apply what you already know
  • 15. 15 • • It feels good to learn • Step-by-step discoveries Progress
  • 18. 18 • • 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 ... Have fun & Be creative
  • 19. 19 • • Simple functions for loops if conditions Discover a real programming language for i in range(3): print(“Hi ”, i) Hi 0 Hi 1 Hi 2 0 1 2 for i in range(3): print(“Hi ”, i) Hi 0 Hi 1 Hi 2 0 1 2for i in range(3): print(“Hi ”, i) Hi 1 Hi 2 0 1 2for i in range(3): print(“Hi ”, i) Hi 2 0 1 2for i in range(3): print(“Hi ”, i) 0 1 2
  • 20. 20 • • Simple functions for loops if conditions • Using libraries: Kivy Learn to look for information on the web! read the documentation Discover a real programming language
  • 21. 21 • • Create games: Action on clicks Animation Discover computer science topics
  • 22. 22 • • Create games: Action on clicks Animation Graphics Discover computer science topics
  • 23. 23 • • Create games: Action on clicks Animation Graphics Frame displays Widget interactions (master and slave) Discover computer science topics
  • 24. 24 • • Create games: Action on clicks Animation Graphics Frame displays Widget interactions (master and slave) Progress Game hacking Discover computer science topics
  • 25. 25 • 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
  • 26. 26 • • Workshop + presentation • Increase difficulty • Discover different parts of the game • Let's hack and play the game ! Progress
  • 28. 28 • • Teens love Snapshat & Instagram • Even basic image processing is fun • Use the webcam for immediate feedback Get creative
  • 29. 29 • • Powered by Kivy & Numpy • Boosted with OpenCV • GUI to ease testing • Commented in french Python main.py transforms.py
  • 30. 30 • • Digital images • Use RGB color system to create custom colorizations Image processing
  • 31. 31 • • Draw rectangles • Draw flags • Combine effects • Use OpenCV… … AI inside !!! From simple to complex Demo time!
  • 32. 32 • • The image coordinate system • How do you draw a star? Maths to the rescue
  • 33.
  • 34. 34 • Students « avoir passé une journée chez Criteo m'a apporté bien plus que je ne l’imaginais. » « j'ai particulièrement aimé cette joie qui nous a été communiquée, jointe à l'envie de créer et de programmer en découvrant de nouvelles choses. »
  • 35. 35 • • Exercises are not easy! Teachers
  • 36. 36 • • Close mentoring • Competition helps creativity • Don’t hide code difficulty Take-aways
  • 37. 37 • • Contact CGénial if you want to participate • Checkout our code on https://github.com/criteo/je-code-crazy-filters We’re doing it again soon!

Editor's Notes

  1. https://criteois.sharepoint.com/:i:/s/wie-france/EShqsua5C2NPto5x3Zxpw1QBlRxb1bsGtfbh_3dk0ie9vg?e=IVfmBp https://criteois.sharepoint.com/:i:/s/wie-france/EVHYk-dLlMhCsVDaAZ7HczIB87oHSHsJk3rkA2bQCFh8cw?e=awdFpX
  2. 2$ Problem, stats - We need more (women) developers - We need to motivate young people to go learn programming => 1ere to choose ISN, 2de to choose S/ISN, etc. => target High school
  3. 3$ context on the journee je code / why this? - We need to motivate young people to go learn programming => 1ere to choose ISN, 2de to choose S/ISN, etc. => target High school Ada Lovelace Margaret Hamilton, Grace Hopper
  4. 4$ context: how ? - We are all role models => share our love of coding => show it's obvious programming makes for a good career for women Event conception: - full day - showcase different jobs in computer science, as can be seen at Criteo - visit the office - actually write some code ! => prepare some exercises => OK, how do you do that
  5. 5$ Main goal: discover computer science!
  6. 6$ Constraint = Time - make sure it goes well in one hour and a half
  7. 7$ What we check / Preparing the environment
  8. 8$ No bug - Setup and check the machines to make sure everything runs smoothly. Playground already running on all the machines. One machine per person.
  9. 9$ Mentoring - Lots of teachers, more like mentors, helpers: close to pair programming. No-one must be blocked. - incentive to ask questions.
  10. 10$ Exercise Design Principles:
  11. 11$ Have fun! - Playful! Creative! *F* => music, image, games, etc. related to the tech they use / immediate feedback, don't wait to see what the code does / quick iterations
  12. 12$ Discover a real programming language - Learn some Python (for, if, functions, variables, parameters...). Read/write real code. Not a closed environment (not Scratch). Code like adults. Why Python / easy and realistic and rich ecosystem / multipurpose -- *P* logos-Python
  13. 13$ Discover computer science topics - Learn something new, discover a computer topic. Don't hide the complexity. Not a closed environment (not Scratch). Code like adults. *CS* robot/games/instagram mashup
  14. 14$ Apply your knowledge - Build on what you know - Use what they learn in high school. Useful, interesting. *M* Schoolteacher & an equation (physics, math class)
  15. 15$ Progress - Smooth progression. make sure they don't get blocked / they understand what they do / feeling they learn. *S* psychological aspect / feel good effect / eureka
  16. 16$ ColorSwitch
  17. 17$ F - game choice
  18. 17$ F - game choice
  19. 18$ P - simple functions, for loops, etc. / using Kivy (cross-platform, game tools,...) - Learn to look for information on the web! - read the documentation on the web
  20. 18$ P - simple functions, for loops, etc. / using Kivy (cross-platform, game tools,...) - Learn to look for information on the web! - read the documentation on the web
  21. 19$ CS - Game design: time, frames & the notion of discrete time
  22. 19$ CS - Game design: time, frames & the notion of discrete time
  23. 19$ CS - Game design: time, frames & the notion of discrete time
  24. 19$ CS - Game design: time, frames & the notion of discrete time
  25. 14$ Apply your knowledge - Build on what you know - Use what they learn in high school. Useful, interesting. *M* Schoolteacher & an equation (physics, math class)
  26. 21$ S - Debugging, a bug is not a big deal (introducing bugs to help understanding)
  27. 22$ Crazy-filters
  28. 23$ F - Infinite Creativity with image processing / Snapshat & Instagram inspiration/success with teens - Immediate feedback
  29. 24$ P - Kivy for the UI, OpenCV bindings, - numpy arrays abstracting the image details - functions binded to buttons - restart & iterate - « Lego blocks »: everything works at the click of a button
  30. 25$ CS – Introduction to digital images: the RGB color system => how to create a color? What is the difference vs. creating paint colors?
  31. 27$ S - using and modifying more and more complex functions
  32. 26$ M - the coordinate system, trigonometry => drawing a flag
  33. Conclusion
  34. 28$ Positive feedback from students: When they realise they can take control of the code and do *whatever they want*. This is when we have won victory: we want them to be autonomous and creative, and start changing the code and creating with their own ideas. You know they'll want to continue.
  35. 29$ Positive feedback from the teachers: found the exercise difficult (different notion of exercise / less pre-conceptions, biases)
  36. 30$ Our analysis: - close mentoring is super helpful (but there are still a few exceptions left behind... math horror!) - competition helps creativity
  37. 31$ Next iteration is Nov. 30th (Criteo) / Contact CGenial / download the code on Github