Berk Akademi
Ana Sayfa
ÖZEL KODLAMA DERSLERİ
Yazılım Özel Ders
Tüm birebir programlara genel bakış
Python Yazılım Kursu
Sıfırdan ileri seviyeye birebir Python
Java Yazılım Kursu
OOP odaklı birebir Java eğitimi
AP Computer Science Principles
AP CSP sınav hazırlığı
GRUP DERSLERİ
Python & Django Masterclass
SINIRLI KONTENJAN
Java & Spring Boot Masterclass
SINIRLI KONTENJAN
C# .NET Masterclass
SINIRLI KONTENJAN
VİDEO DERSLER
Sıfırdan Temel Python Kursu
Kendi Hızında Öğren
ÜCRETSİZ
Seviye Testi
Ücretsiz — Python, Java, algoritma seviye testleri
Kariyerini Keşfet
Sertifika Doğrula
Belge numarası ve soyad ile doğrulama

Yapay Zekâ ile Kod Öğrenirken Temel Mantık Nasıl Korunur?

yapay-zeka-ile-kod-ogrenirken-temel-programlama-mantigi
Bu yazıda neler var?
  1. AI Kodu Yazarken Gerçekten Öğreniyor musunuz?
  2. Yapay Zekâ Kod Üretiminde Nerede Faydalıdır, Nerede Yetersiz Kalır?
  3. AI Kullanırken En Sık Atlanan Üç Temel Kavram
  4. AI Tarafından Üretilen Bir Döngü Kodunu Nasıl İncelemelisiniz?
  5. Kopyalamak Yerine AI Çıktısını Öğrenme Malzemesine Dönüştürün
  6. Veliler Çocuğun Gerçekten Öğrendiğini Nasıl Anlayabilir?
  7. Sık Sorulan Sorular

Yapay zekâ ile kod öğrenme mümkündür; ancak yapay zekânın ürettiği kodu yalnızca kopyalayıp çalıştırmak, tek başına programlama mantığı kazandırmaz. Öğrenci kodu çalıştırmadan önce ne yapacağını tahmin eder, satırları kendi cümleleriyle açıklar, küçük değişiklikler yapar ve farklı girdilerle test ederse AI çıktısı etkili bir öğrenme malzemesine dönüşebilir.

Buradaki temel ayrım şudur: Yapay zekâ kod yazma hızını artırabilir, fakat programlama mantığını öğrencinin yerine geliştiremez. Öğrenme; problemi parçalara ayırma, değişkenleri takip etme, döngünün kaç kez çalışacağını düşünme ve hata çıktısından neden-sonuç ilişkisi kurma sürecinde gerçekleşir.

AI Kodu Yazarken Gerçekten Öğreniyor musunuz?

Bir öğrencinin birkaç saniye içinde çalışan bir Python kodu elde etmesi, o öğrencinin aynı kodu sıfırdan tasarlayabildiğini göstermez. Kod üretim süresi kısalabilir; fakat programlama öğrenmek yalnızca ekrana doğru sözdizimini yazdırmak değildir. Asıl beceri, verilen problemi bilgisayarın uygulayabileceği açık adımlara dönüştürmektir.

Örneğin öğrenci yapay zekâdan “1’den 5’e kadar olan sayıları yazdıran bir Python kodu” istediğinde, AI bir for döngüsü oluşturabilir. Öğrenci kodu doğrudan kopyalarsa yalnızca sonucu görür. Oysa kodu çalıştırmadan önce “Döngü kaç kez dönecek?”, “5 ekrana yazılacak mı?”, “range içindeki son değer neden farklı davranabilir?” sorularını sorarsa aynı çıktı, düşünme egzersizine dönüşür.

for sayi in range(1, 6):
    print(sayi)

Bu kod çalıştırıldığında beklenen çıktı şöyledir:

1
2
3
4
5

Kodun gerçekten anlaşılıp anlaşılmadığını görmek için öğrenci şu değişiklikleri kendi başına denemelidir:

  • range(1, 6) yerine range(1, 10) yazıldığında kaç satır oluştuğunu gözlemlemek,
  • print(sayi * 2) değişikliğinin çıktıyı nasıl etkilediğini tahmin etmek,
  • Döngünün neden 0’dan başlamadığını açıklamak,
  • range(5, 1) yazıldığında neden beklenen sayıların ekrana gelmediğini araştırmak,
  • Kodu bir arkadaşına veya velisine teknik terimlere boğmadan anlatabilmek.

Bu süreçte amaç, yapay zekâdan hiç yardım almamak değildir. Amaç, yardım alındığında zihinsel kontrolü bırakmamaktır. Öğrenci kodu kendisi yazmasa bile kodun ne yaptığını öngörmeli, sonuçla tahminini karşılaştırmalı ve beklenmeyen durumda neden yanıldığını bulmalıdır.

Kod üretme hızı ile mantık geliştirme arasındaki fark

Kod üretme hızı, bir problemin metne veya sözdizimine ne kadar çabuk dönüştürüldüğünü ifade eder. Programlama mantığı ise problemin girdilerini, kurallarını, olası durumlarını ve beklenen çıktısını analiz edebilmektir. Bu iki beceri birbirini destekleyebilir; fakat aynı şey değildir.

Bir öğrenci yapay zekâ yardımıyla hızlıca hesap makinesi kodu oluşturabilir. Ancak aşağıdaki sorulara cevap veremiyorsa öğrenme henüz tamamlanmamıştır:

  • Kullanıcıdan alınan veri neden sayıya dönüştürülüyor?
  • Girdi negatif olduğunda programın davranışı ne olmalı?
  • Hangi işlem hangi sırayla gerçekleşiyor?
  • Bir değişkenin değeri döngünün her turunda nasıl değişiyor?
  • Program yanlış sonuç verirse hangi satır kontrol edilmeli?

Özellikle çocuklar ve yeni başlayanlar için görünür sonuç almak motive edici olabilir. Fakat ekranda doğru bir çıktı görmek, her zaman doğru bir zihinsel model oluştuğu anlamına gelmez. Öğrenci aynı yapıyı biraz değiştirdiğinde tamamen kilitleniyorsa, büyük olasılıkla kodun mantığını değil, belirli bir örneği ezberlemiştir.

AI çıktısını çalıştırmadan önce uygulanabilecek kontrol listesi

Bir yapay zekâ aracından alınan kodu hemen çalıştırmak yerine aşağıdaki sırayı uygulamak, pasif kopyalamayı aktif öğrenmeye çevirir:

  1. Problemi kendi cümlenizle açıklayın. Kodun hangi ihtiyaca cevap vermesi gerektiğini tek veya iki cümleyle yazın.
  2. Beklenen çıktıyı tahmin edin. Kodu çalıştırmadan önce ekranda ne görmeyi beklediğinizi belirtin.
  3. Satırları tek tek okuyun. Her satırın programın durumunu nasıl değiştirdiğini açıklayın.
  4. Bir bölümü değiştirin. Döngü sınırını, değişken adını veya koşulu değiştirerek davranışın nasıl etkilendiğini gözlemleyin.
  5. Farklı girdiler kullanın. Normal, sınırda ve hatalı olabilecek değerlerle test yapın.
  6. Sonucu gerekçelendirin. Çıktı tahmininizden farklıysa yalnızca yeni bir AI cevabı istemek yerine farkın nedenini araştırın.

Bu kontrol listesinin sonunda öğrenci, “Kod çalıştı” demekten daha güçlü bir cümle kurabilmelidir: “Kod şu problemi çözüyor, şu varsayımla çalışıyor ve şu girdilerde şu sonucu üretiyor.” Öğrenme açısından değerli olan açıklama budur.

Yapay Zekâ Kod Üretiminde Nerede Faydalıdır, Nerede Yetersiz Kalır?

Yapay Zekâ Kod Üretiminde Nerede Faydalıdır, Nerede Yetersiz Kalır?

Yapay zekâ, programlama sürecinin bazı bölümlerinde yararlı bir yardımcı olabilir. Sözdizimi konusunda örnek gösterebilir, basit bir fikri koda dönüştürmek için taslak hazırlayabilir, aynı problemi farklı yaklaşımlarla çözebilir veya bir hata mesajının ne anlama gelebileceğini daha anlaşılır biçimde açıklayabilir. Tekrarlayan kodların ilk taslağını oluşturmak da zaman kazandırabilir.

Bu faydalar, öğrencinin düşünme sorumluluğunu tamamen devretmesi gerektiği anlamına gelmez. Özellikle temel seviyede amaç en kısa kodu elde etmek değil, çözümün neden çalıştığını anlayabilmektir. Yapay zekâ tarafından verilen bir öneri, öğrencinin kendi denemesiyle karşılaştırıldığında daha öğretici hâle gelir. Örneğin öğrenci önce bir çözüm taslağı kurup ardından AI çıktısıyla şu noktaları karşılaştırabilir:

  • İki çözüm aynı problemi mi çözüyor?
  • Hangisi daha kolay okunuyor?
  • Bir çözüm gereksiz bir fonksiyon veya karmaşık veri yapısı kullanıyor mu?
  • Hangi özel durumlarda çözümler farklı sonuç veriyor?
  • Değişken adları ve işlem sırası anlaşılır mı?

Yapay zekânın yetersiz kalabileceği durumlar

Bir AI aracı, kullanıcının yazdığı talebi dilsel olarak yorumlar; fakat talebin arkasındaki bütün gereksinimleri kendiliğinden bilemeyebilir. Öğrenci problemi eksik tanımlarsa, üretilen kod da eksik veya yanlış bir varsayıma dayanabilir. “Notları hesaplayan bir program yaz” isteğinde notların hangi aralıkta olduğu, geçme koşulunun ne olduğu veya hatalı girişlerin nasıl ele alınacağı belirtilmemişse farklı çözümler ortaya çıkabilir.

Üretilen kod bazen çalışıyor gibi görünse de gereğinden karmaşık olabilir. Başlangıç seviyesindeki bir problem için birden fazla fonksiyon, dış kütüphane veya öğrencinin henüz bilmediği bir yapı kullanılması, kısa vadede sonucu hızlandırırken uzun vadede kavramların birbirine karışmasına neden olabilir.

Hata mesajının açıklanması da tek başına hata ayıklama becerisi kazandırmaz. Öğrenci açıklamayı okumalı, hatanın hangi satırla ilişkili olduğunu bulmalı, mümkünse hatayı küçük bir örnekte yeniden üretmeli ve düzeltmeden sonra yeni bir test yapmalıdır. Aksi hâlde her hata için aynı yöntemi kullanmak yerine yalnızca “düzelt” komutuna bağımlı hâle gelebilir.

Bu nedenle temel programlama öğrenirken yapılandırılmış ders, uygulama ve geri bildirim birlikte değerlendirilebilir. Örneğin canlı sınıflı online yazılım eğitimleri kapsamında öğrenci, yalnızca çalışan örneği görmek yerine kodun arkasındaki düşünme adımlarını ve hata çözme yaklaşımını da takip edebilir.

Her AI çıktısı için üç soruluk karar çerçevesi

Yapay zekânın sunduğu herhangi bir kodu değerlendirmek için önce şu üç soruya cevap verin:

  1. Bu kod hangi problemi çözüyor? Girdiyi, işlemi ve beklenen çıktıyı açıkça tanımlayın.
  2. Neden bu yaklaşım seçildi? Döngü, koşul, fonksiyon veya veri yapısının probleme nasıl hizmet ettiğini açıklayın.
  3. Hangi varsayımlara dayanıyor? Kod yalnızca belirli bir veri türünü, sayı aralığını veya giriş biçimini kabul ediyor olabilir.

Örneğin bir program kullanıcıdan sayı bekliyorsa, kullanıcı metin girdiğinde ne olacağını sormak gerekir. Bir döngü liste üzerinde çalışıyorsa listenin boş olması durumunda davranış değişebilir. Bir değişken kapsamı belirli bir blokla sınırlıysa, o değişkene başka bir yerde erişmek hata oluşturabilir. Öğrencinin bu sınır durumlarını düşünmesi, AI tarafından verilen kodu gerçekten değerlendirdiğini gösterir.

En sağlıklı kullanım biçiminde yapay zekâ, öğrencinin yerine karar veren bir otorite değil; karşılaştırma, açıklama ve deneme sürecini destekleyen bir yardımcıdır. Öğrenci her çıktıyı sorguladığında, kodu değiştirdiğinde ve test sonuçlarını yorumladığında hız ile öğrenme arasında daha dengeli bir ilişki kurabilir.

AI Kullanırken En Sık Atlanan Üç Temel Kavram

Yapay zekâ tarafından üretilen bir kod çalıştığında öğrenme tamamlanmış sayılmaz. Öğrencinin asıl kazanımı, kodun neden çalıştığını, hangi varsayımlara dayandığını ve küçük bir değişiklik yapıldığında nasıl etkileneceğini açıklayabilmesidir. Özellikle başlangıç seviyesinde döngü mantığı, değişken kapsamı ve hata ayıklama süreçleri; kod hızlıca üretildiğinde kolayca gözden kaçabilir.

Bu üç kavramı kontrol etmek için her kod parçasında şu soruya dönmek gerekir: “Bu satır ne yapıyor, hangi değer üzerinde çalışıyor ve beklenmeyen bir durumda nasıl davranıyor?” Aşağıdaki tablo, AI çıktısını incelerken kullanılabilecek pratik bir çerçeve sunar.

Atlanan kavram Neden gözden kaçıyor Kontrol sorusu
Döngü mantığı Kod, tekrar işlemini tek bir komut gibi gösterir. Öğrenci döngünün kaç tur süreceğini ve her turda hangi değerin değiştiğini düşünmeden sonucu kabul edebilir. Tekrar hangi koşulla duruyor? Her turda hangi değer değişiyor? Döngü hiç durmayabilir mi?
Değişken kapsamı Bir değişken farklı satırlarda kullanıldığı için her yerde erişilebilir sanılabilir. Oysa değişkenin nerede tanımlandığı, hangi blok veya fonksiyon içinde yaşadığı önemlidir. Bu değişken nerede tanımlandı? Hangi kod bölümlerinden erişilebilir? Aynı isim başka bir kapsamda yeniden tanımlandı mı?
Hata ayıklama AI genellikle doğrudan düzeltilmiş bir kod sunar. Öğrenci hatanın belirtisini, gerçek nedenini ve düzeltmenin neden işe yaradığını incelemeden yalnızca yeni sürümü kopyalayabilir. Ortaya çıkan belirti nedir? Hatanın en olası nedeni ne? Düzeltmeden sonra hangi test, sorunun çözüldüğünü gösterecek?

Döngü mantığını sonuçtan önce inceleyin

Bir döngüyü anlamanın en kolay yolu, her turdaki durumu ayrı ayrı takip etmektir. Listenin hangi elemanı işleniyor, döngü değişkeni hangi değeri alıyor ve koşul doğru olduğunda hangi işlem gerçekleşiyor soruları cevaplanmalıdır.

Örneğin bir döngü listedeki tüm elemanları sırayla geziyorsa, listenin uzunluğu çoğu zaman döngünün kaç kez çalışacağı hakkında fikir verir. Ancak döngünün içinde break kullanılması, listenin değiştirilmesi veya bir koşula bağlı olarak bazı işlemlerin atlanması bu davranışı etkileyebilir. Bu nedenle yalnızca “kod çalıştı” demek yerine her turun kısa bir izini çıkarmak gerekir.

Değişken kapsamını satır satır takip edin

Değişken kapsamı, bir değişkenin programın hangi bölümlerinde kullanılabildiğini anlatır. Python’da if, for ve while blokları, birçok dildeki gibi her zaman ayrı bir değişken kapsamı oluşturmaz. Buna karşılık fonksiyonlar kendi yerel kapsamlarına sahiptir. Bu ayrım, özellikle AI tarafından yazılan kodlarda önemlidir; çünkü bir değişkenin döngüden sonra da erişilebilir olması, her yerde güvenle kullanılabileceği anlamına gelmez.

Bir değişkeni incelerken önce tanımlandığı satırı bulun. Ardından şu soruları sorun:

  • Değişken bir fonksiyonun içinde mi, dışında mı tanımlandı?
  • Değerine daha sonra hangi satırlar erişiyor?
  • Değişken her döngü turunda yeniden mi atanıyor?
  • Değişkenin adı başka bir yerde tekrar kullanılarak önceki değer gölgeleniyor mu?
  • Fonksiyon tamamlandığında bu değişkene dışarıdan erişilmeye çalışılıyor mu?

Hata ayıklamayı “düzeltilmiş kodu alma” sürecine indirgemeyin

Hata ayıklama, yalnızca kırmızı hata mesajını AI aracına gönderip yeni kod istemek değildir. Önce gözlenen belirti tanımlanmalıdır. Program hiç mi çalışmıyor, yanlış sonuç mu veriyor, bazı girdilerde mi bozuluyor, yoksa beklenenden farklı sayıda mı tekrar yapıyor?

Ardından belirti ile neden birbirinden ayrılmalıdır. Örneğin ekranda yanlış sayı görülmesi bir belirtidir; bu yanlışlığın nedeni döngünün bir elemanı atlaması, karşılaştırma işaretinin hatalı olması veya değişkenin önceki turdan kalan değeri taşıması olabilir. Düzeltme yapıldıktan sonra aynı girdiyi tekrar denemek yeterli olmayabilir. Farklı ve sınır durumları da test edilmelidir.

AI Tarafından Üretilen Bir Döngü Kodunu Nasıl İncelemelisiniz?

AI Tarafından Üretilen Bir Döngü Kodunu Nasıl İncelemelisiniz?

AI tarafından üretilen bir döngüyü incelemek için önce çıktıyı tahmin edin, sonra kodu çalıştırın. Böylece bilgisayarın verdiği sonucu pasif biçimde görmek yerine kendi zihinsel modelinizle karşılaştırabilirsiniz. Aşağıdaki Python örneği, listedeki sayıları dolaşır ve yalnızca çift olanları ekrana yazdırır:

sayilar = [3, 8, 11, 14]
for sayi in sayilar:
    if sayi % 2 == 0:
        print(sayi)

Bu kod çalıştırıldığında beklenen çıktı şöyledir:

8
14

Kodun her satırı ne yapıyor?

  • sayilar = [3, 8, 11, 14] satırı dört elemanlı bir liste oluşturur.
  • for sayi in sayilar: satırı, listedeki elemanları sırayla sayi değişkenine aktarır.
  • if sayi % 2 == 0: ifadesi, sayının ikiye bölümünden kalanın sıfır olup olmadığını kontrol eder.
  • print(sayi) satırı yalnızca koşul doğru olduğunda çalışır.

Listenin dört elemanı olduğu için döngü normal akışta dört kez çalışır. İlk turda sayi değeri 3, ikinci turda 8, üçüncü turda 11 ve dördüncü turda 14 olur. Üç ve on bir tek sayı olduğu için ekrana yazdırılmaz; sekiz ve on dört çift sayı olduğu için yazdırılır.

Burada sayi değişkeni döngünün her turunda yeni bir değer alır. Python’da for bloğu, fonksiyonlar gibi tamamen ayrı bir yerel kapsam oluşturmaz. Bu nedenle döngü tamamlandıktan sonra sayi değişkeninin son aldığı değere erişilebilmesi mümkündür. Ancak bu davranışa güvenerek değişkeni her bağlamda kullanmak iyi bir tasarım değildir. Kodun okunabilir olması için bir değişkenin nerede ve hangi amaçla kullanılacağı açıkça belirlenmelidir.

AI çıktısını incelemek için altı adımlı kontrol listesi

  1. Kodu çalıştırmadan çıktıyı tahmin edin. Listedeki değerleri sırayla yazın ve koşulun hangi turlarda doğru olacağını önceden belirleyin.
  2. Her satırı kendi cümlelerinizle açıklayın. “Bu satır listeyi oluşturuyor” veya “bu koşul çift sayıları seçiyor” gibi açıklamalar yapın. Bir satırı açıklayamıyorsanız o satır için ek inceleme gerekir.
  3. Değişkenin hangi kapsamda yaşadığını sorgulayın. sayilar ve sayi değişkenlerinin nerede oluşturulduğunu, hangi satırlarda kullanıldığını ve döngü bittikten sonra değerlerinin ne olacağını düşünün.
  4. Döngü koşulunu veya karşılaştırma işaretini bilinçli olarak bozun. Örneğin == 0 yerine != 0 yazın. Böylece kodun tek sayıların çıktısını verdiğini gözlemleyebilirsiniz. Değişikliği rastgele değil, davranışı anlamak amacıyla yapın.
  5. Oluşan hatayı teşhis edip düzeltin. Sözdizimi hatası, yanlış çıktı ve çalışma zamanı hatası arasındaki farkı belirleyin. Hangi satırın soruna yol açtığını ve düzeltmenin neden işe yaradığını açıklayın.
  6. Farklı girdilerle yeniden test edin. Boş liste, yalnızca tek sayılardan oluşan liste, yalnızca çift sayılardan oluşan liste ve negatif sayılar gibi farklı örnekler kullanın.

Kodu gerçekten anladığınızı nasıl anlarsınız?

Öğrencinin kodu anladığını gösteren ölçüt, aynı kodu ezberden yeniden yazması değildir. Aşağıdaki görevleri yardım almadan yapabiliyorsa temel mantık büyük ölçüde kurulmuş demektir:

  • Döngünün kaç tur çalışacağını doğru tahmin edebiliyor.
  • Her turda döngü değişkeninin hangi değeri aldığını açıklayabiliyor.
  • Koşulun neden bazı değerlerde doğru, bazı değerlerde yanlış olduğunu söyleyebiliyor.
  • Karşılaştırma işaretini değiştirdiğinde beklenen çıktının nasıl değişeceğini öngörebiliyor.
  • Yeni bir listeyle kodu test edip sonucu açıklayabiliyor.
  • Yanlış sonuç ile programın tamamen hata vermesi arasındaki farkı ayırt edebiliyor.
  • AI’dan doğrudan yeni kod istemek yerine önce kendi teşhisini ifade edebiliyor.

Bu yaklaşım, yapay zekâyı öğrenmenin yerine koymaz; onu soru sorulan, açıklama istenen ve kontrollü biçimde sınanan bir yardımcıya dönüştürür. Öğrenci her kod parçasında tahmin etme, açıklama, değiştirme ve test etme adımlarını uyguladığında, hazır çıktıyı kopyalamak yerine temel programlama mantığını geliştirmeye başlar.

Kopyalamak Yerine AI Çıktısını Öğrenme Malzemesine Dönüştürün

Yapay zekâdan alınan kodun öğrenme aracına dönüşmesi için öğrencinin yalnızca sonucu çalıştırması yeterli değildir. Etkili yöntem; problemi önce kendi cümleleriyle açıklamak, çözümü tahmin etmek, AI çıktısını satır satır sorgulamak, kodu yardım almadan yeniden kurmak ve farklı girdilerle test etmektir. Öğrenci bu adımların her birinde aktif rol alıyorsa AI destekli programlama öğrenmeyi kolaylaştırabilir; yalnızca kodu kopyalayıp teslim etmek ise öğrenmeyi güvenceye almaz.

1. Problemi prompt yazmadan önce kendi cümlelerinizle açıklayın

Bir yapay zekâ aracına doğrudan “Bana bu programı yaz” demek yerine, önce problemin ne olduğunu kendiniz yazın. Buradaki amaç kusursuz bir teknik açıklama hazırlamak değildir. Öğrencinin problemi nasıl anladığını görünür hâle getirmektir.

Örneğin hedef, bir listedeki pozitif sayıları saymaksa şu sorular cevaplanabilir:

  • Elimde nasıl bir veri olacak?
  • Sonuç olarak neyi hesaplamak istiyorum?
  • Listenin her elemanını kontrol etmem gerekiyor mu?
  • Bir eleman pozitifse hangi değeri artırmalıyım?
  • Boş bir liste geldiğinde program ne yapmalı?

Bu kısa hazırlık, öğrencinin değişken, koşul ve döngü ihtiyacını önceden düşünmesini sağlar. AI daha sonra kullanılsa bile çözümün bütün sorumluluğu araca bırakılmamış olur.

2. Çözümü görmeden önce bir yaklaşım tahmin edin

Öğrenci kodu yazamasa bile algoritmayı kelimelerle veya sözde kodla kurabilir. Örneğin:

  1. Sonucu tutacak bir sayaç oluştur.
  2. Listedeki elemanları sırayla ele al.
  3. Eleman sıfırdan büyükse sayacı bir artır.
  4. Listenin tamamı bitince sayacı yazdır.

Bu yaklaşım daha sonra AI tarafından üretilen kodla karşılaştırılabilir. Kod farklı görünüyorsa “Benim adımlarımdan hangileri bu kodda var?” ve “Kodda benim düşünmediğim hangi işlem eklenmiş?” soruları sorulmalıdır. Böylece öğrenci, programlama dilinin sözdizimini algoritmanın kendisiyle karıştırmamayı öğrenir.

3. AI’dan doğrudan cevap değil, ipucu ve test senaryosu isteyin

AI kullanımında istemin biçimi öğrenme sürecini etkiler. Öğrenci önce kendi yaklaşımını yazdıktan sonra yapay zekâdan şu tür destekler isteyebilir:

  • “Çözümü hemen yazma, yaklaşımımda eksik olan adımı söyle.”
  • “Bu algoritmayı Python’a dönüştürmeden önce hangi değişkenlere ihtiyacım olduğunu sor.”
  • “Kodun tamamını vermeden, hatamı bulmam için bir ipucu ver.”
  • “Bu çözüm için normal, boş ve beklenmedik girdilerden oluşan test senaryoları hazırla.”
  • “Aynı problemi farklı bir yaklaşımla çözmenin avantaj ve dezavantajlarını karşılaştır.”

Bu kullanım biçiminde AI, öğrencinin yerine düşünen bir otorite değil; düşünme sürecini kontrol etmeye yardımcı olan bir çalışma arkadaşı gibi konumlanır. Ancak verilen açıklamanın doğru olduğu otomatik olarak varsayılmamalıdır. Öğrenci, açıklamayı kendi örnekleriyle sınamalı ve gerekirse kodun belirli bir satırı için “Bu satır şu girdide tam olarak ne yapıyor?” diye sormalıdır.

4. Çıktıyı satır satır sorgulayın

Aşağıdaki kısa kod, listedeki pozitif sayıların sayısını bulur:

numbers = [4, -2, 0, 7, -1]
positive_count = 0

for number in numbers:
    if number > 0:
        positive_count += 1

print(positive_count)

Bu kod çalıştırıldığında beklenen çıktı 2 olur. Fakat öğrenme, ekranda 2 görülmesiyle tamamlanmaz. Öğrenci şu sorulara cevap verebilmelidir:

  • numbers değişkeni hangi veriyi tutuyor?
  • positive_count neden başlangıçta 0 değerini alıyor?
  • for number in numbers ifadesinde number her turda neyi temsil ediyor?
  • number > 0 koşulu neden sıfırı dışarıda bırakıyor?
  • positive_count += 1 hangi durumda çalışıyor?
  • Döngü kaç kez dönüyor ve her turda sayaç değişiyor mu?

Bu soruların amacı kodu ezberletmek değildir. Öğrencinin programın çalışma akışını zihninde canlandırmasını sağlamaktır. Bir satırın ne yaptığını açıklayamıyorsa o satır henüz öğrenilmiş sayılmaz.

5. Açıklamayı kapatıp kodu yeniden kurun

AI çıktısı incelendikten sonra sohbet penceresi veya açıklama bölümü kapatılmalı ve öğrenci aynı programı kendi başına yeniden yazmalıdır. Bu aşamada kodun birebir aynı olması beklenmez. Değişken adları farklı olabilir, hatta çözümün yapısı da değişebilir. Önemli olan şu mantığın korunmasıdır:

  • Sonucu tutan bir başlangıç değeri vardır.
  • Her liste elemanı sırayla değerlendirilir.
  • Koşulu sağlayan elemanlarda sonuç güncellenir.
  • İşlem tamamlandığında sonuç ekrana aktarılır.

Yeniden kurma sırasında öğrenci zorlanırsa AI’dan tekrar tüm kodu istemek yerine yalnızca eksik adımı sormalıdır. Örneğin “Döngüyü kurdum, şimdi pozitif elemanları nasıl sayacağımı anlamam için iki ipucu ver” demek, hazır çözümü kopyalamaktan daha öğreticidir.

6. Kasıtlı hata üretin ve hata mesajını yorumlayın

Hata ayıklama, kod öğrenmenin ayrılmaz bir parçasıdır. Öğrenci kodun hatasız çalışmasını beklemek yerine kontrollü olarak küçük değişiklikler yapmalıdır. Örneğin positive_count değişkeninin adını yalnızca bir yerde değiştirip programı çalıştırabilir. Python bu durumda tanımsız bir değişkene erişildiğini bildiren bir hata üretir.

Burada amaç hata mesajını ezberlemek değil, mesajı bir teşhis ipucu olarak kullanmaktır. Öğrenci şu sırayı izleyebilir:

  1. Hata türünü ve hata verilen satırı oku.
  2. Satırda kullanılan değişken ve fonksiyon adlarını kontrol et.
  3. Değişkenin daha önce tanımlanıp tanımlanmadığını incele.
  4. İsimlendirme, girinti, parantez ve veri türü uyumunu kontrol et.
  5. Tek bir değişiklik yapıp programı yeniden çalıştır.
  6. Yaptığın değişikliğin sonucu neden etkilediğini açıklamaya çalış.

Birden fazla satırı aynı anda değiştirmek, hangi değişikliğin sorunu çözdüğünü belirsiz hâle getirir. Bu nedenle hata ayıklamada küçük ve izlenebilir adımlar daha değerlidir.

7. Farklı girdilerle davranışı doğrulayın

Bir programın yalnızca tek bir örnekte doğru sonuç vermesi yeterli değildir. Öğrenci, örnekteki veriyi değiştirerek kodun davranışını gözlemlemelidir. Yukarıdaki program için şu testler yapılabilir:

  • [1, 2, 3] verildiğinde sonuç 3 olmalıdır.
  • [-4, -2, 0] verildiğinde sonuç 0 olmalıdır.
  • [] verildiğinde program hata vermeden 0 sonucunu üretmelidir.
  • [5, 5, -1] verildiğinde sonuç 2 olmalıdır.

Bu testler, döngünün listenin uzunluğuna göre çalıştığını ve koşulun yalnızca pozitif değerlerde sayacı artırdığını görünür kılar. Öğrenci beklenmedik bir sonuç alırsa “AI yanlış yazmış” demeden önce girdiyi, beklenen sonucu ve programın her adımını karşılaştırmalıdır.

8. Öğrenme döngüsünü günlük ve ölçülebilir hâle getirin

Bu yöntemin etkili olması için uzun ve düzensiz çalışma oturumlarına bağlı kalmak gerekmez. Her gün kısa bir problem seçilip aynı döngü uygulanabilir: problemi açıkla, çözümü tahmin et, ipucu al, kodu incele, yeniden yaz, hata üret ve test et.

Günlük akıllı alıştırmalar, kategori bazlı soru bankaları veya kişiye özel ödev ve müfredat, öğrencinin hangi kavramı tekrar ettiğini düzenli hâle getirebilir. Örneğin bir gün döngüler, başka bir gün değişken kapsamı, sonraki gün hata ayıklama üzerine çalışılabilir. Böylece yalnızca AI’dan alınan anlık cevaplara değil, zaman içinde biriken çözüm deneyimine dayalı bir öğrenme düzeni oluşur.

Başlangıç seviyesini görmek ve ilerlemeyi daha sonra karşılaştırabilmek için ücretsiz kodlama bilgisi testi gibi bir öz değerlendirme adımı kullanılabilir. Test sonucu bir etiket olarak değil, hangi konuların yeniden ele alınması gerektiğini gösteren bir başlangıç verisi olarak değerlendirilmelidir.

Kod inceleme kontrol listesi

Öğrenci bir AI çıktısını teslim etmeden veya kendi projesine eklemeden önce aşağıdaki soruları cevaplayabilmelidir:

  1. Programın çözmeye çalıştığı problemi kendi cümlelerimle açıklayabiliyor muyum?
  2. Her değişkenin neyi tuttuğunu ve başlangıç değerinin neden seçildiğini biliyor muyum?
  3. Döngü varsa kaç kez çalıştığını ve hangi koşulda sona erdiğini söyleyebiliyor muyum?
  4. Koşul ifadelerinin doğru ve yanlış olduğu durumları örnekleyebiliyor muyum?
  5. Kodu açıklamaya bakmadan yeniden yazabiliyor veya benzerini kurabiliyor muyum?
  6. En az bir kasıtlı hata üretip hata mesajını yorumlayabiliyor muyum?
  7. Normal, boş ve beklenmedik girdilerle test yaptım mı?
  8. Çıktının neden doğru olduğunu adım adım gösterebiliyor muyum?

Bu listenin birkaç sorusuna cevap verilemiyorsa kodu hemen kullanmak yerine ilgili satırlar yeniden incelenmelidir. Öğrenme, AI çıktısının kısa sürede elde edilmesiyle değil; öğrencinin o çıktıyı açıklayabilmesi, değiştirebilmesi ve sınayabilmesiyle gerçekleşir.

Veliler Çocuğun Gerçekten Öğrendiğini Nasıl Anlayabilir?

Velilerin çocuğun yapay zekâdan destek alıp almadığını tamamen denetlemesi veya AI kullanımını bütünüyle yasaklaması genellikle sürdürülebilir bir öğrenme yaklaşımı oluşturmaz. Daha sağlıklı ölçüt, çocuğun kullandığı kodu anlayıp anlamadığıdır. Çocuk kodu kendi cümleleriyle açıklayabiliyor, küçük değişiklikler yapabiliyor ve beklenmedik sonucu araştırabiliyorsa öğrenme sürecine aktif olarak katılıyor olabilir.

Sonuca değil, düşünme sürecine dair sorular sorun

Veliler teknik bilgiye sahip olmasa bile kısa ve açık sorularla çocuğun anlayışını gözlemleyebilir:

  • “Bu döngü neden duruyor?”
  • “Bu değişkeni burada tanımlamazsak ne olur?”
  • “Program beklenmedik sonuç verdiğinde ilk nereyi kontrol edersin?”
  • “Girdiyi değiştirirsek çıktı nasıl değişir?”

Çocuğun cevabı her zaman eksiksiz olmayabilir. Buradaki amaç sınav yapmak veya çocuğu yakalamaya çalışmak değildir. Çocuğun tahmin yürütmesini, kodun bir bölümünü açıklamasını ve küçük bir değişiklik yaparak sonucu gözlemlemesini teşvik etmektir.

Bilmediğinde doğrudan çözümü vermek yerine küçük bir görev verin

Çocuk “Bilmiyorum” dediğinde doğru cevap hemen açıklamayı yapmak değildir. Bunun yerine küçük ve gözlemlenebilir bir adım önerilebilir:

  • Döngünün içine bir yazdırma komutu eklemesini isteyin.
  • Bir değişkenin başlangıç değerini değiştirmesini söyleyin.
  • Listedeki bir elemanı pozitif veya negatif hâle getirmesini önerin.
  • Programı boş veriyle çalıştırıp ne olduğunu gözlemlemesini isteyin.
  • Hata mesajında hangi satırın işaretlendiğini birlikte okuyun.

Bu yaklaşım, çocuğu pasif biçimde doğru cevabı beklemekten çıkarır. Çocuk bir tahminde bulunur, küçük bir değişiklik yapar ve sonucu yorumlar. Temel programlama mantığı çoğu zaman bu küçük deneyler üzerinden daha kalıcı hâle gelir.

Aile içinde basit AI kullanım ilkeleri belirleyin

Yapay zekâ kullanımı için katı bir yasak yerine, üzerinde anlaşılmış birkaç çalışma ilkesi belirlemek daha açıklayıcı olabilir:

  1. Çocuk önce problemi ve kendi çözüm fikrini yazar.
  2. AI’dan doğrudan cevap kadar ipucu ve test örneği de istenir.
  3. Üretilen kodun önemli bölümleri çocuk tarafından açıklanır.
  4. Kod, teslim edilmeden veya projeye eklenmeden önce çalıştırılır.
  5. En az bir farklı girdiyle sonuç kontrol edilir.
  6. Çocuk anlamadığı satırı saklamak yerine işaretler ve yardım ister.

Bu kuralların amacı AI kullanımını cezalandırmak değil, çocuğun üretim sorumluluğunu korumaktır. Özellikle küçük yaştaki öğrenciler için “Kodu sen mi yazdın?” sorusundan daha yararlı olan soru “Bu kodun nasıl çalıştığını bana gösterebilir misin?” sorusudur.

Temel seviyeyi gözlemlemek için küçük değerlendirmeler kullanın

Çocuğun hangi konularda rahat, hangi konularda desteğe ihtiyaç duyduğunu anlamak için kısa bilgi testleri veya kendi hazırladığınız mini görevler kullanılabilir. Örneğin çocuktan bir döngünün çalışma adımlarını çizmesini, bir değişkenin kapsamını açıklamasını ya da hatalı bir satırı düzeltmesini isteyebilirsiniz. Temel algoritma becerisini görmek isteyenler için algoritma bilgi testi de yargılayıcı olmayan bir öz değerlendirme seçeneği olarak kullanılabilir.

Değerlendirme sonucu çocuğu başarılı veya başarısız diye sınıflandırmak için kullanılmamalıdır. Asıl değer, bir sonraki çalışma adımını belirlemesidir. Çocuk döngüyü anlıyor ancak değişken kapsamında zorlanıyorsa, yeni ve daha karmaşık bir proje vermek yerine kapsamı görünür kılan küçük alıştırmalarla ilerlemek daha uygundur.

Gerçek öğrenmenin işaretleri nelerdir?

Bir çocuğun AI desteğine rağmen öğrendiğini gösteren bazı davranışlar şunlardır:

  • Kodu çalıştırmadan önce yaklaşık sonucu tahmin eder.
  • Değişken isimlerini ve başlangıç değerlerini gerekçelendirebilir.
  • Bir döngünün her turunda ne olduğunu anlatabilir.
  • Girdiyi değiştirip çıktının nasıl değişeceğini öngörür.
  • Hata alınca rastgele satırları değiştirmek yerine hata mesajını okur.
  • Hazır kodu başka bir probleme uyarlayabilir.
  • AI açıklaması ile kendi gözlemi çeliştiğinde test yaparak kontrol eder.

Bu davranışlar, çocuğun yalnızca doğru cevabı elde etmediğini; programın nasıl çalıştığı hakkında bir zihinsel model kurmaya başladığını gösterir. Velinin rolü de bu modeli desteklemek, merakı korumak ve hataları öğrenmenin doğal bir parçası olarak ele almaktır.

Sık Sorulan Sorular

Yapay zekâ ile kod yazmak programlama öğrenmeyi engeller mi?

Tek başına engellemez. Öğrenci problemi önce kendi düşündüğünde, AI çıktısını açıklayabildiğinde, kodu değiştirdiğinde ve farklı girdilerle test ettiğinde yapay zekâ öğrenmeyi destekleyebilir. Kodu anlamadan kopyalamak ise çalışır bir sonuç verse bile programlama mantığının öğrenildiğini göstermez.

AI tarafından üretilen bir kodu gerçekten anlayıp anlamadığımı nasıl test ederim?

Kodu açıklamayı kapatıp yeniden kurmayı, her değişkenin görevini anlatmayı, döngünün kaç kez çalıştığını tahmin etmeyi ve girdiyi değiştirince beklenen sonucu söylemeyi deneyin. Ayrıca kasıtlı olarak küçük bir hata üretip hata mesajını yorumlayabiliyorsanız kodun çalışma mantığını anlamaya başlamışsınız demektir.

Döngü, değişken kapsamı ve hata ayıklama neden yapay zekâ kullanırken kolayca gözden kaçar?

Çünkü AI genellikle sonuca götüren kodu hızlı biçimde sunar; ancak öğrencinin o kodu zihninde adım adım canlandırmasını kendiliğinden garanti etmez. Döngünün ne zaman durduğu, değişkenin nerede geçerli olduğu ve hatanın hangi varsayımdan kaynaklandığı ancak kod incelenip farklı durumlarda test edildiğinde görünür hâle gelir.

Veliler çocuklarının yapay zekâdan destek alırken kopyalamadığını nasıl anlayabilir?

Çocuğa kodu kimin yazdığını sormak yerine kodun nasıl çalıştığını anlattırın. “Bu döngü neden duruyor?”, “Girdiyi değiştirirsek ne olur?” ve “Bu hatayı ilk nerede araştırırsın?” gibi sorular sorun. Çocuk açıklama yapabiliyor, küçük değişiklikler uygulayabiliyor ve sonucu test edebiliyorsa öğrenme sürecine aktif biçimde katılıyor demektir.

Yapay zekâyı düşünmenin yerine değil, düşünmeyi görünür ve sınanabilir hâle getiren bir yardımcı olarak kullanmak temel mantığın korunmasını sağlar.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin — Yazılım Geliştirici ve Eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; bugün öğrencinin seviyesine ve hedefine göre şekillenen sürdürülebilir öğrenme sistemleri tasarlıyor. 500'den fazla kişiye ezber değil, düşünerek kod yazmayı öğretti — Berk Akademi'de izlemeye değil üretmeye dayalı öğrenme kültürünü o kuruyor.

WhatsApp Hemen Ara