4 Ekim 2016 Salı

Yazılımı kullanacak müşterinin ihtiyaçları nasıl belirlenir?

  • Planlama oyunu toplantıları.
  • Anket ile bilgi toplama.
  • Yazılımının bir önceki sürüme bakılır.
  • Benzer yazılımları inceleme.
  • Prototip çıkarma
  • Başka?
  • Sanırım böyle olmalı (tahmin)? (Tahminlerden uzak durulmalıdır.)


Müşteriden elde edilen bilgiler bizim için bir harita niteliği taşıyacaktır!

Testin yazılım yaşam çevrimi içerisindeki yeri nedir?

Yazılım testti; yazılım geliştirmenin her aşamada ayrıca ele alınmalıdır. Sadece kodlamadan sonraki test kısmında değil.

Yazılım işi için harcanması gereken efor nelerdir?

1.Proje başlangıç çalışmaları
2.Gereksinimleri belirle ve Gereksinim dökümanını oluştur.
(Planlama oyunu,benzer sistemleri inceleme,vb teknikleri kullan)
3.Şartnameyi oluştur.
4.Görevlendirme
5.Yazılım testlerini ve test planları
6.Tasarım dokmanlarını oluştur.
(Donanım ve yazılıma ait çalışma ortamı için arayüzleri oluştur.)
7.Kaynak kodu
(Yazılım mimarisi,Programlama)
8.Bakım safası
... Başka neler olabilir?

Yazılımı Test Eden Kişinin Amacı Nedir?


  • Hataları bulmak.
  • Yazılımın gelişimine mümkün olan en büyük katkıyı sağlamak.
  • Hatanın giderildiğinden emin olmak.

Hatasız yazılım üretilebilir mi?

Yazılımların sahip oldukları özelliklerin artması. İsterlerin farklılaşması hatasız yazılımların üretilmesini neredeyse imkansız hale getirmiştir!!!

Teknik bariyerleri kaldıracak imkanı ve zaman sorununu giderebilmek mümkün olsa o zaman
hatasız yazılımlar üretilebilir.
(Sonsuz işlemci gücüne sahip bir bilgisayar & Sonsuz zaman)

Yazılım Hatalarının bulunduğu noktaya göre maliyeti

Erken safhalarda bulunan bir yazılım hatasının birim maliyeti daha az olacaktır.

İsterler                         1$
Tasarım                     10$
Kodlama                 100$
Kullanım              1000$

Yazılımda hata hangi safhalarda daha çok meydana gelir?

Yazılım geliştirilmesi sırasında karşılaşılan hataların çoğu, yazılımların gereksinimlerini yanlış belirlenmesindendir. Aşağıda istatiksel olarak yazılım hatalarının yaşam döngüsü içerisindeki oranları verilmiştir.

1.Tanımlama (~= 55?%)
2.Design (~= 25?%)
3.Code (~= 15%)
4.Other (~= 5%)

Algoritmada Kullanılan Terimler


Tanımlayıcı: Programcı tarafından oluşturulur. Programdaki değişkenleri, sabitleri, kayıt alanlarını, özel bilgi tiplerini vb. adlandırmak için kullanılan kelimelerdir. Tanımlayıcılar, yerini tuttukları ifadelere çağrışım yapacak şekilde seçilmelidir.

  1. İngiliz alfabesindeki A-Z veya a-z arasındaki 26 harf ile 0-9 arası rakamlar kullanılabilir. 
  2. Sembollerden sadece alt çizgi (_) kullanılabilir. 
  3. Tanımlayıcı isimleri harfle veya alt çizgiyle başlayabilir. 
  4. Tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan oluşamaz.

Değişken: Programın her çalıştırılmasında, farklı değerler alan bilgi/bellek alanlarıdır. Değişken isimlendirilmeleri, tanımlayıcı kurallarına uygun biçimde yapılmalıdır. Aşağıda çeşitli örnekler verilmiştir.

Dikdörtgenin uzun kenarının aktarıldığı değişken:
  • uzun_kenar,
  • UzunKenar,
  • uzunKenar
Bir öğrenciye ait ismin aktarıldığı değişken:
  • isim,
  • ogrenci_isim,
  • ogrenciIsim


Atama:Değişkenlere değer aktarma işlemidir. Değişkenlere atanan bu değerler daha sonra tekrar kullanılabilirler. Sağdaki Değer sonucu Değişken’e aktarılır. Bu durumda Değişken’in bir önceki değeri varsa silinir.

Sayaç: Bazı işlemlerin belirli sayıda yaptırılması ve üretilen değerlerin sayılması gerekebilir.
Bu tür sayma işlemlerine algoritmada Sayaç adı veriler.Sayaçlar da birer değişkendir.

Sayac=Sayac+1 Bu işlemde Sayac değişkenine 1 eklenmekte ve oluşan sonuç yine kendisine yani Sayac değişkenine aktarılmaktadır.


Döngü: Bir çok programda bazı işlemler, belirli ardışık değerlerle gerçekleştirilmekte veya belirli sayıda yaptırılmaktadır.
Programlardaki belirli işlem bloklarını, verilen sayıda gerçekleştiren işlem akış çevrimlerine “döngü” denir.
Örneğin; 1 ile 1000 arasındaki tek sayıların toplamını hesaplayan programda T=1+3+5 …. yerine 1 ile 1000 arasında ikişer artan bir döngü kurulur ve döngü değişkeni ardışık toplanır.




3 Ekim 2016 Pazartesi

İşlemler ve Operatörler

İşlemler 3’e ayrılır:
1-Matematiksel İşlemler
    Temel Aritmetik İşlemler: Toplama, çıkarma, çarpma, bölme.
    Matematiksel Fonksiyonlar: Üstel, logaritmik, trigono-metrik, hiperbolik vb.
2-Karşılaştırma İşlemleri
    Değişkenlerin büyük olma, küçük olma ve eşit olma durumlarını kontrol eden işlemlerdir.
3-Mantıksal (Logic) İşlemler
    «Ve, Veya, Değil» operatörleri hem matematiksel işlemlerde hem de karar ifadelerinde kullanılır.
    VE bağlacı ile söylenmek istenen her iki koşulun da sağlanmasıdır. VE bağlacı ile bağlanmış önermelerden en az birinin yanlış olması sonucu yanlış yapar.
    VEYA bağlacı ile bağlanan koşullardan bir tanesinin doğru olması sonucu doğru yapar.
DEĞİL bağlacı; doğruyu yanlış, yanlışı doğru yapar.

Örnek: Yazılım departmanında çalışan erkek personellerden yaşı 30’un üzerinde olanları ekrana yazdır.

Eğer;
------1.Koşul-------          ------2.Koşul----
(perCinsiyet = Erkek) VE   (perYas > 30)       ise ekrana yazdır.

30 Eylül 2016 Cuma

Mantıksal Yapılar

Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış şemalarında genel olarak üç basit mantıksal yapı kullanılır.

1.Sıralı Yapı: Sıralı yapı, hazırlanacak programdaki her işlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem başlayamaz.





2.Karar Verme Yapısı: Birden fazla sıralı yapı seçeneğini kapsayan modüllerde, hangi şartlarda hangi sıralı yapının seçileceğini belirler.





3.Tekrarlı Yapı: Algoritma içinde, bazı satırlar tekrarlı şekilde işlem görüyorsa, bir döngü söz konusudur. Döngülere belirli bir koşul geçerli olduğu sürece devam eden eylemleri tanımlamak için başvurulur.




Algoritma Gösterim Şekilleri

1.Düz yazı ile gösterim,
2.Sözde kod (pseudocode) ile gösterim,
3.Akış şeması ile gösterim.


Düz Yazı ile Gösterim: Çözülecek problem, adım adım metin olarak yazılır.
Her satıra numara verilir.  ‘BAŞLA’ ile başlanıp ‘BİTİR’ ile sonlandırılır.

Örnek:
1.BAŞLA
2.Yerinden kalk
3.Yönün tahtaya doğru mu?
    Hayırsa tahtaya dön
    Evetse 4. adıma git
4.Tahtaya doğru yürü
5.Tahtaya geldin mi?
    Hayırsa 4.adıma git
    Evetse 6. adıma git
6.Kalemi al
7.Adını yaz
8.BİTİR

Örneğin amacı, adımların tutarlılığını ve mantıksal sırasını göstermektir.
Burada emirler, belli sorgulamalar yapılarak ve mantıksal bir sıra içinde verilmiştir.
Yerinden kalk emri verilmeden kişiden yürümesi istenemez.
Kalemi almadan adını yaz emrinin verilmesi doğru olmaz.
Sorgulamalarla da işlemi yapıp yapmadığı kontrol edilmiştir.
Aslında bilgisayar bu tür işleri yerine getiremez.
Kullanıcılar bilgisayarlara belli girdiler verir.
Onlar da programcının verdiği adımlara göre bu girdiler üzerinde matematiksel ve mantıksal işlemler yaparak bir çıktı üretirler.


Sözde Kod (Pseudocode) ile Gösterim

Herkesin anlayabileceği ve rahatlıkla bir programlama diline çevrilebilecek basit komutlardan oluşan bir dildir.
Sözde kodun temel işlevi program geliştirmeye geçmeden algoritmayı oluşturmak ve üzerinde tartışabilmektir.
Sözde kodlar, doğrudan konuşma dilinde ve programlama mantığı altında, eğer, iken gibi koşul kelimeleri ve > = < gibi ifadeler ile beraber yazılır.
Programda kullanılacak elemanları temsil etmek üzere uygun isimler veya değişkenler seçilir.
Cebirsel notasyon ve kararlar kullanarak aritmetik işlemler gerçekleştir.




Akış Şemaları ile Gösterim

Bir algoritmanın görsel şekiller ve sembollerle ifade edilmiş haline «Akış Şemaları» adı verilir.
Akış şeması sembolleri ANSI (American National Standards Institute) standardı olarak belirlenmiş ve tüm dünyada kullanılmaktadır.
Algoritma doğal dille yazıldığı için herkes tarafından anlaşılamayabilir ya da başka anlamlar çıkarılabilir. Ancak akış çizgelerinde her bir şekil standart bir anlam taşıdığı için farklı yorumlanması mümkün değildir.






Algoritmaların Sahip Olması Gereken Genel Özellikler


Algoritmaların temel amacı giriş bilgisini işleyerek çıkış bilgisi oluşturmaktır. Ancak her durumda bir algoritmanın çıkış bilgisi istenenleri tam olarak karşılayamaz. Böyle durumlarda ilk algoritmanın ürettiği çıkış bilgisi başka bir algoritmaya giriş bilgisi olarak gönderilir ve böylece kullanıcı istediği bilgiye sahip olmuş olur.


Giriş/Çıkış Bilgisi: Algoritmalarda giriş ve çıkış bilgileri olmalıdır. Dışarıdan gelen verilere giriş bilgisi denir. Bu veriler algoritmada işlenir ve çıkış bilgisini oluşturur. Çıkış bilgisi her algoritmada mutlaka vardır. Algoritmaların temel amacı giriş bilgisini işleyerek çıkış bilgisi oluşturmaktır. Ancak her durumda bir algoritmanın çıkış bilgisi istenenleri tam olarak karşılayamaz. Böyle durumlarda ilk algoritmanın ürettiği çıkış bilgisi başka bir algoritmaya giriş bilgisi olarak gönderilir ve böylece kullanıcı istediği bilgiye sahip olmuş olur.  

Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmelidir.
Algoritma sonsuz döngüye girmemelidir.

Kesinlik: Her komut, kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.
Algoritmanın her adımı anlaşılır, basit ve kesin bir biçimde ifade edilmiş olmalıdır.
Kesinlikle yorum gerektirmemeli ve belirsiz ifadelere sahip olmamalıdır.


Etkinlik: Yazılan algoritmalar etkin ve dolayısıyla gereksiz tekrarlardan uzak oluşturulmalıdır. Bu algoritmanın temel özelliklerinden birisidir. Ayrıca algoritmalar genel amaçlı yazılıp yapısal bir ana algoritma ve alt algoritmalardan oluşturulmalıdır. Böylece daha önce yazılmış bir algoritma daha sonra başka işlemler için de kullanılabilir.
Buna örnek vermek gerekirse eğer elimizde, verilen n adet sayının ortalamasını bulmakta kullandığımız algoritma varsa bu algoritma, bir sınıfta öğrencilerin yaş ortalamasını bulan bir algoritma için de kullanılabilmelidir.

Başarım ve Performans: Amaç donanım gereksinimi (bellek kullanımı gibi), çalışma süresi gibi performans kriterlerini dikkate alarak yüksek başarımlı programlar yazmak olmalıdır. Gereksiz tekrarlar ortadan kaldırılmalıdır. Bir algoritmanın performans değerlendirmesinde aşağıdaki temel kriterler göz önünde bulundurulur.
Birim İşlem Zamanı
Veri Arama ve Getirme Zamanı
Kıyaslama Zamanı
Aktarma Zamanı


27 Eylül 2016 Salı

Algoritma Nedir?

Algoritma:  Algoritma kelimesinin matematikte kullanılan "logaritma" kavramıyla bir ilgisi yoktur. Algoritma kelimesi, IX. yüzyıl ünlü Türk bilgini matematikçi "Ebu Cafer Muhammed bin Musa El - Harezmi"nin isminin kısaltılmasından türetilmiştir. "El - Harezmi" kelimesinden esinlenerek İngilizce'de "algorithm" denilmiştir.

Algoritma en geniş anlamıyla, verilerden hareketle istenen sonucun nasıl alınacağını gösteren bir uygulama metodudur.
Algoritma; çözüm yolu aranan problemin herhangi bir adımında ne gibi işlemler yapılacağının tıpkı bir yemek tarifinde olduğu gibi yazıya dökülmüş şeklidir. Algoritmada her adımda giriş veya çıkış bilgileri, bölme, çarpma, aktarma, test ve benzeri işlemler yer almalıdır. Belli bir sayıda adımdan sonra algoritma mutlaka son bulmalıdır. Algoritma anlatımda kullanılan cümlelerin kolay, basit ve benzer konular için de geçerli olmasına dikkat edilmelidir. Program geliştiricisi çözümü istenen probleme uygun algoritmayı kurabilmek için, çeşitli kaynaklardan faydalanabilir. Benzer programlar verimli bir kaynak olabilir. Gelişmiş ülkelerde, bilgisayar kitapları ve diğer süreli yayınlar, belirli problemlere ilişkin algoritma yayınlamaktadırlar. Algoritmayı paket program kütüphaneleri şeklinde bazı büyük pazarlardan da elde etmek mümkündür. Nihayet, çok fazla rafine olmuş bazı programlama dillerinde, program geliştirme aşamasında algoritmaya ihtiyaç duyulmaz. Zira, bu tür dillerde algoritma, programlama dilinin tanımı içerisinde yer almıştır.


19.yy da İranlı Musaoğlu Horzumlu Mehmet (Alharezmi adını Araplar takmıştır) problemlerin çözümü için genel kurallar oluşturdu. Algoritma Alharezmi'nin Latince okunuşudur.

Basit tanım: Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.
Geniş tanım: Verilen herhangi bir sorunun çözümüne ulaşmak için uygulanması gerekli adımların hiç bir yoruma yer vermeksizin açık, düzenli ve sıralı bir şekilde söz ve yazı ile ifadesidir. Algoritmayı oluşturan adımlar özellikle basit ve açık olarak sıralandırılmalıdır.

Algoritmaya Dair


Algoritmanın etkin bir şekilde oluşturulması Program yazma adımından çok daha önemlidir.
Hazırlanan algoritmanın programlama diliyle yazılması işin basit kısmıdır.
Tasarladığınız algoritma iyi değilse, kullandığınız dilin hiçbir önemi yoktur (C, C++, C#, Java, Visual Basic vb.)
Bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir. Bu da gösteriyor ki herhangi bir problemin çözümü için birbirinden farklı yüzlerce bilgisayar programı yazılabilir.

Algoritma Türüne Ait Örnekler


Arama algoritmaları
Bellek yönetimi algoritmaları
Bilgisayar grafiği algoritmaları
Evrimsel algoritmalar
Genetik algoritmalar
Kriptografik algoritmalar
Optimizasyon algoritmaları
Sıralama algoritmaları
Veri sıkıştırma algoritmalar
Veri madenciliği algoritmaları
İş zekası algoritmaları
Astronomi algoritmaları
Dinamik programlama algoritmaları
Sağlık bilimleri algoritmaları
Fizik algoritmaları
Veritabanı algoritmaları
İşletim sistemi algoritmaları

Descartes'ın Problem Çözme Bakış Açısı


Problem çözmede, soruna hemen girişmek yerine, dikkatli ve sistematik yaklaşım ilke olmalıdır. Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayrılmalıdır. Descartes’in "Discourse on Method" isimli kitabında problem çözme teknikleri şu dört madde ile özetlenir:
Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının.
Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün.
Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyiniz.
Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

Problem Çözme Sırası

1-Problemi anlama (Understanding, Analyzing),
2-Bir çözüm yolu geliştirme (Designing),
3-Algoritma ve program yazma (Writing),
4-Tekrar tekrar test etme (Reviewing)


Problem Çözmeye Farklı Bir Bakış
 


Problemi Kim Çözecek?


Peki bu problemleri kim çözecek?

Teknolojiyi kullanayım dediniz ve problemi sisteme girerek çözüm bulmasını istediniz. Sistem sadece programcının kendisine söylediği şeyi nasıl yapacağını bilir. Verilen komutların dışına çıkmaz. Bundan dolayı programcı bilgisayara problemi nasıl çözeceğini bildirmelidir.

Bilgisayar, sadece programcının kendisine söylediği şeyi nasıl yapacağını bilir.
Bundan dolayı programcı bilgisayara problemi nasıl çözeceğini bildirmelidir.
Adımlar 1-Bilgisayara nasıl iş yaptıracak, nasıl iletişim kuracaksınız? 2-Bir “Program” ile. Bilgisayarlar program olmadan çalışmazlar. 3-Bilgisayarın dili makine dilidir. Onunla makine mantığı ile iletişim kurabiliriz. 4-Bu da Algoritma (talimat, rutin, reçete) ile olur.

Algoritma ve Problem Çözümü


İnsanlar yaşadığı çevreye uyum sağlama noktasında bir takım olumsuzluklar ve çatışmalar ile karşılaşacaktır.  Bu olumsuzluklar ve çatışmalar problem olarak değerlendirilir. İnsanların ortaya çıkan bu olumsuzluklar ve çatışmalarla yapacakları mücadeleye de problem çözme denir. Bazı belirli problem çözme stratejileri kullanarak doğru sayılabilecek veya çoğunluğun kabul edeceği çözümlere ulaşmak mümkündür.

İnsanlar sürekli düşünür ve problem çözerler. Birçok problem, az ya da hiç düşünülmeden çözülebilir.

Problem: Bugün evden çıkarken ne giymeliyim?

Çözüm: Bunun için muhtemelen pencereden dışarıya bakılır. Hava yağmurlu ise mevsime göre giyinmenin yanı sıra dışarıya çıkarken bir de şemsiye alınması gerekir. Hava güneşli ve sıcak ise daha ince giyinilerek dışarıya çıkılır. Böylece problemin çözümü kendiliğinden oluşturulan bir kararla sağlanır.

Yazılımda Karşılaşılan Problemlerin Kaynağı

Hatalı Gereksinim  Belirleme: Hatalı, eksik, tutarsız gereksinimleri belirle.
Eksik Tasarım: Yazılımın Temel tasarım hatalarını bul.
Uygulama Yanlışları: Kodlama, programlama hataları, kalitesiz programlama konularına dikkat et.
Yetersiz yazılım Testi: Eksik test, kötü doğrulama, hata ayıklama sorunlarına dikkat et.( Az yada yetersiz yazılım testti Yetersiz ve eksik testlerden kaçın.)
Destek Sistemleri noksanlığı: Zayıf programlama dilleri, hatalı derleyici ve debugger'ları kullanma.
Düzeltmeler: Yazılım geliştirme ya da bakım sırasında, bazı özellikleri geliştirmek isterken yapılan hatalar.(Düzeltmek için yapılan çalışmalarda yeni kusurların ortaya çıkması durumu.) 
Karmaşık Sistemler: Yazılım karmaşıklığını azaltmak için projeleri küçük bölümlere ayırarak karmaşıklığı azaltmaya çalış.

16 Mayıs 2016 Pazartesi

Street Fighter Oyunu ve Kodları

Uygulama C# ve XNA 4.0 kullanılarak geliştirilmiştir.
Uygulama Kodları : indirme adresi
Dosya Büyüklüğü 51.2Mb


25 Aralık 2015 Cuma

Need For Speed ilk Oyun (Bütün Kodları ile Birlikte)



C# ve Mono game ile geliştirilmiş Need For Speed oyunu.
Oyunun bütün kodlarına ve proje dosyasına aşağıdaki linkten ulaşabilirsiniz.
Proje (Github sitesi) : https://github.com/jeff-1amstudios/OpenNFS1
Oyunun Kaynak Kodları (C#) : https://github.com/jeff-1amstud…/OpenNFS1/archive/master.zip

Koddan oyunu çalıştırmak için:
Bilgisayarınızda MonoGameSetup ve oalinst programları kurulu olmalıdır.

7 Kasım 2015 Cumartesi

Text Mining with R

# Init
libs <- c("tm", "plyr", "class")
lapply(libs,require, character.only= TRUE)
# Set Options
options(stringsAsFactors = FALSE)
#Set Parameters
candidates <- c("M","S")
pathname <- "C:/Data"
# Clean text
cleanCorpus <- function(corpus){
  corpus.tmp <- tm_map(corpus, removePunctuation)
  corpus.tmp <- tm_map(corpus.tmp,stripWhitespace)
  #corpus.tmp <- tm_map(corpus.tmp,tolower)
  corpus.tmo <- tm_map(corpus.tmp, PlainTextDocument)
  corpus.tmp <- tm_map(corpus.tmp,removeWords, stopwords("english"))
  return(corpus.tmp)
}
# Buildt TDM
gererateTDM <- function(cand,path){
  s.dir <-sprintf("%s/%s",path,cand)
  s.cor <-Corpus(DirSource(directory = s.dir, encoding= "Windows-1254"))
  s.cor.cl <- cleanCorpus(s.cor)
  s.tdm <- TermDocumentMatrix(s.cor.cl)
  s.tdm <- removeSparseTerms(s.tdm, 0.7)
  result <- list(name = cand, tdm = s.tdm)
}
tdm <- lapply(candidates,gererateTDM, path=pathname)
# Attach Name
bindCandidateToTDM <- function(tdm) {
  s.mat <- t(data.matrix(tdm[["tdm"]]))
  s.df <- as.data.frame(s.mat, stringAsFactors = FALSE)
  s.df <-cbind (s.df, rep(tdm[["name"]], nrow(s.df)))
  colnames(s.df)[ncol(s.df)] <- "targetCandiate"
  return(s.df)
  }
candTDM <- lapply(tdm, bindCandidateToTDM)
# Stack
tdm.stack <- do.call(rbind.fill, candTDM)
tdm.stack[is.na(tdm.stack)] <- 0
# Hold-Out
train.idx <- sample(nrow(tdm.stack), ceiling(nrow(tdm.stack) * 0.7))
test.idx <- (1:nrow(tdm.stack)) [- train.idx]
# Model - KNN
tdm.cand <- tdm.stack[, "targetCandiate"]
tdm.stack.nl <- tdm.stack [, !colnames(tdm.stack) %in% "targetCandiate"]
knn.pred <-knn(tdm.stack.nl[train.idx, ], tdm.stack.nl[test.idx, ], tdm.cand[train.idx])
# Accuracy
conf.mat <- table("Predictions" =knn.pred, Actual= tdm.cand[test.idx])
(accuracy <- sum(diag(conf.mat)) / length(test.idx)* 100)

3 Haziran 2015 Çarşamba

Web Programlama Projeleri

Yazılım mühendisliği 2.sınıf öğrenci projeleri

Aspx MVC Projeleri (İndirme Adresi)

Proje 1 Aspx MVC ile CMS oluşturma
Proje 3 Aspx MVC Data Grid (Fisilti) Projesi
Proje 5 Aspx_MVC ile Google Maps API  ve J Query
Proje 8 Aspx MVC ve JQuery Anket


Php Projeleri (İndirme Adresi)

Proje 4 Php Food (Captcha Kontrol)
Proje 11 Php Çiçek Sitesi
Proje 16 Php ve JQuery (Ders Modulu)
Proje 17 Php Word Press Template Oluşturma
Proje 21 Php Captch Oluşturma

Google Crome Eklenti Oluşturma (İndirme Adresi)

Proje 6 Frame Oluşturma
Proje 7 Hesap Makinesi
Proje 9 Hızlı Paylasim
Proje 10 Yilan Oyunu

HTML-5 Game (İndirme Adresi)

Proje 12 HTMLOyun
Proje 19 HTML Oyun

Bootstrap (İndirme Adresi)

Proje 20 Bootstrap
Proje 23 Bootstrap MyBB Tema

Ruby On Rails (İndirme Adresi)

30 Mayıs 2015 Cumartesi

Akış Diyagramı Çizim Programı

Click Chart programı; akış diyagramı oluşturmak için kullanılan ücretsiz, yararlı, güvenilir ve pratik bir programdır. NCH gibi bilinen bir yazılım şirketinin programı olan Click Chart programı ile Akış  Diyagramının yanı sıra, ER Diyagramı,UML Class Diyagramı, Data Flow Diyagramı ve Mind Diyagram gibi farklı diyagranları kolayca oluşturabilirsiniz.

Programın İndirme Adresi ve Detaylı Bilgi

Program Windows harici başka işletim sistemlerinde de çalışmaktadır.

9 Mayıs 2015 Cumartesi

Online IDE (Bilgisayarımıza gerekli IDE'leri kurmadan kodları çalıştırabilirmiyiz? )


Yukardaki sorunun cevabı bundan birkaç yıl öncesine kadar hayırdı. Bugüne kadar yazmış olduğumuz kodları derlemek için çeşitli IDE'leri bilgisayarımıza kurmamız gerekiyordu. Code blocks yada başka bir IDE kullanmadan C kodlarını derleyip sonuçlarını göremiyorduk. Aynı şekilde Java kodlarını derlemek için Eclips ya da netBeans gibi IDE'leri kurmamız gerekiyordu. Eğer yapacağımız iş sadece kodların sonuçlarını görmek ise http://www.tutorialspoint.com/ sitesi tam bu iş için gelişitirilmiş. Sitede onlarca farklı teknolojiyi destekleyen online IDE'ler mevcut. Bunlardan bazıları Ada, Assembly, Bootstrap, C, Css, C++, Java, Php, Js, D, C#, ColdFusion ,Fortran ,JQuery ,ObjectiveC , Matlab, Pascal, Perl, Verilog, Whitespace.
Sitede ayrıca online terminaller (Centos,Ruby,vb) ve oldukça zengin bir ders içerik kütüphaneside mevcut.

Alternatif öneriler

Tutorialspoint ile aynı işlevi yerine getiren bir başka onlineide: https://ideone.com/

HTML,JS,CSS kodları için: https://jsfiddle.net/ 

26 Nisan 2015 Pazar

C ile Tic Tac Toe Oyunu

3 X yada 3 O simgesini yan yana, alt alta ya da çapraz şeklinde bir araya getiren oyunu kazanır.

Oyunun C kodu aşağıda verilmiştir.
Oyunun Kodlarını indirmek için


XML C# Bir arada Kullanımı

XML C# Bir arada Kullanımı ile bir örnek verilmiştir. Örnek için treeview objesi kullanılmıştır.

İndirme Adresi




Benzer örnek XML C# (Datagrid Kullanımı) Döviz Kurları

20 Nisan 2015 Pazartesi

Microsoft Staj İmkanı

Microsoft Learn for Success, Microsoft'un Orta Doğu ve Afrika bölgesinde düzenlediği bir yarışmadır. BT öğrencisi genç yeteneklere açık olan bu yarışma boyunca verilen DVLUP Görevlerini tamamlayıp bilginizi kanıtlayarak, 2015 yaz aylarında  Microsoft Türkiye'de staj kazanma şansı yakalayabilirsiniz. 

Yarışmaya katılmak için:

1. www.microsoftlearnforsuccess.com sitesinden kaydolun.
2. DVLUP portalındaki Learn for Success görevlerine katılıp görevleri tamamlayarak puan kazanın
3. Learn for Success Heroes Leaderboard'da puanınızı kontrol edin.
Puanınız ne kadar yüksekse Microsoft'ta staj kazanma şansınızın o kadar yüksek olacaktır.

Diğer başvuru sayfası: (Uzun Dönemli Staj imkanı)

19 Nisan 2015 Pazar

Binlerce Ücretsiz Web Sayfa Tasarımları

Her bir web sayfasının, kodları ve tasarım dökümanları site içerisinde verilmiştir

Adres: http://www.free-css.com/free-css-templates/page1

27 Mart 2015 Cuma

Android Örnek Projeler ve Kaynak Kodları

Aşağıda; Android program geliştirenler için, kullanılacak farklı niteliklere sahip değişiklik projeler ve kaynak kodları verilmiştir. İndirme Adresi



C Kodu ile Yılan Oyunu

C Kodu ile yılan oyunu. C ile geliştirilmiş bu uygulamanın indirme adresi  yan tarafta verilmiştir İndir

C# Ascii Tablosu

C# ile Ascii tablosu oluşturma örneği ve kodları yan tarafta verilmiştir. İndir

25 Mart 2015 Çarşamba

Web Programlama Giriş Projeler

1-) Asp ile uygulama geliştirme (2kişi)
2-) Aspx ile uygulama geliştirme(2kişi)
3-) Rubi on Rails ile uygulama geliştirme(3kişi)
4-) Php ile uygulama geliştirme(2kişi)
5-) Perl ile uygulama geliştirme(2kişi)
6-) HTML-5 ile oyun uygulaması geliştirme(2kişi)
7-) Jsp ile uygulama geliştirme(3kişi)
8-) Json kullanarak uygulama geliştirme(2kişi)
9-) JQuery ile uygulama geliştirme(2kişi)
10-)MsFlash ile uygulama geliştirme(2kişi)
11-)Aspx Mvc ile uygulama geliştirme(3kişi)
12-)Linux scripts ile uygulama geliştirme(3kişi)
13-)Piton ile uygulama geliştirme(2kişi)
14-)Ajax ile uygulama geliştirme(2kişi)
15-)WordPress template geliştirme(2kişi)
16-)Bootstrap ile web sitesi geliştirme(2kişi)
17-)Drupal ile web sitesi geliştime(2kişi)
18-)Firefox eklenti geliştirme(3kişi)
19-)Crome eklenti geliştime(3kişi)
20-)Html editör geliştirme(2kişi)
21-)Öğrenci önerisi ile gerçekleştirilecek web projeleri


Seçilen proje ile ilgili yapılacaklar.
(Sunumlar dönemin son 2 haftasında yapılacaktır.)
1-)Uygulama yapısını anlatın
2-)Gerekli olan programlardan bahsedin
3-)Gerçekleştirilen sistemden bahsedin
4-)Gerçekleştirme aşamalarından bahsedin
5-)Uygulama dokumanı,kodlar ve sunum dosyası ile birlikte webcbu@gmail.com adresine gönderin.

24 Mart 2015 Salı

10. ILTEK günleri

10.ILTEK günleri, Yıldız Teknik Üniversitesi ve Turkcell Akademinin öncülüğünde gerçekleştirilmektedir. Özellikle 25 mart ve 26 mart tarihinde gerçekleştirilecek etkinlikler, Bilişim ve Yazılım alanı ile ilgilidir. Gerçekleştirilecek etkinlik ücretsizdir.
Detaylı bilgi ve kayıt için: https://www.facebook.com/iltekgunleri


22 Mart 2015 Pazar

Algoritma & Prog II Ödev - I

Algoritma ve Programlama dersinin ilk ödevi ile ilgili dokuman aşağıda verilmiştir.


Yazılımcılara KDV Desteği

Maliye Bakanlığı, Ar-Ge yapan veya yazılım geliştirenlerden, bu faaliyetleri sonucunda ortaya koydukları buluşları satması, kiralaması veya devretmesi durumlarında KDV almayacak. Buradan elde edilen kazançların yarısı ise kurumlar ve gelir vergisinden istisna tutulacak.
Ar-Ge ve yenilik ile yazılım faaliyetlerinin, gerek katma değeri yüksek üretimin artması gerek markalaşmanın sağlanması gerekse de ihracatı artırarak, cari açığa çözüm olması açısından son derece önemli olduğunu vurgulayan Şimşek, yapılmayanı yapan, yüksek katma değerli ekonomiye geçişi hızlandıranlara desteklerinin süreceğini ifade etti.

21 Mart 2015 Cumartesi

Denizbank Staj Programı

"Deniz’in İncileri Üniversite Staj Programı” başvuruları başlamıştır. 20 Nisan tarihine kadar, Deniz Bank' ta Staj yapmak istiyen öğrenciler aşağıdaki programa başvuru yapabilirler. Staj başvuru kriterleri; 

  • Üniversite 3. sınıfta okuyor olması veya Meslek Yüksek Okulunda son sınıfta okuması,
  • Öğrencinin staj yapma zorunluluğunun olması veya staj süresince sigortasının okulu tarafından yapılması,

Kriterlere uygun stajyer adaylarının değerlendirme kapsamında; sınav ve mülakat sürecine katılacaklardır. Mail üzerinden yapılan başvurular değerlendirmeye alınmayacaktır. Staj Başvuru adresi: Staj Başvuru Linki

10 Mart 2015 Salı

Struct Kütüphane

Aşağıda, örnek olarak bir struct yapısı verilmiştir.
Kitap 1 Başlık : C Programming
Kitap 1 Yazar : Nuha Ali
Kitap 1 Konu : C Programming Tutorial
Kitap 1 Kitap_id : 6495407
Kitap 2 Başlık : Telecom Billing
Kitap 2 Yazar : Zara Ali
Kitap 2 Konu : Telecom Billing Tutorial
Kitap 2 Kitap_id : 6495700

#include <stdio.h>
#include <string.h>
struct Books

{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};
int main( )

{
   struct Books Book1;        /* Declare Book1 of type Book */
   struct Books Book2;        /* Declare Book2 of type Book */
    /* book 1 specification */
   strcpy( Book1.title, "C Programming");
   strcpy( Book1.author, "Nuha Ali");
   strcpy( Book1.subject, "C Programming Tutorial");
   Book1.book_id = 6495407;
   /* book 2 specification */
   strcpy( Book2.title, "Telecom Billing");
   strcpy( Book2.author, "Zara Ali");
   strcpy( Book2.subject, "Telecom Billing Tutorial");
   Book2.book_id = 6495700;
   /* print Book1 info */
   printf( "Book 1 title : %s\n", Book1.title);
   printf( "Book 1 author : %s\n", Book1.author);
   printf( "Book 1 subject : %s\n", Book1.subject);
   printf( "Book 1 book_id : %d\n", Book1.book_id);
   /* print Book2 info */
   printf( "Book 2 title : %s\n", Book2.title);
   printf( "Book 2 author : %s\n", Book2.author);
   printf( "Book 2 subject : %s\n", Book2.subject);
   printf( "Book 2 book_id : %d\n", Book2.book_id);
   return 0;

}

7 Mart 2015 Cumartesi

Google Maps Harita Konum Bilgisi Alma

Aşağıdaki HTML5 kodu kullanılarak kullanıcının konum bilgisi google maps üzerinde gösterilmektedir.



<!DOCTYPE html>
<html>
<body>
<p id="demo">Pozisyon Almak için Aşağıdaki Butonu Tıklayın</p>
<button onclick="getLocation()">Google Harita Bilgisi</button>
<div id="mapholder"></div>
<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition, showError);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    var latlon = position.coords.latitude + "," + position.coords.longitude;
    var img_url = "http://maps.googleapis.com/maps/api/staticmap?center="
    +latlon+"&zoom=14&size=400x300&sensor=false";
    document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}
function showError(error) {
    switch(error.code) {
        case error.PERMISSION_DENIED:
            x.innerHTML = "User denied the request for Geolocation."
            break;
        case error.POSITION_UNAVAILABLE:
            x.innerHTML = "Location information is unavailable."
            break;
        case error.TIMEOUT:
            x.innerHTML = "The request to get user location timed out."
            break;
        case error.UNKNOWN_ERROR:
            x.innerHTML = "An unknown error occurred."
            break;
    }
}
</script>
</body>
</html>

HTML 5 ile Kullanıcı Enlem ve Boylam Bilgisi Alma

Kullanıcının enlem ve boylam bilgilerini HTML 5 ve Js ile alma
ile ilgili örneğin kodu aşağıda verilmiştir.

<!DOCTYPE html>
<html>
<body>
——<p>Aşağıdaki Butonu tıklayınız.</p>
——<button onclick="getLocation()">Try It</button>
——<p id="demo"></p>
——<script>
var x = document.getElementById("demo");
——function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition, showError);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
——function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude +
    "<br>Longitude: " + position.coords.longitude; 
}
——function showError(error) {
    switch(error.code) {
        case error.PERMISSION_DENIED:
            x.innerHTML = "User denied the request for Geolocation."
            break;
        case error.POSITION_UNAVAILABLE:
            x.innerHTML = "Location information is unavailable."
            break;
        case error.TIMEOUT:
            x.innerHTML = "The request to get user location timed out."
            break;
        case error.UNKNOWN_ERROR:
            x.innerHTML = "An unknown error occurred."
            break;
    }
}
</script>
——</body>
</html>

HTML Frame Kullanımı

Yan tarafta html frame kullanımı ile ilgili bir örnek verilmiştir.
Aşağıdaki linki tıklayarak örneği indirebilirsiniz. Örneği indirme linki
Farklı bir frame örneği

21 Ocak 2015 Çarşamba

Sabit hatları aramanın en uygun yolu, üstelik ücretsiz deneme fırsatıyla!

Sevdiklerimiz her zaman yüz yüze görüşebilecek kadar yakınımızda olamıyor. Sesini duymak, bir haber almak için teknolojinin nimetlerinden faydalanmak gerekiyor. 

Birçoğumuz biliyoruz ki, sevdiklerimizle görüşmek için bize ücretsiz fırsatlar sunan çeşitli uygulamalar var. Bu uygulamalar sayesinde sadece mesaj değil, sesli ve hatta görüntülü aramalar yapabiliyoruz. Ancak bu uygulamanın her iki tarafta da yüklü olması gerekiyor. Çok fazla uygulama seçeneği var ve sevdiklerimiz ne kullanıyorsa biz de ona göre farklı uygulamalar yüklüyoruz. İşte bu sorunu çözmek için yola çıkan LINE’ın geliştirdiği LINE Premium Call özelliği ile tüm sevdiklerinize tek bir platformdan çok uygun fiyatlara ulaşabiliyorsunuz. Öyle ki yurtdışını aramanın dakikası 2 kuruşa kadar iniyor. Nasıl diye sorarsanız hemen sizi tanıştıralım.

Telefonunuzda LINE yüklü ise ayrı bir uygulama yüklemeniz ya da abone olmanız gerekmiyor.

LINE indirmek için: http://line.me/tr/download 

LINE Premium Call nedir?

LINE Premium Call internet üzerinden çok düşük fiyatlara telefon görüşmesi yapmanızı sağlayan bir servis. Aramak istediğiniz kişinin interneti yoksa ya da LINE uygulamasına sahip değilse LINE Premium Call üzerinden hem sabit hem de cep telefonlarına arama yapabiliyorsunuz. 

Yurtdışı: Dünyanın dört bir yanından sevdiklerimizi telefonunda LINE yüklü olsa da olmasa da ya da interneti olsa da olmasa da mobil cihazınızdan kolaylıkla ve ucuz bir şekilde arayabiliyorsunuz.

Yurtiçi: Online yollarla ulaşamadığımız arkadaşlarımızı da LINE Premium Call ile ister cepten ister ev telefonundan arayabiliyoruz.

LINE Premium Call nasıl kullanılır?

LINE Premium Call kullanabilmek için öncelikle kredi yüklemesi yapmanız gerekiyor. Eğer krediniz yoksa merak etmeyin, LINE’ın yakın tarihte bir etkinliği olacak ve katılarak ücretsiz kredi kazanabileceksiniz. Ayrıntılarını yazının devamında okuyabilirsiniz.

Şu anda en düşük 200 kredi yüklenebiliyor ancak rakam gözünüzü korkutmasın, yalnızca 4,29 TL ödüyorsunuz ve yurtdışındaki sevdiklerinizle uzuuun uzun sohbet edebiliyorsunuz.

Kredi satın almak ya da mevcut kredinizi görmek için Ayarlar menüsünü kullanabilirsiniz.

Kredinizi satın aldıktan sonra arama yapmak istediğiniz kişiyi seçip doğrudan arayabilirsiniz. Ya da ülke kodu tercihi yapıp numarayı girerek arayabilirsiniz. Ayrıca her aramadan önce aramanızın ne kadar ücretlendirileceği ekranın altında bilgi olarak gösteriliyor.

Geçmiş aramalarınızın listesi de Premium Call menüsü altında görüntülenebiliyor.

LINE Premium Call Fiyatları nedir?

LINE sabit hat ve cep telefonlarına arama yapma imkanı sunan diğer servislere göre en uygun tarifeyi sunuyor. Döviz kuruna göre fiyatlar değişebilse de yaklaşık ücretler şöyle:

“seviyorum” de sevdiklerinle LINE Premium Call’dan ücretsiz 200 dakikaya kadar arama kazan!

LINE’ı yükleyerek ve 28 Ocak - 1 Şubat tarihleri arasında yapılacak etkinliğe katılarak 200 dakikaya kadar (arayacağınız ülkeye, sabit hat ya da cep telefonuna göre küçük farklılıklar gösteriyor) kullanabileceğiniz 200 LINE Premium Call kredisi kazanıyorsunuz. Etkinliğe katılmak için ise yapmanız gereken çok kolay;

  • LINE Türkiye resmi hesabından bilgilendirme mesajı geldiğinde “seviyorum” yazıp mesaj olarak yanıtlamak

Etkinliğe katıldıktan sonra krediniz otomatik olarak hesabınıza yükleniyor. Yüklenen kredinizi LINE-> Diğer/Daha Fazlası-> LINE Premium Call’a girerek takip edebilirsiniz.

Eğer LINE’da telefon numaranızı kayıt altına almadıysanız, LINE’ın yönlendirme mesajıyla, önce numaranızı kayıt altına alıp, sonra da “seviyorum” diyerek etkinliğe katılabiliyorsunuz.

Bir boomads advertorial içeriğidir.