AP Computer Science A
Hiç kanseri tedavi etmek, iklim değişikliğini çözmek veya etkileşimli sanat eserleri oluşturmak istediniz mi?
AP Computer Science A (AP Bilgisayar Bilimi A) dersinde, geleceğin teknolojilerini kullanarak bugünün en büyük sorularına yanıt aramayı öğreneceksiniz. Bu ders kapsamında, Java programlama dilinin belirli bir alt kümesini kullanarak algoritmalar geliştirecek, veri yapıları oluşturacak ve problem çözme teknikleri öğreneceksiniz.
Edineceğiniz Beceriler
- Program tasarlama, algoritmalar oluşturma ve bunları kod yazarak uygulama
- Program kodlarını test etme ve hata ayıklama
- Yazılan kodun nasıl çalıştığını açıklama ve dokümante etme
Eşdeğerlik ve Ön Koşullar
Üniversite Dersi Eşdeğeri:
- Tek dönemlik, giriş seviyesi bilgisayar bilimi üniversite dersi.
Önerilen Ön Koşullar:
- Lise seviyesinde İngilizce ve cebir dersleri almış olmak
- Fonksiyonlar ve fonksiyon gösterimiyle ilgili temel kavramlara aşinalık
DERS İÇERİĞİ & ÜNİTELER
Aşağıda belirtilen ders içeriği, genellikle öğretilen ünite başlıklarına göre düzenlenmiş olup, dersin işlenebileceği olası bir sıralamayı sunar. Öğretmeniniz, yerel öncelikler ve tercihler doğrultusunda konuları farklı şekilde ele alabilir.
📌 Ünite 1: Temel Veri Tipleri (Primitive Types)
Bu ünitede, Java programlama dilinin temellerini ve kodlama için gerekli temel kavramları öğreneceksiniz.
Sınavda Ağırlığı: %2,5-5
İşlenecek Konular
- Primitive Veri Tipleri: int, double ve boolean gibi temel veri türleri.
- Aritmetik İfadelerin Değerlendirilmesi: Program kodlarında matematiksel işlemler gerçekleştirme.
- Atama Operatörleri Kullanımı: Değişkenlere değer atama.
- Değişkenlerin ve Operatörlerin Kullanımı: Değişkenleri ve operatörleri birleştirerek işlemler yapma.
📌 Ünite 2: Nesneleri Kullanma (Using Objects)
Bu ünitede, nesne tabanlı programlamayı ve gerçek dünyadaki nesnelerin dijital ortamda nasıl temsil edildiğini keşfedeceksiniz.
Sınavda Ağırlığı: %5-7,5
İşlenecek Konular:
- Nesneler ve Sınıflar: Örnekler, nitelikler ve davranışlar.
- Yapıcı Metotlar (Constructors): Parametreli ve parametresiz nesne oluşturma.
- Sınıf Kütüphanelerini Kullanma: Integer ve Double gibi Java sınıfları.
- Metot Kullanımı: Static ve Math sınıfları dahil olmak üzere metotlar.
- String Nesneleri ve Metotları: Metin verileriyle çalışma.
- API ve Kütüphaneleri Kullanma: Harici kütüphanelerden faydalanma.
📌 Ünite 3: Boolean İfadeleri ve if Koşulları
Bu ünitede, algoritmaların temel yapı taşlarını oluşturan koşullu ifadeleri kullanarak problemlere çözümler üreteceksiniz.
Sınavda Ağırlığı: %15-17,5
İşlenecek Konular:
- Boolean Operatörleri ile Değerlerin Hesaplanması: Mantıksal operatörleri kullanarak koşullu ifadeler oluşturma.
- Koşullu İfadeler Kullanarak Farklı Durumlara Göre İşlemler Gerçekleştirme: if, else if ve else yapıları ile program akışını belirleme.
- Birden Fazla Sonuç Oluşturmak İçin Koşullu İfadeleri Kullanma: Mantıksal operatörleri kullanarak farklı sonuçlar üreten koşullar oluşturma.
- Eşdeğer Boolean İfadeleri Kullanarak Aynı Sonucu Üretme: Boolean ifadelerini optimize etme.
- Nesneleri Alias Kullanarak Referans Etme: Aynı nesneye farklı referanslarla erişme.
📌 Ünite 4: Döngüler (Iteration)
Bu ünitede, tekrarlayan işlemleri daha verimli hale getirmek için döngü yapılarını kullanmayı öğreneceksiniz.
Sınavda Ağırlığı: %17,5-22,5
İşlenecek Konular:
– Belirli Koşullar Sağlanana Kadar Çalışan Döngüler Oluşturma: For, while ve do-while döngülerinin kullanımı.
– Aritmetik ve String Algoritmalarını Kullanma: Döngülerle sayılar ve metinler üzerinde işlem yapma.
– For ve While Döngüleri Kullanarak İteratif Süreçleri Temsil Etme: Döngüleri kullanarak tekrar eden işlemleri gerçekleştirme.
– İç İçe Döngü Kullanımı: Döngü içinde döngü çalıştırarak daha karmaşık algoritmalar oluşturma.
📌 Ünite 5: Sınıflar Yazma (Writing Classes)
Bu ünitede, gerçek dünyadaki etkileşimlerin nasıl dijital olarak temsil edilebileceğini ve programlama etiğini öğreneceksiniz.
Sınavda Ağırlığı: %5-7,5
İşlenecek Konular:
- Sınıfların Yapısı: Public ve private değişkenler kullanarak veri güvenliğini sağlama.
- Kurucu Metotlar Kullanarak Nesne Başlatma: Nesneleri başlatmak için kurucu metotları yazma.
- Kodun İşleyişini Açıklamak İçin Açıklama Satırları Kullanma: Açıklama satırları ekleyerek kodun okunabilirliğini artırma.
- Non-void, void ve static Metotlarla Davranış Tanımlama: Farklı türde metotlar yazarak sınıf içindeki davranışları belirleme.
- Program Kodunda Değişkenlerin Nerede Kullanılabileceğini Belirleme: Değişkenlerin local, instance ve class seviyelerinde nasıl kullanıldığını anlama.
- Problemleri Küçük Parçalara Ayırarak Çözüm Üretme: Metotlar kullanarak büyük problemleri daha yönetilebilir hale getirme.
- Telif Hakları ve Programlama Etiği: Programlama sürecinde telif haklarını ve etik kuralları anlama.
📌 Ünite 6: Diziler (Array)
Bu ünitede, ilgili verileri bir koleksiyon içinde depolamak ve standart algoritmalarla bu verileri işlemek için dizileri kullanacaksınız.
Bu ünitede, nesne tabanlı programlamayı ve gerçek dünyadaki nesnelerin dijital ortamda nasıl temsil edildiğini keşfedeceksiniz.
Sınavda Ağırlığı: %10-15
İşlenecek Konular:
- Verileri Array Nesnesi Olarak Tanımlama: Tek boyutlu diziler ile çalışarak verileri saklama.
- Dizilerdeki Elemanlara Döngülerle Erişim Sağlama: For ve while döngülerini kullanarak dizilerin içeriğini okuma ve değiştirme.
- Standart Algoritmalar Kullanarak Dizi İşlemleri Yapma: En küçük veya büyük değeri bulma, diziyi ters çevirme, sıralama gibi işlemleri gerçekleştirme.
📌 Ünite 7: ArrayList Kullanımı (ArrayList)
Bu ünitede, veri kümelerini daha verimli bir şekilde yönetmek için ArrayList veri yapısını öğreneceksiniz. Ayrıca, büyük veri kümelerinin saklanmasıyla ilgili gizlilik politikasınıda keşfedeceksiniz.
Sınavda Ağırlığı: %2,5-7,5
İşlenecek Konular:
- ArrayList Nesneleri ile Veri Koleksiyonlarını Temsil Etme: Nesne referans verilerini saklamak ve yönetmek için ArrayList kullanma.
- ArrayList İçinde Gezinti Yapma: Elemanlara erişmek ve onları değiştirmek için iterasyon ifadelerini kullanma.
- Standart Algoritmalar Kullanarak ArrayList İşlemleri Yapma: ArrayList üzerinde sık kullanılan algoritmaları uygulama.
- Arama ve Sıralama Algoritmaları Kullanma: Binary Search ve Bubble Sort gibi yaygın sıralama ve arama yöntemlerini öğrenme.
- Büyük Veri Kümelerinin Toplanması ve Saklanmasıyla İlgili Etik Konular: Veri gizliliği ve kişisel verilerin saklanmasının etik boyutlarını değerlendirme.
📌 Ünite 8: İki Boyutlu Diziler (2D Array)
Bu ünitede, tek boyutlu dizilerin ötesine geçerek, tablo formatında veri kümelerini temsil eden iki boyutlu dizilerle (2D arrays) çalışmayı öğreneceksiniz.
Sınavda Ağırlığı: %7,5-10
İşlenecek Konular:
– İki Boyutlu Dizileri Tanımlama: Verileri 2D array olarak düzenleme ve farklı satır ve sütunlara erişme.
– İç İçe Döngüler Kullanarak 2D Dizilerde Gezinti Yapma: Elemanlara erişmek için iç içe geçmiş döngüleri kullanma.
📌 Ünite 9: Kalıtım (Inheritance)
Bu ünitede, programınızı değiştirmeden yeni özellikler ekleyebilmek için nesne yönelimli programlamanın önemli bir kavramı olan kalıtımı (inheritance) öğreneceksiniz.
Sınavda Ağırlığı: %5-10
İşlenecek Konular:
- Üst Sınıflar ve Alt Sınıflar Kullanarak Ortak Özellikleri ve Davranışları Gruplama: Kod tekrarını azaltmak için nesneleri ortak bir üst sınıfta gruplama.
- Alt Sınıflarda Metot Tanımlama ve Geçersiz Kılma (Overriding): Üst sınıftaki metotları alt sınıflarda değiştirerek uyarlama.
- Kalıtım Hiyerarşisini Kullanarak Referanslar Oluşturma: Alt sınıf nesnelerini üst sınıf referanslarıyla bağdaştırma.
- Alt ve Üst Sınıflar Arasında Çok Biçimlilik (Polymorphism) Kullanma: Aynı metot çağrılarının farklı sınıflarda farklı şekillerde çalışmasını sağlama.
📌 Ünite 10: Özyineleme (Recursion)
Bu ünitede, küçük problemleri çözerek büyük problemleri çözmek için özyinelemeli (recursive) metotları kullanmayı öğreneceksiniz.
Sınavda Ağırlığı: %5-7,5
İşlenecek Konular:
- Özyinelemeli Metotları Çalıştırma.
- İkili Arama (Binary Search) ve Birleştirme Sıralaması (Merge Sort) Algoritmalarını Kullanma.
SINAV HAKKINDA
AP Computer Science A sınavı, ders ünitelerinde ele alınan programlama kavramlarını anlama ve bilgisayar programları için kod okuma ve yazma becerinizi ölçer.
Sınav Formatı:
Bu sınav tamamen dijital bir sınavdır. Bluebook test uygulaması üzerinden çoktan seçmeli ve açık uçlu sorularıtamamlayacaksınız. Yanıtlarınız, sınav sonunda otomatik olarak gönderilecektir.
Sınav Süresi: 3 saat
SINAV BİLEŞENLERİ
Bölüm I: Çoktan Seçmeli Sorular
Soru Sayısı: 40
Toplam Puan İçindeki Ağırlığı: %50
Bu bölüm, bağımsız tek sorular ve bazen iki sorudan oluşan setler içerir.
Soruların Test Edeceği Beceriler:
Verilen bir çıktıyı üretmek için gerekli kod bölümlerini belirleme
Başlangıç değerlerine dayalı olarak verilen bir program kodunun çıktısını veya sonucunu tahmin etme
Program kodlarını doğruluk, eşdeğerlik ve hatalar açısından analiz etme
Bir programın davranışını ve belirli koşullar altında hangi sonuçları üreteceğini açıklama

Bölüm II: Açık Uçlu Sorular
Soru Sayısı: 4
Toplam Puan İçindeki Ağırlığı: %50
Bu bölümde yazılı yanıtlarla dört farklı programlama sorusuna cevap vermeniz gerekecek.
Soru Türleri:
1- Metotlar ve Kontrol Yapıları:
- Verilen metodun gerekliliklerini karşılayan kod yazma
- Nesne oluşturma ve metot çağırma işlemlerini gerçekleştirme
- Koşullu ifadeler (if-else) ve döngüler (for, while) kullanarak problem çözme
2- Sınıflar:
- Yeni bir veri tipi tanımlamak için sınıf (class) yazma
- Verilen metot gerekliliklerine uygun olarak sınıf içinde ifadeler, koşullu yapılar ve döngüler kullanma
3- Array / ArrayList:
- Tek boyutlu diziler (1D array) ve ArrayList nesneleri üzerinde işlem yapma
- Verilen metot gerekliliklerini karşılayacak şekilde dizilerde gezinme ve elemanları manipüle etme
4. İki Boyutlu Diziler (2D Array):
- İki boyutlu diziler (2D array) ile çalışarak elemanları oluşturma, gezinme ve manipüle etme
- Verilen metot gerekliliklerine uygun olarak 2D dizilerle ilgili kod yazma

