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 ocaglayan@gsu.edu.tr 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

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ı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

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ı

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ BÖLÜM 1: PROGRAMLAMAYA GİRİŞ Bilgisayar, verileri klavye, dosya ve veritabanı gibi değişik ortamlardan girdi olarak alan, istendiğinde bunları saklayan, veriler üzerinde çok hızlı işlem yapan ve sonuçları

Detaylı

Program Nedir?(1) Programlamaya Giriş

Program Nedir?(1) Programlamaya Giriş Programlamaya Giriş Arş. Gör. Muhammet BAYKARA Program Nedir?(1) Bir program bilgisayara ne yapması gerektiğini söyleyen bir dizi komuttur. Bilgisayarlar işlemlerin kendi anlayacağı dilde (makine dili)

Detaylı

BİLGİSAYAR ORGANİZASYONU

BİLGİSAYAR ORGANİZASYONU BİLGİSAYAR ORGANİZASYONU Donanım Bilgisayarın fiziksel bölümü Monitor, klavye, fare Entegreler, kartlar Kablolar Yazılım: Bilgisayarın mantıksal bölümü Programlar: Bilgisayarın gerçekleştireceği komutlar

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ı

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ BİLGİSAYAR PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr.Caner KOÇ Ankara Üniversitesi Ziraat Fakültesi Tarım Makinaları ve Teknolojileri Mühendisliği Bölümü ckoc@ankara.edu.tr DERS KAYNAKLARI 1. A. Kadir GÜNEYTEPE:

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ı

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ı

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: 27.02.2017 Yazılım nedir? Donanım birimlerini istenen işleme

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ı

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ı

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ı

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ı

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ı

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ı

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ı

1.1. Yazılım Geliştirme Süreci

1.1. Yazılım Geliştirme Süreci Kazanımlar Bu bolümde; Yazılım geliştirme sureci konusunda bilgi sahibi olacak, Yazılım geliştirme surecinde gerekli olan araçları tanıyacak, Python dilinde program geliştirme ortamlarını inceleyebileceksiniz.

Detaylı

Yazılım Mühendisliği 1

Yazılım Mühendisliği 1 Yazılım Mühendisliği 1 HEDEFLER Yazılım, program ve algoritma kavramları anlar. Yazılım ve donanım maliyetlerinin zamansal değişimlerini ve nedenleri hakkında yorum yapar. Yazılım mühendisliği ile Bilgisayar

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ı

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ı

PROGRAMLAMA TEMELLERİ

PROGRAMLAMA TEMELLERİ PROGRAMLAMA TEMELLERİ 2.HAFTA Yazılım Yazılım, elektronik aygıtların belirli bir işi yapmasını sağlayan programların tümüne verilen isimdir. Bir başka deyişle var olan bir problemi çözmek amacıyla bilgisayar

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ı

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ı

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ı

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido. PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan PHP Nedir? Genel kullanım amaçlı bir betik/programlama dilidir.

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 1: Giriş İçerik Bilgisayar Sistemleri Donanım Yazılım Programlama Program Geliştirme Nesne-tabanlı Programlama C++ Programlama Dili 2 Bilgisayar Sistemleri Kısaca,

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 1 Zümra Kavafoğlu Dersin Amacı Nesneye Yönelik Programlama Kavramını Java Dili Üzerinden Öğrenmek Nesneye yönelik programlama ile ilgili nesne, sınıf, kalıtım, çok

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ı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ 2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 6 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Temel Algoritma Örnekleri, Genel Uygulamalar) Yrd. Doç. Dr. İbrahim Küçükkoç Web:

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ı

Yazılım Mühendisliğine Giriş 2018 GÜZ

Yazılım Mühendisliğine Giriş 2018 GÜZ Yazılım Mühendisliğine Giriş 2018 GÜZ İkinci Kuşak Bilgisayarlar -1956-1963 Transistör 1947 yılında keşfedilmiştir. 50 li yılların sonuna kadar bilgisayarlarda yaygın kullanımı görülmez. Vakum tüplere

Detaylı

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN MATLAB A GİRİŞ EE-346 Hafta-1 Dr. Ayşe DEMİRHAN MATLAB Teknik ve bilimsel hesaplamalar için yazılmış yüksek performanslı bir yazılım geliştirme aracı MATrix LABoratory (MATLAB) Boyutlandırma gerekmeyen

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ı

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan BİLGİ TEKNOLOJİLERİ YÖNETİMİ EĞİTİM MODÜLLERİ Tarih Saat Modül Adı Öğretim Üyesi 01/05/2018 Salı Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan Bu dersin amacı, bilgisayar bilimlerinin temel kavramlarını

Detaylı

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1 DERS BİLGİLERİ Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS Programlama Dilleri BIL204 4 3+0 3 5 Ön Koşul Dersleri Dersin Dili Dersin Seviyesi Dersin Türü Türkçe Lisans Zorunlu / Yüz Yüze Dersin

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ı

Fen ve Mühendislik Uygulamalarında MATLAB

Fen ve Mühendislik Uygulamalarında MATLAB Fen ve Mühendislik Uygulamalarında MATLAB Bilgisayar Programlamaya Giriş Doç. Dr. İrfan KAYMAZ KAYNAKLAR 1. * MATLAB, Ömer Gündoğdu, Osman Kopmaz, M. Akif Ceviz, Paradigma Akademi, 2003. 2. * MATLAB ve

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 DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri PROGRAMLAMA DİLLERİ Program Yazılım Geliştirme Süreci Programlama Dilleri Tarihçesi Kod Sözdizimi Nesneye Yönelik Programlama Tür Kontrolü Alt Programlar Programlama Dilleri Programlama Dillerinin Önemi

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ı

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İL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR

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

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ı

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ı

Öğ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ı

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ı

BLM1011 Bilgisayar Bilimlerine Giriş I

BLM1011 Bilgisayar Bilimlerine Giriş I BLM1011 Bilgisayar Bilimlerine Giriş I by Z. Cihan TAYŞİ İçerik Bilgisayar sisteminin bileşenleri Bilgisayar organizasyonu Tarihçe Yazılım türleri Programlama dilleri Yıldız Teknik Üniversitesi - Bilgisayar

Detaylı

Genel Programlama I

Genel Programlama I Genel Programlama I 30.09.2010 1 Genel Programlama I Ders İçeriği Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

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ı

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ı

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ı

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ı

Programlama dili Nedir?

Programlama dili Nedir? DERS İÇERİĞİ Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve karakterler Pointerler Fonksiyonlar Yapılar Matematik

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ı

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir. İST 205 Bilgisayar Programlama III C Programlamaya Giriş ve Matematiksel-İstatistiksel Uygulamalar Y.Doç.Dr. Levent Özbek Ankara Üniversitesi Fen Fakültesi İstatistik Bölümü Tel: 0.312.2126720/1420 ozbek@science.ankara.edu.tr

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ı

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ı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

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ı

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ı

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ı

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ı

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ı

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ı

Programlama dilleri. Programlama dili: İnsan-makina ve makina- makina arasındaki iletişimi sağlar.

Programlama dilleri. Programlama dili: İnsan-makina ve makina- makina arasındaki iletişimi sağlar. DERS İÇERİĞİ Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve karakterler Pointerler Fonksiyonlar Yapılar Ekran ve

Detaylı

TBP101 (4. Hafta) Alıştırma Soruları ve Cevapları

TBP101 (4. Hafta) Alıştırma Soruları ve Cevapları TBP101 (4. Hafta) Alıştırma Soruları ve Cevapları 1. Klavyeden girilen üç sayıyı toplayan ve ortalamasını alıp sonuçları ekrana yazdıran sözde kodunu yazınız. PROGRAM Soru1 READ A, B, C; TOP = A + B+ C;

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ı

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ı

Bilgisayarların Gelişimi

Bilgisayarların Gelişimi Bilgisayarların Gelişimi Joseph Jacquard (1810) Bilgisayar tabanlı halı dokuma makinesi Delikli Kart (Punch Card) Algoritma ve Programlama 6 Bilgisayar Sistemi 1. Donanım fiziksel aygıtlardır. 2. Yazılım

Detaylı

Yazılım Mühendisliği Bölüm - 3 Planlama

Yazılım Mühendisliği Bölüm - 3 Planlama 1 Yazılım Mühendisliği Bölüm - 3 Planlama 2 3 4 Planlama 5 Yazılım geliştirme sürecinin ilk aşaması Başarılı bir proje geliştirebilmek için projenin tüm resminin çıkarılması işlemi Proje planlama aşamasında

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

ALP OĞUZ ANADOLU LİSESİ EĞİTİM ÖĞRETİM YILI BİLGİSAYAR BİLİMİ DERSİ 2.DÖNEM 2.SINAV ÖNCESİ ÇALIŞMA SORULARI VE YANITLARI

ALP OĞUZ ANADOLU LİSESİ EĞİTİM ÖĞRETİM YILI BİLGİSAYAR BİLİMİ DERSİ 2.DÖNEM 2.SINAV ÖNCESİ ÇALIŞMA SORULARI VE YANITLARI ALP OĞUZ ANADOLU LİSESİ 2017-2018 EĞİTİM ÖĞRETİM YILI BİLGİSAYAR BİLİMİ DERSİ 2.DÖNEM 2.SINAV ÖNCESİ ÇALIŞMA SORULARI VE YANITLARI Doğru yanıtlar kırmızı renkte verilmiştir. 1. Problemlerin her zaman sıradan

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ı

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için,

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için, PDP 7 1 İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için, operatörlerin sırası ve İşlenenlerin (operant) değerlendirmesine aşina olmamız

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

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ı

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ı

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ı

Ü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ı

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ı

1. PROGRAMLAMAYA GİRİŞ

1. PROGRAMLAMAYA GİRİŞ 1. PROGRAMLAMAYA GİRİŞ Bilgisayardaki İşlem Akışı Hammadde İşletme Makine, Teçhizat vs. İnsan Ürün Veri Bilgisayar Program İnsan Sonuç Bilgisayarın Genel Bileşenleri Bilgisayar Yazılım Donanım Sistem Uygulama

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ı

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ı

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ı

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ı

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ı

Algoritma Hazırlama. Programlama. nereden başlamalı? ALGORİTMA VE PROGRAMLAMA Öğr.Gör.Günay TEMUR

Algoritma Hazırlama. Programlama. nereden başlamalı? ALGORİTMA VE PROGRAMLAMA Öğr.Gör.Günay TEMUR Algoritma Hazırlama Programlama nereden başlamalı? PROBLEM ÇÖZME nasıl yapacağız? bunun için Problem çözme sırası (Problem Solving Cycle) 1. Problemi anlama (Understanding, Analyzing), 2. Bir çözüm yolu

Detaylı

Ana Bellek (RAM) İşlemci (CPU) Depolama

Ana Bellek (RAM) İşlemci (CPU) Depolama Bilgisayar Nedir? Bilgisayar belli komutlara göre verileri işleyebilen ve çeşitli ortamlarda depolayabilen bir makinedir. Bilgisayar basit olarak bir işlemci, ana bellek, giriş birimleri, çıkış birimleri

Detaylı