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ı

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ı

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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

İÇİ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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

İş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ı

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ı

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

İŞ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ı

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ı

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

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ı

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ı

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ı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

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ı

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ı

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek ozlem.ozgobek@linux.org.tr

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek ozlem.ozgobek@linux.org.tr Özgür Yazılımlarla Web Programlama Özlem Özgöbek ozlem.ozgobek@linux.org.tr Web Nedir? İnternet dünya çapında birbirine bağlı bilgisayar ağlarından oluşan bir sistemdir. Web ise internette çalışan servislerden

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ı

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ı

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır: C VERİ TÜRLERİ BASİT VERİ TÜRLERİ Değişkenler, program içinde üzerinde işlem yapılan, veri saklanan ve durumlarına göre programın akışı sağlanan nesnelerdir. C de bir değişken kullanılmadan önce tanımlanmalıdır.

Detaylı

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2 PROGRAMLAMA Bir problemin çözümü için belirli kurallar ve adımlar çerçevesinde bilgisayar ortamında hazırlanan komutlar dizisine programlama denir. Programlama Dili: Bir programın yazılabilmesi için kendine

Detaylı

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1 PROGRAM - ALGORİTMA AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun

Detaylı

10.Konu Tam sayıların inşası

10.Konu Tam sayıların inşası 10.Konu Tam sayıların inşası 1. Tam sayılar kümesi 2. Tam sayılar kümesinde toplama ve çarpma 3. Pozitif ve negatif tam sayılar 4. Tam sayılar kümesinde çıkarma 5. Tam sayılar kümesinde sıralama 6. Bir

Detaylı

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta Öğr. Gör. Dr. Barış Doğru 1 Konular 1. Bilgisayar Nedir? 2. Bilgisayarın Tarihçesi 3. Günümüz Bilgi Teknolojisi 4. Bilgisayarların Sınıflandırılması

Detaylı

Robot Programlama Dilleri

Robot Programlama Dilleri Robot Programlama Dilleri Onur Kardeş July 2, 2001 Contents 1 Giriş 1 2 Robotscript 2 3 ARAC 2 4 AML 3 5 RoboML 3 6 NQC (Not Quite C) 3 7 Onika 4 8 REXX 4 9 Behavior Language (Davranış Dili) 4 1 Giriş

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ı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş HUNRobotX - PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 4 Haziran

Detaylı

Bilgisayar Programlama

Bilgisayar Programlama Bilgisayar Programlama M Dosya Yapısı Kontrol Yapıları Doç. Dr. İrfan KAYMAZ Matlab Ders Notları M-dosyası Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli

Detaylı

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri 49 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B02) Çalıştırılabilir C ifadeleri ya bir işlem gerçekleştirir ( girilen verilerin toplanması

Detaylı

C Dersi Bölüm 1. Bilgisayar Donanımı

C Dersi Bölüm 1. Bilgisayar Donanımı C Dersi Bölüm 1 M Bodur 1 Bilgisayar Donanımı Bilgisayarın yapısını ve çalışma prensiplerini bilmemiz Bir bilgisayar programından neler bekleyebileceğimizi anlamamızı sağlar. Bigisayar dört temel birimden

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ı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Kontrol Yapıları if Seçme Deyimi if... else Seçme Deyimi while Tekrar

Detaylı

C PROGRAMLAMA DİLİNE GİRİŞ

C PROGRAMLAMA DİLİNE GİRİŞ C PROGRAMLAMA DİLİNE GİRİŞ C Dilinin Tarihçesi 1972 de Dennis Ritchie tarafından AT&T Bell Laboratuarlarında B dilinden geliştirildi. C dili konusundaki ilk kitap 1978 de Dennis Ritchie ve Brain Kernighan

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 Dersleri Bölüm 3 : Program akışı

C Dersleri Bölüm 3 : Program akışı İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu www.ieubt.org C Dersleri Bölüm 3 : Program akışı Sorularınız için : programlama@ieubt.org Hazırlayan : Görkem PAÇACI (gorkem.pacaci@std.ieu.edu.tr) C Program

Detaylı

PROGRAMLAMA TEMELLER. C Program Yap s

PROGRAMLAMA TEMELLER. C Program Yap s PROGRAMLAMA TEMELLER 1 C Program Yap s 2 Aç klama sat r Program kodlar n makine diline çeviren C dili derleyicisi /* ve */ karakterleri aras nda kalan bölümleri ihmal eder. /* Aç klama Sat r */ Sadece

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu sunumda Prof. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından

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ı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

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ı

B02.8 Bölüm Değerlendirmeleri ve Özet

B02.8 Bölüm Değerlendirmeleri ve Özet B02.8 Bölüm Değerlendirmeleri ve Özet 57 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B02) Şimdiye kadar C programlama dilinin, verileri ekrana yazdırma, kullanıcıdan verileri alma, işlemler

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

TEMEL BİLGİTEKNOLOJİLERİ

TEMEL BİLGİTEKNOLOJİLERİ TEMEL BİLGİTEKNOLOJİLERİ Bilgiyi işlemekte kullanılan araçlar ikiye ayrılır. 1- Maddi cihazlar 2-Kavramsal araçlar. Kullanıcıve bilgisayarın karşılıklıetkileşimini sağlayan birimlerin genel adıgiriş-çıkışbirimleridir.

Detaylı

Linux Assembly Programlamaya Giriş

Linux Assembly Programlamaya Giriş Linux Assembly Programlamaya Giriş Barış Metin Konular gcc / gas / ld Intel ve AT&T söz dizimleri gdb INT 80H C kütüphane fonksiyonları Stack Frame Örnek

Detaylı

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER EĞİTİM PROGRAMLARI MATLAB İLE MÜHENDİSLİK ÇÖZÜMLERİ Amaç: Sistem tasarım ve analizinin MATLAB dilinde kolay programlama yoluyla tekrarlanabilir yapılara oturtulması

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS PROGRAMLAMA DİLLERİ BG-324 3/2 3+0+0 3+0 4 Dersin Dili : TÜRKÇE Dersin Seviyesi

Detaylı

Python GELECEK. Barış Metin Linux Sistemleri. Python Programlama Dili

Python GELECEK. Barış Metin <baris@gelecek.com.tr> Linux Sistemleri. Python Programlama Dili Python Barış Metin GELECEK Linux Sistemleri İçindekiler Python? Programlama!? Dil Özellikleri. Kullanım alanları. Diğer diller ile karşılaştırmalar. Örnek. Geliştirme ortamları.

Detaylı

Bigisayar Programlama (GÜZ 2015)

Bigisayar Programlama (GÜZ 2015) Bigisayar Programlama (GÜZ 2015) Yrd. Doç Dr. Yakup EMÜL Cumhuriyet Üniv., Teknoloji Fakültesi Yazılım Mühendisliği Bölümü yakupemul@cumhuriyet.edu.tr Ofis Saatleri : Perşembe 14:00-16:00 Dersin Websitesi

Detaylı

KONTROL VE OTOMASYON KULÜBÜ

KONTROL VE OTOMASYON KULÜBÜ KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör

Detaylı

C Programlama. C Programlama. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu

C Programlama. C Programlama. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu C Programlama Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu 2014 Sunuma Genel Bakış Sunuma Genel Bakış I 1 Akış Çizgeleri Blok Yapılı Programlama Giriş / Çıkış Programların Çalıştırılması Kitaplıklar

Detaylı

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ BİLGİSAYAR PROGRAMLAMAYA GİRİŞ 5. ders notu Örnek program yazılımları İlişkisel operatörler Mantıksal operatörler Şartlı deyimler İf deyimi Kaynak: Dr.Deniz DAL ders sunumları Örnek : Dışarıdan girilen

Detaylı

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama BİL 542 Paralel Hesaplama Dersi Projesi MPJ Express Java Paralel Programlama Recep Ali YILMAZ 131419106 Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Yüksek Lisans Programı

Detaylı

C# Eğitimi-1 (Giriş) Melih Hilmi Uludağ www.melihhilmiuludag.com

C# Eğitimi-1 (Giriş) Melih Hilmi Uludağ www.melihhilmiuludag.com C# Eğitimi-1 (Giriş) Melih Hilmi Uludağ www.melihhilmiuludag.com Nesne Yönelimli Programlama Nesne Yönelimli Programlama, 1990 lı yıllarda başlayan ve günümüzde de yoğun olarak kullanılan bir programlama

Detaylı

Algoritma. 19. yüzyılda Persli matematikçi Al- Khowarizmi (Al-Harezmi) tarafından bulunmuş ve onun adında türetilmiştir.

Algoritma. 19. yüzyılda Persli matematikçi Al- Khowarizmi (Al-Harezmi) tarafından bulunmuş ve onun adında türetilmiştir. Algoritma 19. yüzyılda Persli matematikçi Al- Khowarizmi (Al-Harezmi) tarafından bulunmuş ve onun adında türetilmiştir. Algoritma Problem çözmek için geliştirilen Adım adım çözüm yöntemidir. Verilen bir

Detaylı

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri nedir? Sunucu Yazılım Teknolojileri nedir? Gündem 1 nedir? 2 XML 3 nedir? nedir? : Asynchronous JavaScript and XML Yeni bir teknoloji değil, daha çok bir yöntembilim, teknik, tasarım deseni. RIA = Zengin

Detaylı

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ PROGRAMLAMAYA GİRİŞ Herhangi bir program yazabilmemiz için öncelikle önümüzde bir problem, soru olması gerekir. Problemi belirledikten

Detaylı

Programlama Temelleri

Programlama Temelleri Programlama Temelleri TEMEL BİLGİSAYAR KAVRAMLARI Donanım: GiriĢ birimleri- klavye, fare, okuyucular, mikrofon, dokunmatik aletler Ana iģlemci ve yardımcılar Saklama birimleri (CD-ROM, diskler, bellekler...)

Detaylı