Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Teaching Teenagers to Coding

Teaching Teenagers to Coding

From Scratch to Python

Avatar for Renyuan Lyu

Renyuan Lyu

May 31, 2014
Tweet

More Decks by Renyuan Lyu

Other Decks in Education

Transcript

  1. 教 青少年 寫程式 從 Scratch 2.0 到 Python 3.3 Renyuan

    Lyu 呂仁園 長庚大學,資訊系 1 http://scratch.mit.edu/users/ryTemp2014_001/ https://dl.dropboxusercontent.com/u/33089565/ry2014_thinkcspy/html /_ryTest01.html
  2. 5

  3. 10

  4. 16

  5. Python 17 • 如何像電腦科學家一樣的思考 – 用 Python 3 來學習 –

    https://dl.dropboxusercontent.com/u/33089565/r y2014_thinkcspy/html/index.html
  6. CPU, RAM, HardDisk • Computer Components – https://www.youtube.com/watch?v=rK3YxmkarIg – In

    this section you learn a little about the architecture of a computer and some general terms to use when talking about computer programs. This includes: • CPU - Central Processing Unit • RAM - Random Access Memory • Hard Drive - A Persistent Storage Device 18
  7. Hello, little turtles! 嗨,小烏龜! • https://dl.dropboxusercontent.com/u/330895 65/ry2014_thinkcspy/html/hello_little_turtles .html 20 from

    turtle import * def main(): mode("logo") speed(10) shape("arrow") pensize(3) circle(66) rt(180) circle(66) pu() lt(90) fd(33) rt(90) ….
  8. 補充 01 • What is a Computer? • What is

    a Programming Language? • Hello, world ! – 大多數程式語言的第一支程式 21
  9. What is a Computer? • A Computer (電腦,計算機) is composed

    of – Central Processing Unit (CPU), (中央處理器) – Random Access Memory (RAM), (隨機存取 記憶體) – Input/Output (I/O) devices. (輸入輸出設備) • A screen (螢幕) is an output device. • A mouse (滑鼠) and a keyboard (鍵盤) are input devices. • A hard drive (硬碟) is an I/O device. keyboard 22
  10. What is a Programming Language (程式語言)? • 語言是人類互相溝通的工具。 • 華語、英語、日語、西班牙語、、、、

    – 自然語言數量 6,000 以上 • 使用人口數: – 華語 > 西班牙語 > 英語 > 日語、、、 • 影響力: – 英語 > { 華語、日語、西班牙語、、、} • 人類與電腦溝通,要透過程式語言 • Assembly, C, C++, Java, Python, Scratch, … – 程式語言數量甚至多過自然語言 • 使用人口數: – {C, C++ , Java }> Python > Scratch …. • 影響力: – {C, C++ , Java }> Python > …. • 容易學習的程度: – Scratch > Python > {C, C++, Java,…} > Assembly 23
  11. Hello, world ! 大多數程式語言的第一支程式 #include <stdio.h> main() { printf("hello, world");

    } public class HelloWorld { public static void main(String [] args) { System.out.println("Hello world!"); } } print(‘Hello, world!’) PRINT "Hello, world!" BASIC C Python 3 Scratch Java 印= print 印 (‘Hello, world !’) 24 JavaScript alert('Hello, world!'); Scratch 中文化 Python 3 中文化 C++ #include <iostream> int main() { std::cout << "Hello, world!" << std::endl; return 0; }
  12. • Assembly language — x86 Windows ; This program displays

    "Hello, World!" in a windows messagebox and then quits. ; ; Written by Stewart Moss - May 2006 ; ; Assemble using TASM 5.0 and TLINK32 ; ; The output EXE is standard 4096 bytes long. ; It is possible to produce really small windows PE exe files, but that ; is outside of the scope of this demo. .486p .model flat,STDCALL include win32.inc extrn MessageBoxA:PROC extrn ExitProcess:PROC .data HelloWorld db "Hello, world!",0 msgTitle db "Hello world program",0 .code Start: push MB_ICONQUESTION + MB_APPLMODAL + MB_OK push offset msgTitle push offset HelloWorld push 0 call MessageBoxA push 0 call ExitProcess ends end Start 25 蠻可怕的吧! 怪不得嚇跑一堆人。
  13. 補充 02 • A hands-on introduction to Python for beginning

    programmers • http://www.pyvideo.org/video/1850/a-hands-on- introduction-to-python-for-beginning-p • http://www.pyvideo.org/video/2559/hands-on-intro-to- python-for-beginning-programmer • Introduction to Python with Jessica McKellar • https://www.youtube.com/watch?v=sAU2l5MKCbI • http://vplayer.oreilly.com/?chapter=http%3A%2F%2Fatom.o reilly.com%2Fatom%2Foreilly%2Fvideos%2F2005177&video _product=urn%3Ax- domain%3Aoreilly.com%3Aproduct%3A9781491902141.VID EO#embedded_player 26
  14. 28

  15. Python 程式範例 31 • 列出 99 乘法表 • 列出 100

    以內的質數 • 小烏龜 • 求二元一次方程式的解 • 井字棋, Tic-Tac-Toe https://dl.dropboxusercontent.com/u/330895 65/ry2014_thinkcspy/html/_ryTest01.html