ꡬꡬλ¨, μμ, νΌλ³΄λμΉ μμ΄ κ΅¬νκΈ° λ±μ κ°λ¨νκ³ μ¬μ΄ λ¬Έμ λ€
μμ£Ό μ¬μ©λλ ToyProblems:
- Hello World
- ꡬꡬλ¨
- μμ
- νΌλ³΄λμΉ μμ΄
- ν
μ€νΈ λν μλ
- μ«μμΌκ΅¬
λΉμ μ μ΄μ κΉμ§ μ΄λ° λ¬Έμ λ€μ νλ°°λ€μκ² κ°λ₯΄μΉλ©΄μ κ·Έλ€μ μ μ μ κ°μ₯ μμ κ°λ¬λ£μ§ μμμ΅λκΉ? μ΄μ κΉμ§ κ΅¬κ΅¬λ¨ λ¬Έμ λ₯Ό μ λ§ μμν λ°©λ²μΌλ‘ ν΄κ²°ν νλ°°λ₯Ό λ³Έ μ μ΄ μμ΅λκΉ? λͺ¨λ for 루νλ₯Ό μ°μ§ μλκ°μ? λ€. λΉμ μ μ΄μ κΉμ§ νλ°°λ€μ μμ μ νμν ν¨λ¬λ€μμΌλ‘ μΈλμμΌμμ΅λλ€. (μ¬μ€, μκ°μ μ¨κ°λ©° νλ°°λ€μκ² μμ μ μ§μμ λ² νΈλ μ λ°°λ€μ μ λ§ νλ₯νκ³ κ·Έλ° μ¬λλ€μ ννν μκ°μ μ ν μμ΅λλ€. μΌλΆλ¬ μ’ κ³Όμ₯μ ν΄μ μΌμ΅λλ€.) --JuNe
ToyProblemsμλ λ¨μ μ΄ μλ€. λ무 κ°λ¨νλ€. λ°°μ°λ μ¬λμ μ§λ£¨νκ³ μμνκ² λλ μ μκ³ , λ¬Έμ λ₯Ό νμ΄λ΄μΌ λ³ κ°ν₯μ΄ μμΌλ©°, μλ‘μ΄ κ±Έ λ°°μ΄ λλμ΄ λ€μ§ μλλ€. κ·Έλ¬λ κ·Έλ€μκ² μμ§ λ³΅μ‘ν λ¬Έμ λ μκΈ°μμ‘°μ΄λ€. μ΄ λλ λ§λ₯Ό μ΄λ»κ² κΉ¨νΈλ¦΄κΉ.
ToyProblemsλ₯Ό νκ² νλ λ€μ λ°©λ²μ μ΄μ©νλ€.
TheParadigmsOfProgramming (pdf)μ νμ΅νκ² νλ κ²μ΄λ€.

- μΌλ¨ μμ μ΄ μλ λ°©λ²μ μ΄λμν΄μ λ¬Έμ λ₯Ό νκ² νλ€.
- μ λ°°κ° μ΄ κ°λ¨ν λ¬Έμ λ₯Ό λ€μν ν¨λ¬λ€μμΌλ‘ λ€λ₯΄κ² ν μ μλ€λ κ²μ 보μ¬μ£Όκ³ κ°λ΅ν μ€λͺ
νλ€. μ΄λ, λλΆλΆμ κ²½μ° κΈ΄ μ€λͺ
μ΄ νμμλ€. μ΄λ―Έ λ¬Έμ λ₯Ό νμ΄λ΄€κΈ° λλ¬Έμ΄κΈ°λ νκ³ , λ¬Έμ μμ²΄κ° κ°λ¨νκΈ° λλ¬Έμ΄κΈ°λ νλ€.
- μ΄λ²μλ ν΄λΉ ν¨λ¬λ€μμ μ΄μ©ν΄μ μμ 1λ²μμ νμλ λ¬Έμ μ μ μ¬νμ§λ§ λ€λ₯Έ λ¬Έμ λ₯Ό νκ² νλ€.
νμμ μ΄ κ²½νμ ν΅ν΄ νλ‘κ·Έλλ° "κ°λ
"κ³Ό "ν¨λ¬λ€μ"λ€μ νμ΅νκ² λλ©°, μ΄λ€ κ²½μ°μ μ΄λ€ ν¨λ¬λ€μμ΄ λ μ μ νμ§ νλ¨ν λ₯λ ₯μ΄ μκΈ°κ³ , 무μ보λ€λ νκ°μ§ ν¨λ¬λ€μμ λν μ΄κΈ° κ°μΈ(μλΌμκ° μ²μ λ³Έ ν°μμ 무쑰건 μ΄λ―ΈλΌκ³ μκ°νλ ν¨κ³Ό)μ κΉ¨νΈλ¦¬κ³ , μ’ λ μμ λ‘μμ§ μ μλ€ -- νκ°μ§ ν¨λ¬λ€μλ§ μλ μ¬λ보λ€λ μ¬λ¬κ°μ§ ν¨λ¬λ€μμ μλ μ¬λμ΄ λ κ°λ°©μ μ΄κ³ ν¬μ©λ ₯μ΄ λλ€. --JuNe
κ³ νλ
(μ νλ
μ κ°λ₯΄μΉ μ¬λλ€) λμμΌλ‘ κ°μλ₯Ό ν΄μ€ μ©μκ° μμ΅λλ€. λ§λ§ν λ¬Έμ κ° κ²°μ½ λ§λ§ν κ² μλλΌλ κ², κ°λ¨ν κ²μμ μ λ§ μμ²λκ² λ§μ κ±Έ λ°°μΈ μ μλ€λ κ² λ±μ λλΌκ² λ κ²μ
λλ€. --JuNe
μμΈ μ λ μμ κ°μ κ² λλ¬Έμ κ³ λ―Ό νλλ° ν΄κ²°νκΈ°κ° μ½μ§ μμμ΅λλ€. νλ°°λ€μκ² μ’ λ λ§μ κ±Έ λ°°μΈ μ μλ λ¬Έμ μ κ΄νμ¬μ... κ·Έλ°λ° μ΄λ €μ΄ λ¬Έμ λ μ’μ ν κ±° κ°κ³ κ·Έλ λ€κ³ μ¬μ΄ λ¬Έμ λ λ°°μ°λ κ² μΌλ§ μλ κ±° κ°κ³ ... μ¬λ¬ κ°μ§ ν¨λ¬λ€μμ ν΅ν΄μ κ³ λ―Όμ ν΄κ²°ν μ μλ€λ©΄ μ΄λ² κΈ°νμ ν λ² μλ ν΄λ³΄κ³ μΆμ΅λλ€. --μ¬λ
ToyProblems λͺ©λ‘ ¶
- ꡬꡬλ¨
- νΌλ³΄λμΉ
- μ«μμΌκ΅¬
- Tic Tac Toe
- μΆκ°λ°λ
ToyProblems Lab ¶
- λ μ§: 6μ 1μΌ μ€μ 10μ
- μ₯μ: μ€μλ 곡λ 7μΈ΅ μ»΄ν¨ν° 곡νκ³Ό PCμ€ (μ¬λ¬ λμ μ»΄ν¨ν°μ νμ΄νΈ 보λκ° μ΄κ³³λ°μλ...)
- μ€λΉλ¬Ό: κΈ°λ³Έμ μΌλ‘ μ΄ν΄λ¦½μ€μ Python 2.3b1( + idlefork), NetMeeting μ€μΉ
- κ°μ¬: κΉμ°½μ€
- μ‘°κ΅: κ°κ·μ
- μ°Έκ°μ μ격: νλ°°λ₯Ό κ°λ₯΄μ³λ΄€κ³ , μμΌλ‘λ κ°λ₯΄μΉ μ¬λ.
- μ μ²μ:
- λ₯μλ―Ό : μμ¦ μ‘°κΈ λ°μμ§λ§, μκ°μ΄ λ§λλ€λ©΄, λΉμ°ν! μλ§μΌλ©΄ λ§μΆμ΄μ~ λΉμ°ν!
- μΈμ
- μμΈν
- μ μ¬λ
- μ±ν¬μ
- 1002
- μμ± : λ¦κ² μ¬λ €μ μ£μ‘ν΄μ... μ°Έκ° κ·Έλλ κ°λ₯νκ² μ£ ?? γ
‘.γ
μΌμ΄ μ겨μ λͺ»κ°κ² λμμ΅λλ€. γ .γ ‘ --μ°½μ
μνλ©΄ κ° μ μμ μ§λ λͺ¨λ₯΄κ² μ΅λλ€. -_-; μ§κΈ μκ° μ‘°μ¨μ€μ΄λΌ..;; κΌ κ°κ³ μΆμ΄μ.μ£μ‘ν©λλ€. μ΄λ¬λ€ μ λ¬λ€ ν΄μ..; λλλ‘ κ°λλ‘ νλ €κ΅¬μ.. μ¬λ°μ κ±° κ°μλ°..
- λ₯μλ―Ό : μμ¦ μ‘°κΈ λ°μμ§λ§, μκ°μ΄ λ§λλ€λ©΄, λΉμ°ν! μλ§μΌλ©΄ λ§μΆμ΄μ~ λΉμ°ν!
ToyProblemsλ₯Ό νλ©΄μ μ νκ² λ ν¨λ¬λ€μλ€(μλ§λ): CSP, Generators, Coroutines, Various Forms of Recursion, Functional Programming, OOP, Constraint Programming, State Machine, Event Driven Programming, Metaclass Programming, Code Generation, Data Driven Programming, AOP, Generic Programming, Higher Order Programming, Lazy Evaluation, Declarative Programming, ...
Programme
- μ 체 μ§ν 2μκ° 30λΆ
- ToyProblems ν보 : ꡬꡬλ¨, μμꡬνκΈ°, SpiralArray, μΌκ°ν 그리기, (κΈ°ν μ°Έκ°μκ° μνλ κ² μΆκ° κ°λ₯. λ¨ μ‘°κ±΄μ 1νλ
μ΄ ν μκ° λ΄μ ν μ μλ κ°λ¨ν λ¬Έμ )
- PairProgramming
- μμ μ΄ μνλ μΈμ΄ (python recommended)
- μ¬κΈ°μμ λ κ°μ§ μ λλ₯Ό κ³ λ₯Έ λ€μ
- κ·Έ μ€ νλμ λν΄ μ€μ€λ‘ λ¬Έμ λ₯Ό νκ²νλ€ 10m.
- λΉκ΅ν΄ λ³Έλ€. λͺ κ°μ§ ν¨λ¬λ€μμ΄ λμλ(μλ§λ νλλ λμ λμ§ μμ κ²μ΄λ€) 10m
- μ ν μλ‘μ΄ ν¨λ¬λ€μμΌλ‘ λμΌ λ¬Έμ λ₯Ό νΈλ κ³Όμ μ 보μ¬μ€λ€ 10m
- λΉμ·νμ§λ§ μ½κ° λ€λ₯Έ λ¬Έμ λ₯Ό νκ²νλ€ 10m
- λΉκ΅ν΄ λ³Έλ€. 5m
- λ λ€λ₯Έ ν¨λ¬λ€μμΌλ‘ λμΌ λ¬Έμ λ₯Ό νΈλ κ³Όμ μ 보μ¬μ€λ€ 10m
- λΉμ·νμ§λ§ μ½κ° λ€λ₯Έ λ¬Έμ λ₯Ό νκ²νλ€ 10m
- 1λ²μμ κ³ λ₯Έ λλ¨Έμ§ λ¬Έμ λ₯Ό κ°λ₯νλ©΄ λ€μν λ°©λ²μΌλ‘ μ¬λ¬λ² νκ²νλ€. κ°μ λͺ κ°μ μ ν λ€λ₯Έ νλ‘κ·Έλ¨μ λ§λ€μ΄ λ΄λκ°? 60m
- λΉκ΅νλ€. 10m
- ν λ‘ 15m
κ°μ
μΈμ - μ κΈ°νλ€. CSPκ° μ¬λ―Έ μμλ€. μ§μμ ν΄λ΄μΌκ² λ€.
ν¬μ - CSPλ₯Ό μμ©ν΄ λ¬Έμ λ₯Ό νΈλ κ²μ λ£κ³ λ ν Alan Kayκ° Paradigmμ΄ Powerful IdeaλΌκ³ νλ κ²μ κ³ κ°λ₯Ό λλλλ ν μ μμλ€. κ·Έλμ FPλ₯Ό λ§λ§ 보μμ§ μ λλ‘ νꡬνμ§ μμλ κ²μ΄ μμ¬μ λ€. FPμ λν κ΄μ¬μ΄ λ 컀μ‘λ€.
μμ± - μλ‘μ΄ μκ³ λ°©μμ μμ κ°λ€λ κ²μ μ¬λ―Έμμλ€.
μ§μ - FP Skill μ λ°°μ°κ² λ κ²μ΄ μ’μλ€.
μ°½μ€
μΈν - κ°λ₯΄μΉλ κ² μμ λ°°μ°λ κ³Όμ μ΄λ€. Metaphoreμ νμμ±
μΈμ - μ κΈ°νλ€. CSPκ° μ¬λ―Έ μμλ€. μ§μμ ν΄λ΄μΌκ² λ€.
ν¬μ - CSPλ₯Ό μμ©ν΄ λ¬Έμ λ₯Ό νΈλ κ²μ λ£κ³ λ ν Alan Kayκ° Paradigmμ΄ Powerful IdeaλΌκ³ νλ κ²μ κ³ κ°λ₯Ό λλλλ ν μ μμλ€. κ·Έλμ FPλ₯Ό λ§λ§ 보μμ§ μ λλ‘ νꡬνμ§ μμλ κ²μ΄ μμ¬μ λ€. FPμ λν κ΄μ¬μ΄ λ 컀μ‘λ€.
μμ± - μλ‘μ΄ μκ³ λ°©μμ μμ κ°λ€λ κ²μ μ¬λ―Έμμλ€.
μ§μ - FP Skill μ λ°°μ°κ² λ κ²μ΄ μ’μλ€.
μ°½μ€
λ¦κ² μ¨ μ¬λμ΄ μ€κ°μ μ°Έμ¬νλ κ²μ λ¬Έμ κ° μλ€. κ·Έ μ¬λμ μλΆλΆμ λͺ¨λ₯΄κΈ° λλ¬Έμ μ΄λ€ λΆμμ©μ΄ μλ€.
μ½λ© μκ°μ΄ λΆμ‘±νλ€. Code Kataλ₯Ό ν΄λ³΄μ§ λͺ»ν΄μ μμ½λ€.
νλ¬Έμ μ¬λ¬λ² νΈλ κ²μ μμ μ’μκ² κ°λ€.
μλ―Ό - μλ‘μ΄ μ¬κ³ λ, μλ‘μ΄ μ¬κ³ λ²μ΄λΌ λΆλ¦¬μ°λ κ²μ΄, λ―Έλ¬ν μ°¨μ΄λ₯Ό μΈμ§νλ κ²μμ μ¨λ€λ μ¬μ€μ μμλ€. κ²Έμν μμΈκ° μ€μνκ² κ°λ€.μ½λ© μκ°μ΄ λΆμ‘±νλ€. Code Kataλ₯Ό ν΄λ³΄μ§ λͺ»ν΄μ μμ½λ€.
νλ¬Έμ μ¬λ¬λ² νΈλ κ²μ μμ μ’μκ² κ°λ€.
- μ°½μ€ - Higher Order Programmingκ³Ό λ‘μ°λ 벨μμμ μ€λͺ
(μ컨λ λ¨μν ν¨μ ν¬μΈν°λ‘ μ€λͺ
νλ κ²)μ μ°¨μ΄λ λ―Έλ¬νκ³ , λ ν¬λ€. λμ¬(λ¬λ¦¬λ€)λ₯Ό λͺ
μ¬(λ¬λ¦Ό)μ ν μμ λ£λ κ²μ΄λ€. μ΄ μ¬κ³ μμ μμ²λ μ°¨μ΄κ° μκΈΈ μ μλ€.
μ¬λ - νλ¬Έμ λ€μ νκΈ°κ° μ¬λ―Έμμλ°. μ¬κ³ μ κ³ μ νλ₯Ό κ²½κ³ν΄μΌ κ² λ€. μκ°μμ λͺ»ν΄μ 좩격 μ΄μλ€.- μ°½μ€ - νμΈμ κ°λ₯΄μΉκΈ° μν΄, μ¬λ¬κ°μ§λ‘ ν κ°λ₯μ±μ΄ μ£Όμ΄μ§λ κ²μ λ¬Έμ λ‘ λ§λ€μ.
μμ² - λ¦μΌλ©΄ μλλ€. Python μ¬μ©μ€ μλ κ²κ³Ό μ°λ κ²μ 컀λ€λ μ°¨μ΄λ₯Ό λκΌλ€. κΈ°μ‘΄ μ¬κ³ μ κ°νλ²λ € μλ‘μ΄ μ¬κ³ λ‘ μ μ΄ λͺ»νλ κ²μμ μ΄λ €μμ λκΌλ€.- μ°½μ€ - κ΅μ‘μ 3λ¨κ³ μΈκΈ Romance(μ, Disorder)-Discipline(μ, Order)-Creativity(μ
, Order+Disorderλ₯Ό λλ 무μΈκ°) , μλ‘μ΄ κ²μ λ°°μΈλλ κΈ°μ‘΄ μ¬κ³ λ₯Ό λ²μ΄λ μλ‘μ΄ κ²λ§μ μκ°νλ λ°°μ°λ μμΈκ° νμνλ€. ( μ-μ΅λ°°λ¬ μ λλ₯Ό λ°°μ°λ κ³Όμ μμ μ λμ κ·μΉλ§μ μ§ν€λ©° μΈμ°λ λͺ¨μ΅), disciplineμμ creativityλ‘ λμ΄κ°λ κ²μ΄ μ€μνλ€.
κ·μ - κ°λ₯΄μΉλ κ²μ μ΄λ €μ. μ΄μ€νκ² κ°λ₯΄μΉλ €λ€κ° μ΄λ€ λ©΄μμλ νΌν΄λ₯Ό μ€ μλ μκ² λ€λ μκ°μ νλ€. κ·Έλ¦¬κ³ μνμ΄λ λ
Όλ¦¬μ μ¬κ³ μ μ€μμ±μ κΉ¨λ¬μλ€.μΈν - κ°λ₯΄μΉλ κ² μμ λ°°μ°λ κ³Όμ μ΄λ€. Metaphoreμ νμμ±
Higer order programmingμμ μ€μν κ²μ λμ¬λ₯Ό λͺ
μ¬νν΄μ€λ€λ κ²μΈλ°, Command Patternλ μ΄μ λΉμ·ν κ² κ°μ΅λλ€.
CPλ Functor μ μΌμ’
μ΄λ€. ( μ - Spiral Matrixλ₯Ό Vectorμ λ°©λ²μΌλ‘ νκΈ°). CPλΆν° λ°°μ°λ©΄ CPμμ μ μνλ μμμλ§ μ μ©νλ κ²μΌλ‘ κ°νμ μλ€.
μΆμ²μ±
3κΆ- SICP http://mitpress.mit.edu/sicp
- HTDP (How To Design Programs) http://www.htdp.org/
- CTMCP http://www.info.ucl.ac.be/~pvr/