01 Kasım 2023, Çarşamba
saat: 12:50


biraz icimi dokeyim.

okulda mufredat ciddi sekilde sikintili. derslerin siralamalari da epey hatali. zaten hoca sikintisindan dolayi, konuyla ilgili çok bilgisi olmayan hocalar ders veriyor ve isler iyice karisiyor.

ornegin, bilgisayar muhendisligine giris diye bir ders var. bu ders, programlama dersi degil. bu ders, bilgisayar muhendisliginde gorulecek seylerin bir preview'i olacak aslinda.

her hafta, bu alandaki bir ders secilecek. ornegin bir hafta basitce networking, bir hafta basitce database, basitce logic, architecture vb. olacak. zaten bolum dersleri giris dersi, bunlar daha da giris olacak ki cocuk en azindan gate'leri bilsin, basit seyler ogrensin.

bununla beraber okulda algo-1, algo-2 dersleri var. algo-1 dersi tamam, orada flowchart vb ile baslayip belki çok basit computation anlatilabilir. ya da ornegin programlamaya girmeden once terminal uzerinde programlari calistirip sonra bunlari loop ile gecirmek olabilir; if ve for gibi seyler detayli anlatilabilir -- boyle eglenceli olur.

bizde c++ anlatiliyor. yeni nesil eskisi gibi degil. artik c ile baslamanin bi anlami da yok. c++ anlatirken eger memory management olayina girmiyorsaniz o zaman zaten c ya da c++ anlatmanin da bir anlami yok. cunku duz algoritma anlatiyorsunuz, javascript ile yapsaniz bile daha iyi. ben algo-1 icin bir scripting dilinin daha verimli oldugunu dusunuyorum. dynamic typing olunca en azindan kendini cidden algoritma mantigina verebilir.

algo-2 ise fiks. sorting, searching, dynamic programming. simdi ise ya bir onceki scripting dilnden devam edilebilir, ya da 1-2 haftada java gibi bir dile gecilebilir. ben hala c, c++'in bu asamada gereksiz oldugunu dusunuyorum; cunku memory ile ilgilenmeden once algoritma mantigini kavramali. zaten bu cocuklar memory'nin m'sini anlamiyor. c++ falan da ogretiyolar, derleyemiyorlar bile cunku cogu kisi windows kullaniyor.

ha, ek bir dert. okulda linux lab yok. cocuklarin linux'dan hic haberleri yok. o da ayri bir fiyasko.

simdi bu iki dersi adamakilli gecemeden baska ders alinmamali. yoksa bilgisayar muhendisi olunmuyor. ha, illa kod yazmak zorunda degil mezun olunca ama zaten algo 1-2 den gececek kadar kod yazmak da dramatik bir durum degil.

neyse, ardindan geliyor data structures ve oop. algo1-2 1. sinif dersleri. ds ve oop ise aynı anda 2. sınıfta veriliyor. bu da ayrı bir sıkıntı. ds dersine bir de lab koymuslar, ki bu tamamen programlama pratigi. ama gel gelelim, on kosul olmadigi icin ve insanlar kopya ya da kotu hocalarla gecebildikleri icin; ds dersinde bastan programlama anlatiliyor.

e ds'yi de anlatmanin temelde iki yolu var. ya class olarak; ya da struct. e benim onerime gore c ya da c++ anlatmazsak, struct anlatacak yer de yok. o konuda oop daha mantikli geliyor, ki zaten oop da degil yani. sadece class.

demem o ki, bu cocuklar algo1-2 yi anlamadan gecince isler iyice karisiyor. bir de anlatan da çok hakim degilse temel programlamaya, daha da zor. algo1 ve 2 yi farkli kisiler verse daha iyi olabilir; ama okullarin bu konuda bir duzeni olmali. biz bu cocuklara x senesinde neleri ogretmeliyiz ve neleri bilmeli. neyse, devam edelim.

3. sinifta muthis bir ders yogunlugu yapmislar. 2. sinifta goygoy 1-2 ders alirken; network, os, organization gibi dersleri bir anda aliyorlar. bunlarin hicbirinde de adam gibi bir kodlama yok. zaten calismayan cocuklar iyice kodlamadan uzak duruyolar.

sonra 2. donemde web programlama geliyor. 2 yillik bolumlerde bile bu ders 2 tane var. en temelde biri frontend, biri backend. ha, bana kalsa web programlama diye bir ders secmeli olmali ve core olmamali. cunku burasi programci yetistirme yeri degil, ama madem var o zaman vermek lazım. bir de gorsel programlama var. aslinda gorsel programlamayi direkt olarak javascript olarak vermek galiba en mantiklisi. onu bir dusunup sorayim, belki boyle bir yaklasim daha iyi olabilir -- ama onu da web programlama ile ayni donemde aliyolar :)

derslerin cogu aynı anda alindigi icin diger derslere referans gostererek anlatamiyoruz dersi. ornegin system design anlatacagiz, microservicelerden bahsedecegim ama daha ogrenci front-back end farkini bilmiyor. ya da web nasil calisiyor bilmiyor bile, cünkü web prog. yeni aliyor ve zaten orada da anlatmiyorlar.

ornegin cocuklara java ile swing anlatiyoruz ama cocuk java bilmiyor ki? class olusturup obje yaratamiyorlar, fena durumdalar. sanirim gorsel programlamayi js olarak anlatmak en akillicasi olacak, cunku web programlamada yok bu. css ve javascript diye anlatiriz iste.

evet bak bu iyi olur.
web programlamada ne anlatirlarsa anlatsinlar. ozel proje dersinde de flask anlatirim. simdi de basit bir js anlatip, api call yapmayi gosterdikten sonra flask a giris yapmak istiyorum.

simdi bunu istiyoruz da, bilgisayarlarda adam gibi flask bile yok. jupyter kullaniyolar. :o

ooy oy..

istanbul