Bilgisayarın donanımını kontrol eden ve belirli görevleri yerine getirmesini sağlayan talimatlar kümesidir.
Bilgisayar oyunları, web tarayıcıları, ofis uygulamaları, işletim sistemleri gibi kullandığımız tüm uygulamalar yazılımlardan oluşur.
Yazılımın Önemi
Hayatımızın her alanında kullanılır ve modern toplumun vazgeçilmez bir parçası haline gelmiştir.
İletişim: İnternet, e-posta, sosyal medya…
Eğitim: Online eğitim platformları, eğitim yazılımları…
Sağlık: Tıbbi cihazlar, teşhis sistemleri…
Eğlence: Bilgisayar oyunları, film ve müzik platformları…
İş Dünyası: Muhasebe, stok yönetimi, müşteri ilişkileri…
Yazılımcı Kimdir?
Bilgisayar programları yazan kişidir.
Problemleri çözmek, ihtiyaçları karşılamak veya yeni olanaklar sunmak için yazılımlar geliştirirler.
Programlama dillerini, algoritmaları, veri yapıları gibi bilgisayar bilimi kavramlarını bilirler.
Bilgisayar Nasıl Çalışır?
Temel Parçalar:
İşlemci (CPU): Bilgisayarın merkezi işlem birimidir.
Bellek (RAM): İşlemcinin üzerinde çalıştığı tarifleri ve verileri tutar.
Depolama (Hard Disk, SSD): Programları ve verileri saklar.
Giriş/Çıkış Aygıtları: Bilgisayarla iletişim kurmamızı sağlayan araçlardır.
Programlama Dilleri
Bilgisayarlar sadece makine dilini anlar, bu dil 0 ve 1’lerden oluşan bir dizi talimattır.
İnsanlar için makine dilinde program yazmak oldukça zor olduğundan, programlama dilleri geliştirilmiştir.
Programlama Dilleri Neden Önemli?
İnsanlar için anlaşılabilir
Farklı platformlarda kullanılabilir
Verimli ve etkili
Kaynak Kod ve Derleme
Kaynak kod: Problemin çözümünü ilgili programlama dilinin sözcük ve kurallarıyla anlatan tarif.
MİB’nin (Mikro İşlemci Birimi) anladığı tek dil: Makine dili
Derleme (Compile): Kaynak kodun tamamını makine diline çevirme işlemidir. Çeviren yazılıma “Derleyici” denir.
Programın çalıştırılması: Kaynak kodla yapılan tarifin MİB’nin dilindeki talimatlara dönüştürülmesi ve tarifin hayata geçirilmesi.
Yüksek, Orta ve Düşük Seviyeli Diller
Yüksek seviyeli diller: İnsan diline daha yakın ve daha kolay öğrenilebilen dillerdir (örneğin: Python, Java, C#).
Orta seviyeli diller: Hem yüksek hem de düşük seviyeli özelliklere sahiptir (örneğin: C, C++).
Düşük seviyeli diller: Makine diline daha yakın olan ve daha fazla donanım kontrolü sağlayan dillerdir (örneğin: Assembly dili).
Algoritma: Düşünce Haritası Çizmek
Bir problemi çözmek veya bir görevi yerine getirmek için izlenecek adımların mantıksal ve sıralı bir şekilde düzenlenmiş hali.
Günlük hayatta farkında olmadan sürekli algoritmalar kullanırız.
Algoritma Örneği: En Kısa Yoldan Okula Gitmek
Başlangıç Noktası: Eviniz
Hedef: Okulunuz
Seçenekler: Mevcut tüm yolları listeleyin…
Hesaplama: Her yolun uzunluğunu ve süresini hesaplayın…
Karşılaştırma: Hesaplanan süreleri karşılaştırın…
Sonuç: En kısa yolu seçin…
Algoritmaların Önemi
Problemleri parçalara ayırır
Sistematik bir yaklaşım sunar
Hataları azaltır
Anlaşılırlığı artırır
Algoritmaların Özellikleri
Bir algoritmanın 5 temel özelliği şunlardır:
Girdi (Input): Algoritma, sıfır veya daha fazla girdi almalıdır. Girdi, algoritmanın üzerinde işlem yapacağı verileri temsil eder.
Çıktı (Output): Algoritma, en az bir çıktı üretmelidir. Çıktı, algoritmanın işlediği verilerin sonucunu temsil eder.
Kesinlik (Definiteness): Algoritmanın her adımı açık, net ve anlaşılır olmalıdır. Her adımın ne yapacağı tam olarak belirtilmelidir.
Sonluluk (Finiteness): Algoritma, sınırlı sayıda adımda tamamlanmalıdır. Sonsuz bir döngüye girmemelidir.
Etkinlik (Effectiveness): Algoritmanın her adımı, temel işlemler kullanılarak gerçekleştirilebilir olmalıdır. Yani, her adım uygulanabilir olmalıdır.
Akış Şeması: Algoritmanın Görsel Rehberi
Algoritmaları görsel olarak temsil etmek için kullanılan diyagramlar.
Farklı şekiller ve semboller kullanır.
Akış Şeması Örneği: Şifre Kontrolü
graph TD
A([Basla]) --> B[/"Sifreyi Gir"/]
B --> C{"Sifre Dogru Mu?"}
C -- Evet --> D["Sisteme Giris"]
C -- Hayır --> E[/"Hata Mesaji"/]
D --> F([Bitir])
E --> F
Sözde Kod: Algoritmayı Anlatmak
Sözde Kod: Algoritmaları insan diline yakın bir şekilde ifade eden informal bir dil.
Programlama dilinin sözdizimine bağlı kalmadan, algoritmanın mantığını açıkça gösterir.
Örnek:
BAŞLA şifreGir <- Kullanıcıdan şifre al EĞER şifreGir == doğruŞifre ISE "Sisteme Hoş Geldiniz!" mesajını göster DEĞİLSE "Hatalı Şifre!" mesajını göster SONBİTİR
Akış Şeması Sembolleri
Oval (Elips): Başlangıç ve bitiş.
Dikdörtgen: İşlem adımları.
Eşkenar Dörtgen: Karar noktaları (evet/hayır).
Paralelkenar: Giriş ve çıkış işlemleri.
Oklar: Akış yönü.
İki Sayıdan Büyük Olanı Bulma
graph TD
A([Basla]) --> B[/"Sayi 1'i Gir"/]
B --> C[/"Sayi 2'yi Gir"/]
C --> D{Sayi 1 > Sayi 2?}
D -- Evet --> E[/"Sayi 1 Buyuk"/]
D -- Hayır --> F{Sayi 2 > Sayi 1?}
F -- Evet --> G[/"Sayi 2 Buyuk"/]
F -- Hayır --> H[/"Sayilar Esit"/]
E --> I([Bitir])
G --> I
H --> I
C Programlama Diline Genel Bakış
1972 yılında geliştirilmiş, güçlü ve esnek bir programlama dili.
Birçok modern programlama dilinin temelini oluşturmuştur.
Orta seviyeli bir dil: Hem yüksek seviyeli soyutlama hem de düşük seviyeli donanım kontrolü sağlar.
C Dilinin Özellikleri
Performans: Hızlı ve performanslı.
Esneklik: Farklı platformlarda ve amaçlar için kullanılabilir.
Kontrol: Donanım üzerinde daha fazla kontrol sağlar.
Taşınabilirlik: Farklı işletim sistemlerinde çalışabilir.
Dilinin Kullanım Alanları
Sistem Programlama
Gömülü Sistemler
Oyun Geliştirme
Geliştirme Ortamı
VS Code: Microsoft tarafından geliştirilen ücretsiz ve açık kaynak kodlu bir kod editörü.
C/C++ Eklentisi: VS Code’da C/C++ kodunu yazmak ve hata ayıklamak için kullanılır.