Doçentlik Sýnavý, Çok Biçimlilik ve Java



Benzer belgeler
.:: TÇÝD - Tüm Çeviri Ýþletmeleri Derneði ::.

Simge Özer Pýnarbaþý

m3/saat AISI

Firmamýz mühendisliðinde imalatýný yaptýðýmýz endüstriyel tip proses filtreleri ile, siklonlar, seperatörler çalýþma koþullarýna göre anti nem,anti


2 - Konuþmayý Yazýya Dökme


EDMS, þirketlerin dinamik dokümanlar oluþturmasýný saðlayan, bu doküman ve belgeleri dijital olarak saklayýp, dünyanýn deðiþik noktalarýndaki

Spor Bilimleri Derneði Ýletiþim Aðý

Mantýk Kümeler I. MANTIK. rnek rnek rnek rnek rnek... 5 A. TANIM B. ÖNERME. 9. Sýnýf / Sayý.. 01

COPYRIGHT EBD YAYINCILIK LTD. ŞTİ.


7. ÝTHÝB KUMAÞ TASARIM YARIÞMASI 2012

Týp Fakültesi öðrencilerinin Anatomi dersi sýnavlarýndaki sistemlere göre baþarý düzeylerinin deðerlendirilmesi

Þimdi beraber sarmal bir yay yapacaðýz. Bakýr tel, çubuða eþit aralýklarla sarýlýr. Daha sonra çubuk yayýn içinden çýkarýlýr.

Kanguru Matematik Türkiye 2017


TOHAV Suruç Mülteci Danýþma Merkezi Açýldý TOHAV'ýn mülteci ve sýðýnmacýlara yönelik devam ettirdiði çalýþmalar kapsamýnda açtýðý SURUÇ MÜLTECÝ DANIÞM

ege yayıncılık : 11. Sýnýf Geometri Soru Bankasý Kitabýn Adý : Özkan Güner Erhan Nemutlu Tarýk Þahin Kenan Akarbulut Yazarlar

BÝLGÝLENDÝRME BROÞÜRÜ

Dar Mükellef Kurumlara Yapýlan Ödemelerdeki Kurumlar Vergisi Kesintisi

BASIN DUYURUSU ( ) 2002 Öðrenci Seçme Sýnavý (ÖSS) Yerleþtirme Sonuçlarý

Konular 5. Eðitimde Kullanýlacak Araçlar 23. Örnek Çalýþtay Gündemi 29. Genel Bakýþ 7 Proje Yöneticilerinin Eðitimi 10


BÖLÜM 3 FONKSÝYONLARIN LÝMÝTÝ. ~ Limitlerin Tanýmý ve Özellikleri. ~ Alýþtýrmalar 1. ~ Özel Tanýmlý Fonksiyonlarýn Limitleri


Laboratuvar Akreditasyon Baþkanlýðý Týbbi Laboratuvarlar

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

3. FASÝKÜL 1. FASÝKÜL 4. FASÝKÜL 2. FASÝKÜL 5. FASÝKÜL. 3. ÜNÝTE: ÇIKARMA ÝÞLEMÝ, AÇILAR VE ÞEKÝLLER Çýkarma Ýþlemi Zihinden Çýkarma

1. ÝTHÝB TEKNÝK TEKSTÝL PROJE YARIÞMASI

T.C YARGITAY 9. HUKUK DAÝRESÝ Esas No : 2005 / Karar No : 2006 / 3456 Tarihi : KARAR ÖZETÝ : ALT ÝÞVEREN - ÇALIÞTIRACAK ÝÞÇÝ SAYISI


MALÝYE DERGÝSÝ ÝÇÝNDEKÝLER MALÝYE DERGÝSÝ. Ocak - Haziran 2008 Sayý 154

ÇEVRE VE TOPLUM. Sel Erozyon Kuraklýk Kütle Hareketleri Çýð Olaðanüstü Hava Olaylarý: Fýrtýna, Kasýrga, Hortum

HPL Laminar Akýþ Ünitesi



Dövize Endeksli Kredilerde KKDF

TÜRKÝYE BÜYÜK MÝLLET MECLÝSÝNÝN DIÞ ÝLÝÞKÝLERÝNÝN DÜZENLENMESÝ HAKKINDA KANUN

Gelir Vergisi Kesintisi

Ne-Ka. Grouptechnic ... /... / Sayýn Makina Üreticisi,

1. Böleni 13 olan bir bölme iþleminde kalanlarýn


HD kalitesinde tamamen ücretsiz Türkçe anlatýmlý Solid Edge 2D Drafting eðitim videolarý

Kanguru Matematik Türkiye 2017

OTOMATÝK BETON BLOK ÜRETÝM TESÝSÝ NHP

Modüler Proses Sistemleri

Fiskomar. Baþarý Hikayesi

DENEME Bu testte 40 soru bulunmaktadýr. 2. Bu testteki sorular matematiksel iliþkilerden yararlanma gücünü ölçmeye yöneliktir.

Yükseköðretimin Finansmaný ve Finansman Yöntemlerinin Algýlanan Adalet Düzeyi: Sakarya Üniversitesi Paydaþ Görüþleri..64 Doç.Dr.

DONALD JOHNSTON OECD GENEL SEKRETERÝ INTERVIEW DONALD JOHNSTON OECD GENERAL SECRETARY

STAJ BÝLGÝLERÝ. Önemli Açýklamalar

Ýçindekiler. Vortex metre VTX2, yeni nesil Sayfa 3. Ölçüm tekniði Sayfa 3. Uygulamalar Sayfa 4. Tasarým Sayfa 5. Ölçüm aralýðý tablosu Sayfa 5

Kariyer Danýþmanlýðý. COUNCIL of INTERNATIONAL SCHOOLS

Faaliyet Raporu. Banvit Bandýrma Vitaminli Yem San. A.Þ. 01 Ocak - 30 Eylül 2010 Dönemi


3AH Vakum Devre-Kesicileri: Uygun Çözümler

Amblem-Logotayp Kurumsal Kimlik Uygulamalarý Kurumsal Kimlik

30 SORULUK DENEME TESTÝ Gönderen : abana - 10/11/ :26

Teknik Özellikleri : Ölçülecek Malzeme. Çýkýþ. Hassasiyet Linearite Kapasite Ölçü Sahasý Min. Di-Elektrik Sabiti Baðlantý Malzemesi

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Genel Yetenek Testi Örnek Soru Çözümleri

Ballorex Dynamic. Basýnç Baðýmsýz Kontrol Vanasý. Precision made easy

ÖÐRETÝM YÖNTEM VE TEKNÝKLERÝ

KÖÞE TEMÝZLEME MAKÝNASI ELEKTRONÝK KONTROL ÜNÝTESÝ KULLANIM KILAVUZU GENEL GÖRÜNÜM: ISLEM SECIMI FULL

Kanguru Matematik Türkiye 2017

Kanguru Matematik Türkiye 2015

Geometriye Y olculuk. E Kare, Dikdörtgen ve Üçgen E Açýlar E Açýlarý Ölçme E E E E E. Çevremizdeki Geometri. Geometrik Þekilleri Ýnceleyelim

Yüksek kapasiteli Bigbag boþaltma proseslerimiz, opsiyon olarak birden fazla istasyonile yanyanabaðlanabilirözelliðesahiptir.

Belediye Meclisinin. Bilgi Edinme ve Denetim

Firmamýz mühendisliðinde imalatýný yaptýðýmýz endüstriyel tip mikro dozaj sistemleri ile Kimya,Maden,Gýda... gibi sektörlerde kullanýlan hafif, orta

OTOMATÝK O-RÝNG TAKMA. A.Turan GÜNEÞ. Makina Mühendisi

TABLO-2 A GRUBU KADROLARA PERSONEL ALIMINA ÝLÝÞKÝN BAZI BÝLGÝLER

DOÐA KOLEJÝ 2019 BURSLULUK SINAVI VELÝ BÝLGÝLENDÝRME KÝTAPÇIÐI

Ballorex Vario. Çift Regülatörlü Vana. Precision made easy

Kanguru Matematik Türkiye 2018

veya yüklemesini kaldýrmaya halde garantimiz geçersiz kalacaktýr. ND8401 Güç Kablosu Garanti belgesi x12 TR - 82

Bölüm 6: Lojik Denklemlerin Sadeleþtirilmesi

MALÝYE DERGÝSÝ ULAKBÝM ISSN

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları

Barodan Haberler. Edinilmiþ Mallara Katýlma Semineri (Akþehir) Anayasa Mahkemesine Bireysel Baþvuru Semineri. Türk Borçlar Kanunu Semineri

1.BÖLÜM - KLASÝK SUDOKU 1.Klasik Sudoku Her satýrda, her sütunda ve kalýn çizgilerle belirlenmiþ her bölgede 1'den 9'a (1 den 6 ya) tüm rakamlar tam o


Süleyman Demirel Üniversitesi Teknik Bilimler Meslek Yüksekokulu Deðerlendirme Anketi

TEST. 8 Ünite Sonu Testi m/s kaç km/h'tir? A) 72 B) 144 C) 216 D) 288 K 25 6 L 30 5 M 20 7

Yat, Kotra Ve Her Türlü Motorlu Özel Tekneler Ýçin Geçerli Olan KDV Ve ÖTV Ora

YZM 2105 Nesneye Yönelik Programlama

B. TABLO ÝLE ÝLGÝLÝ ÖNEMLÝ KURALLAR C. TABLODA KULLANILAN BAÞLICA KISALTMALAR D.TABLO-1 ÝLE ÝLGÝLÝ KOÞULLAR

2003 ten 2009 a saðlýkta dönüþüm þiddet le sürüyor

Süleyman Demirel Üniversitesi Teknik Bilimler Meslek Yüksekokulu Deðerlendirme Anketi

Bakým sigortasý - Sizin için bilgiler. Türkischsprachige Informationen zur Pflegeversicherung. Freie Hansestadt Bremen.

ECAM KAPASÝTÝF SEVÝYE SENSÖRÜ

ORTAKLAR SERMAYE PAYI HÝSSE

Transkript:

Doçentlik Sýnavý, Çok Biçimlilik ve Java Kemal TURHAN a a Karadeniz Teknik Üniversitesi, Týp Fakültesi, Týp Eðitimi ve Biliþimi Anabilim Dalý, Trabzon. An Examination, Polymorphism and Java Abstract 1. Giriþ The object-oriented approach goes a step further by providing tools for the programmer to represent elements in the problem space. To illustrate the basic concepts in object oriented programming such as abstracting and polymorphism we presented an example how we might go about handling a real world situation and how we could make the computer more closely model in real world. In this study, it was discussed with an example how Object Oriented Thinking (OOT) can help medical informatics students to learn about using Java Programming Language for solving a real world problem. Key Words Polymorphism, Java, Object Oriented Thinking Özet Nesne yönelimli yaklaþým programcýlarýn problem çözme yöntemlerini geliþtirecek önemli araçlar saðlamaktadýr. Object Oriented Thinking (OOT) nin çok biçimlilik, genelleme gibi temel OOT kavramlarýný açýklayabilmek için gerçek yaþamda karþýlaþýlan bir durumu çözmek ve bilgisayarý gerçek yaþama daha uygun hale getirmek amacýyla örnek problem verilmiþtir. Týp biliþimi öðrencilerinin her hangi bir problemi çözerken OOT den nasýl yararlanýlabileceði sunulan örnek yardýmýyla tartýþýlmýþtýr. Anahtar Kelimeler: Çok biçimlilik, Java, Nesne Yönelimli Düþünme. Object Oriented Thinking (OOT) temelinde problem uzayýndaki her þeyin bir nesne olduðu düþüncesi yatmaktadýr. Gerçek yaþamda da her þeyin bir nesne olduðu düþünülürse, OOT nin tüm yaþam alanýnda uygulama þansý bulabilecek, son derece önemli bir felsefi araç olduðu açýktýr. Yeni baþlayan öðrenciler, yapýsal (geleneksel) düþünme ve problem çözme alýþkanlýðýný kazanmýþ uygulama geliþtiricileri, sistem analistleri, sistem tasarýmcýlarý ve yazýlým mühendisleri için son derece önemli olan OOT kavramlarýný anlatmak ve bu beceriyi kazanmalarýný saðlayarak, kiþisel problem alanlarýnda etkili kullanmalarýný saðlamak güç olabilmektedir. Geleneksel programlama anlayýþýna göre, bilgisayarlar çeþitli koþullara baðlý olarak prosedürel bir yapý içinde istenilen iþlemleri yapan araçlar olarak kullanýlmaktadýr. Program satýrlarý incelendiðinde problemi anlamak çoðunlukla mümkün olmamaktadýr. Problemi bilgisayarýn iþlem yapma sürecine uygun hale getirmek kodlar üzerinden problemi anlamayý güçleþtirebilmektedir (1). Object Oriented Programming in (OOP) programlama dünyasýnda meydana getirdiði en temel deðiþim, bilgisayarýn problem dünyasýnýn içine çekilmesi denilebilir. Programýn, gerçek yaþamýn modellenmiþ nesneleri aracýlýðý ile probleme adapte olmasý saðlanmaktadýr. Dolayýsýyla, kod incelendiðinde, hem problem hem de çözüm ayný anda anlaþýlýr olabilmektedir. Projenin büyüklüðü ne olursa olsun yazýlýmda herhangi bir sorun çýktýðýnda ilgili nesneler incelendiðinde sorunu anlamak çok daha kolay olacaktýr (2). Uygulama geliþtirilirken kullanýlan programlama dili nesne yönelimli (Java, C# veya Delphi) olsa da, programlama anlayýþýnda tam bir dönüþüm gerçekleþtirilmedikçe bu araçlarla da geleneksel programlama yöntemlerini sürdürmek mümkün. Kullanýlan dilin özellikleri ne kadar bilinirse bilinsin OOP için gerekli olan felsefi alt yapý (OOT) öðrencide oluþturulmamýþsa nesneler dünyasýnda gerçek yaþamý taklit etmek mümkün olmayacaktýr. 53

2. Doçentlik Sýnavý : Gerçek Yaþam Problemi Birçok akademisyen gibi bu makalenin yazarýnýn da akademik aþama kaydedebilmek için geçmek zorunda olduðu doçentlik sýnavý tam bir gerçek yaþam problemidir. Bu problemi OOT ve Java (OOP) ile modelleyerek çözüme ulaþtýrabilmek mümkündür. Tablo-1Senaryo Dokümantasyonu Sýnav Senaryosu Birinci Aktör Ýlgililer ve Beklentileri Ön Koþullar Son Koþullar Ana Akýþ Alternatif Akýþ Doçentlik Sýnavý Doçent Adayý Jüri üyeleri, adaya soracaklarý sorularý bilmesini beklemektedirler. Aday YÖK kriterlerine göre gerekli diploma, yayýn ve yabancý dil koþullarýný saðlamalý. Jüri üyelerinin oy çokluðunu saðlamýþ olmalý. Aday yapýlacak sýnavda baþarýlý olursa doçent olacaktýr. Aday belirlenen ilde sýnava davet edilir. Önceden belirlenmemiþ bir zaman süresince aday sýnava alýnýr. Her bir jüri üyesi kendilerine has objektif kriterlerine göre belli olmayan sayýda ve zorluk derecesinde adaya soru sorarlar. Aday bu sorulara doðru cevap verir veya veremez. Sýnav biter ve jüri kararýný verir. Alternatif bir akýþ yoktur. Senaryo dokümanýndan yararlanarak nesneler ve bu nesnelerin bir biri ile olan etkileþimleri ve etkileþimde kullanacaklarý mesajlar belirlenebilir. Senaryodan anlaþýldýðý üzere problemde iki temel nesne ve bunlarýn etkileþimleri söz konusu Þekil-1). Senaryonun gerçeklenmesi için gerekli olan nesnelerin senaryoda yerlerini almalarýný saðlayacak iki tür (class) þekil-1 de görülmektedir. Her iki türde de dikkat edilirse bir genelleme söz konusu. Kemal, yani adayýn iki durumu söz konusu (Docent, ydocent). Ayný þekilde Juri nin ise (onereren, sibkatkactioglu, erdalbalaban) gibi senaryo için deðiþik jüri üyelerini temsil edecek alt türleri görülmektedir. Burada Kemal de Juri de soyut (Abstract) tür olarak tanýmlanmýþtýr. Bunun nedeni; sonraki bölümde göreceðimiz gibi soyut sýnýfta yer alan Kacpara(), Konus(), Yuru() ve kararver(), sorusor() gibi mesajlara, soyut türe ait nesnelerin senaryo akýþýndaki duruma göre farklý tepkiler verebilmelerini saðlamaktýr. Bunu soyut sýnýf üzerinden nesneye ulaþarak saðlayabiliriz. Böylece sýnav bittiðinde aday doçent olmuþsa mesajlara vereceði tepkilerin farklýlaþmasý ve soru soran üyenin kendi sitiline göre soru sormasý kendiliðinden saðlanabilir. Bu bizi OOT ve OOP nin önemli olan çok biçimlilik kavramýna (polimorphizm) götürür. Çok biçimliliðin uygulamasý sonraki bölümde verilmiþtir. 3. Doçentlik Sýnavý Benzetimi : Java Uygulamasý Soyut türlerin farklý biçimlerinin tanýmlanmasý gerekmektedir. Bunun için OOP de olan miras Þekil-2) (class ydocent extends Kemal) alma özelliðinden yararlanabiliriz. 54

Þekil-1. Problemin aktörleri 3.1. Aday(Kemal) Sýnýfýn Java da Gerçekleþtirimi Þekil-2. Aday türü için soyut sýnýf tanýmý Java kod parçalarýndan da anlaþýlacaðý üzere soyut sýnýfýmýzda (abstract class) Yuru(), Konus() ve Kacpara() gibi üç metot bulunmaktadýr. Bu metotlar soyut sýnýftan miras aldýklarý için sýnava giren adayýn durumuna göre farklý çalýþtýrýlacaktýrþekil-2, þekil-3). Benzer þekilde unvan ve image isimli özelliklerde sonuca göre deðiþecektir. Þekil-3. Çok biçimlilik için soyut sýnýftan miras alan iki tür (Docent ve ydocent). 3.2. Juri Sýnýfýnýn Java'da Gerçekleþtirimi Jüri sýnýfýndan miras alan her nesne Toplam ve GecerSayi isimli iki nesne özelliðine sahiptir. Bu deðiþkenlerden Toplam üyenin kaç soru sorduðunu, GecerSayi ise adayýn zorluk derecesine göre kaç soruyu doðru bildiðini saklamaktadýr. Kodlar incelenirse iki üyenin kararver() metotlarý farklýdýr. Bir üye, aday sorularýn yarýsýný doðru bilirse olumlu karar verirken diðer üye ise karar verdiði andaki Moralmetre isimli özelliðinden etkilenerek karar vermektedir. Burada jüri üyelerinin soru sorma ve karar verme sitilleri çok daha karmaþýk hale getirilerek bunlar metot gövdelerinde tanýmlanabilir. Makalenin konusu açýsýndan amaç sadece çok biçimliliði uygulamada gösterebilmektir. 55

Þekil-4. Jüri soyut sýnýfýnýn Java karþýlýðý. Þekil-5.Jüri sýnýfýndan miras alan bir jüri üyesi (ErdalBalaban) Þekil-6.Jüri sýnýfýndan miras alan bir jüri üyesi (sibkatkactioglu) 3.3. Sýnavýn Benzetimi Artýk senaryonun gerçekleþmesi için gerekli olan gerçek yaþam nesneleri hazýrdýr. Sýnav baþladýðýnda jüri üyeleri program tarafýndan rasgele seçilerek, her üye kendi sorularý içinden rasgele zorluk derecesinde soru seçecektir. Sýnav bittiðinde jüri üyeleri kararlarýný bildirecekler ve sonunda adayýn son durumu belli olacaktýr. Bu bölümde çok biçimlilikle (1, 2, 3) ilgili en önemli kod satýrlarý verilecektir. Aday nesnesinin inþa edilmesi için gerekli kod; Kemal KemalTURHAN=new ydocent0; Jüri üyelerinin benzetimde görev yapmalarý için Juries isimli tek boyutlu bir dizi onlara ev sahipliði yapmaktadýr. Görüldüðü gibi dizinin tipi Juri (Juri[] Juries) sýnýfýndan belirlendi. Burada yapýlan, problemin çözümü için bir genellemedir(çok biçimlilik). Ayný þekilde aday da Kemal sýnýfý ile iliþkilendirilerek benzer bir genelleme yapýlmýþtýr. Genellemede amaç, bir türe miras aldýðý sýnýf üzerinden ulaþabilmektir(juries[s].sorusor()). Ayrýca, KemalTURHAN isimli nesneyi Kemal isimli soyut sýnýftan tanýmlayarak KemalTURHAN ýn sýnavda çýkacak sonuca göre ydocent() veya Docent() nesnesine referans olarak kullanabilmemizi, dolayýsýyla çok biçimliliði saðlamaktadýr. Juri[] Juries = {new erdalbalaban(),new onereren(),new sibkatkactioglu()} ; Sýnav artýk baþlatýlabilir. 56

Þekil-7 : Sýnav döngüsü. Yukarýdaki kod parçasý sýnav anýný göstermektedir. Burada en önemli kod satýrý; Cevap=Juries[s].soruSor(); s deðiþkeni rasgele program tarafýndan atandýðý için o anki jüri üyesinin kim olacaðý önceden bilinemez. Dolayýsýyla sorusor() metodu çalýþma anýnda(runtime, late binding) seçilen üye için çalýþacaktýr. Bu bize OOP nin en önemli özelliklerinden birisini yani çok biçimliliði göstermektedir. Artýk karar verme zamaný gelmiþtir ve jüri üyeleri kararlarýný bildiriler. jtextfield1.settext(juries[0].kararver()); jtextfield2.settext(juries[1].kararver()); jtextfield3.settext(juries[2].kararver()); Sýnav bittiðinde adayýn davranýþlarýnda bir deðiþiklik olup olmadýðýna bakarak doçent olup olmadýðýný anlayabiliriz. Dikkat edilirse jüri üyeleri Geçti kararý vermiþlerse Doc isimli deðiþken bir arttýrýlmaktadýr. Bu deðiþken 1 den büyükse üç üye olduðu için çoðunluk saðlanmýþ olacaktýr. Yukarýdaki kod incelendiðinde programýn yazarýnýn hangi jüri üyesinin nasýl bir ruh haliyle soru soracaðýný ve sýnav sonunda adayýn nasýl konuþup yürüyeceðini veya kaç para kazanýyor olacaðýný bilmesi imkansýz. Gerçek yaþamda da öyle deðil midir? Ýþte OOT ve OOP nin çok biçimlilik özelliði ile gerçek yaþama ne kadar yaklaþabildiðinin bir örneði. Þekil-8. Sýnav sonucu. 57

Þekil-9. Sýnavýn Java ekran çýktýlarý. 4. Sonuç ve Öneriler Bir bilgi sistemi proje geliþtirme sürecinin her aþamasýnda yaþanan problemlere çözüm alternatifi olarak gündeme gelen OOT gerçektende çok önemli avantajlar saðlayabilir. Uygulama geliþtirmenin dýþýnda analiz ve tasarýmda da UML gibi nesne yönelimli araçlarýn kullanýlmasý gerçek yaþamýn çok daha kolay modellenmesini saðlayacaktýr. Özellikle genç biliþimcilerin kendilerine saðlanan bu olanaklarý iyi kavramalarý, yazýlým sektörünün ülkemizde geliþmesine yardýmcý olacaktýr. Bu ayný zamanda biliþim projelerinde ortaya çýkan sorunlarýn azalmasýna ve daha az kaynak ve emek tüketilmesine neden olacaktýr. 5. Yararlanýlan Kaynaklar [1] Eckel Bruce, Thinking in Java, 3 rd ed. Revision 4.0, http://www.mindview.net/books/tij/ [2] http://www.bolthole.com/oop.html, (18 Ekim 2006 da eriþildi.) [3] Timothy A Budd, Understanding Object Oriented Programming with Java, Oregon State University Corvallis, Oregon,,July 1997. Sorumlu Yazar; Yrd. Doç. Dr. Kemal TURHAN; Karadeniz Teknik Üniversitesi Týp Fakültesi Týp Eðitimi ve Biliþimi A.B.D., Trabzon. e-mail : kturhan@meds.ktu.edu.tr, kturhan_tr@yahoo.com, tel : 0 462 377 5680 58