INF101 Bilgisayar Mühendisliğine Giriş 09/12/ Programlama Dilleri

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "INF101 Bilgisayar Mühendisliğine Giriş 09/12/2013 - Programlama Dilleri"

Transkript

1 Galatasaray Üniversitesi Bilgisayar Mühendisliği Bölümü INF101 Bilgisayar Mühendisliğine Giriş 09/12/ Programlama Dilleri Ozan Çağlayan ozancaglayan.com

2 Başlarken İlk bilgisayarlar bir fabrika kadar enerji tüketen, birkaç oda büyüklüğünde ve milyon dolarlara mâl olan (1940) cihazlardı. Tüm bu devasalığın getirdiği hesaplama gücü, günümüzün hesap makinelerinden daha fazla değildi.

3 Başlarken UNIVAC 1232

4 Başlarken Delikli Kart

5 Makine Dili 1 st Generation Languages (1GL) O zamanın programcıları bu bilgisayarları doğrudan makine diliyle programlıyorlardı, Makine dili, bir işlemciyi doğrudan kontrol ederek işlemcinin toplama, çıkarma, karşılaştırma gibi temel işlemleri yapmasını sağlayan bit serileridir, Programları bu seviyede tasarlamak inanılmaz güç ve karmaşıktır.

6 Makine Dili 1 st Generation Languages (1GL) 2 tamsayının ortak bölenlerinin en büyüğünü (OBEB) Öklid yöntemiyle hesaplayan program: MIPS mimarisinin makine dilinde yazılan program, 16'lık rakamlarla ifade edilmiştir.

7 Assembly 2 nd Generation Languages (2GL) İnsanlar daha büyük programlar yazmaya başlayınca, hataya daha az açık bir gösterimin gerekliliği ortaya çıktı. Assembly dilleri, işlemlerin daha anlaşılabilir şekilde ifade edilmesini sağlamak için geliştirildiler.

8 Assembly 2 nd Generation Languages (2GL) Makine dilinde yazılan OBEB programının MIPS Assembly dilindeki karşılığı:

9 Assembly 2 nd Generation Languages (2GL) Makine dilinde yazılan OBEB programının MIPS Assembly dilindeki karşılığı: Mnemonik (Anımsatıcı)

10 Assembly 2 nd Generation Languages (2GL) Assembly dilleri daha okunabilir olsalar da, mimariye özel olarak geliştirilmişlerdir, Her işlemci mimarisinin kendine özel komutları ve dolayısıyla kendine özel bir Assembly dili vardır, Assembly dilindeki kaynak kod, Assembler adlı yazılımla makine koduna dönüştürüldükten sonra çalıştırılabilir hâle gelir.

11 Assembly 2 nd Generation Languages (2GL) İşlemci ailesi/mimari odaklı programlama pratiği programcıların, Her farklı makine için programı tekrar kodlamalarına, Tasarım esnasında makinenin yeteneklerine göre düşünmelerine, yol açıyordu.

12 Arayış Makine/Mimari bağımsız Daha okunabilir Matematiksel hesaplamaların kolayca ifade edilebileceği Genel amaçlı bir programlama dili arayışı!

13 Arayış Makine/Mimari bağımsız Daha okunabilir Matematiksel hesaplamaların kolayca ifade edilebileceği Genel amaçlı bir programlama dili arayışı! 1950'lerin ortası FORTRAN Daha sonra ALGOL, COBOL,...

14 Yüksek Seviyeli Diller 3 rd Generation Languages (3GL) 2GL diller yazılıma mantıksal bir yapı getirdi 3GL diller ise bu yapıyı ileriye götürüp daha programcı dostu olmayı hedefledi: Yazılımı bilgisayara göre değil, insana göre ifade etmek, Programcı açısından önemsiz detaylarla ilgilenme görevini programcıdan bilgisayara devretmek.

15 Yüksek Seviyeli Diller 3 rd Generation Languages (3GL) İlk olarak FORTRAN (FORmula TRANslation) ALGOL, COBOL, C, C++, Java, BASIC, Pascal,... Günümüzde kullanılan genel amaçlı dillerin büyük çoğunluğu 3GL dillerdir. Yüksek seviyeli İnsana yakın Düşük seviyeli Makineye yakın

16 Yüksek Seviyeli Diller 3 rd Generation Languages (3GL) Yüksek seviyeli dillerde yazılmış kodları assembly veya makine diline çeviren yazılımlara derleyici (compiler) adı verilir. Derleyici tasarımı önemli çünkü yüksek seviyeli dillerde yazılan programların performansına doğrudan etkiyor.

17 Yüksek Seviyeli Diller 3 rd Generation Languages (3GL) C ve Python dillerinde OBEB örneği: C int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); }

18 Yüksek Seviyeli Diller 3 rd Generation Languages (3GL) C ve Python dillerinde OBEB örneği: C Python int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); } def gcd(a, b): if b == 0: return a else: return gcd(b, a % b)

19 Alana Özel Diller Domain Specific Languages (DSL) Genel amaçlı olmayan, özel bir uygulama alanı için tasarlanmış programlama dilleri HTML, XML, SGML, vb.. (İşaretleme dilleri) Verilog & VHDL (Donanım betimleme dilleri) MATLAB, GNU Octave (Bilimsel programlama) Mathematica, Maxima (Sembolik Matematik)...

20 Alana Özel Diller Domain Specific Languages (DSL) MATLAB'da OBEB örneği: x = gcd(12,24) MATLAB, matematiksel ve bilimsel programlama alanına özel bir dil olduğu için, OBEB işini yapan gcd() fonksiyonu içinde mevcut!

21 Çalışma Modelleri Execution Models Yorumlamalı (Interpreted) Compiled (Derlemeli) Çevrimli (Translated)

22 Yorumlamalı Diller Interpreted Languages Yorumlamalı dillerde yazılan programlar, makine koduna derlenmeden, satır satır çalıştırılırlar, Programın kaynak kodunu dinamik olarak makine koduna dönüştürerek çalıştıran araca yorumlayıcı (interpreter) adı verilir. Makine koduna dönüştürülmüş bir programı ilk işleyen işlemci iken, yorumlamalı dilde yazılan kodu ilk işleyen başka bir yazılımdır.

23 Yorumlamalı Diller Interpreted Languages Platform-bağımsız Kaynak kodu dağıtmak, çalıştırmak için yeterli Hızlı geliştirme ve prototipleme süreci Kod tekrar derlenmeden hemen değiştirilip tekrar çalıştırılabilir Kodun yorumlanarak çalıştırılması, derlenmiş programa göre genellikle yavaş

24 Çalışma Modelleri Execution Models Yorumlamalı (Interpreted) Compiled (Derlemeli) Çevrimli (Translated)

25 Çalışma Modelleri Execution Models Yorumlamalı (Interpreted) ASP, PHP ActionScript JavaScript Octave MATLAB Perl, Python Lua, R Awk, Shell Java,.NET Compiled (Derlemeli) Çevrimli (Translated)

26 Derlemeli Diller Compiled Languages Derleyici tarafından makine diline dönüştürülen dillerdir, Doğrudan makine dilinde veya assembly'de yazılmış programlara çok yakın ~ aynı performansta sonuç alınmasını sağlarlar, Yazılım geliştirme sürecinde kaynak kodlar her değişiklikten sonra tekrar derlenmelidir.

27 Çalışma Modelleri Execution Models Yorumlamalı (Interpreted) ASP, PHP ActionScript JavaScript Octave MATLAB Perl, Python Lua, R Awk, Shell Java,.NET Compiled (Derlemeli) Çevrimli (Translated)

28 Çalışma Modelleri Execution Models Yorumlamalı (Interpreted) ASP, PHP ActionScript JavaScript Octave MATLAB Perl, Python Lua, R Awk, Shell Java,.NET Compiled (Derlemeli) FORTRAN Ada, ALGOL Cobol, BASIC Pascal, Delphi C, C++ Objective-C Go LISP Çevrimli (Translated)

29 Arakod Intermediate Representation Melez yaklaşım Amaç: Yorumlamalı ve derlemeli dillerin avantajlarını en az performans kaybı olacak şekilde birleştirmek,

30 Arakod Intermediate Representation Melez yaklaşım Amaç: Yorumlamalı ve derlemeli dillerin avantajlarını en az performans kaybı olacak şekilde birleştirmek, Kaynak kod önce arakoda derlenir, sanal makine adı verilen yorumlayıcı bu arakodu dinamik olarak çalıştırır. Bu arakod genelde bytecode olarak adlandırılır.

31 Çalışma Modelleri Execution Models Yorumlamalı (Interpreted) ASP, PHP ActionScript JavaScript Octave MATLAB Perl, Python Lua, R Awk, Shell Java,.NET Compiled (Derlemeli) FORTRAN Ada, ALGOL Cobol, BASIC Pascal, Delphi C, C++ Objective-C Go LISP Çevrimli (Translated)

32 Çalışma Modelleri Execution Models bytecode Yorumlamalı (Interpreted) ASP, PHP ActionScript JavaScript Octave MATLAB Perl, Python Lua, R Awk, Shell Java,.NET Compiled (Derlemeli) FORTRAN Ada, ALGOL Cobol, BASIC Pascal, Delphi C, C++ Objective-C Go LISP Çevrimli (Translated)

33 Çalışma Modelleri Execution Models bytecode Yorumlamalı (Interpreted) ASP, PHP ActionScript JavaScript Octave MATLAB Perl, Python Lua, R Awk, Shell Java,.NET Compiled (Derlemeli) FORTRAN Ada, ALGOL Cobol, BASIC Pascal, Delphi C, C++ Objective-C Go LISP Çevrimli (Translated) Dönüştürücü bir program tarafından derleyicisi olan hedef bir dile çevrildikten sonra o dilin derleyicisiyle derlenen diller. (Pek yaygın değil)

34 Nesneye Yönelik Programlama Object Oriented Programming (OOP) Klasik programlama modelinde, programlar yapılacak işlerin bir listesi olarak görülürler, Okunabilirlik, modülerlik ve tekrar kullanılabilirlik açısından sıkça kullanılan işler bir fonksiyon olarak tanımlanabilirler: Bir sayı kümesinin ortalamasını alan fonksiyon Bir sayı kümesinin en küçük elemanını bulan fonksiyon...

35 Nesneye Yönelik Programlama Object Oriented Programming (OOP) OOP modelindeyse birbirleriyle etkileşime giren nesneler vardır: Sınıflar bir kavramın soyut tanımlarıdır, Nesneler sınıflardan yaratılan somut görüntülerdir, Nesnelerin özellikleri ve bu özellikler üzerinde işlem yapabilen metodları vardır. C++, Java, Smalltalk, Perl, Objective-C, Python, Ruby, C#, vb.

36 Nesneye Yönelik Programlama Object Oriented Programming (OOP) Grafik arayüz tasarımında, web programlamada oldukça sık kullanılır, Sıkı fanatikleri ve sıkı karşıtları vardır, OOP klasik modelden daha iyidir veya tersi gibi kesin bir yargı yoktur ve olamaz: Her dil ve yaklaşım belirli kullanım alanları için daha idealdir.

37 Nesneye Yönelik Programlama Object Oriented Programming (OOP) Telefon Sınıf Nokia 3310 Galaxy S3 Iphone 5 Alt-sınıf Nesne

38 Nesneye Yönelik Programlama Object Oriented Programming (OOP) benim_telefonum = new Nokia3310() benim_telefonum.ara( ) benim_telefonum.sms_gonder( , naber? ) nesne metod çağrısı benim_telefonum nesnesi Nokia3310 sınıfından üretiliyor

39 Esin kaynağı diller Esin kaynağı diller

40 Programlama Dilleri Programlama dilleri, bilgisayar bilimlerinin merkezi bir elemanıdır, Öğrenciler, 1-2 programlama diliyle yoğunca vakit geçirdikten sonra genelde başka dilleri merak etmeye başlarlar, Dil öğrenmek ilginçtir ve sizi geliştirir.

41 Peki programlama nedir? Programming is the art of telling another human what one wants the computer to do. Programlama, bilgisayara ne yaptırmak istediğini, başka bir insana anlatma sanatıdır. Donald Knuth

42 Problemler Problemler geneldir, Örnek: Bir tamsayı kümesindeki en küçük değeri bulun. Belli bir veri kümesi için problemin somut görünümü: {17, 6, 42, 24} kümesindeki en küçük değeri bulun.

43 Problem Tanımı Kötü örnek: En küçük elemanın sırasını bulun. {4, 2, 5, 2, 42} kümesi için 2 yanıt var = {2, 4} İyi örnek: L en küçük değerlerin sıralarından oluşan küme olsun. L 'nin en küçük elemanını bulun.

44 Problem Tanımı İyi örnek: L en küçük değerlerin sıralarından oluşan küme olsun. L 'nin en küçük elemanını bulun. {4, 2, 5, 2, 42} L = {2, 4} min(l) = 2

45 Algoritma Düzgünce ortaya konmuş bir problemin çözüm sürecinin detaylı tanımı Problem verisi üzerinde çalışarak amaçlanan sonuca varan işlem serisi

46 Algoritma Programlamadan önce problemin nasıl çözüleceğini tanımlayın (Soyutlama)

47 Algoritma İnsan tarafından anlaşılabilir olmalıdır, Bir programlama diline, derleyiciye veya makineye bağımlı değildir, Çok büyük olmayan problemler için akış diyagramıyla ifade edilebilir, pseudo-code adı verilen ve anlatımı öne çıkaran basit dillerde ifade edilebilir.

48 Akış Diyagramları

49 Pseudocode (Sözdekod) Bir algoritmanın işleyişinin yüksek seviyeli bir tanımı, Programlama dillerini andıran bir yapısı olsa da aslında bazı basit kuralları olan, konuşma diline yakın bir anlatım tarzıdır.

50 Algoritmalar size yabancı mı? IKEA masa parçaları Yumurta, süt, un Masa Kek Toplama 2 tane 6 haneli sayı Toplam Öğrenci listesi Labirent haritası Kurulum Kılavuzu Kek Tarifi Sıralama Algoritması Çıkış Algoritması Sıralı liste Çıkış

51 Basit bir örnek Klavyeden bir sayı bekle Sayıyı A değişkenine kaydet Klavyeden bir sayı bekle Sayıyı B değişkenine kaydet A+B'yi T değişkenine kaydet T'yi ekrana yazdır A = input( Bir sayı girin: ) B = input( Bir sayı girin: ) T = A + B print Toplam:, T Pseudocode int A, B, T; Python printf( Bir sayı girin: ); scanf( %d, &A); printf( Bir sayı girin: ); scanf( %d, &B); T = A + B; printf( Toplam: %d\n, T); C

52 OBEB'e geri dönersek... OBEB Hem a'yı hem b'yi kalansız bölen en büyük tamsayı. OBEB(8, 12) = 4 Nasıl hesaplarız?

53 OBEB brute-force yöntem 1 a ve b'den küçük olanı t değişkenine kaydet 2 a'nın t'ye bölümünden kalan 0 değilse VEYA b'nin t'ye bölümünden kalan 0 değilse; t'y 1 azalt ve 2. adıma geri dön. 3 Cevap t'dir. Pseudocode def obeb(a,b): t = min(a,b) while a % t!= 0 or b % t!= 0: t = t 1 return t Python

54 OBEB brute-force yöntem In [12]: %timeit obeb(100, 24) loops, best of 3: 4.24 us per loop In [13]: %timeit obeb(461952, ) 10 loops, best of 3: 19.1 ms per loop 100 ve 24 sayılarının OBEB'i kaba kuvvet algoritmayla ortalama 4.24 mikrosaniyede hesaplanıyor ve sayılarının OBEB'i kaba kuvvet algoritmayla ortalama 19.1 milisaniyede hesaplanıyor. Daha iyi bir algoritma olamaz mı?

55 OBEB Öklid Algoritması Kaba kuvvet yöntemden çok daha hızlı çalışan bir algoritma yaklaşık 2000 yıl önce Euclid tarafından keşfedilmiş, a ve b'nin OBEB'i, b ve a'nın b'ye bölümünden kalan sayının OBEB'iyle aynıdır.

56 OBEB Öklid Algoritması a ve b ile başla b=0 mı? HAYIR b = a % b a = b EVET OBEB(a,b) = b

57 OBEB Öklid Algoritması 1 a = 54 b = 36 b=0 mı? HAYIR b = 54 % 36 a = 36 EVET OBEB(a,b) = b

58 OBEB Öklid Algoritması 2 a = 36 b = 18 b=0 mı? HAYIR b = 36 % 18 a = 18 EVET OBEB(a,b) = b

59 OBEB Öklid Algoritması 3 a = 18 b = 0 b=0 mı? HAYIR b = 36 % 18 a = 18 EVET OBEB(a,b) = b 18

60 OBEB Öklid Algoritması def obeb_euclid(a,b): if b == 0: return a return obeb_euclid(b, a % b)

61 OBEB Öklid Algoritması def obeb_euclid(a,b): if b == 0: return a return obeb_euclid(b, a % b) In [12]: %timeit obeb_euclid(100, 24) loops, best of 3: 768ns per loop In [13]: %timeit obeb_euclid(461952, ) 10 loops, best of 3: 2.11us per loop ~4 mikrosaniye -> 0.8 mikrosaniye ~20 milisaniye -> milisaniye

62 OBEB Öklid Algoritması def obeb_euclid(a,b): if b == 0: return a return obeb_euclid(b, a % b) In [12]: %timeit obeb_euclid(100, 24) loops, best of 3: 768ns per loop In [13]: %timeit obeb_euclid(461952, ) 10 loops, best of 3: 2.11us per loop ~4 mikrosaniye -> 0.8 mikrosaniye ~20 milisaniye -> milisaniye ~ adım ~8 adım

63 OBEB Öklid Algoritması def obeb_euclid(a,b): if b == 0: return a return obeb_euclid(b, a % b) In [12]: %timeit obeb_euclid(100, 24) loops, best of 3: 768ns per loop In [13]: %timeit obeb_euclid(461952, ) 10 loops, best of 3: 2.11us per loop ~8 adım (461952, ) (116298, ) (113058, 3240) (3240, 2898) (2898, 342) (342, 162) (162, 18) (18, 0)

64 Bilgisayar bilimleri, bir problemi doğru şekilde modelleyerek problemi çözmek için uygun tekniği ortaya çıkaran bir soyutlama bilimidir. Alfred Aho & Jeffrey Ullman

65 Yukarıdaki koddaki hatalara dair temkinli olun; ben sadece doğru olduğunu kanıtladım, denemedim. Donald Knuth

66 Kütüphanede mevcut! Yukarıdaki koddaki hatalara dair temkinli olun; ben sadece doğru olduğunu kanıtladım, denemedim. Donald Knuth

67 Dijkstra en kısa yol (Shortest path) algoritması Astronomi ne kadar teleskoplarla ilgiliyse, bilgisayar bilimleri de en fazla o kadar bilgisayarlarla ilgilidir. Edsger W. Dijkstra

68 Katedral ve Pazar (ücretsiz e-kitap) Nasıl ki fırça ve boyaları derinlemesine bilmek kişiyi usta bir ressam yapmaz ise, bilgisayar bilimleri eğitimi almak da kişiyi usta bir programcı yapmaz. Eric S. Raymond

69 Bilgisayar Bilimlerinin Temel İlgi Alanları Hesaplanabilirlik Bir problem verildiğinde, o problemi çözen bir algoritma olup olmadığını gösterebilir miyiz? Hangi problemler için hiç algoritma mevcut değildir? Nasıl sınıflandırabiliriz?

70 Bilgisayar Bilimlerinin Temel İlgi Alanları Karmaşıklık Algoritmam ne kadar sürede sonuca ulaşıyor? Algoritmam ne kadar bellek kullanıyor? Algoritmam iyi mi yoksa daha iyisi mevcut mu?

71 Bilgisayar Bilimlerinin Temel İlgi Alanları Doğruluk Bir algoritmanın daima sonuca ulaştığından emin olabilir miyiz? Bir algoritmanın daima doğru sonuca ulaştığından emin olabilir miyiz?

72 Bazı kriterler Sadelik: KISS! (Keep it simple and stupid) Verimlilik: Hızlı, az bellek kullanımı. Kararlılık: Girdideki ufak bir değişiklik çıktıyı etkilememeli.

73 Verimlilik Gözleme dayalı (Ampirik) Gerçeklenen algoritmanın ne kadar sürede çözüme ulaştığını, düz çalışma zamanından çıkartırsak, bu karşılaştırılabilir bir ölçü olmaz çünkü: Makineye, dile, programcıya, derleyiciye, derleyici seçeneklerine, işletim sistemine,... göre değişebilir. Örnek: OBEB örneğinde yaptığımız süre bazlı karşılaştırma.

74 Verimlilik Matematiksel Toplam (temel) işlem sayısını, girdinin uzunluğu cinsinden ifade etmek daha basit, genel geçer ve yeterli bir ölçü yöntemidir. big Oh gösterimi: O() O(1), O(n), O(n 2 ), O(lg(n)),... sınıfı algoritmalar

75 Faydalı Linkler https://developers.google.com/edu/python/?csw=1 https://cs.uwaterloo.ca/~shallit/courses/134/history.html

76 Galatasaray Üniversitesi Bilgisayar Mühendisliği Bölümü Sorusu olan? Ozan Çağlayan ozancaglayan.com

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ 1 İkinci Kuşak Bilgisayarlar 1956-1963: Transistor Transistor 1947 yılında keşfedilmiştir. 50 li yılların sonuna kadar bilgisayarlarda yaygın kullanımı görülmez.

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

5. PROGRAMLA DİLLERİ. 5.1 Giriş

5. PROGRAMLA DİLLERİ. 5.1 Giriş 5. PROGRAMLA DİLLERİ 8.1 Giriş 8.2 Yazılım Geliştirme Süreci 8.3 Yazılım Geliştirme Sürecinde Programlama Dilinin Önemi 8.4 Programlama Dillerinin Tarihçesi 8.5 Programlama Dillerinin Sınıflandırılması

Detaylı

Bilgisayar Programlama. 1.Hafta

Bilgisayar Programlama. 1.Hafta Bilgisayar Programlama 1.Hafta Ders Planı 1. Bilgisayar Programlamaya Giriş 2. C Derleyicileri 3. GCC Kullanımı 4. Veri Tipleri ve Operatörler 5. Kontrol Yapıları 6. Döngüler 7. Döngüler 2. Hafta 8. Fonksiyonlar

Detaylı

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü Algoritma ve Programlamaya Giriş Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü Güncellenme tarihi: 13.03.2017 Yazılım nedir? Donanım birimlerini istenen işleme

Detaylı

Bilgisayar Programlama Dilleri

Bilgisayar Programlama Dilleri Bilgisayar Programlama Dilleri Ömer YÜCEL 13253072 1/32 Sunum İçeriği 1. Program ve Programlama Dili Nedir? 2. Programlama Dillerinin Tarihçesi 3. Programlama Dillerinin Sınıflandırılması 4. Programlama

Detaylı

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma TEMEL BİLGİSAYAR BİLİMLERİ Programcılık, problem çözme ve algoritma oluşturma Programcılık, program çözme ve algoritma Program: Bilgisayara bir işlemi yaptırmak için yazılan komutlar dizisinin bütünü veya

Detaylı

Bilgisayar Temelleri ve Programlamaya Giriş Yard.Doç.Dr. Metin HASDEMİR İstanbul-2008 PROGRAMLAMAYA GİRİŞ

Bilgisayar Temelleri ve Programlamaya Giriş Yard.Doç.Dr. Metin HASDEMİR İstanbul-2008 PROGRAMLAMAYA GİRİŞ PROGRAMLAMAYA GİRİŞ Bir program bilgisayara ne yapması gerektiğini söyleyen bir dizi komuttan oluşmaktadır. Bilgisayar yapılması istenilen komutları anlayabilmesi için, bu komutların bilgisayarın anlayacağı

Detaylı

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. I. GİRİŞ Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. İnsanların elle yaptığı ve yapmakta olduğu bir çok

Detaylı

2007-2008 Bahar. BM 211 Programlama Dilleri 3 1

2007-2008 Bahar. BM 211 Programlama Dilleri 3 1 Programlama Dilleri III 2007-2008 Bahar BM 211 Programlama Dilleri 3 1 Ders Hakkında Ders Sorumlusu Öğr.Gör. Bora UĞURLU Ders Slaytları İçin http://members.comu.edu.tr/boraugurlu/ Dersle İlgili İletişim

Detaylı

2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI 2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI Bilgi BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ (BTY) Türkiye de orta eğitimde bilgisayar eğitimi,

Detaylı

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım Yazılım Yazılım Bilgisayarlar üretildikleri anda içlerinde herhangi bir bilgi barındırmadıkları için bir işlevleri yoktur. Bilgisayarlara belirli yazılımlar yüklenerek işlem yapabilecek hale getirilirler.

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Algoritma & Matlab.

Okut. Yüksel YURTAY. İletişim :  (264) Sayısal Analiz. Algoritma & Matlab. Okut. Yüksel YURTAY İletişim : Sayısal Analiz yyurtay@sakarya.edu.tr www.cs.sakarya.edu.tr/yyurtay (264) 295 58 99 Algoritma & Matlab 1 Algoritma Algoritma ; verilerin bilgisayara hangi çevre biriminden

Detaylı

Bölüm1. İlk Bilgiler ISBN 0-321-49362-1

Bölüm1. İlk Bilgiler ISBN 0-321-49362-1 Bölüm1 İlk Bilgiler ISBN 0-321-49362-1 Bölüm 1 Konuları Niye Programlama Dilleri prensiplerini öğreniyoruz? Programlama alanları Dil değerlendirme kriterleri Dit tasarımına etkiler Dil kategorileri Dil

Detaylı

GÖRSEL PROGRAMLAMA - I 2013-2014

GÖRSEL PROGRAMLAMA - I 2013-2014 GÖRSEL PROGRAMLAMA - I 2013-2014 Ders Hakkında Ders Sorumlusu Öğr.Gör. Ekrem Eşref KILINÇ Dersle İlgili İletişim İçin ekremesrefkilinc@gmail.com Neler Öğreneceğiz? Nesneye yönelik programla nedir? (Metot

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

BLG 1306 Temel Bilgisayar Programlama

BLG 1306 Temel Bilgisayar Programlama BLG 1306 Temel Bilgisayar Programlama Öğr. Grv. M. Mustafa BAHŞI WEB : mustafabahsi.cbu.edu.tr E-MAIL : mustafa.bahsi@cbu.edu.tr Bilgisayar ile Problem Çözüm Aşamaları Programlama Problem 1- Problemin

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

Bölüm 1. Ön Hazırlıklar ISBN 0-321-49362-1

Bölüm 1. Ön Hazırlıklar ISBN 0-321-49362-1 Bölüm 1 Ön Hazırlıklar ISBN 0-321-49362-1 Bölüm 1 Konular Programlama Dilleri Kavramlarının Çalışılma Nedenleri Programlama Alanları Dil Değelendirme Kriterleri Dil Tasarımındaki Etkileri Dil Kategorileri

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

Detaylı

Windows Programlama Güz Dönemi

Windows Programlama Güz Dönemi Windows Programlama 2016-2017 Güz Dönemi C#, yeni bir programlama dili olup, iki açıdan önemlidir: Microsoft.NET Framework ü kullanabilmek üzere tasarlanıp geliştirilmiştir. Modern object-oriented metodolojileri

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI MAK 1005 Bilgisayar Programlamaya Giriş Uludağ Üniversitesi, Mühendislik Fakültesi Makine Mühendisliği Bölümü BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI Prof. Dr. Necmettin Kaya 1 KONULAR 1. Bilgisayara giriş,

Detaylı

Programlama Dilinin Özellikleri

Programlama Dilinin Özellikleri Programlama Dilinin Özellikleri *Kaynak Kodun Taşınabilirliği: Taşınabilirlik (portability), bir sistem için yazılmış kaynak kodunun başka bir sisteme götürüldüğünde hatasız olarak derlenerek, doğru bir

Detaylı

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1 BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1 Kaynaklar: Sefer Algan, Her Yönüyle C#, 6. Baskı, Pusula Yayıncılık. www.sharpnedir.com 1. DÜZEYLERİNE GÖRE BİLGİSAYAR DİLLERİ Script Dilleri Yüksek Düzeyli Diller

Detaylı

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN Bilgisayar Mühendisliğine Giriş Yrd.Doç.Dr.Hacer KARACAN PROGRAMLAMA DİLLERİ Programlama Dilleri ni neden öğrenmeliyiz? Programlama alanları Dil değerlendirme kriterleri Dil tasarımı üstündeki etkiler

Detaylı

10.DERS Yazılım Gerçekleştirme

10.DERS Yazılım Gerçekleştirme 10.DERS Yazılım Gerçekleştirme 1 Giriş: Bilgisayarlara yaptırılmak istenenleri, anlatabilmek için programlama dilleri kullanılır. Bir ihtiyaç veya konu doğrultusunda meydana getirilen tasarım önce programlama

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik araçların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini

Detaylı

Yrd. Doç. Dr. İlhan AYDIN 2012-2013 Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü

Yrd. Doç. Dr. İlhan AYDIN 2012-2013 Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü Yrd. Doç. Dr. İlhan AYDIN 2012-2013 Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü Dersin amacı *Bilgisayarlara giriş, algoritma geliştirme, akış diyagramları *Programlamaya giriş, Java diliyle

Detaylı

BİLGİSAYAR PROGRAMLAMA MATLAB

BİLGİSAYAR PROGRAMLAMA MATLAB BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Ders Bilgileri Dersin Hocası: Araş. Gör. Ahmet Ardahanlı E-posta: ahmet.ardahanli@hotmail.com Oda: DZ-33

Detaylı

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

VERİ YAPILARI VE PROGRAMLAMA (BTP104) VERİ YAPILARI VE PROGRAMLAMA (BTP104) Yazar: Doç.Dr. İ. Hakkı CEDİMOĞLU S1 SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

Temel Bilgisayar Programlama

Temel Bilgisayar Programlama Temel Bilgisayar Programlama C Programlamaya Giriş Yrd. Doç. Dr. Tahir Emre Kalaycı 2012 Yrd. Doç. Dr. Tahir Emre Kalaycı () Temel Bilgisayar Programlama 2012 1 / 29 İçerik 1 Temel Kavramlar Algoritmanın

Detaylı

Bilgisayar Programı Nedir?

Bilgisayar Programı Nedir? BİL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR Bilgisayar Programı Nedir? Program, bilgisayarda i belirli libir amacı gerçekleştirmek için geliştirilmiş yöntemlerin ve verilerin, bilgisayarındonanımınınyerine

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

Java, Python ve Ruby Dillerinin Performans Karşılaştırması Java, Python ve Ruby Dillerinin Performans Karşılaştırması Çanakkale Onsekiz Mart Üniversitesi Mustafa ŞAHİN Akademik Bilişim 2007 1 Dillerin seçim nedeni Java, Pyton ve Ruby Programlama dillerinin popülerliği

Detaylı

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar EM205 26/9/2014 Programlamaya giriş Algoritmalar Temel kavramlar Algoritmalar Amaçlar Algoritma kavramını öğrenmek, Algoritmaları ifade edebilmek, Temel matematiksel algoritmaları yazabilmek C programlama

Detaylı

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr Ders Bilgileri BIL1202 Algoritma ve Programlamaya Giriş, (2+1 Kredi) Ders ile ilgili duyurular http://kergun.baun.edu.tr/

Detaylı

İÇİNDEKİLER İÇİNDEKİLER KODLAB

İÇİNDEKİLER İÇİNDEKİLER KODLAB İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Temel Bilgisayar Programlama Ara Sınav Çalışma Notları

Temel Bilgisayar Programlama Ara Sınav Çalışma Notları Temel Bilgisayar Programlama Ara Sınav Çalışma Notları Temel Kavramlar (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Programlamayı bir problemi çözmek

Detaylı

Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic

Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic BİLGİSAYAR DONANIM Donanım birimleri ekran, klavye, harddisk, ram YAZILIM Yazılımlar ise bilgisayarın donanım yapısını kullanılır hale

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I Bilgisayar Programlamaya Giriş Temel Programlama Kavramları Programlama Dilleri Program Oluşturma Teknikleri C++ Programlama Diline Giriş Temel Programlama Kavramları Bilgisayar

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-1 Temel Kavramlar ve Algoritma

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-1 Temel Kavramlar ve Algoritma BLM-111 PROGRAMLAMA DİLLERİ I Ders-1 Temel Kavramlar ve Algoritma Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dönem boyunca görülecek konular Hafta 1- Temel

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Bilgisayar Mühendisliği ve Yeni Teknolojiler. İbrahim SARAÇOĞLU

Bilgisayar Mühendisliği ve Yeni Teknolojiler. İbrahim SARAÇOĞLU Bilgisayar Mühendisliği ve Yeni Teknolojiler İbrahim SARAÇOĞLU Son 10 yılın en önemli teknolojileri Akıllı telefonlar Sosyal ağlar Voice over IP LED teknolojisi Bulut Bilişim İnsansız hava araçları Dijital

Detaylı

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal) FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal) Algoritma Geliştirme ve Akış Diyagramları BİLGİSAYARLA PROBLEM ÇÖZÜMÜ AŞAMALARI Analiz Algoritma Geliştirilmesi

Detaylı

C PROGRAMLAMA DİLİ. Hedefler

C PROGRAMLAMA DİLİ. Hedefler C PROGRAMLAMA DİLİ Hedefler Bu üniteyi çalıştıktan sonra; C programlama dili genel özelliklerini ve yapısını bilir, Kütüphane fonksiyonlarının çağrılmasını gerçekleştirebilir, Değişken, sabit tanımlamaları

Detaylı

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA İçindekiler Önsöz... 5 Bölüm 1 PROGRAMLAMAYA GİRİŞ I. GİRİŞ... 17 II. PROGRAMLAMA DİLLERİ... 19 III. İŞLEMLER... 20 A. Matematiksel İşlemler... 21 B. Karşılaştırma İşlemleri... 26 C. Mantıksal İşlemler...

Detaylı

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları. Turbo C ++ 3.0 ALGORİTMALAR http://vaibhavweb.tripod.com/others/tc3.zip http://www.top4download.com/turbo-c- /aklqwuba.html 1 2 Bilgisayarda Problem Çözme Adımları Bilgisayarda Problem Çözme Adımları 1-Problemi

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ Prof. Dr. Necmettin Kaya C PROGRAMLAMA DİLİ ÖZELLİKLERİ C programlama dili, 1972 yılında Bell Labortuvarı nda Dennis Ritchie tarafından geliştirilmiştir.

Detaylı

C # www.bilisimogretmeni.com

C # www.bilisimogretmeni.com C # 1 Neler Öğreneceğiz Nesneye yönelik programla nedir? (Metot nedir?, sınıf nedir?, nesne nedir?, nesneler nasıl tü retilir?...) Nesneye yönelik programlamanın üstünlükleri?.net teknolojisi nedir? Neleri

Detaylı

Hafta 1 Programlamaya Giriş

Hafta 1 Programlamaya Giriş BLM111 Programlama Dilleri I Hafta 1 Programlamaya Giriş Yrd. Doç. Dr. Caner ÖZCAN Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 15:00-17:00 Perşembe 13:00-15:00 ya da email ile randevu

Detaylı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. PROGRAMLAMAYA GİRİŞ Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. C de yazılan bir programın çalışması için çoğunlukla aşağıdaki

Detaylı

Ruby Nedir? 1.1 Amaçlar. 1.2 Ruby nin Yapısal Sıradüzeni

Ruby Nedir? 1.1 Amaçlar. 1.2 Ruby nin Yapısal Sıradüzeni 1 Ruby Nedir? 1.1 Amaçlar Bu kitabın asıl amacı, Ruby on Rails Web Framework u ile web programcılığı yapacaklara gerekli olan Ruby bilgilerini vermektir. Bunu yaparken, kitap okura şu becerileri de kazandıracaktır:

Detaylı

1.PROGRAMLAMAYA GİRİŞ

1.PROGRAMLAMAYA GİRİŞ 1.PROGRAMLAMAYA GİRİŞ Bilindiği gibi internet üzerindeki statik web sayfaları ziyaretçinin interaktif olarak web sayfasını kullanmasına olanak vermemektedir. Bu yüzden etkileşimli web sayfaları oluşturmak

Detaylı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 3. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu PROBLEM ÇÖZME (PROBLEM SOLVING) nereden

Detaylı

1.BÖLÜM PROGRAMLAMA ve TEMEL KAVRAMLAR

1.BÖLÜM PROGRAMLAMA ve TEMEL KAVRAMLAR 1.BÖLÜM PROGRAMLAMA ve TEMEL KAVRAMLAR GİRİŞ Program, bilgisayara ne yapması gerektiğini söyleyen bir grup komuta (kod topluluğuna) verilen isimdir. Bu komutları veren kişiye programcı, komutların bütününe

Detaylı

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK Giriş-Tanımlamalar Program Nedir? Tanımlanmış bir problemi bilgisayar ortamında çözen ürüne program denir. Programlama Nedir? Tanımlanmış

Detaylı

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1 Algoritmik Program Tasarımı, Akış Şemaları ve Programlama Bilgisayar Mühendisliğine Giriş 1 I) Algoritmik Program Tasarımı, Akış Şemaları Algoritmik program tasarımı, verilen bir problemin bilgisayar ortamında

Detaylı

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

Detaylı

Ünite-3 Bilgisayar Yazılımı. www.cengizcetin.net

Ünite-3 Bilgisayar Yazılımı. www.cengizcetin.net Ünite-3 Bilgisayar Yazılımı Yazılım Kavramı Bilgisayarın belirli bir işi gerçekleştirebilmesi için kullanıcı tarafından her adımda ne yapacağı tarif edilmiş olmalıdır. Yani kullanıcı bilgisayara uygun

Detaylı

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.)

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.) PROGRAM YAZMAK SÜRECİ 1. Problemin farkına varmak, 2. Problemi analiz etmek, 3. Çözüm yolları düşünmek, 4. İyi çözüm yolları seçip algoritma oluşturmak, 5. Akış diyagramı çizmek, 6. Uygun bir dilde kodlamak,

Detaylı

Bölüm 1. Bilgisayarlar ve C++ Programlama. Doç.Dr. Yıldıray Yalman. Kaynak: Problem Solving with C++, Walter Savitch Slide 1

Bölüm 1. Bilgisayarlar ve C++ Programlama. Doç.Dr. Yıldıray Yalman. Kaynak: Problem Solving with C++, Walter Savitch Slide 1 Bölüm 1 Bilgisayarlar ve C++ Programlama Doç.Dr. Yıldıray Yalman Kaynak: Problem Solving with C++, Walter Savitch Slide 1 Sunu Bölümleri Bilgisayar Sistemleri (1.1) Programlama ve Problem Çözme (1.2) C++

Detaylı

BİLGİSAYAR PROGRAMLAMA MATLAB

BİLGİSAYAR PROGRAMLAMA MATLAB BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? 1. Matlab ve Programlama Ortamı 2. Matlab Komut Penceresi 3. Matlab de değişken tanımlama 4.

Detaylı

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Algoritma ve Programlamaya Giriş mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama

Detaylı

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA BÖLÜM-II ALGORİTMA I. GİRİŞ Bilgisayar dünyasında, insanın

Detaylı

Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir.

Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir. Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir. Bu durumda bireylerin ortaya çıkan olumsuzluklara karşılık çözüm bulmak için yapacakları mücadeleye de PROBLEM

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ GİRİŞ AKIŞ ŞEMASI Bir önceki ünitede algoritma, bilgisayarda herhangi bir işlem gerçekleştirmeden ya da program yazmaya başlamadan önce gerçekleştirilmesi düşünülen işlemlerin belirli bir mantık ve plan

Detaylı

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir: Gereksiz Kodlar Kaan Aslan 9 Temuz 1997 Kapalı spor salonu, durak yeri, taşıt aracı, en optimum, geri iade etmek, davranış biçimi Bu ifadelerde bir gariplik var, değil mi? Açık spor salonu göreniniz var

Detaylı

Hafta 2 EkLab 1. C ye Giriş. Ozan ŞENYAYLA Çağrı YENİCE

Hafta 2 EkLab 1. C ye Giriş. Ozan ŞENYAYLA Çağrı YENİCE Hafta 2 EkLab 1 C ye Giriş Ozan ŞENYAYLA Çağrı YENİCE http://ozansenyayla.com/programlama.php KAYNAK: Görkem Paçacı / İlker Korkmaz / Kaya Oğuz - İEU BT Hafta 2 GİRİŞ EkLab 1 Programlama, genel olarak,

Detaylı

TEMEL BİLGİSAYAR BİLİMLERİ

TEMEL BİLGİSAYAR BİLİMLERİ TEMEL BİLGİSAYAR BİLİMLERİ Doç. Dr. M.Ümit GÜMÜŞAY YTÜ - 2012 2 PROGRAMLAMA MANTIĞI Herhangi bir amaç için hazırlanan programın mantık hataları içermesi durumunda, alınacak sonucunda yanlış olacağı aşikardır.

Detaylı

Bilgisayarın Yapıtaşları

Bilgisayarın Yapıtaşları Bilgisayarın Yapıtaşları Donanım (Hardware) bilgisayarın fiziki yapısını oluşturan şeylerdir. Yazılım (Software) bilgisayarın fiziki yapısını kulanan ve ona hayat veren komutlar bütünüdür. 1 Dosyalar (Files)

Detaylı

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu Öğr. Gör. M. Ozan AKI r1.0 Algoritmalar (Algorithms) Algoritma, bir problemin çözümünü sağlayan ancak deneme-yanılma ve sezgisel çözüme karşıt bir

Detaylı

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 2016 2017 Güz Dönemi Yük. Müh. Köksal Gündoğdu 1 Elektrik Elektronik ve Bilgisayar Yük. Müh. Köksal Gündoğdu koksalgundogdu@ekargemuhendislik.com Yük. Müh. Köksal Gündoğdu

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir,

Detaylı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN Basit C Programları: Bir Metni Yazdırmak #include /* program çalışmaya main fonksiyonundan başlar*/ int main() { printf( "C diline hoşgeldiniz!\n"

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

Bilgisayar Programlama MATLAB

Bilgisayar Programlama MATLAB What is a computer??? Bilgisayar Programlama MATLAB Prof. Dr. İrfan KAYMAZ What Konular is a computer??? MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi

Detaylı

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include printf Fonksiyonu ÖRNEK. printf

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf Giriş GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI printf Fonksiyonu scanf Fonksiyonu Verilerin kaybolmaması için hafızada değişkenler içine yerleştirilmeleri gerekir. Bu veriler iki şekilde yerleştirilebilir. Değişkene

Detaylı

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0). I.SINIF-1.YARIYIL TÜRK DİLİ I : Haftalık ders 2 saattir (T-2 ) (U-0) (K-2). Ders İçeriği; % 10 Dil, Diller ve Türk Dili, % 15 Dil Bilgisi, Sözcük ve Cümle % 25 Kelime Türleri % 25 Anlatım Öğeleri ve Anlatım

Detaylı

Linux'ta Kabuk ve Kabuk Programlama

Linux'ta Kabuk ve Kabuk Programlama Linux'ta Kabuk ve Kabuk Programlama Kabuk Nedir? Kabuk, kullanıcı ile bilgisayar sistemi arasındaki bir yazılım katmanıdır. Kabuk, kullanıcının hareketlerini yorumlayıp, işletim sistemini ve uygulamaları

Detaylı

Alıştırma 1: Yineleme

Alıştırma 1: Yineleme Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:

Detaylı

C++ Operatörler (Operators)

C++ Operatörler (Operators) C++ Operatörler (Operators) Konular Operatörler o Aritmetiksel (Matematiksel) Operatörler o Karşılaştırma Operatörleri o Mantıksal Operatörler o Atama Operatörleri o Bit Düzeyinde Operatörler o Özel Amaçlı

Detaylı

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1 Görsel Programlama DERS 01 Görsel Programlama - Ders01/ 1 Takdim Planı Nesneye Dayalı Programlama Kavramı Nesne, Sınıf Kavramı Java Programlama Dili Java Programlama Dili Temel Özellikleri Java Sürümleri

Detaylı

Algoritmalar ve Karmaşıklık

Algoritmalar ve Karmaşıklık Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK DERS 4 İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli programlama dilleri Assembler Derleyici Program algoritmalarında yapılan işlemleri Ders 4, Slayt 2 1 GİRİŞ Mikroişlemciler dersinde giriş

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Süreçler ve İş Parçacıkları(Thread) İşletim Sistemlerine Giriş - Ders03 1 Süreç -Tüm modern bilgisayarlarda bir çok iş aynı anda yapılabilir. *kullanıcı programları çalışır *disk

Detaylı

JAVASCRIPT JAVASCRIPT DİLİ

JAVASCRIPT JAVASCRIPT DİLİ JAVASCRIPT JAVASCRIPT DİLİ Netscape Navigator 2.0 ile birlikte geliştirilen JavaScript dili istemci taraflı (client-side) script dilidir. Web sayfalarında dinamik içerik sağlamak ya da kullanıcıyla iletişim

Detaylı

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne

Detaylı

Bölüm 2. Ana programlama dilerinin evrimi ISBN 0-321-49362-1

Bölüm 2. Ana programlama dilerinin evrimi ISBN 0-321-49362-1 Bölüm 2 Ana programlama dilerinin evrimi ISBN 0-321-49362-1 Bölüm 2 Konuları Minimal donanım programlaması: Kodumsular (Pseudocodes) Bilim adamları ve mühendisler: Fortran Fonksiyonel Programlama: LISP

Detaylı

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi 2011-2012 Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Programlama Dili Nedir? 2 Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını

Detaylı

Algoritmalara Giriş 6.046J/18.401J

Algoritmalara Giriş 6.046J/18.401J Algoritmalara Giriş 6.046J/18.401J DERS 1 Algoritmaların Çözümlemesi Araya yerleştirme sıralaması Asimptotik çözümleme Birleştirme sıralaması Yinelemeler Prof. Charles E. Leiserson Dersle ilgili bilgiler

Detaylı

DERS BİLGİ FORMU. IV Türkçe Zorunlu Ders. Haftalık. Ders. Okul Eğitimi Süresi. Saati

DERS BİLGİ FORMU. IV Türkçe Zorunlu Ders. Haftalık. Ders. Okul Eğitimi Süresi. Saati DERS BİLGİ FORMU DERSİN ADI SİSTEM ANALİZİ VE TASARIMI I BÖLÜM PROGRAM DÖNEMİ DERSİN DİLİ DERS KATEGORİSİ ÖN ŞARTLAR SÜRE VE DAĞILIMI KREDİ DERSİN AMACI ÖĞRENME ÇIKTILARI VE YETERLİKLER DERSİN İÇERİĞİ

Detaylı

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları 4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları Şart yapıları bir bilgisayar programının olmazsa olmazlarındandır. Şart yapıları günlük hayatımızda da çok fazla karşılaştığımız belirli

Detaylı