ABC of Programming Linda Liukas @lindaliukas
(Programmer) (Illustrator) (Author) Business school dropout
How many here have programmed before?
Who is nervous about bringing computing to kindergartens and schools?
Who identifies more on the math/ science side of world? What about liberal arts / social sciences?
Part 1: Short introduction to the world of programming Part 2: Computational thinking Part 3: Computers & humans
Part 1: Short introduction to the world of programming 7
If code is the new lingua franca, instead of grammar classes, we need poetry lessons.
DISCUSS What book/story/movie/song influenced you as a kid? Why? 10
DISCUSS When have you felt computers are magic vs. magical. 12
E-skills, IT, ICT, digitalisation, digital skills,digital natives, digital literacy, code, social media skills, programming..
What is programming or coding then? A set of instructions given in a way that a computer understands.
Programming consists of three parts: 1. Planning the program 2. Writing the program in a programming language into code. 3. Testing and debugging the program.
1100101010010000111
RUBY ASSEMBLY 8086 puts "Hello world!" DOSSEG.MODEL TINY.DATA TXT DB "Hello world!$".code START: MOV ax, @DATA MOV ds, ax MOV ah, 09h MOV dx, OFFSET TXT INT 21h MOV AX, 4C00h INT 21h END START ; prepare output function ; set offset ; output string TXT ; go back to DOS
So what kind of programming languages are there?
Keitä jännittää ohjelmoinnin tulo kouluun? It doesn t matter much which programming language you choose as your first one.
HOW DO I CHOOSE A PROGRAMMING LANGUAGE? GAME APP PHYSICAL PRODUCT WEBSITE TEACHING shape if set For example For example. JavaScript, Java, Swift, C#, C++, Objective C, Unity For example Python, C, Assembly For example JavaScript, Ruby on Rails, PHP, HTML, CSS then CoLoR To For example Scratch, Logo, Python
RUBY PYTHON JAVASCRIPT puts ['apple', 'orange'].length print(len(['apple', 'orange'])) console.log(['apple', 'orange'].length); JAVA public class ArrayLength { public static void main(string[] args) { System.out.println(new String[]{"apple", "orange"}.length); } } Ruby has an apple and an orange in her bag. How many fruit she has altogether?
WHERE CAN YOU SEE PROGRAMMING? GAMES CITY PLANNING NEURO SCIENCES MUSIC
The world is built with software. Those who understand what computers are good at have the power.
The two joys of programming.
GAMIFIED TUTORIAL: STEP-BY-STEP INSTRUCTIONS, EASE OF ACCESS OPEN-ENDED PLAYGROUND: LOW FLOOR, WIDE WALLS, HIGH CEILING
Achievement Social Immersion Advancement: Progress, power, accumulation, status Socialising: Casual chat, helping others, making friends Discovery: Exploration, lore, finding hidden things Mechanics: Numbers, optimisation, templating, analysis Relationships: Personal, selfdisclosure, finding and giving support Role playing: Story line, character history, roles, fantasy Competition: Challenging others, provocation, domination Teamwork: Collaboration, groups, group achievements Customisation: appearances, accessories, style, color schemes Escapism: Relaxation, escape from real life, avoid real life problems Lego Foundation: Systematic Creativity in the Digital Realm (2012)
Achievement Social Immersion Advancement: Progress, power, accumulation, status Socialising: Casual chat, helping others, making friends Discovery: Exploration, lore, finding hidden things Mechanics: Numbers, optimisation, templating, analysis Relationships: Personal, selfdisclosure, finding and giving support Role playing: Story line, character history, roles, fantasy Competition: Challenging others, provocation, domination Teamwork: Collaboration, groups, group achievements Customisation: appearances, accessories, style, color schemes Escapism: Relaxation, escape from real life, avoid real life problems Lego Foundation: Systematic Creativity in the Digital Realm (2012)
Achievement Social Immersion Advancement: Progress, power, accumulation, status Socialising: Casual chat, helping others, making friends Discovery: Exploration, lore, finding hidden things Mechanics: Numbers, optimisation, templating, analysis Relationships: Personal, selfdisclosure, finding and giving support Role playing: Story line, character history, roles, fantasy Competition: Challenging others, provocation, domination Teamwork: Collaboration, groups, group achievements Customisation: appearances, accessories, style, color schemes Escapism: Relaxation, escape from real life, avoid real life problems Lego Foundation: Systematic Creativity in the Digital Realm (2012)
In most mathematical lessons the whole difference lies in the fact that the student is asked to accept from outside an already entirely organised intellectual discipline which he may or may not understand - Jean Piaget Don t present students with pre-organised vocabulary and concepts, but rather provide students with a learning environment grounded in action. - Jean Piaget
How does a loop feel?
Clap Clap a FOR loop Stomp When you know how many times to repeat something. Stomp Let s repeat this three times! Clap Clap Jump
Clap Clap a WHILE loop Stomp Makes the loop repeat WHILE the condition is true. Stomp Let s repeat this code WHILE I m standing on one leg. Clap Clap Jump
Clap Clap an UNTIL loop Stomp Stomp Makes the loop repeat UNTIL the condition is met. Clap Clap Jump
This is one of Ruby s favorite dance routines. Can you dance it to the beat of your favorite song? This is how Snowleopard loves to waltz. And this is how the penguins like to boogie. Clap Clap Swirl Jump Clap Kick For loop! While loop! Until loop! Stomp Jump Stomp Stomp Clap Stomp Clap Clap Jump Clap Clap
A LOOP Kinetic Visual for i in 0..1 puts "Clap" end KUN MUSIIKKI ALKAA TOISTA 3 KERTAA TAPUTA KÄSIÄ 2 KERTAA TÖMÄYTÄ JALKAA 2 KERTAA TAPUTA KÄSIÄ 2 KERTAA HYPPÄÄ 1 PYSÄHDY KERTA Code Practice A thermometer. for i in 0..1 puts "Stomp end for i in 0..1 puts "Clap" end puts "Jump" A game. A website.
. PART 2: Computational thinking 40
What did we learn? 1. Exact commands. 2. In the right order. 3. Naming things is important (and you can t make spelling mistakes) 4. Instructions should cover all scenarios and be modifiable. 5. Even the biggest problems in the world are just tiny problems stuck together.
Computational Thinking (CT) is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer human or machine can effectively carry out.
CONCEPTS PRACTICES Data Automation Pattern recognition Systems thinking Persistency Computational Tinkering Logical & critical thinking thinking Creativity Abstraction Debugging Collaboration Decomposition Algorithms
Today we ll focus: 1. Decomposition 2. Pattern recognition 3. Algorithmic thinking 4. Abstraction
Computers as aids to clear thinking A deep understanding of programming, in particular the notions of successive decomposition as a mode of analysis and debugging of trial solutions, results in significant educational benefits in many domains of discourse including those unrelated to computers and information technology per se. - Seymour Papert, Mindstorms
Decomposition
TAVOITE 00:01 AIKA KERÄILTÄVÄT ASIAT SANKARI VIHOLLINEN YMPÄRISTÖ
Cross-curricular example C.S.LEWIS Literature
Pattern recognition.
Example for kids:
Cross-curricular example Economics
Turn the bath water on Set plates Eat food Get into the bath Set knives and forks No Still hungry? Wash Bring out the birthday cake Yes Get out of the bath Spread the tablecloth Say thank you
Algorithmic thinking
Example for kids: Go right Go left Go down Go up Stop and say hi! 3
Algorithms in CS Examples: SEARCHING ALGORITHMS SORTING ALGORITHMS DATA COMPRESSION Applications: Facebook NewsFeed Google s PageRank High Frequency Trading You may also enjoy.. YouTube Spotify
Abstraction
TURKKI Fur Eyes HÄNTÄ Tail SILMÄT
BASE CLASS Properties Color Eye color Height Length Weight Methods Pur Lay down Sit Meow
Cross-curricular example Chemistry
EXERCISE 54
WASH YOUR TEETH
HOW DID IT GO?
How many made a mistake?
How many asked for help?
Pair programming The other one drives, the other one gives instructions.