PROBLEM NEDİR?
Günlük hayatta karşılaştığımız, çözüme ulaştırılması gereken ve çözümü bulmak için bilgi, deneyim, mantık veya dikkat isteyen durumlara problem denir. Yani çözülmesi gereken her sorun bir problemdir.
Bazı Problem Örnekleri:
Erken uyanamama
Bilgisayarın sürekli donması
Bilgisayara virüs girmesi gibi.
İki sayının toplanması
PROBLEM ÇÖZME NEDİR?
Problem belirlenerek çözüm yollarının aranması ve sonuca ulaştırılması sürecidir.
PROBLEM ÇÖZME BASAMAKLARI
1.Problemi Anlama
Bir problemi doğru bir şekilde çözüme ulaştırmanın ilk aşaması problemi anlamak
ile başlar.
2.Plan Yapma
Her problemin farklı çözüm yolları bulunmaktadır.
3.Planı Uygulama
Sonuç başarısız olsa da yapılan denemeler öğrenmenin bir parçasıdır.
4.Çözümü Değerlendirme
Çözümün etkili olup olmadığı gibi değerlendirmeler yapılır.
ÖRNEK PROBLEM
1.Problemi Anlama:
Ahmet’in Microsoft Word programını kullanırken zorlanması
2.Plan Yapma:
Ahmet’in bu sorunu çözmek için internetten farklı çözümler araştırması
3.Planı Uygulama:
Ahmet’in Microsoft Office eğitimi veren bir kursa yazılması
4-Çözümü Değerlendirme:
Ahmet’in problemin çözüldüğünü tespit etmesi
COMMODORE 64 VE KODLAMANIN YAYGINLAŞMASI
Commodore 64, tüm zamanların en çok satan kişisel bilgisayar modeli. Ocak 1982'de Commodore Business Machines tarafından ilk olarak tanıtıldı. 64 KB RAM’i bulunmaktadır.

Erken yaşta kodlama öğrenmek önemlidir, çünkü:
•Analitik düşünme becerileri kazandırır.
•Olay veya durumlar arasındaki ilişkileri görmeyi sağlar.
•Özgün düşünmeye yardımcı olur.
•Problem çözme yeteneğini artırır.
•Sistemli düşünmeyi sağlar.
•Makinaların çalışma mantığını kavramaya yardımcı olur.

PROGRAMLAMA
Bilgisayarda bir işlemi yaptırabilmek için yazılan komutlar bütünüdür.
PROGRAMLAMA DİLİ
Bilgisayarda kullandığımız programların, oyunların ve uygulamaların oluşturduğu kurallar bütünüdür.
* Java
* Python
* Android
* Asp
* Php
* C Sharp
* C Plus
* Objective C
BLOK TABANLI PROGRAMLAMA
*CODE
*Google Blockly
*Scratch
*App Inventor
*Ozo Blockly
METİN TABANLI PROGRAMLAMA
*Python
*C Sharp
*C Plus
*Java
*Perl
*Android
*Delphi
GOOGLE BLOCKLY :
Google Blockly, programlamaya giriş yapacaklar için hazırlanmış, eğitici oyunların
bulunduğu bir platformdur. https://blocklygames.appspot.com/ adresine girerek kullanabilirsiniz.
SABİT VE DEĞİŞKENLER
Sabit: İlk biçimiyle kalan, değişmeyen ifade ve nesnelerdir.
Değişken: İlk biçimiyle kalmayan, yeni değerler alabilen ifade ve nesnelerdir.
Örnek:
Sabit: Top sayısı, Oyuncu sayısı
Değişken: Basket sayısı, Faul sayısı

Atama; bilgi alanına veri yazma ve bir ifadenin sonucunu başka bir değişkene atamak için kullanılan
operatördür.
Değişken = İfade
Örnek i= ( a*b ) / 2
Yukarıdaki satırda Değişken herhangi bir sabitin/değişkenin ismini, İfade ise matematiksel veya
metinsel değerleri temsil etmektedir. “=” sembolü atama operatörüdür ve sağdaki değeri soldaki değişkene atar.
SAYISAL DEĞİŞKEN TİPLERİ
Çok sayıda sayısal değişken tipi mevcuttur.
Ancak bunların içerisinde en çok kullanılanları byte, int, long ve double tipleridir.
METİNSEL DEĞİŞKEN TİPLERİ
C#’ta metinsel ifadeleri tutmak için 2 değişken tipi mevcuttur. char tipi tek bir karakter
buyutuna sahipken, string tipi sınırsız sayıda karakter saklayabilir.
char – 2 baytlık tek bir karakteri tutar.
string – Sınırsız metin tutar.
MANTIKSAL DEĞİŞKEN TİPLERİ
Doğru/yanlış gibi mantıksal ifadeleri taşıyan değişken tipi bool (boolean) değişkenlerdir.
bool 4 byte – true/false değerleri alır.
C# değişkenleri tanımlanırken belirli kurallara uymak gerekir.
1- Öncelikle değişkenin tipi belirtilmek zorundadır.
2- Değişken ismi alt tire ya da metinsel bir karakter ile başlamak zorundadır.
3-Türkçe ve diğer özel karakterler kullanılamaz.
4- Değişken ismi içerisinde sayısal karakter kullanılabilir.
Yani 1numara gibi bir değişken ismi kullanılamazken, numara1 gibi bir değişken ismi kullanılabilir.
OPERATÖRLER VE EŞİTLİKLER
Programlama dillerinde tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarına operatör denir. Kodlamada matematiksel ve mantıksal operatörler yer almaktadır.Örneğin a+b ifadesinde + işareti bir operatördür.
Operatörlerin etki ettikleri sabit ya da değişkenlere ise operand denir.
Aritmetik Operatörler
+ Toplama
– Çıkarma
* Çarpma
/ Bölme
++ 1 arttırma
— 1 çıkarma
Örnek:
// C#
int toplam = 6 + 3;
int carpma = 6 * 3;
int bolme = 6 / 3;
int arttirma = 6;
arttirma++;
Atama Operatörleri
= Değeri değişkene atar.
+= Değeri değişkenin değerinin üzerine ekler.
-= Değeri değişkenin değerinden çıkarır.
*= Değeri değişkenin değeri ile çarpar.
/= Değeri değişkenin değerine böler.
Karşılaştırma Operatörleri
İf else yapısı ile sıklıkla kullanılan karşılaştırma operatörleri ifade doğru ise true,
değilse false sonucu üretirler.
== Eşittir
!= Eşit değil
> Büyüktür
< Küçüktür
>= Büyük veya eşittir
<= Küçük veya eşittir
Örnek:
int sayi = 5;
sayi += 1;
sayi -= 1;
sayi *= 2;
sayi /= 5;
Mantıksal Operatörler
Birden çok mantıksal koşulu birlikte kontrol etmek için kullanılır. Mantıksal ve ile kontrol edilen şartların tamamı doğru olduğunda ifade doğru sayılır. Mantıksal veya operatöründe ise kontrol edilen şartlardan biri doğru olduğunda ifade doğru kabul edilir.
Mantıksal ve: &&
Mantıksal veya: ||
Örnek:
if (5 > 3 && 2 == 2)
Console.WriteLine ( " Hesaplama Doğru " );
else if (5 < 3 && 2 == 2)
Console.WriteLine ( " Hesaplama Yanlış " );
OPERATÖRLER KULLANIMI
using System;
class Operatorler
{
static void Main ( )
{
int i= 3*5/7;
Console.Write ( i );
bool sonuc;
int ilkSayi = 10, ikinciSayi = 20;
// VEYA operatörü
sonuc = ( ilkSayi == ikinciSayi ) || ( ilkSayi > 5 );
Console.WriteLine ( sonuc ) ;
// VE operatörü
sonuc = ( ilkSayi == ikinciSayi ) && ( ilkSayi > 5 );
Console.WriteLine ( sonuc ) ;
} }
DİJİTAL SORU ???
Kodlama dilleri neden Türkçe olarak yazılmıyor?
Şöyle izah edeyim; hani sandalye kapmaca oyunu vardır ya, ilk kim sandalyeyi
kaparsa o oturur, zamanında bu programlama dilleri ilk bulunduğunda ilk bulan
kişiler İngilizce konuştuğu için, ana omurgası İngilizce olmuştur. Yani neler
içerisinde “if” geçiyor “for” geçiyor bunlar, İngilizce. Ancak programlama çok dil
kullanılan bir alan değildir. Kendine has kelimeleri olan bir alandır. Yani,
İngilizcesi iyi olmayan,fakat iyi kodlama yapan bir sürü insan var. Yani kodlama
ona bağlı değil. Ancak ilk başta onlar kapmış sandalyeyi ve o diller
yaygınlaşmıştır.
Şu an Türkçe bir dil de geliştirebiliriz. Ancak önemli olan insanların bunu
kullanması. Milyonlarca insanı buna alıştırmak zor dolayısı ile mevcut olan dilleri,
“C++” “javascript” gibi dilleri kullanıyoruz ve bu diller İngilizce. Çok çok iyi bir
İngilizce bilmeye gerek yok. Ancak belgeleri anlamak için İngilizce bilgisi
gerekmektedir.
ALGORİTMA
Bir problemin çözümü için izlenmesi gereken yol ve işlem basamaklarıdır.
Örnek Bilgisayarı Kapatma Algoritması
Adım 1 Başla
Adım 2 Başlat Menüsüne Tıkla
Adım 3 Kapat Seçeneğini Tıkla
Adım 4 Bilgisayarın Kapandığını Kontrol Et
Adım 5 Elektrik Fişini Çek
Adım 6 Bitir
Örnek İki Sayıyı Toplama Algoritması
Başla
Sayısal S1, S2, Toplam
Oku S1
Oku S2
Toplam=s1+s2
Yaz Toplam
Bitir
Visual Studio Nedir?
Visual Studio, birçok programlama dilini kullanarak program, uygulama ya da
web sitesi yapabileceğiniz bir IDE yani entegre geliştirme ortamıdır.

Microsoft Windows için bilgisayar programları, web siteleri,
web uygulamaları, web hizmetleri ve mobil uygulamalar geliştirmek için kullanılır.
Visual Studio Bazı Yazılım Kelimeleri
Label: Etiket
Textbox: Metin Kutusu
Properties: Özellikler
Exit: Çıkış
Convert: Dönüştürmek
Button: Buton
Hide: Gizlemek
Show: Göstermek
Locked: Kilitli
Align: Hizala
Click: Tıklayın
Sender: Gönderen
Kaydedilen 8500+ programlama dili arasından yaklaşık 2400’ü ABD’de, Birleşik Krallık’ta 600,
Kanada’da 160 ve Avustralya’da 75 geliştirildi. Başka bir deyişle, tüm programlama dillerinin
üçte birinden fazlası öncelikle İngilizce bilen bir ülkede geliştirildi.
AKIŞ ŞEMASI / AKIŞ DİYAGRAMI
Problemlerin çözümüne yönelik oluşturulan algoritmaların şekil veya sembollerle gösterilmesidir.


İKİ SAYININ TOPLAMINI HESAPLAYAN PROGRAMIN ARAYÜZÜ VE ALGORİTMASI
Değişkensiz Algoritma
Adım 1 Başla
Adım 2 Birinci Sayıyı Gir
Adım 3 İkinci Sayıyı Gir
Adım 4 İki Sayıyı Topla
Adım 5 Sonucu Ekrana Yazdır
Adım 6 Bitir
Değişkenli Algoritma
Adım 1 Başla
Adım 2 Birinci Sayıyı Gir, S1
Adım 3 İkinci Sayıyı Gir, S2
Adım 4 Toplam= S1 + S2
Adım 5 Toplam Değerini Ekrana Yazdır
Adım 6 Bitir
İKİ SAYININ TOPLAMINI HESAPLAYAN
PROGRAMIN C# ( C SHARP KODU )
//textbox ve labelden okuyup sayi1 ve sayi2 değişkenlerine aktarma
double sayi1 = Convert.ToDouble(textBox1.Text) ;
double sayi2 = Convert.ToDouble(textBox2.Text) ;
//sayıları toplayıp label nesnelerine ekliyoruz.
label1.Text = Convert.ToString(sayi1 + sayi2) ;
NOT ORTALAMASI HESAPLAYAN PROGRAMIN ARAYÜZÜ VE ALGORİTMASI
Adım 1 Başla
Adım 2 Birinci Yazılı Notunu Gir
Adım 3 İkinci Yazılı Notunu Gir
Adım 4 Performans Notunu Gir
Adım 5 Notları Topla VE 3’e Böl
Adım 6 Sonucu Ekrana Yazdır
Adım 7 Bitir
FLOW CHART VISUAL PROGRAMMING LANGUAGEFlow Chart programıyla akış şemaları düzenleyebilir ve
uygulamalar yaparak exe uzantılı çıktılar alabiliriz.
FLOW CHART İLE ÜÇGENİN ALANI
Yükseklik ve taban uzunluğu klavyeden girilince üçgenin alanını hesaplayan
programın algoritmasını akış şemasıyla birlikte oluşturunuz.
Programın Algoritması:
Adım 1 Başla
Adım 2 Yükseklik Değerini Gir, h
Adım 3 Taban Uzunluğu Değerini Gir, t
Adım 4 Yükseklik ve Taban Uzunluğunu Çarp
Adım 5 Çarpım Sonucunu 2^ye Böl
Adım 6 Sonuç Değerini Ekrana Yazdır
Adım 7 Bitir
Not: Flow Chart programında dalgalı dörtgen şeklinin karşılığı «paralel kenar, out» nesnesidir.

BONUS SORU !!!
- Aşağıda akış şeması verilen program çalıştırılınca ekran çıktısı nasıl olacaktır?
CEVAP:
HAVA DURUMUNU GÖSTEREN VE
OKULA GİTME DURUMUNU EKRANA YAZDIRAN
PROGRAMIN ALGORİTMASI
Adım 1 Başla
Adım 2 Butona Basınca Rastgele 4 Adet Sayı Üret
Adım 3 Her Sayıya 1 Hava Durumu Tanımla
Adım 4 Eğer Hava Güneşli İse Güneş Resmi Göster ve
Okula Git Yazdır, Adım 8’e git
Adım 5 Eğer Bulutlu İse Bulut Resmi Göster ve
Okula Git Yazdır, Adım 8’e git
Adım 6 Eğer Karlı İse Kar Resmi Göster ve
Okula Gitme Yazdır, Adım 8’e git
Adım 7 Eğer Fırtınalı İse Fırtına Resmi Göster ve
Okula Gitme Yazdır
Adım 8 Bitir
PROGRAMIN KODU
private void button1_Click(object sender, EventArgs e)
{
Random rastgelesayi = new Random( ); //değişkenle rastgele sayı üretiyorum.
int sayi = rastgelesayi.Next(1, 5); //bu sayı 1 ile 5 arası olsun istiyorum.
this.rastgelesayim.Text = Convert.ToString(sayi); //sayıyı labele yazdırıyorum.
//not: rastgelesayim adında label eklemeyi unutma.
if (sayi == 1) //sayi 1 ise güneşli desin istiyorum.
{
pictureBox3.Show(); //güneş resmini gösteriyoruz.
pictureBox4.Hide(); //diğer resimleri gizliyoruz.
pictureBox5.Hide();
pictureBox6.Hide();
havasonucu.Show(); //hava sonucunu gösteriyoruz ve aşağıda yazdırıyoruz.
havasonucu.Text = Convert.ToString("Hava açık. Okula Gidebilirsin.");
havasonucu.ForeColor = Color.Yellow; //hava sonucunu rengini değiştiriyoruz.
}
if (sayi == 2) //sayi 2 ise bulutlu desin istiyorum.
{
pictureBox4.Show(); //bulut resmini gösteriyoruz.
pictureBox3.Hide(); //diğer resimleri gizliyoruz.
pictureBox5.Hide();
pictureBox6.Hide();
havasonucu.Show(); //hava sonucunu gösteriyoruz ve aşağıda yazdırıyoruz.
havasonucu.Text = Convert.ToString("Hava bulutlu. Okula Gidebilirsin.");
havasonucu.ForeColor = Color.Blue; //hava sonucunu rengini değiştiriyoruz.
}
if (sayi == 3) //sayi 3 ise karlı desin istiyorum.
{
pictureBox5.Show(); //kar resmini gösteriyoruz.
pictureBox3.Hide(); //diğer resimleri gizliyoruz.
pictureBox4.Hide();
pictureBox6.Hide();
havasonucu.Show(); //hava sonucunu gösteriyoruz ve aşağıda yazdırıyoruz.
havasonucu.Text = Convert.ToString("Yollar kapalı. Okula Gidemezsin.");
havasonucu.ForeColor = Color.Snow; //hava sonucunu rengini değiştiriyoruz.
}
if (sayi == 4) //sayi 4 ise fırtınalı desin istiyorum.
{
pictureBox6.Show(); //fırtına resmini gösteriyoruz.
pictureBox3.Hide(); //diğer resimleri gizliyoruz.
pictureBox4.Hide();
pictureBox5.Hide();
havasonucu.Show(); //hava sonucunu gösteriyoruz ve aşağıda yazdırıyoruz.
havasonucu.Text = Convert.ToString("Fırtına var. Okula Gidemezsin.");
havasonucu.ForeColor = Color.Black; //hava sonucunu rengini değiştiriyoruz.
}
}