Clojure Programlama


Eğitmen: Wikipedia'da Clojure

* Hedef Kitle


Clojure Programlama (Nurullah Akkaya)

* Hedef Kitle

Bu eğitimin amacı, katılımcıların Clojure programlamaya bir
başlangıç yapabilmesini sağlamaktır.

* Eğitim İçeriği 

Clojure ve Fonksyonel programlama ile ilgili uygulamalı bir eğitim
hazırlanmıştır. Eğitim örnek uygulamalarla desteklenecektir.

1. gün
* Lisp syntax ve Sequence Kütüphanesi
Clojure kodu veridir: bir kere Clojure’da veri yapılarını bildiğiniz
zaman syntax i öğrenmiş olursunuz. Bu yaklaşımın basitliği ve
düzenliliği kodun kolay okunmasını, yazılmasını sağlar.

* Java Uyumlulugu
Java nesnelerinin Clojure da yaratılması ve çağırılması. Clojure
kütüphanelerinin Java dan çağırılması.

* Egzersizler
- Tek Kullanımlık Şerit - http://tr.wikipedia.org/wiki/Tek_Kullan%C4%B1ml%C4%B1k_%C5%9Eerit
- Sierpinski Üçgeni - http://en.wikipedia.org/wiki/Sierpinski_triangle
- Lindenmayer system  - http://en.wikipedia.org/wiki/L-system
- Steganografi - http://tr.wikipedia.org/wiki/Steganografi

2. gün
* Concurrency
Clojure un STM, agent ve atom yapilarini kullanarak, çok çekirdekli
işlemciler ile çalışmak.

* Multimethods
Polymorphism genel bir sorun için özel bir çözümdür: fonksyonları
kullandıkları objelerle ilişkilendirir. Multimethods ise aynı soruna
genel çözümler üretir.

* Egzersizler
- Mandelbrot Fraktalı - http://en.wikipedia.org/wiki/Mandelbrot_set 
- Buddhabrot Fraktalı - http://en.wikipedia.org/wiki/Buddhabrot

3. gün
* Egzersiz
- Clojure Derleyicisi

4. gün
* Fiziksel Dunya Ile Etkilesim
Arduino ve OpenCV kullanarak fiziksel dünya ile etkileşim
kurmak. Birkac klasik oyunun implementasyonu.

* Egzersizler
- Pong - http://en.wikipedia.org/wiki/Pong
- Etch A Sketch - http://en.wikipedia.org/wiki/Etch_A_Sketch
- Duck Hunt - http://en.wikipedia.org/wiki/Duck_Hunt