Örnek Bilgisayar Projesi

Projelerin sonuçlarının, teorik bir çıkarımdan ziyade, bir yazılım olması normal beklenendir.

Proje konusu: Neler proje olabilir, neler olamaz?

Bilgisayar Biliminin alt alanları şunlardır:

1. Algoritmalar ve Veri Yapıları,
2. Programlama Dilleri,
3. Mimari,
4. Nümerik ve Sembolik Hesaplama,
5. İşletim Sistemi,
6. Bilgi Yönetimi,
7. Grafik, Görüntüleme ve Çoklu ortam,
8. Akıllı Sistemler,
9. Ağ-eksenel Bilişim.


•     Bir bilgisayar projesinin bunlardan bir veya birkaçı ile doğrudan ilgili olması beklenir. Lise düzeyinde birikimi olan yarışmacıların projelerini bu alanların uygulama konularında seçmeleri akılcı olacaktır. Projelerin sonuçlarının, teorik bir çıkarımdan ziyade, bir yazılım olması normal beklenendir. Bir kısıt olmamakla birlikte bu düzeydeki proje
yarışmaları için yukarıdaki alanlardan (7), (8), (1), (4) ve (6) yönelinebilecek alanlardır.


•     Projelerde özgünlük en önemli ölçütlerden birisidir. Bu, yukarıda belirtilmiş Bilgisayar Bilimi alan bilgilerinin kendisinde bir özgünlük olabildiği gibi, uygulamaya ilişkin bir özgünlük de olabilir. Projenin özgünlüğünün neresinde bulunduğu, alan bilgisinden
uygulama alanına doğru kaydıkça, proje yarışma değerinden kayba uğrayacaktır. Diğer bir deyişle, projenizin uygulama konusu özgün, ancak gerçekleştirme biçimi ilk akla gelecek yöntemle ise projenin bu yarışma bağlamında kıymetinden söz edilemez.

 

•     Salt yazılım araçlarının hünerli kullanımına dayalı projeler değerli sayılmazlar. Buna en iyi örnek web sayfası oluşturmalarıdır. Konu ne kadar özgün, tasarım ne kadar estetik ve kullanışlı olsa da herhangi bir WEB sayfası tasarımı değerli bir proje olmayacaktır. Ancak, örneğin belirli bir amaca yönelik, java applet oluşturulması, değerli olabilecektir.
Elbette, buradaki değerin ölçütü, o appletin yazımında kullanılan Algoritma ve Veri Yapısı bağlamındaki özgünlüktür.


•     Sanılanın aksine, elektronik herhangi bir işlevin içine bilgisayarın katılması, (örneğin bir kumandanın bilgisayar aracılığı ile yapılması) bu işi bilgisayar yarışma projesi yapmaya yeterli değildir. Bu durumlarda bilgisayarın katkı verdiği işlevin bütünü
değerlendirilmeyecek, yalnızca bilgisayar tarafındaki yazılım, yukarıda belirtilmiş çerçevede değerlendirilecektir. Örnek vermek gerekirse, çok büyük emeklerle tasarlanmış ve gerçekleştirilmiş bir elektro-mekanik kol mekanizması bilgisayarla kontrol
edilmesine karşın, bu kontrol, menülü basit bir program aracılığı ile bilgisayarın (örneğin paralel) port’undan bir düzine işaretin yollanması ile gerçekleşiyor ise bu proje değerli addedilmeyecektir. Çünkü bilgisayar tarafında yapılmış işin bir özgünlüğü yoktur, emek bakımından değerlendirildiğinde bile bir iki saatlik bir programlamadır. Öte yandan, çok basit çizgilerle oluşturulmuş, sanal dünyadaki bir robot kolun hareketlerini akıllı kararlarla (örneğin etrafta ne olduğunu bilerek, hareket ve yer kısıtlarını göz önünde
bulundurarak) yaptırabilecek bir (Yapay Zeka) programı değerli kabul edilecektir.

 

Proje önerisi nasıl kaleme alınır?
•     Proje önerisinde, önerilen işin güncelliği, yararlılığı, topluma katkısı vb. konularını aşırı irdelemenin anlamı yoktur. Bunun bir kompozisyon yarışması değil bir Bilgisayar proje yarışması olduğunu, jürinin bu konularda yaygın bilgisinin zaten var olduğunu
unutmayınız. Ayrıca, proje adlandırılmasında ve konu betimlemesinde alçak gönüllü olunuz.


•     Proje önerisinde:
     - Amaç,
     - Durum,
     - Yöntem

başlıkları altında projenin neyi amaçladığını, ülkemizdeki/dünyadaki bu konu ile ilgili durumun ne olduğunu (benzer ürünlerin ne olduğunu), sizin amaçladığınızın farklılığını/benzerliğini, projenin gerçekleştirilmesi için hangi yöntem(ler)in kullanılmasının tasarlandığını, bunun nedenlerini, hangi yazılım ortamının kullanılacağını belirtiniz.

Ayrıca,
 

• Kaynakça
Projenizdeki kaynakça başlığı altında konunuzla doğrudan ilintili hangi bilgi kaynaklarına
eriştiğinizi belirtiniz (bu İnternet bilgisi de içerebilir).
 

• Zamanlama
Projenizi gerçekleştirme aşamalarına bölünüz ve her bir aşama için tahmini ancak gerçekçi
bir süre veriniz (bunun size de yararı olacaktır).
 

Proje nasıl gerçekleştirilir?
• Projenizle ilgili derinlemesine bir ön araştırma yapınız. Günümüzde bilimsel etkinlikte bulunmanın ön koşulu önceki çalışmaları enine boyuna bilmektir. Bunun için kütüphaneler ve uzman kişiler iyi birer kaynak iseler de, ne yazık ki, erişebilirlikleri azdır. İnternet bu gereksinimi en iyi giderebileceğiniz ortamdır. Arama motorlarını, bu amaç için kullanınız.
Bilgisayar Biliminin çeşitli konularındaki ders notları internette de bulunabilmektedir.
Bunlar başlangıç için çok uygundur.
• Kullanacağınız Bilgisayar Bilimsel yöntem(ler)i, programlama ortamınızın gerçeklerini (işlemci hızı ve yeteneği, bellek sığası, problemin doğasından gelen zaman kısıtları) göz önünde bulundurarak irdeleyiniz. Pek çok yöntem bu bakımlardan elenmeye
mahkumdur.

     Program kütüphanelerinin kullanımı dışında yabancı kod kullanmayınız. Jüri üyeleri özgün olmayan durumları çok çabuk fark etmekte ve bu tür projeler doğrudan değerlendirme dışı bırakılmaktadır. Kullandığınız ve size ait olmayan her şeyi dürüstlükle beyan ediniz.

Bu size bir şey kaybettirmeyecektir.


•     Uygulama dili olarak yetersiz bir dil seçmeyiniz. Bu bakımdan size önerimiz Görüntü İşlemleme; Görüntü Tanıma; Ses işlemleme; Matematiksel hesap; Alt Düzey Programlama; Derleyici/Çevirici yazımı ağırlıklı projeler için C veya Pascal dillerini
seçmenizdir. Eğer bunların ikisini de yeni öğrenecek iseniz seçiminizi C’den yana yapın.

Görüntü işleme ile ilgili OpenGL uygulama ortamının (kütüphanesinin) varlığına dikkat çekmek isteriz. WEB tabanlı, hareketli görüntüye yönelik işler için Java dilini tercih edebilirsiniz. Bu dildeki uygulamaların yavaş olacağını ve C’deki kadar programlama
özgürlüğünüzün olmayacağını hesaba katmalısınız. Lüzumsuz yere Nesneye-Yönelik (Object-Oriented) programlama yapmanıza gerek yoktur. Bu yöntem, kodun tekrar kullanımı söz konusu olacak ise anlamlıdır. Ufak uygulamalar (birkaç bin satır) için
getirecekleri ile götürecekleri (ek programlama yükü) iyi hesaplanmalıdır. Saf (pure) Yapay Zeka uygulamaları için (teorem ispatlama, zeka oyunları, doğal dil işlemleme gibi) Lisp veya Prolog uygun dillerdir; ancak hız sizin için önemli bir bileşen ise ve fazla kod yazmanın getireceği sıkıntıları göğüslemeye hazırsanız, seçiminiz C veya Pascal yönünde de olabilir.


     Projenizi alt bölümlere ayırınız. Bilgisayar başına oturmadan önce detaylı bir tasarım yapınız. Çoğunluk amatör yazılımcı tasarım evresi ile kodlama (programı bilgisayarda yazma) evresini birleştirir, karıştırır. Bu ise tasarımın sağlıksız gelişmesine ve geri dönülmesi zor hatalara yol açar. Veri yapısının teknik ayrıntıları, hangi amaçla hangi fonksiyonların yazılacağı, ekran görünümleri hep tasarım aşamasında saptamanız gereken hususlardır.


•     Program yazım usullerine (geleneklerine) uyunuz:

  • Fonksiyonlara ve global değişkenlere anlaşılabilir isimler veriniz.
  • Global değişkenlerin ilk karakterini büyük harfle yazınız, yerel değişkenler için küçük harf kullanınız, macro’ları hep büyük harflerden oluşturunuz.
  • Fonksiyonel programlama yapınız. Bu, go to yapılarını çok azda tutmanız (tercihen hiç kullanmamanız) demektir. Ayrıca, çok zorunlu olmadıkça global değişken kullanımından kaçınmak da bu usulün bir gereğidir.
  • Prototip kullanınız.
  • Adlandırılmış sabitler (macro, constant) kullanınız.
  • Hizalama (intendation) kurallarına uyunuz.
  • Programınızın önemli yerlerine açıklamalar (comment) koyunuz.

Yazım usulleri için internette de kaynak bulabilirsiniz. C türevi diller için iyi bir kaynağa
http://www.psgd.org/paul/docs/cstyle/cstyle.htm adresinden erişebilirsiniz.

•     Yazdıklarınızı aşama aşama test ediniz. Alt birimlerinin çok sağlıklı çalıştığı belirlenmemiş programlardaki bozuklukların nedenini saptamak saman yığınında iğne aramaya benzer. Her zaman tekrarlamayan, ancak bazen oluşan hatalara göz yummayınız. Programınızı hep aynı verilerle sınamayınız. Hatta önerimiz, arkadaşlarınıza kullanım kurullarını anlatıp onların programınızı dilediklerince denemelerini sağlamanızdır. Profesyonel proje çalışmalarında testi yapan kişiler kesinlikle programı yazan kişilerden oluşmamaktadır.

Proje nasıl sunulur, raporu nasıl yazılır?
Projenin en önemli ürünü, şüphesiz yazılımın kendisidir. Ancak, bu projelerin bilimsel çalışmalara bir adım oluşturması beklenmektedir. Bilimsel etkinliklerde en önemli usullerden birisi de tarafsız bakış açısı ile yönlenmemiş bir irdelemenin yapılmasıdır. Bu irdeleme,   

  • Benzer çalışmaların ne olduğunu,
  • Sizin çalışmanızın farklılığını,
  • Çalışmanızın sınırlarını (neleri yapıp neleri yapamayacağını),
  • Üstün ve zayıf yanlarını

ortaya koyar. Bu bağlamdaki bir kıyaslamanın bilimsel yöntem ve ölçütlerle yapılması gereklidir. Bu da çoğunlukla istatistiksel yöntemler kullanarak proje ürününün performansını göstermekle yapılır. Kıyaslanacak bir çalışmanın elde olmaması durumunda bile performansın çeşitli girdi alternatifleri için nitel ve nicel boyutlarda kağıda dökülmesi beklenir. Bir proje raporunda, proje
önerisinde belirtilmiş ana başlıkların nasıl gerçekleşmiş olduğu açıklanır. Proje raporunda:

  • Amaç,
  • Durum,
  • Yöntem,
  • Gerçekleştirme bilgisi (örneğin hangi yazılım araçlarının kullanıldığı, nasıl bir veri yapısı tasarlandığı gibi),
  • Sonuç,
  • İrdeleme,
  • Kaynakça

ana başlıklarının olması beklenir.

     Proje raporunuzun içeriği ve bilimselliği, görünüşünden çok daha önemlidir. Bu bakımdan enerjinizi renklendirilmiş ve süslenmiş başlıklarla, konu ile uzaktan ilgili şekilciklere, edebi ifadelere harcamayınız.

Değerlendirme jürisine projenizi sözlü olarak sunma aşamasında, projenizin:

  • Amacını,
  • Kullandığınız bilimsel yöntemi,
  • Performansını

özetleyiniz. Diğer ayrıntıları, jüri gerek gördükçe size soracaktır.

Örnek Bilgisayar Projesi

Kaynak

  • TÜBİTAK 2013 proje kitapcığı

 

 

 

 

 
Yorumunuzu Ekleyin


Yükleniyor...
    Yükleniyor...