Öğretmenlerin sınıflarında karşılaştıkları en büyük zorluklardan biri, öğrenci verilerini anlamlı eylemler haline getirmektir. Birçok eğitim teknolojisi aracı, öğrenciler için yüzeysel doğruluk oranları sunarken, bu veriler öğretmenlere neyi iyileştirmeleri gerektiği konusunda hiçbir ipucu vermez. Örneğin, "Emma — %43" gibi bir gösterge, öğrencinin hangi matematiksel kavramı anlamakta zorlandığını ortaya koymaz.
NumPath tarafından geliştirilen yeni bir öğretmen paneli, bu sorunu Knowledge Component (Bilgi Bileşeni, KB) ustalığı izleme sistemiyle çözüyor. Artık öğretmenler, her öğrencinin hangi konularda ne kadar ilerlediğini renk kodlu ilerleme çubuklarıyla görebiliyor. Bu sistem, öğrencilerin hangi konularda zorlandığını veya ustalaştığını net bir şekilde ortaya koyarken, aynı zamanda öğretmenlere bireysel müdahale stratejileri geliştirme imkanı sunuyor.
Öğretmenlerin Gerçekten İhtiyacı Olan Veri Nedir?
NumPath ekibi, öğretmenlerin hangi verileri kullanabileceğini araştırırken üç farklı yaklaşım üzerinde durdu:
- Sadece doğruluk oranı: Hızlı hesaplanabilir ve uygulanabilir, ancak eyleme geçirilemez bilgiler sunar.
- Ham BKT parametreleri:
p_mastery,p_learn,p_guessvep_slipgibi karmaşık istatistiksel değerleri gösterir. Bu veriler teknik olarak doğrudur, ancak sınıf ortamında kullanılmak için çok yoğundur. - KB ustalığı seviyeleri:
p_masterydeğerini Novice (Çaylak), Developing (Gelişmekte) ve Mastered (Uzman) olmak üzere üç kategoriye ayırarak renk kodlamasıyla sunar. Bu sayede öğretmenler, karmaşık verileri kolayca anlayabilir ve eyleme geçirebilir.
Ekip, üçüncü yaklaşımı benimseyerek, KB ustalığı seviyelerini tanımlayan bir sistem geliştirdi. Bu sistemde, ustalığın seviyeleri aşağıdaki gibi belirlenmiştir:
_MASTERY_DEVELOPING = 0.40
_MASTERY_MASTERED = 0.80
def _mastery_level(p_mastery: float) -> str:
if p_mastery >= _MASTERY_MASTERED:
return "Mastered"
if p_mastery >= _MASTERY_DEVELOPING:
return "Developing"
return "Novice"Sistemde yapılan önemli bir kullanıcı deneyimi (UX) tercihi, henüz hiçbir girişimde bulunmamış öğrenciler için de tüm KB’lerin %0 ve Novice olarak görüntülenmesidir. Bu sayede, öğretmenler öğrencinin hangi konularla henüz tanışmadığını doğrudan görebilir. Boş bir çubuk, "bu konuda veri yok" anlamına gelmez; aksine, "bu öğrenci henüz bu konuyu çalışmadı" bilgisini verir.
Erişim Kontrolü ve Güvenlik
Panelde yapılan bir diğer önemli tasarım kararı, erişim kontrolüydü. Sistem, yetkilendirme için JWT token’ları kullanırken, rol tabanlı erişim mantığını rota işleyicisi içinde uyguladı. Örneğin, bir öğrenci sadece kendi verilerine erişebilirken, öğretmenler tüm öğrencilerin verilerini görüntüleyebilir. Bu mantık, farklı bağımlılık fonksiyonlarına dağılmış şekilde değil, tek bir yerde — rota işleyicisi içinde — uygulandı.
@router.get("/{student_id}/kc-states", response_model=KCStatesResponse)
async def get_kc_states(
student_id: uuid.UUID,
db: AsyncSession = Depends(get_db),
auth: dict = Depends(require_authenticated),
) -> KCStatesResponse:
role = auth.get("role")
if role == "student" and auth.get("sub") != str(student_id):
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="Erişim reddedildi")Araştırmanın Arka Planı: Öğretmenler İçin Gerçek İçgörüler
NumPath’ın çalışmaları, MacLellan ITS çerçevesinin "Öğretmenin Döngüde Olması" ilkesine dayanıyor. Bu ilke, öğretmenlere sadece bir ekran değil, aynı zamanda eyleme geçirebilecekleri bilgiler sunmayı amaçlıyor. Örneğin, sadece %43 doğruluk oranı, öğretmene "öğrenci zorlanıyor" bilgisini verirken, KB paneli öğrencinin hangi konuda zorlandığını ve kaç kez denediğini net bir şekilde gösteriyor.
Örneğin, "çıkarma işlemi" konusunda öğrencinin ustalığı %12 (Novice, 8 deneme) iken, "basamak değeri" konusunda %67 (Developing, 14 deneme) olabilir. Bu bilgiler, öğretmene öğrenciye özel müdahale stratejileri geliştirmesi için net bir rehberlik sunar.
Dördüncü fazda yapılacak randomize kontrollü çalışma (RCT), KB düzeyindeki görünürlüğün öğretmenlerin müdahale şekillerini nasıl değiştirdiğini ölçecek. Bu panel, sadece bir raporlama aracı değil, aynı zamanda bir öğretim aracı olarak tasarlandı.
Geliştirme Sürecinden Çıkarılan Dersler
NumPath ekibi, veri getirme stratejisini basitleştirmek için iki ayrı sorgu ve bir sözlük (dict) kullanımını tercih etti. Bu yaklaşım, SQLAlchemy’nin karmaşık dış birleşim (outerjoin) işlemlerinden kaynaklanan sorunları ortadan kaldırdı. İki sorgu ve bir dict.get() yöntemi, kodun okunabilirliğini ve test edilebilirliğini önemli ölçüde artırdı:
kc_by_skill_id = {record.skill_id: record for record in kc_records}
summaries = [
KCStateSummary(
skill_code=skill.code,
p_mastery=round(kc_by_skill_id[skill.id].p_mastery, 3) if skill.id in kc_by_skill_id else 0.0,
)
for skill in all_skills
]Bu yaklaşım sayesinde, canlı bir veritabanına ihtiyaç duymadan 0.03 saniyede tamamlanan dokuz birim testi gerçekleştirildi. Bu, alan mantığının rota işleyicisi içinde değil, ayrı bir kullanım durumunda (use case) tutulmasıyla mümkün oldu.
Gelecek Planları: Öğrenci Performansının Derinlemesine Analizi
KC paneli için ikinci fazda, öğrenci detay paneline son yapılan girişimlerin geçmişi eklenecek. Bu sayede, öğretmenler öğrencilerin hangi soruları yanlış yaptığını ve hata kodlarını görebilecek. Böylece, öğretmenler öğrencilerin hata kalıplarını erkenden tespit edebilecek ve buna göre müdahale stratejileri geliştirebilecek.
Önemli Çıkarımlar
- Doğruluk oranı çıktı, KB ustalığı sinyaldir: Sadece bir doğruluk oranı, öğretmenlere eyleme geçirebilecekleri bilgiler sunmaz. KB düzeyindeki ustalık durumu, minimum açıklanabilir yapay zeka çözümü olarak öne çıkar.
- Boşluk bilgilendiricidir, hata değildir: Yeni bir öğrenci için tüm KB’lerin %0 ve Novice olarak gösterilmesi, öğretmene "bu öğrenci henüz bu konuyu çalışmadı" bilgisini verir. Bu, veri eksikliğinden kaynaklanan bir boşluk değil, anlamlı bir bilgidir.
- İki sorgu + sözlük > karmaşık birleşim: Beş adet statik referans verisi için iki basit sorgu ve bir sözlük kullanımı, ORM dış birleşimlerine kıyasla daha okunabilir, test edilebilir ve sürdürülebilir bir çözüm sunar.
Gelecekteki çalışmalar, yapay zeka destekli eğitim araçlarının öğretmenler ve öğrenciler için daha anlamlı ve eyleme geçirilebilir içgörüler sunmasını hedefliyor. Bu sayede, sınıf içi öğretim daha kişiselleştirilmiş ve etkili hale gelecek.
Yapay zeka özeti
Öğretmenlerin öğrenci performansını sadece doğru değil, aynı zamanda anlaşılır şekilde takip etmeleri gerekir. KB paneliyle nasıl eyleme geçirilebilir veriler sunuyoruz?