GTU'nun 4 Backlog Kuralını Python'da Modellemek

GTU (Gujarat Technological University) öğrencileri arasında 4 backlog kuralı hakkında sürekli bir panik var. Çoğu kişi kuralı yanlış anlıyor çünkü bir detay var: hemen önceki dönemdeki backloglar sayılmıyor.

Kural basit: FF notu (35 altı) veya sınava girmemek bir backlog oluşturur. Herhangi bir zamanda en fazla 4 backlog taşıyabilirsin. 5'e çıkarsan bir yıl için detain edilebilirsin. Ama işte o twist, geçen dönemin backlogları bu hesaba katılmaz.

Offpage Prince'in yazısında bu kuralı kod olarak görmek çok açıklayıcı. mantık:

1def detention_check(current_sem: int, pending: dict[int, int]) -> tuple[int, bool]:
2"""pending: dönem -> hala geçilmemiş FF sayısı"""
3just_previous = current_sem - 1
4counted = sum(
5n for sem, n in pending.items()
6if sem < just_previous
7)
8detained = counted > 4
9return (counted, detained)

Örneğin 4. dönemdeki bir öğrenci 1. dönemde 2 backlog, 2. dönemde 1, 3. dönemde 3 backlog taşıyorsa: 2 + 1 + 3 = 6 sayılır (3. dönem öncesi hepsi). Ama 5. döneme geçince 3. dönem artık sayılmaz, sadece 1. ve 2. döneme bakılır.

Bu kuralı doğru anlamak, gereksiz panik yaşamaktan seni kurtarır. Kodla test etmek de mantığı çok daha net hale getiriyor.

konu hakkında tepkinizi verebilirsiniz