You are on page 1of 44

MEK0101 :

Bilgisayar
Programlama I
2021-2022 Güz

Hafta 1: Giriş

Dr. Öğr. Üyesi


Selma YILMAZYILDIZ KAYAARMA
Ajanda
• Dersin İşleyişi ve Kurallar
• Giriş
• Bilgisayarlar
• Donanımsal ve yazılımsal bileşenler
• Programlama nedir?
• Bilgisayar programı nedir?
• Programlama dili nedir?
• Bilgisayar programı nasıl yazılır?
• Ortak çalışma

2
Ajanda
• Dersin İşleyişi ve Kurallar
• Giriş
• Bilgisayarlar
• Donanımsal ve yazılımsal bileşenler
• Programlama nedir?
• Bilgisayar programı nedir?
• Programlama dili nedir?
• Bilgisayar programı nasıl yazılır?
• Ortak çalışma

3
Dersin İşleyişi ve Kurallar
➢ Teori (3) + Uygulama (2) : 5 AKTS
➢ Yüzyüze eğitim
• Pandemi devam ediyor: Maske - Sosyal mesafe - Aşı
• 40-45 dakika ders, 10-15 dakika ara
• Arada sınıf boşaltılıp havalandırılacak
• Başlangıç Saati: 09:15
➢ Derse Katılım
• Teori: en az %70, Laboratuvar: en az %80 zorunlu
• Yoklama
• Tümüne katılım tavsiye olunur
➢ Laboratuvar dersi bu hafta olmayacak, başlayacağı
zaman ilan edilecek!

4
Dersin İşleyişi ve Kurallar (devam)
➢Düzenli takip edilmesi gereken adresler
• ÖBS
• Takip etmek öğrencinin yükümlülüğü
• Duyurular, notlar, ders kayıt işlemleri
• Ekampus: Bursa Teknik Üniversitesi Öğrenme Ortamı
• Haftalık ders materyali paylaşımı: videolar, linkler, ödevler..
• Ders ve laboratuvar işleyişi ile ilgili duyurular
• http://ekampus.btu.edu.tr/
• Bölüm ve üniversite web siteleri
• Bölüm ve üniversite ile ilgili genel duyurular
• Ders programları

5
Dersin İşleyişi ve Kurallar (devam)
➢Dersle ilgili sorular
• Sınıfta
• Ders esnasında ve aralarda
• Çevrimiçi görüşme
• Randevu ile
• E-posta
• Ekampus ders sayfası forumu
➢Diğer önemli hususlar
• Lütfen akademik bütünlüğü ve dürüstlüğü sağlamamıza yardımcı olun:
• Ödevler/projeler ile ilgili alınan yardımları belirtin (kitaplar, arkadaşlar, web, vb.)
• Başkalarının çözdüğü koda veya cevaplarına bakmayın
• Çözümlerinizi başkalarına vermeyin veya bunları web'de veya ders forumunda yayınlamayın
• Başkaları tarafından yapıldığını gördüğünüz uygunsuz etkinlikleri bildirin.
• Ödevler benzerlik açısından düzenli olarak kontrol edilecek
• Dersin yürütücüsü tarafından paylaşılacak tüm materyallerin kullanımı sadece ilgili ders
kapsamında gerçekleştirilecek faaliyetler ile sınırlıdır. Bu nedenle ilgili materyallerin ders
dışında kullanımları ve/veya başka kişilerle, platformlarla paylaşımı ve çoğaltılması 5846
sayılı Fikir ve Sanat Eserleri Kanunu ile 6698 sayılı Kişisel Verilerin Korunması Kanun'larına
göre ihlal oluşturacak ve hukuki/cezai sonuç doğurabilecektir.
6
Kaynaklar
• Textbooks:
• C How to Program, by P. Deitel, H. Deitel, 8th ed., 2016, Pearson
• Problem Solving and Program Design in C, by Hanly and Koffman -
2016
• C Programming: A Modern Approach, by K.N.King, 2008
• The C Programming Language. Kernighan, Brian, and Dennis
Ritchie, 1988,
• BTÜ Kütüphanesi:
• C, the complete reference, Herbert Schildt, 4th Edition.
• C ile Programlama, P. Deitel, H. Deitel, 7. baskı, Palme, ISBN:
9786053556237
• C programlama dili, by Şerafettin Arıkan, ISBN: 9789750227820 (In
Turkish)
• Online:
• https://www.tutorialspoint.com/cprogramming/index.htm

7
Ajanda
• Dersin İşleyişi ve Kurallar
• Giriş
• Bilgisayarlar
• Donanımsal ve yazılımsal bileşenler
• Programlama nedir?
• Bilgisayar programı nedir?
• Programlama dili nedir?
• Bilgisayar programı nasıl yazılır?
• Ortak çalışma

8
Bilgisayarlar
• Heryerdeler

• Şimdiye kadar hemen hemen herkes bilgisayar


kullandı
• Masaüstü Bilgisayar
(Desktop)
• Dizüstü Bilgisayar
• Tablet
• Akıllı Telefon
• Giyilebilir Teknoloji

9
Bir bilgisayar...

Hava Durumu tahmini Ne satın alacağınıza Otonom sürüş


dair öneriler

... yapabilir.
Peki Nasıl?
This Photo by Unknown Author is licensed under CC BY-SA
10
Bilgisayar: Programlanabilir bir makine

Perform calculations
Data on data
Data
- Dış dünyadan veri alır • Sonuçları dış dünyaya geri gönderir
- Rakamlar, resimler, ses

Program-> hangi hesaplamaların gerçekleştirileceğini kontrol eder


This Photo by Unknown Author is licensed under CC BY-NC

11
Bilgisayar

Donanım Yazılım
(Hardware) (Software)

12
Bilgisayar Donanımı
• Ana bellek-hafıza (Main memory/RAM)
• İkincil depolama (Secondary Memory)
• İşlemci (Central Processing Unit-CPU)
• Giriş aygıtları (İnput Devices)
• Çıkış aygıtları (Output Devices)

© 2016 Pearson Education, Ltd. All rights reserved. 13


Figure 1.3
Bilgisayarın Ana Bileşenleri

• main memory
• secondary memory
• central processing unit
• input devices
• output devices

© 2016 Pearson Education, Ltd. All rights reserved. 14


Bellek (Memory)

•Memory cell (Hafıza hücresi)


• Bellek içinde bir depolama konumu
•Hafıza hücresinin adresi
• Bilgisayarın ana belleğindeki bir bellek
hücresinin göreli konumu
•Hafıza hücresinin içeriği (contents)
• Bir bellek hücresinde saklanan bilgi, ya bir
program talimatı ya da veri

1000 Memory Cells in Main Memory

© 2016 Pearson Education, Ltd. All rights reserved. © 2016 Pearson Education, Ltd. All rights reserved.
15
İkincil depolama (Secondary Storage)
•İkincil depolama
• sürücüye giden güç kapalıyken bile verileri tutan
diskler veya flash sürücüler gibi birimler
• disk
• Verilerin raylar halinde düzenlenmiş manyetize
noktalarla temsil edildiği ince metal veya plastik
plaka
• optical drive
• CD, DVD veya Blu-ray Disk'teki verilere erişmek veya
bunları depolamak için lazer kullanan cihaz
• flash sürücü
• USB bağlantı noktasına takılan ve veri bitlerini
kapana kısılmış elektronlar olarak depolayan cihaz Secondary Storage Media

© 2016 Pearson Education, Ltd. All rights reserved. 16


Merkezi İşlem Birimi - Central Processing Unit(CPU)
•Merkezi İşlem Birimi (CPU)
• Tüm bilgisayar işlemlerini koordine eder ve veriler
üzerinde aritmetik ve mantıksal işlemler gerçekleştirir
• Register
• CPU içindeki yüksek hızlı bellek konumu
• CPU'ların veri alış verişi gibi işlemleri gerçekleştirirken
geçici olarak kullandıkları kaydediciler
•Multiprocessor
• birden fazla CPU'lu bir bilgisayar

© 2016 Pearson Education, Ltd. All rights reserved. 17


Giriş Aygıtları

• Bir bilgi işleme sistemine veri ve kontrol


sinyallerini sağlamak için kullanılan bir
ekipman parçası
• Örnekler:
• klavye, fare, tarayıcı, joystick,
mikrofon, vs.

© 2016 Pearson Education, Ltd. All rights reserved. 18


Çıkış Aygıtları

•Bilgileri insan tarafından okunabilir


biçime dönüştüren herhangi bir
bilgisayar donanımı ekipmanı.
Metin, grafik, ses ve video olabilir.
•Örnekler:
• Monitör, Yazıcı, Hoparlör, Kulaklık,
Projektör, GPS, Ses Kartı, Video Kartı
vb.

© 2016 Pearson Education, Ltd. All rights reserved. 19


Bilgisayar Yazılımı
• İşletim Sistemi (Operating System)
• Uygulama Yazılımı (Application Software)
• Programlama Dilleri (Computer Languages)

© 2016 Pearson Education, Ltd. All rights reserved.


20
İşletim Sistemi (Operating System)

•İşletim Sistemi (Operating system (OS))


• Kullanıcı ve bilgisayar donanımı arasındaki etkileşimi kontrol eden
ve bilgisayar kaynaklarının tahsisini yöneten yazılım
• Masaüstü işletim sistemleri: Microsoft Windows, Linux, macOS by
Apple
• Mobil işletim sistemleri: Android, Apple iOS
• Gömülü ve gerçek zamanlı sistemler gibi özel işletim sistemleri sınıfları

© 2016 Pearson Education, Ltd. All rights reserved.


21
Uygulama Yazılımları (Application Software)
•Uygulama
• kelime işleme, muhasebe, veritabanı yönetimi, oyun oynama veya hava
tahminini kontrol etme gibi belirli bir görev için kullanılan yazılım

• bir uygulama bilgisayarın sabit sürücüsüne kopyalanarak bilgisayarda


kullanılabilir hale getirilebilir.

© 2016 Pearson Education, Ltd. All rights reserved.


22
Programlama Dilleri
1. Makine Dili (Machine language)
• Bilgisayarın anlayabildiği, 0 ve 1’lerden oluşan dil
• İşlemciye özeldir
• Anlaşılması güçtür
2. Assembly Dili (Assembly language)
• makine dili talimatlarına karşılık gelen anımsatıcı kodlar
• Mikroişlemci tipine göre değişir. Bir mikroişlemci için yazılan
bir program başka bir mikroişlemcide çalışmayabilir.
3. Yüksek Seviyeli Diller (High-level language)
• cebirsel ifadeleri ve İngilizce sembolleri birleştiren makineden
bağımsız programlama dili

© 2016 Pearson Education, Ltd. All rights reserved. 23


High
Human language Add the first value to the second
(e.g. English, Turkish) and store the result to the last.

High-level programming last = first + second


language
(e.g. C, C++, Java)

Low-level programming load first


language add second
(e.g. Assembly) store last

Machine language 101010101111101001011


( binary code) 00011110101100110101

Low

24
Entering,
Translating,
and Running
a High-Level
Language Program

© 2016 Pearson Education, Ltd. All rights reserved. 25


•source file (kaynak dosyası) • Linker (bağlayıcı)
• üst düzey bir dilde yazılmış bir program • yürütülebilir bir makine dili
içeren dosya; bir derleyici için giriş program/modülü oluşturmak için obje
dosyalarını birleştiren ve çapraz
•syntax referansları çözen yazılım
• programlama dilinin gramer kuralları • Loader (Yükleyici)
•Compiler (derleyici) • Yükleyici çalıştırılabilir modülü
yürütmek için ana belleğe yükler.
• yüksek seviyeli bir dil programını makine
diline çeviren yazılım • integrated development environment
(IDE) (entegre geliştirme ortamı)
•object file (obje dosyası) • Bir kelime işlemci, derleyici, bağlayıcı,
• bir derleyicinin çıktısı olan makine dili yükleyici ve hataları bulmak için araçları
talimatları dosyası birleştiren yazılım paketi

© 2016 Pearson Education, Ltd. All rights reserved. 26


Bir Programın Yürütülmesi

•giriş verileri (input)


• bir program tarafından taranan veri değerleri

•program çıktısı (output)


• bir program tarafından görüntülenen satırlar

© 2016 Pearson Education, Ltd. All rights reserved. 27


Program Yürütme Sırasında Bilgi Akışı

© 2016 Pearson Education, Ltd. All rights reserved. 28


Bilgisayar: Programlanabilir bir makine

Perform calculations
Data on data
Data
- Dış dünyadan veri alır • Sonuçları dış dünyaya geri gönderir
- Rakamlar, resimler, ses

Program-> hangi hesaplamaların gerçekleştirileceğini kontrol eder


This Photo by Unknown Author is licensed under CC BY-NC

29
Bir bilgisayar programı..

• bilgisayarın yapmasını istediğimiz hesaplamaların (talimatların)


kesin bir açıklaması
• Program yazmak için kullanılan özel gösterime: “Programlama Dili”

Bu derste bilgisayar programlarının nasıl oluşturulacağını


("yazılacağını") öğreniyor olacaksınız.

30
• İnsan davranışı -> nesnelere uygulanan eylemlerin mantıksal sıralaması
• Otomatik ☺
• Basit bir süreç hayal edin: bir sayfayı elle çevirmek

Programlama
nedir?

31
• İnsan davranışı -> nesnelere uygulanan eylemlerin mantıksal sıralaması
• Otomatik ☺
• Basit bir süreç hayal edin: bir sayfayı elle çevirmek

Programlama
Bu süreçte kaç tane nöron ateşlenir?
nedir?
Kaç tane kas tepki vermeli?
hepsi belirli bir sırayla
sadece kolunuzu ve elinizi hareket ettirmek için
• Hepsi bilinçsiz
• Bilinçsizce yaptığınız şeylerin çoğunu bir zamanlar öğrenmek
zorundaydınız.
• Örn: Bir bebeğin yürümeyi öğrenirken bir ayağını diğerinin önüne koymaya nasıl
konsantre olduğunu izleyin 32
Programlama ve Problem Çözme
• Programlama ... …. bilgisayarlara görevleri yerine
getirme talimatı verme eylemi.

• Bir bilgisayar programı ... …. bilgisayarın yürüttüğü bir dizi


talimat.

33
Ortak Çalışma: Fıstık Ezmesi ve Ballı Sandviç Yapımı

34
Ortak Çalışma: Fıstık Ezmesi ve Ballı Sandviç Yapımı

Malzemeler: Ne yapılacak? Nasıl?


- 2 dilim ekmek - Fıstık ezmesi ve ballı - Komutları/talimatla
- Bir yemek bıçağı sandviç yapmak için rı tüm sınıf işbirliği
- 1 kavanoz fıstık ezmesi bir insanı içinde oluşturacak
- 1 kavanoz bal “programlamaya” - Sırayla söz alan kişi
çalışmak bir sonraki
- Bir dizi komut komutu/talimatı
oluşturulacak söyleyecek

35
Ortak Çalışma: Fıstık Ezmesi ve Ballı Sandviç Yapımı

• Performansınızı 10-12 yaşındaki çocuklarla karşılaştırmak isterseniz:


https://www.youtube.com/watch?v=FN2RM-CHkuI

36
‘Başarı, başarısızlıktan başarısızlığa coşkuyu hiç
kaybetmeden gitmekten ibarettir...‘
Winston Churchill

37
Çıkarılan Dersler
✓ Çözümler iteratif (tekrarlamalı) olarak aranmalıdır
✓ İlk denemeniz muhtemelen yanlış olacaktır
▪ bu tümüyle normal
✓ Talimatlar kesin, net ve nicel olmalıdır
▪ Bilgisayar neyi başarmaya çalıştığınızı bilmiyor
✓ Çözüm tasarımınız hakkında iyi düşünün
▪ Bilgisayar neyi başarmaya çalıştığınızı bilmiyor
▪ Bir kolu hareket ettirmeleri söylenirse, durmaları söylenene kadar bir kolu hareket ettirmeye devam
edeceklerdir.
✓ Bir bilgisayarın nasıl "düşündüğünün" farkında olun
✓ İyi bir "program" veya süreç, meydana gelebilecek tüm olasılıkları hesaba katmalıdır.
▪ Birinin fıstık ezmesi kavanozunu açık bıraktığını hayal edin. ("sonsuz döngü(infinite loop)")
▪ İyi bir mühendis bu olası problemi fark edecek ve tasarıma bir kontrol ekleyecektir:
▪ Fıstık ezmesi kavanozu açık mı? Değilse, ... (kavanozu açın). Eğer öyleyse, ... (bıçağı tut vb.).

38
• Programlama adı verilen bir süreçle hem bilinçli hem de
bilinçsiz olarak düzen yaratırız
• Bilgisayar : Verileri depolayabilen, alabilen ve işleyebilen
programlanabilir bir cihazdır.
Wrap – up • Veri (Data): Bilgisayarın kullanabileceği bir biçimdeki bilgidir
- > örnek: sayılar ve harfler.
• Bilgi (Information) Soyut fikirler ve kavramlar da dahil olmak
üzere iletilebilen herhangi bir bilgidir. -> örnek: “.”
-> örnek: “Dünya yuvarlaktır.”

39
Bilgisayar programı yazmak
• Bilgisayar programı nasıl yazılır?
• Bir bilgisayar (henüz) akıllı değildir.
• Bir sorunu analiz edip (henüz) bir çözüm üretemez.
• Yapay zeka??
• Bir insan (programcı) sorunu analiz etmeli, sorunu çözmek için
yönergeler geliştirmeli ve ardından bilgisayarın yönergeleri yerine
getirmesini sağlamalıdır.
• Bir bilgisayarın izleyeceği bir program yazmak için iki aşamalı
bir süreçten geçmeliyiz: problem çözme ve uygulama

40
Understand the Translate the algorithm
problem and what the (the general solution)
solution must do into a programming
language
Specify the logical
sequences of steps that
solve the problem Have the computer
follow the instructions.
If you find errors,
Follow the steps to see analyze the program
if the solution really and algorithm, correct
does solve the problem

Modify the program to meet changing


requirements or to correct any errors that show
up while using it.
Mcmillan

41
• İyi yapılandırılmış bir algoritmanız varsa, programınızı
istediğiniz dilde yazabilirsiniz.
• Algoritmalar, programlama sürecinin kalbidir!

42
Adımların özeti:

1. Problemin gereksinimlerini belirle


2. Problemi analiz et
3. Problemi çözmek için algoritmayı tasarla
4. Algoritmaya uygun programı yaz/geliştir/uygula
5. Tamamlanan programı test et ve doğrula
6. Programı güncelle

© 2016 Pearson Education, Ltd. All rights reserved.

43
Haftaya görüşmek
üzere!

44

You might also like