Algo-I

Rehber

Classroom 50: Ödev Deposu ve Otomatik Kontrol

Lab ve portfolyo depolarının nasıl dağıtıldığı: organizasyon daveti, kabul bağlantısı, deponun adı, push ile teslim, Releases sayfasındaki otomatik kontrol, son teslim kuralı ve sık sorunlar.

Classroom 50 nedir?

Classroom 50, Harvard’ın CS50 ekibinin geliştirdiği ücretsiz ve açık kaynak bir ödev dağıtım aracıdır. Hoca bir ödev tanımlar, siz bir bağlantıya tıklarsınız, GitHub’da size ait bir depo kendiliğinden oluşur. Her push’ta otomatik kontrol çalışır ve puanınızı görürsünüz. Bu derste bütün lab görevleri ve portfolyo bu yolla verilir; elle depo açmanız gerekmez.

Ders organizasyonu: FiratUniversity-FerhatUcarsLAB. Classroom kısa adı: algo1.

1 · Davet: bağlantı yalnızca üyelerde çalışır

Kabul bağlantısı yalnızca organizasyona davet edilmiş GitHub hesaplarında çalışır. Sıra şöyle:

  1. GitHub hesabınızı açın (üniversite e-postanızla) ve e-posta doğrulamasını yapın.
  2. GitHub kullanıcı adınızı ya da üniversite e-postanızı lab sorumlu hocanıza bildirin. Dönem başındaki listeyle davet aldıysanız bu adım gerekmez.
  3. E-postanıza ve GitHub bildirimlerinize “FiratUniversity-FerhatUcarsLAB organizasyonuna davet” gelir; Accept deyin. Bildirim gelmediyse github.com/FiratUniversity-FerhatUcarsLAB adresini açın; üstte View invitation düğmesi görünür.

2 · Kabul bağlantısı ve depo

Her ödevin kendi kabul bağlantısı vardır; biçimi şöyledir:

https://classroom50.org/FiratUniversity-FerhatUcarsLAB/algo1/assignments/labXX/accept

Bağlantı lab sayfasında ve lab günü verilir (Lab 1: Lab 1 sayfası). Tıklayın, GitHub ile giriş yapın, Accept assignment deyin. Birkaç saniye içinde deponuz oluşur:

  • Ad: algo1-labXX-KULLANICIADI (organizasyonun altında).
  • Görünürlük: özel (private); siz ve ders ekibi görür.
  • İçerik: README ve .gitignore. Dosyalarınızı deponun kök dizinine koyarsınız, alt klasör açmazsınız.

İsteğe bağlı komut satırı yolu: GitHub CLI kuruluysa gh extension install foundation50/gh-student sonrası gh student accept FiratUniversity-FerhatUcarsLAB algo1 lab01.

3 · Çalışma ve teslim

Depoyu iki yoldan açabilirsiniz:

  • Codespaces: depo sayfasında Code → Codespaces → Create codespace on main. Tarayıcıda VS Code açılır, Java hazır gelir.
  • Kendi bilgisayarınız: git clone https://github.com/FiratUniversity-FerhatUcarsLAB/algo1-labXX-KULLANICIADI.git

Dosyaları yazın, derleyip çalıştırın, sonra push edin:

git add .
git commit -m "Lab 1: ilk Java dosyaları"
git push

Codespaces’te sol çubuktaki Source Control düğmesi aynı işi tıklamayla yapar (Commit, sonra Sync Changes). Teslim, push’tan ibarettir; ayrıca bir yere yükleme yoktur. Ayrıntılı Git özeti: GitHub ve Codespaces rehberi.

4 · Otomatik kontrol: Releases ve Feedback

Her push’ta deponuzda GitHub Actions çalışır (1-2 dakika). Sonuç iki yerde görünür:

  • Deponun Releases sayfası: hangi test geçti, hangi test kaldı, toplam puan.
  • Depoda otomatik açılan Feedback pull request’i: aynı sonuç ve lab sorumlu hocanızın yorumları.

Kontrol yalnızca dosyaların derlenip derlenmediğine ve birkaç beklenen çıktı satırına bakar. Bu yüzden dosya adı, sınıf adı ve beklenen satır (ör. 5 x 10 = 50) lab sayfasında yazıldığı gibi birebir olmalı. Bir test kaldıysa düzeltin, tekrar push edin; son teslim saatine kadar sınırsız deneme hakkınız var, en son push geçerlidir.

5 · Son teslim kuralı

Her lab’ın son teslimi, o lab haftasının Cuma günü 23.59’udur. Lab saatinde bitiremeyenler Cuma gecesine kadar evden push edebilir. Cuma’dan sonra gelen push’lar puanlanmaz. Portfolyo kilometre taşları (KT1-KT4) için de aynı kural geçerlidir: ilgili lab haftasının Cuma 23.59’u.

Portfolyo deposu, lab depolarından ayrıdır ve aynı yöntemle, tek bir “portfolyo” ödevi olarak verilir: kabul bağlantısı ve konu tablosu Proje sayfasında, depo adı algo1-portfolyo-KULLANICIADI. Ara teslimler (KT1 6 Kasım, KT2 27 Kasım, KT3 11 Aralık) o tarihlerde Cuma 23.59’da depoda ne varsa onu alarak toplanır; son teslim 25 Aralık Cuma 23.59.

Sık sorunlar

BelirtiÇözüm
Kabul sayfası “Not a member yet” diyorOrganizasyon davetini henüz kabul etmediniz; e-postanıza ya da github.com/FiratUniversity-FerhatUcarsLAB adresine bakın, daveti kabul edin, sonra Check again
Davet e-postası gelmediGitHub’daki e-posta adresiniz farklı olabilir; GitHub bildirimlerine ve organizasyon sayfasına bakın, olmadı lab sorumlu hocanıza kullanıcı adınızı yeniden bildirin
Releases sayfasında sonuç yokPush’tan sonra 1-2 dakika bekleyin; deponun Actions sekmesinde çalışmayı görebilirsiniz
Actions sekmesinde kırmızı çarpıDerleme hatası olabilir; çalışmaya tıklayıp mesajı okuyun, javac ile yerelde deneyin
Puan düşük ama kod çalışıyorDosya adı, sınıf adı ve beklenen çıktı satırı birebir eşleşmeli (büyük-küçük harf, boşluklar dahil); dosyalar deponun kök dizininde olmalı
Dosyalar GitHub’da görünmüyorCommit ettiniz ama push etmediniz; git push ya da Codespaces’te Sync Changes
Yanlışlıkla iki depo aldım / depo adını değiştirdimLab sorumlu hocanıza söyleyin; kendiniz düzeltmeye çalışmayın