MS Bilisim ve Yazılım

Mustafa Kemal Üniversitesi Bilgisayar Mühendisliği Bölümü Ders Materyal Ve Notları

Sponsor

18 Ağustos 2014 Pazartesi

Quick Sort

Posted by samgar at 13:18 1 Comment
Quick Sort, eleman kümesi içerisinde seçilen pivot sayının diğer sayılarla karşılaştırılarak büyüklük ve küçüklük durumuna göre pivot sayının sağ ve sol tarafına yerleştirilmesi sonucu oluşan sıralama  algoritmasıdır. Quick sort algoritmasını Türkçe kaynaklarda ‘Hızlı Sıralama Algoritması’ olarak görebilirsiniz.
Quick sort algoritması, sürekli olarak aynı mantık ile eleman kümesinden pivot sayı seçip karşılaştırma yaptığı için recursive fonksiyon ile çözüme kavuşturulması daha uygundur.
En kötü durum performansı (worst case performance) O(n2)‘dir. En iyi durum performansı O(n log n)‘dir. Ortalama durum performansı ise yine O(n log n) kabul edilir.
Rastgele üretilmiş sayıları temsil eden çubukların quick sort algoritması ile nasıl sıralandığını aşağıda vermiş olduğum animasyonda görebilirsiniz.
Quick-Sort-Algoritması

Insertion sort(eklemeli sıralama)

Posted by samgar at 12:52 0 Comments
Insertion sort, eleman kümesinin (array/dizi) 2. elemanından başlayarak kendinden önceki elemanlarla karşılaştırma yapar. Karşılaştırma yaptığı elemanlar kendinden büyükse bu elemanlar, küme içerisinde sağa doğru kaydırılır. Ve seçili eleman uygun yere yerleştirilir.
Insertion sort algoritmasında şüphesiz ki göze çarpan ilk olumsuz taraf, elemanların kaydırılması ile kaybedilen süre olacaktır. Daha açık biçimde özetlersek; eleman kümesinin son elemanı eğer en küçük değerse, kümenin en başına gelecek ve bütün elemanlar kaydırılacak.
En kötü durum performansı (worst-case performance) O(n2) ‘dir. En iyi durum performansı (best-case performance) O(n) ‘dir. En kötü durum performansından yola çıkarak algoritmayı değerlendirmek istersek, küçük değerler (N<1000) için sorun yaşamayacağımızı görüyoruz. Değerler büyüdükçe bizler için yükü de olumsuz yönde artıyor.
Insertion sort algoritmasının Türkçe karşılığı kaynaklarda ‘Eklemeli Sıralama Algoritması‘ olarak belirtilmiştir. Farklı kaynaklardan araştırma yapmak isteyen arkadaşlara kolaylık olsun.
Insertion-Sort

17 Ağustos 2014 Pazar

Blogger Header a Reklam Eklemek

Posted by samgar at 16:53 1 Comment


Merhaba Arkadaşlar Bugün Size Çogu Kişinin yaparken çok sınıntı yaşadıgı bi konu olan


blogger da header a yani site başlıgının altına nasıl reklam eklenir anlatım çok uzun oldugu için size video çektim




14 Temmuz 2014 Pazartesi

İnternet ve Ağ Güvenliği / Netsafe UTM Nedir ?

Posted by samgar at 12:45 0 Comments

İnternet ve Ağ Güvenliği / Netsafe UTM Nedir ?


UTM (Unified Threat Management) – Bütünlesik Güvenlik Yönetimi :
Günlük yasantımızın vazgeçilmez bir unsuru haline gelen İnternet;kullanımda sağladığı büyük yararlarla birlikte iyiniyet tasımıyan kisi ve grupların yaratmakta olduğu ciddi riskler sebebiyle “Bilgisayar güvenliği” kavramını herzamankinden daha çok önemle ve öncelikli olarak gündemde tutmaktadır. Önceleri Virüs, trojan, spam seklinde baslayan riskler artık kötü niyetli uzmanların “organize” olarak gelistirdiği dijital saldırılarla kurum ve kisilere çok ciddi zararlar vermektedir.
İnternetin gerek bireysel kullanımının yaygınlasması gerekse kurumsal kullanımın özel sektörle birlikte kamuyada tasınarak artması söz konusu ağların asıl amaçları dısında kötü niyetli kullanımlarını da çoğaltmaktadır. Küçük büyük bütün ağlar için gerek dısarıdan gelen saldırıları gerekse içerden gelen “casus saldırıları” engelleyebilmek için Saldırı Tesbit ve Engelleme Sistemleri artık zorunlu bir haldedir.

İş Zekası Nedir?

Posted by samgar at 12:41 0 Comments

İngilizcede Business Intelligence (BI) olan türkçe iş zekası olarak anılan bir kavramıdır.  21. yüzyıl ile önem kazanan veri depolama işleminin sonucu olarak doğan bu kavram iş dünyasının rekabetçi ortamında, firmaların sürdürülebilir rekabet avantajı sağlayabilmeleri için bilginin gücünü daha etkin bir şekilde kullanabilmeleri için kurumların bilgiyi kullanma çabalarında ulaşılan son aşamaya iş zekâsı uygulamaları denmektedir. İş zekâsına küçük-büyük tüm işletmelerin ihtiyacı vardır ve iş zekâsı çözümleri karar alma süreçlerinde önemli rol oynar. Firma yetkililerinin pazar payının geniş olduğu bir ortamda en yüksek pazar payına ulaşabilmeleri için en doğru kararı verebilmeli ve en doğru çözümleri uygulayabilmelidir. İş zekası uygulamaları ile bu başarıya ulaşabilir ve rakipleriyle olan mücadelesinde rekabet gücü sağlayabilir. Örneğin; Bu pazar paylarında eğer bir gsm sektörünü veya bilgisayar sektörünü düşünürseniz ne kadar gerekli ve önemli olduğu anlaşılır.


Veritabanı Yönetim Sistemleri ve Avantajları

Posted by samgar at 12:40 1 Comment
İlk yazımda veri depolama yöntemlerinden bahsetmiştim. Bunların içinde ise ilişkisel veritabanlarının günümüzde kullanıldığını belirtmiştim. Şimdi ise günümüz de bilgisayar sistemleri ile verileri depolamamızı sağlayan veri tabanları hakkında geniş bir bilgi vereceğim.

Veri Tabanı Nedir?
Bir biriyle ilişkili verilerin bir arada toplandığı düzenli bilgiler topluluğudur. Bilgisayar terimine göre ise;sistematik erişim imkanı olan, yönetilebilir, güncellenebilir , taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir başka tanımı da, bir bilgisayarda sistematik şekilde saklanmış, programlarca istenebilecek veri yığınıdır.

İlişkisel Veri Tabanı
Aralarında bağlantı (ilişki) bulunan çok sayıda tablodan (veri kümesi) oluşan bir veri topluluğuna İlişkisel Veritabanı (relational database(RDB)) denir. RDB’de tüm bilgiler 2 boyutlu tablolar halinde saklanır (Satır, Sütun). Böylece veritabanında yer alan veriler birer hücre olarak yer alırlar. 

Şık ve Gerçek bir Unix : Opensolaris

Posted by samgar at 12:32 1 Comment




Bir kere Opensolaris'de pkg adlı bir paketleme sistemi var ve Virtualbox Guest Additions'ı yüklemek zor oldu. Bu işlem için

pkgadd -d ./VBoxSolarisAdditions.pkg 

Yapmak gerekiyor.

Virtualbox Guest Additions'ı yükledikten sonra sistem hızlanıyor. Ama bu aşamaya gelene kadar çok uğraşmanız gerekebilir.

pkg sistemini Debian/Ubuntu'nun apt-get sistemine, Redhat'ın yum sistemine ve Pardus'un pisi sistemine benzetebiliriz. opensolaris.org repository'sinden programlar kurma mantığı var.

Sistem gerçek bir Unix olmasının yanında Gnome temasıyla son derece şık olmuş.

Tarihi boyunca kurumsal alanda kalan ve hep devasa şirketlere yazılım/donanım çözümleri sunan Sun Microsystems'ın bu ürünü PC kullancıları tarafından yeni bir Ubuntu gibi benimsenirse hiç şaşmam.

D PROGRAMLAMA DİLİ

Posted by samgar at 12:32 0 Comments

C++’nın en büyük ustalarından olan Andrei Alexandrescu, şimdilerde enerjisini Walter Bright tarafından tasarlanmış olan D programlama dilini geliştirmeye harcıyor. Alexandrescu, çeşitli nedenlerle C++’ya eklenemeyen çoğu dil olanağının D’ye eklenmesine yardım ederek, bir anlamda D’yi C++’nın olmayı başaramadığı dil haline getiriyor.

Tanıtım

C++’nın en büyük ustalarından olan Andrei Alexandrescu, şimdilerde enerjisini Walter Bright tarafından tasarlanmış olan D programlama dilini geliştirmeye harcıyor. Alexandrescu, çeşitli nedenlerle C++’ya eklenemeyen çoğu dil olanağının D’ye eklenmesine yardım ederek, bir anlamda D’yi C++’nın olmayı başaramadığı dil haline getiriyor.
Kendisine özgü heyecanlı tarzını içeren bu yazısında Alexandrescu, D dilinin neden önemli olduğunu ve belki de sizin için de uygun bir dil olabileceğini göstermeye çalışıyor.
Bu yazının İngilizce aslı ilk olarak ACCU‘nun yayın organlarından CVu’nun Mayıs 2009 sayısında yayınlanmıştır. Bütün hakları yazarı Andrei Alexandrescu’ya aittir. Aynı yazı, bu çevirinin yapıldığı tarihten kısa bir süre sonra Doctor Dobbs Journal‘ın sitesinde de yayınlanacaktır.

Bit ve Byte kavramı, Renk derinlikleri

Posted by samgar at 12:29 0 Comments

Bit , byte ne demektir, Dosyalar nasıl saklanır.? Hepimiz duymuşuzdur 32 bit , 16 bit , 4096 renk gibi çeşitli renk derinlikleri vardır. Fakat bu bit ne demektir, kaç bit kaç renge eşdeğerdir. Arka planda renkler nasıl hazırlanır. Hex in mantığı nedir? Gibi sorulara yanıt bulacağınız bir makale.

Bit sistemi

Bildiğiniz gibi bilgisayar sistemleri 1’lerden ve 0’lardan anlamaktadır. Bu 1 – 0 olayı aslında işlemcide bulunan transistor ün açık ya da kapalı olma durumudur. Genel olarak da mors alfabesi sistemine benzer bir şekilde çalışmaktadır.
Bir dosya kaydedildiği zaman ya da bellekte olduğu zaman bu şekilde 1ler ve 0lar ile yer alır.İşlemcimiz bu bitleri belli parçalar halinde işler bu da sürekli duyduğumuz 32bit – 64bitlik durumdur.
Peki, nasıl oluyor da biz bu 1leri ve 0ları anlamlı şekillerde görmekteyiz? Bilgisayarımızda yüklü olan programlar ilgili dosyalardaki bitleri gruplandırarak anlamı parçacıklara çevirirler.

C++’ın Template Sihirbazı

Posted by samgar at 12:29 0 Comments


Nesne yönelimli programlama ilgilenmiş olanların ilk öğrendiği kalıplardan biri overloaded(aşırı yüklenmiş) fonksiyon tipleridir. Aşırı yüklenmiş fonksiyonlar Farklı tipte parametreler alan veya farklı tipte değer döndüren aynı isimli fonksiyonlardır. Generic ile aşırı yüklenmiş fonksiyonlar arasındaki temel fark aşırı yüklenmiş fonksiyonlar da her fonksiyon için ayrı kod yazılır ve her fonksiyon başka başka işlemler yapabilir. Generic fonksiyonlar farklı tipte değerlerin alınıp aynı işlemlerinin yapılması gereken durumlarda kullanılır.
Nesne yönelimdeki template nin tam Türkçesini bilmediğim için yazımda kullanamıyorum. Eğer öğrenirsem metini düzeltebilirim. Kodları linux altında derledim.Yeni bir Linux kullanıcısı olarak programlam geliştirmek için en iyi ortamın Linux olduğunu düşünüyorum eğer bu metinle ilgileniyorsanız ve Linux kullanmıyorsanız bir an once geçmenizi tavsiye ederim dedikten sonra…

Cache Bellek Nedir?

Posted by samgar at 12:28 0 Comments

Siz bir uygulamayı ikinci çağırışınızda ilk çağırışınızdan hızlı açılıyorsa cache bellek ile tanıştınız demektir. Peki bu olayın perde arkası nedir?
Siz bir uygulamayı ikinci çağırışınızda ilk çağırışınızdan hızlı açılıyorsa cache bellek ile tanıştınız demektir. Peki bu olayın perde arkası nedir?

Cache Bellek en son yaptığınız işlemleri değerlendirerek bir sonraki yapacağınız işlemi %90 tahmin edip bu bilgileri tutan L1 ve L1 in %10 tutturamaması durumunda bu %10 un da %90′ı oranında (siz hesaplayın artık) tahmin edip bu bilgileri tutan L2 adında işlemci çekirdeğine gömülü iki adet statik Ram den oluşur.

Cpu L2′de de bu bilgileri bulamamsı durumunda RAM’e gider. Orada da yoksa HDD’e gider.

C++’ın türden bağımsız toplulukları (generic containers)

Posted by samgar at 12:23 0 Comments

Çoğu program, aynı türden birden fazla nesneyi daha sonradan üzerlerinde işlem yapmak amacıyla bir araya getirir. Örneğin, tanıdık ödev programlarından olan öğrenci notlama programı; öğrencileri bir öğrenciler topluluğunda, her öğrencinin
derslerini bir dersler topluluğunda ve her derste aldığı notları da bir notlar topluluğunda tutar.
Nesneleri böyle bir araya getiren çeşitli veri yapıları vardır.
Bu tür veri yapılarına, bu yazı içinde C++ dünyasında kullanılan ‘container’ın karşılığı olarak ‘topluluk’ diyeceğim.
C programlama dili, yalnızca bir tane topluluk sunar: dizi.
Dizi, C’nin temel dil olanaklarındandır. C’nin standart kütüphanesi topluluklar konusunda hiçbir yardımda bulunmaz. Ne yazık ki C’nin dizileri, kendi büyüklüklerinden bile haberleri
olmayan çok basit yapılardır.
C++, C’nin topluluklar konusundaki bu eksikliğini şablon (template) olanağı yardımıyla büyük ölçüde giderir ve programcılara ustalar tarafından tasarlanmış, yazılmış ve
denenmiş topluluklar ve algoritmalar sunar.
C++ standart kütüphanesinde bulunan topluluklar çok kısaca şöyle tanıtılabilirler:

Türden bağımsız bir toplama algoritması

Posted by samgar at 12:22 0 Comments

C++’ın şablonları (templates) sayesinde, türden bağımsız algoritmalar ve veri yapıları oluşturabiliriz.
Şablonların ve türden bağımsız programlamanın ne olduğunu göstermek için, önce şablon olanağı olmayan C dilinde yazılmış bir algoritma vereyim.
‘toplam’ adındaki bu algoritma, kendisine gösterilen bir dizi tamsayının toplamını döndürüyor olsun:
int toplam(int const * bas, int const * son)
{
    int sonuc = 0;

    for ( ; bas != son; ++bas)
    {
        sonuc += *bas;
    }
    
    return sonuc;
}
Bu algoritmada iki noktaya değinmek istiyorum.

SQL Injection

Posted by samgar at 12:22 0 Comments

SQL Injection web uygulamalarında ki en ciddi açıkların başında gelir. Özellikle frameworkler ve ORM (Object Relational Mapping) gibi ekstra veritabanı katmanlarının popülerleşmesi ile eskisine göre bugünlerde biraz daha az görülmektedir ama emin olun hala heryerdeler!

Web uygulaması geliştiricilercileri SQL Injection’ ı tam anlamadıklarından dolayı bazı ölümcül hatalar yaparlar. Bu yüzden bugün bilinen basit SQL Injection metodları o kadar çok görünmese de ileri de anlatacağımız ileri seviye SQL Injection açıklarını çok büyük firmalardan, hazır sistemlere kadar bir çok yerde görebilirsiniz.

Güvenlik Günahı !

Ben hackleyemediysem kimse hackleyemez.

Yapay Zekâ (Artifical Intelligent)

Posted by samgar at 12:21 0 Comments



Yapay Zeka (Artifical Intelligent)’nın birçok tanımı olmasına rağmen bana en uygun tanım; makinelere insanlar gibi düşünme, karar verme, karşılaştırma, analiz etme gibi birtakım fonksiyonların kazandırılmasıdır.
Konuya geçmeden öncelikle işin tarihi kısmına kısaca bir göz atalım;
"Yapay Zekâ" kavramının geçmişi modern bilgisayar bilimi kadar eskidir. Fikir babası, "Makineler düşünebilir mi ?" sorusunu ortaya atarak Makine Zekâsını tartışmaya açan Alan Mathison Turing’dir.
Alan Mathison Turing Kimdir?
Bir matematikçi olan Alan Turing bilgisayar alanının büyük öncülerindendir. Günümüzde “Turing makinesi” ve “Turing testi” ile anılır. Matematiksel algoritmayı dijital bilgisayarlara uygulamıştır. Araştırmaları yapay zeka alanının doğal yaratılması ve makineler arasındaki ilişkisinde yoğunlaşmıştır. Turing dijital bilgisayar kavramının gelişmesine öncülük etmiştir. Günümüzde bilgisayar bilimcileri hala onun makalelerinden yararlanmaktadırlar...

NANO TEKNOLOJİ

Posted by samgar at 12:20 0 Comments
Nano Teknoloji içinde bulunduğumuz yüzyılın en önemli sanayi devrimi olarak nitelendiriliyor. Kirlenmeyen ve kendi kendini temizleyen yüzeyler, bakterisiz ortamlar, birçok hastalığın tedavisi, çizilmeyen arabalar. Aslında birçoğu bugün hayatımıza girdi bile!
Nano teknoloji sayesinde üzerinize giydiğiniz elbisenin veya evlerinizdeki koltukların ıslanmaması, kirlenmemesi mümkün. Otomotiv sektörünün en önemli sorunlarından biri olan araçların üzerindeki boyaların çizilmesi ve kaportalarının aşınması sorunu da nano teknoloji sayesinde çözülüyor.

Çok fazla pencereye sahip olan ve temizlenmesi sorun olan dış cepheler kendi kendini temizleyebiliyor. Ev kadınlarının nefret ettiği mutfak, banyo ve tuvalet temizliği sorun olmaktan çıkmış durumda. Ahşap veya beton yapılar nemden, sudan veya kirden etkilenmiyor.

Aslında doğada zaten var olan mevcut birçok teknoloji hayata geçirilmiş. Örneğin Amazon ve Afrika da balta girmemiş ormanlarda yetişen ve oradaki insanlar tarafından kutsal kabul edilip uğruna tapınılan bir bitki olan Lotus çiçeği hayatı boyunca hiçbir şekilde üzerinde su, yağmur, çamur ve kir barındırmamaktadır. Lotus çiçeğinden esinlenerek hayata geçirilmiş nano teknolojik koruma sistemleriyle elde edilen bu sonuca da lotus etkisi deniliyor.

Dünya ülkelerinin 2008 için bu teknolojiye ayırdıkları pay tam 8,6 milyar dolar. 2015 yılı için belirtilen rakam ise 1 trilyon dolar.


NANO TEKNOLOJİDEN YARARLANAN BİR TÜRK ŞİRKETİ

Sponsor

Yazılarım Korunuyor

Yandex Metrica

Yandex.Metrica

Toplam Sayfa Görüntüleme Sayısı

back to top