Ana içeriğe atla

Kayıtlar

What is Gui and Swing ?

Temel olarak gui ve swing Javada birer kütüphanedir ve birbirleriyle aynı şey oldukları söylenebilir.Desktop programlama da denilebileceği gibi core Java çalışanların kolayca öğrenebileceği ve artık görüntüde birşeyler istiyorum diyecekleri bölümdür.Bu kütüphaneleri öğrenerek bir çok çok şey yapılabilir.Pencere oluşturulur ve butonlar,tablolar kullanılarak database ile bağlanabilir ya da internet sitelerine query gönderilip request alınabilir.Kısacası tasarım ve görüntüye dair bir çok şey yapılabilir.Bunları yapmak için internette araştırma yaptığınızda karşınıza bu kütüphanelere has bir çok metod ve yeni tanımlar ile karşılaşacaksınız.Bunlar direk kodlar üzerinde yazılmış olarak bulacaksınız.Ancak büyük projelerde hiçbir zaman bu kodları tek tek elle yazmıyoruz.Bunun için netbeans'da yüklü olarak gelen JFrame class oluşturarak ve design kısmından çek bırak şeklinde tasarım yaparız.Netbeans bizim için tanımlamaları ve koordinatları otomatik olarak kod şeklinde ekleyecektir.Eclipse ...

What is Exception ?

Exception Türkçeye "istisna" olarak çevrilebilir.Ben java üzerinden sizlere bu konuda bilgi vereceğim.Java exceptionlara karşı çok sert davranır.Yazılan bir programda çalışmasına fırsat bırakmadan exception oluşma  ihtimali varsa compiler edilmeden hata verecektir.Genelde programcılar arasında bu durum pek hoş karşılanmaz.En azından deneyimi olmayanlar arasında...Bir exception varsa ben düzeltirim diyerek programın çalıştırılmasını en azından compiler edilmesini isterler.Ancak bu sıkı tutum büyük projelerde bulunmaz nimettir.Çünkü program ilk başta hata vermeyebilir. 10 bin satırlık programınız olduğunu düşünün ve birde bakmışız ki programda bir açık var ve bu açığı deneyen kullanıcı programın çökmesine neden oluyor.İşte bu şekilde büyük programlarda açığı kapatmak için yeniden yazmak bile gerekebilir.Biz bunu ufak parçalarda çıkabilecek sorunları o an düşünüp çözmezsek söylediğim örnekte olduğu gibi büyük problemler ortaya çıkabilir.Ufaktan exceptionların ne tür sebeplerden ...

SOLID Object Oriented Programing Principles

SOLID program yazarken (ideal program) kullanmamız gereken bazı kuralların ya da tasarımların baş harflerinin kısaltmasıdır.5 adet standart kuralımız vardır.Bu arada tasarımın tanımını daha önceden yapmıştık ancak hatırlatmada fayda var.Tasarımla seneler boyunca bir çok programcının karşısına çıkan sorunların çözümlenmiş şekilde en ideal olarak sunulmuş halidir.Bizimde Amerikayı tekrardan keşfetmemize tabiki gerek yok.Üstadlarımızın tavsiyelerine , oluşturdukları prensiplere ve kurallara uyarak gayet düzgün programlar yazabiliriz ve bunları testable şekilde sunarız.Uzun lafın kısası konumuza geri dönüyorum. S ingle Responsibility - Her kullanılan modülün tek bir işlevi olmalı ve olası bir değişiklikte tek bir nedene dayanmalıdır. O pen/Closed - Kodumuz geliştirmeye açık yeniden yapılanmaya kapalı olmalıdır.Refactoring ve ya metodun tekrardan yazılması gibi bir durum söz konusu olmamalıdır. L iskov's Substitution - Türeyen sınıf üyeleri ile temel sınıfın üyelerinin aralarınd...

What is design pattern ?

Tasarım desenleri tam olarak Türkçe karşılığı olmasa da bu şekilde ifade edilir.Genelde yazılımın tasarım sürecinde karşımıza çıkan sorunlara , tecrübeler doğrultusunda kaliteli çözümler üretilen kalıplardır.Bu kalıpları kullanarak daha ileride karşımıza çıkacak sorunlara yada updatelere esnek çözümler bulabiliriz.Bu sayede hem kodlarımız daha anlaşılır olur hemde değişiklikler rahatlıkla uygulanabilir. Var olan bir problem üzerinde çalışan programcı bulunan çözümü paternleri bildiği için hemen anlayacak ve nasıl bir yol izleyeceğini bilecektir. Creator Design Patterns Abstract Factory Builder  Prototype Singleton Verdiğimiz bilgileri örnekle açıklamak gerekirse; ihtiyacımız olan bütün sistemin kullanabileceği ancak sadece bir tane oluşturulabilen bir class tasarlamak.Biz bunu yukarıda da isimlerinden anlaşılacağı gibi zaten bu yapıyı başkalarıda kullanmış ve en stabil duruma getirilip adı Singleton Design Pattern koyulmuş tasarımı kullanabiliriz. Abstract Factory , B...

Nesnelerin İnterneti

Apple , Samsung ve Google gibi bir çok büyük firmanın akıllı ve nesneleri internetle birbirine bağlama gibi şuan bize uçuk gelen fikirler üzerinde çalışıyorlar.Google'ın Nesti satın alması , Apple'ın patentlediği bir çok fikir bize bu yönde bir gelecek olduğunu gösteriyor.Özellikle Apple daha çok yazılım olarak ön planda gibi gözüküyor.Hatta patentini aldığı bir sistemde iphone ile kapıdan girildiğinde ışıkların yanması örnek verilebilir.Tabi bu evdeki bir çok eşya içinde geçerli ve düşünülebilecek bir şey.Örneğin yine iphone ile bir uygulama yardımıyla banyonuzu , salonda tv izlerken hazırlanmasını sağlayabilir.Kapı çaldığında gelen kişiyi telefon ekranınızdan görebilir yada yemeğin altını bir tuş ile kapatabilirsiniz.Hemde bunları yapmak için eşyaların yanına gitmeye gerek bile yok.Aynı şekilde evden çıktığında ısıtma sistemini otomatik olarak kapatan ve eve yaklaştığında siz gelmeden ısınmasını sağlayan bir sistemde elbette yapılabilir.Bunlar 5 dk düşünerek ürettiğin basit f...

Yazılımda Başarıya Ulaşmayı Engelleyen Faktörler

İşte Yazılımda Başarıya Ulaşmadaki Engellerden 10′u Kendi Görüşlerimle Anlatmaya Çalıştım; İşte O Engeller Sosyal Medya, Online Oyunlar, İstikrarsızlık, Üretememezlik, Aile Baskısı, Sosyal Çevre, Ağır Dersler, Çabuk Pes Etme, Sabırsızlık… 1)Sosyal Medya; Zamanımızın büyük çoğunluğunu facebook,twitter,instagram vb yerlerde geçiriyoruz bu da bizim çalışmamıza engel olup bir şeyler üretmemizin önüne geçiyor 2)Online Oyunlar; Yazılımcıların en büyük düşmanı sadece yazılımcılar değil tüm insanların en büyük düşmanı zamanın nasıl geçtiğini fark etmezsin bile.. 3)İstikrarsızlık; Tam bir fikir üretirsin yazamaya başlarsın gider gider ve devamı gelmez… 4)Üretememezlik; Acayip kodlama yapmak istersin ama bir fikir olmaz üretecek bir şeyin olmaz ve boşlukta kalırsın 5)Aile Baskısı; Kafanda proje olur yazmak istersin ama ailen bilgisayar başında çok zaman geçirdiğinden dolayı rahatsız olur bu durum senide üzer bunun en iyi ilacı  ÜNİVERSİTE  ! 6)Sosyal Çevre; Yine bi...

Discrete Mathematic Final Soruları

İlk soruda sayıları karıştırdım büyük ihtimal ama zaten sayıların sorunun çözümüyle bir alakası yok.3. sorunun d şıkkını hatırlayamadım. 02.01.2014

Graphs

Graphlar verilerin sıralanma şekilleri olarak da ifade edilebilir.Network ağlarının yapısında , arama ve sıralama algoritmalarında başvurulan şekillendirmelerdendir.Bir çok çeşit Graph bulunmaktadır.Öncelikle yapısına bakacak olursak.G=(V,E) şeklinde gösterilir.Burda V : Vertex yani tepe,doruk noktası yada en yaygın biçimiyle düğüm(node) denilebilir.:E : edge ise kenar , bağlantı anlamındadır.Vertex hiçbir zaman boş küme olamaz.Vertexin boş küme olması zaten bir graph olmadığı anlamına gelir. Graph çeşitlerine bakalım: Directed Graph : Yönü olmayan graphlardır. Simple Graph : Simple graphda döngü(loop) bulunmaz. Ağırlıklandıma yoktur. Multi Graph : Döngü bulunur veya çoklu kenar vardır . Pseudo Graph : Döngü ve çoklu kenarın ikiside bulunur.    Soldaki fotoğrafta graphların özellikleri liste şeklinde verilmiştir. Not : Yararlı olacak bir kaynak bulduğumda buraya bağlantısını ekleyeceğim.

Temel Veri Yapıları

Veri yapısı ,  bilginin saklanmış biçimidir.Programın daha verimli çalışmasının sağlanması açısından programcının veri yapılarını bilmesi gerekir.Programların hızı dikkate alındığında farklı tipte veri yapıları kullanılırsa daha verimli kodlar yazılabilir.Temel veri yapılarımız: dizi , yığın , kuyruk ve listedir. Diziler  Aynı türden verilerin tutulduğu gruplardır.Bir indis yardımıyla bulundukları konum ifade edilir.İndis her zaman 0 dan başlar ve n'e kadar devam eder.Dizilerde kullanılabilecek veri türleri Char , İnt , Float , Double sırasıyla 1,2 ,4 ve 8 bytelık alan tutarlar. Yığınlar Günümüzde en çok kullanılan veri yapısı yığınlardır.Son giren ilk çıkar veya LIFO(last in ,first out) kuralıyla çalışırlar.Bu veri yapısını üst üste koyulan bozuk paralar gibi düşünebiliriz.En üstte olan (en son koyduğumuz) parayi ilk olarak almak zorundayız.Ayrıca yığınlar derine arama yapan özyinelemeli algoritmalarda kullanılmaktadır. Kuyruk Bu veri yapısı ilk giren ilk çıkar veya FIF...

Polindrom Sayılar

Birbirini takip eden sağdan sola yada soldan sağa okunuşları değişmeyen sayılar yada karakterlere polindrom sayılar(karakterler) denir. C'de bir polindrom sayı üretme programı yazarsak eğer kodlarımız şu şekilde olacaktır. #include<stdio.h> #include<conio.h> void pol_al(int n) { if (n == 1) printf("1"); else { pol_al(n - 1); printf("%d", n); pol_al(n - 1); } } int main() { int n = 0; printf("Sayi:"); scanf_s("%d", &n); pol_al(n); getchar(); getchar (); return 0; }

Özyineleme

Maurits Cornelis Escher    Hollandalı ressam ve grafik sanatçısının özyinelemeye güzel bir örneği...

Phone Gap nedir ? Neden PhoneGap kullanmalıyız ?

Öncelikle söylemem gereken bazı şeyler var daha doğrusu tanımlamam gereken.Gelişen teknolojiyle birlikte artık herkesin evinde bilgisayar olmasını bırakın herkesin cebinde bile var.Üstelik internet bağlantısıda yeterince iyi.Ve cebimizdeki bu bilgisayarların (telefon demek çok basit kaçar) kendine ait işletim sistemleri bulunmakta.Şuanda en çok bildiğimiz işletim sistemleri; Android , İos , Windows Phone ...Bunlar gibi toplam 8 adet telefon işletim sistemi bulunmaktadır.Biz bu işletim sistemlerinde yazılım yada uygulama geliştirmek istesek örnek veriyorum İos için objective-C , Android için Java bilmemiz gerekiyor.Yani ikisinde de uygulama geliştirmek istiyorsak hem Objective-C hemde Java bilmemiz gerekli.Ancak Phone Gap kullanarak sadece Css , HTML ve JavaScript kullanarak 8 işletim sistemi içinde yazabiliyoruz.Ancak bu sınırlı bir ayrıcalık.Büyük projeler için kullanılamayabilir.

Merge-Sort için güzel bir video

Sieve of Eratosthenes (Asal Sayı Bulma)

#include <stdio.h> int main() { int a, b, c = 0; printf (" Bir sayi giriniz: "); scanf ("%d", &a); printf ("\n"); for (b = 2; b < a; b ++) { // Kullanıcıdan alınan sayı 2'den başlanarak, kendisine kadar // olan tüm tamsayılara sırayla bölünüyor. Eğer tam olarak // bölünüyorsa c'nin değeri bir artırılıyor. if (a % b == 0) c ++; } // c'nin başlangıç değeri 0 idi.Program çalıştıktan sonra c'nin  // değeri 1 olarak kalması , // kullanıcının girdiği sayının 2'den itibaren sadece // kendisine tam olarak bölünebildiği anlamını taşır. Yani girilen // sayı asaldır. printf (" %s\n", (c == 1) ? "Sayi asaldir." : "Sayi asal degildir."); return 0;

Haftanın Sorusu

Evet arkadaşlar hedef kitlemi ve okuyucularımızın hepsi Bilgisayar Mühendisliği 1. sınıf yada 2. sınıf olduğu için C programlamaya başlangıç aşamasında bir soru yazıyorum.Soru elimdeki bir kitaptan alıntıdır.Cevap bir çok çeşitte olabilir.Kitapta cevap yok kendimiz halledeceğiz :) Kolay gelsin.Bunu da bir gelenek haline getirip her hafta biraz daha zor sorular yazalım.Cevabın kodlarını ister dosya olarak ister normal yazı şeklinde yoruma bırakabilirsiniz. Soru şöyle: Günde ortalama ... km yol yürüyen bir insan doğumundan bugüne kadar dünyanın çevresini kaç kez dolaşacak kadar yürümüş olur?(dünyanın çevresini 40.000 km olarak alınız,İnsanın kaç yaşında olduğu ve günde kaç km yürüdüğü bilgisini kullanıcıdan isteyiniz.)

Kod Yazmak

Kod yazmanın önemi ve bir çok okulda yeteri kadar üzerine düşülmediğini anlatan , ilham alabileceğimiz bir video.

Bilgisayar Mühendisliğine Giriş

Öncelikle Bilgisayar Mühendisliği alanına yeni başlamış biri olarak sadece gözlemlerimi ve edindiklerimi yazacağımı söylemem lazım.Konularla alakalı daha bilgili olan arkadaşlarımız varsa mailden yada aşağıdan yorum yaparak bana ulaşabilirler.Bende bilgi alışverişinde bulunmaktan memnun olurum :) . Şimdi İstanbul üniversitesi Bilgisayar Mühendisliği 1. sınıf güz yarıyılında alınan dersler; İntroduction to Algorithm Discrete Mathematics Calculus 1 Fizik 1 BMG Seçmeli dersleri saymıyorum çünkü onlar konuyla alakasız ve her üniversite 1. sınıf öğrencisine verilen ortak derslerdir.Şimdi burada benim kişisel görüşüm olarak en önemli ve zor olan ders Algoritmalar.Algoritmalara bilmeyenler için bir yazılımın genel tablosu olarak söylenebilir.Bu derste özellikle 1 tane proglama diline yönelinmez genel olarak hepsinde mantığın kavranması için verilir.Ama uygulama dersinde eski ama her daim kullanılan C dilince örneklemeler yapılıyor.(En azından İÜ'de böyle)Ders ingilizce anlatılıyo...