ÖZEL EGE LİSESİ EĞİTİM KURUMLARINDA SINIF İÇİ YOKLAMA, SINAV GİBİ UYGULAMALARIN TABLET BİLGİSAYAR KULLANARAK HIZLI VE VERİMLİ HALE GETİRİLMESİ HAZIRLAYAN ÖĞRENCİ: Şemsettin Oğuz Yüksek DANIŞMAN ÖĞRETMEN: Selvinaz Gökalp İZMİR 2012
TEŞEKKÜR Projenin konusu için fikir veren ve algoritmayı kurmama yardımcı olan, çalışma esnasında fikirleriyle takıldığım noktaları aşmamı sağlayan Elektronik Y. Mühendisi ilkay KOZAK a teşekkürü borç bilirim. Ayrıca proje çalışmamı takip edip bana destek olan rehber öğretmenim Sayın Selvinaz GÖKALP e, Özel Ege Lisesi bünyesinde çalışan bütün idareci ve öğretmenlerime, moral desteğini esirgemeyen arkadaşlarıma ve yıllardır yanımda olup bana uygun çalışma ortamını sağlayan aileme teşekkürlerimi sunarım. 1
İÇİNDEKİLER A. Giriş ve Amaç...3 B. Algoritma...4 C.Gerçekleştirme Bilgisi...5 1.Programın Kodlanması...7 2.Dosya Yapısı...8-12 D. Sonuçlar ve Tartışma...13 E. Araç Gereçler...14 F. Kaynakça... 15 2
A. GİRİŞ VE AMAÇ Amacım tablet bilgisayar kullanarak öğrenci ve öğretmenlerin sürekli olarak yaptıkları işlemleri daha hızlı ve verimli şekilde yapmalarını sağlamaktır. Projenin çıkış noktası basında yer alan tablet bilgisayarların eğitim sektöründe kullanılacağı ile ilgili haberlerdi. Ben de sınıf içindeki gözlemlerim ile bazı süreçleri inceledim. Bunun sonucunda yoklama, sınav ve ödev süreçlerini kolaylaştıracak bir uygulama hazırlamaya karar verdim. Uygulamanın ana fikrinden yola çıkarak SoStudy ismini uygun buldum. Bu uygulama ile öğrencilere dersleri için daha fazla zaman yaratılmaktadır. Örneğin bir öğretmenin sınıfta yoklama yapması (35-40 öğrenci için) yaklaşık olarak 3 ile 4 dakika arasında sürmektedir. SoStudy ile yoklama süresi öğrenci sayısından bağımsız olarak çok daha kısa bir sürede (on kat daha hızlı) yapılabilmektedir. Sınav uygulamasında öğrencilere daha eşit koşullarda ve daha verimli bir ortam hazırlanmaktadır. Tüm öğrencilere sorular aynı anda gönderilerek, kâğıtların dağıtılması ve toplanmasında geçen zaman kaybı önlenmektedir. Ayrıca sınavları sonuçları, öğretmenin onay vermesi durumunda anında değerlendirilip hem öğrenciyi aldığı not konusunda bilgilendirmekte, hem de öğretmeni sınav kâğıdı değerlendirme yükünden kısmen kurtarmaktadır. Öğrenci yaptığı yanlışları sınav sonunda görüp, eksikliklerinin farkına varmaktadır. Böylece çalışması gereken konuları belirleyebilir. Ödevler de tablet üzerinden verilebilmekte ve değerlendirmesi de aynı şekilde yapılabilmektedir. Böylece çok büyük oranda gereksiz kâğıt tüketimi engellenmektedir. Yukarıdaki örneklerde görüldüğü üzere öğretmen ve öğrencinin işlemlerini kolaylaştırmakta ayrıca çevreyi korumaya da yardımcı olmaktadır. 3
B. ALGORİTMA Uygulama Android tabanlı tablet bilgisayarlarda çalışmak üzere tasarlanmıştır. Geliştirme dili olarak Java, veritabanı olarak da SQL (Microsoft SQL 2008 R2) kullanılmıştır. Geliştirme platformu için Google tarafından tavsiye edilen Eclipse seçilmiştir. Ayrıca sınav ve ödev dosya yapısı için XML kullanılmıştır. Tüm haberleşmede merkezi SQL sunucusu kullanılmıştır. Örneğin öğretmen kendi tablet inde önce kullanıcı adı ve şifresi ile giriş yapar. Bu sırada SQL sunucusundan sınıfı listesi sorgulanarak öğretmenin seçmesi için ekrana getirilir. Öğretmenin ilgili sınıfı seçmesi ile o sınıftaki öğrencilerin SQL veritabanında bulunan yoklama kolonu 1 (yoklama yapılıyor) konumuna getirilir. Böylece belirli aralıklarla sunucuyu sorgulayan öğrenci uygulaması, yoklama başlandığını algılayıp ekrana otomatik olarak yoklama butonunu getirir. Böylece ekranda yoklama butonu görsel ve işitsel olarak öğrenciyi uyarır ve yoklama yapması sağlanır. Öğretmenin ve yoklama yapan öğrencilerin yoklama kayıtları daha sonraki raporlama işlerinde kullanılmak üzere veritabanında tutulur. Öğretmen uygulamasında yoklama yapan öğrenci sayısı ekranın üst kısmında gösterilir. Yoklama süresi en aza indirilmiş olur. Öğretmen ödev vermek istediği zaman, dersin içinde herhangi bir anda kendi tabletindeki ödev gönder butonuna bastığı anda, sınıftaki öğrenci uygulaması otomatik olarak ödevi kendi belleğine alacak, ödevin etkin hale gelme saatinden önce görüntülenmeyecektir. Ayrıca ödevin son yapılma saati de belirlenecek böylece öğrencinin bir sonraki gün okulda ödev yapılmasının önüne geçilecektir. Sonraki derste ödev kontrolü öğretmenin kendi uygulamasındaki kontrol butonuna basması ile yapılacaktır. Hangi öğrencinin ödevlerini yaptığı, hangi sorularda ne yanıtladığı bilgileri alınabilecek ve ayrıca istatistiksel olarak öğrencinin hangi saatlerde, ödev için ne kadar süre kullandığı da saptanabilecektir. Sınav yapılması da ödeve benzer şekildedir. Öğretmen sınav sorularını gönderdikten sonra aynı anda tüm öğrencilerin sınavını başlatabilir. Öğrenci soruları yanıtlarken ekranın üst kısmında toplam kaç soru olduğunu, kaçını yanıtladığını ve geçen süreyi görebilir. Soruları şıklardan işaretleyebileceği gibi, soru şekline uygun olarak doldurma ve doğru/yanlış şeklinde de olabilir. Öğrenci sınavını bitirdiğinde bitti butonuna basacak, bir onay mesajının ardından sınavı bitmiş olacaktır. Öğretmenin izin vermesi durumunda sınav sonuçları anında öğrenci tabletine gönderilip uygulamada aldığı not ve yaptığı yanlışlar gösterilebilir. 4
C. GERÇEKLEŞTİRME BİLGİSİ 1. PROGRAMIN KODLANMASI Yazılımın kodlanması için Eclipse Geliştirme ortamı kullanıldı. Hem kod yazımında hem de hata ayıklamada kullanıcıya kolaylıklar sağlamaktadır. Gerekli yerlere kesme noktası konularak programın o noktada durması sağlanarak istenen değişkenlerin anlık değerleri kontrol edilmiştir. Google tarafında desteklendiği için Eclipse ortamı seçilmiştir. Aşağıda XML hazırlama ile ilgili bir ekran görüntüsü bulunmaktadır. Aynı zamanda Android ekran tasarımlarının da grafik olarak yapılmasını desteklemektedir. Android işletim sisteminde kullanılan tüm grafik arabirimleri (Widget) burada görüp, tasarım üzerine uygun şekilde yerleştirip uygulamanın ekran görüntülerini oluşturdum. 5
Yazılıma önce öğretmen modülünden başlandı. Aynı uygulama içinde yapılacak işler ayrı ayrı sınıflar (class) olarak düşünüldü ve her birine işlevine uygun adlar verildi. Önce öğretmenin kendini sisteme tanıtması için kullanıcı adı ve şifre giriş ekranı tasarımı yapıldı. Daha sonra öğretmen işlem yapacağı sınıfı ekrandan seçerek otomatik olarak yoklama ekranına gelmektedir. Sınıf seçimini kolaylaştırmak için önce sınıfın kademesi, daha sonra da o kademedeki şubeler açılır. İlgili şube seçilerek devam edilir. Yoklama ekranı açıldığında öğrenci tabletinde de otomatik olarak yoklama açılır ve cihaz titreme ile öğrenciyi uyarır. Yoklama yapan öğrencinin bilgi öğretmen uygulamasında aşağıdaki şekilde görünür. Toplam sınıf mevcudu ve yoklama yapan öğrenci sayısı ekranın üst kısmından takip edilir. Öğrencinin tablet bilgisayarını unutması veya cihazında sorun olması durumunda öğretmen ilgili öğrencinin adının üzerine tıklayarak da yoklama yapabilir. Daha sonra öğretmenin dersine devam ettiği varsayılmıştır. Ödev verilmesi veya sınav yapılması durumunda tekrar tablet devreye girecek ve ilgili işlem yapılacaktır. 6
Sınav kullanımı da şu şekildedir. Öğretmen daha önce hazırlanan sınavı ekrandan seçer ve tüm öğrenci cihazlarına gönderir. Öğrenci ekranında sınav soruları ve şıkları görüntülenir. Öğrenci bu şıklardan tercihini yapar. Sonraki soruya geçmesi için ekranı sadece ekranı yukarı veya aşağı kaydırması yeterli olur. Başlık kısmında geçen süreyi, yanıtlanan soru sayısını ve toplam soru sayısını görür. Sınav sorularının en sonunda öğrencinin sınavı bitirdiğini belirtmek için bir kutuyu onaylaması, ardından etkin hale gelen bitirme butonuna basması gerekmektedir. Öğrencinin yanıtladığı tüm sorular merkezdeki sunucuya gitmekte ve değerlendirilmektedir. Öğretmenin daha önceden onay vermesi durumunda alınan not, yapılan yanlışlar da öğrenci tablet bilgisayarı ekranında görüntülenir. 7
2. DOSYA YAPISI Uygulamada farklı türlerde dosya yapıları kullanılmıştır. Uygulama için kullanılan dil Java olduğu için kaynak kodlar. java uzantısı ile kaydedilmiştir. Ekran tasarımları ve sınav soruları ise XML dosya yapısı ile saklanmıştır. Bunun dışında ekran görüntülerinde ve butonların daha kolay algılanmasını sağlamak için.png ve.jpeg formatında resimler kullanılmıştır. Tüm uygulama derlendikten sonra Android uygulaması SoStudy.apk olarak oluşmaktadır. Java: Dosya yapısı public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); user = "oguz"; setcontentview(r.layout.main); // setcontentview(r.layout.pass_dialog); context = getbasecontext(); try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); } catch (java.lang.classnotfoundexception e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); } TextView tv = (TextView) findviewbyid(r.id.textview1); tv.settext("oguz Yuksek"); Button bexit = (Button) findviewbyid(r.id.bcikis); 8
bexit.setonclicklistener(new View.OnClickListener() { // @Override public void onclick(view v) { // finish(); new subesec(actsostudy.this, dls).show(); } }); XML: Dosya Yapısı <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="vertical" > <TextView android:id="@+id/yoklamatext" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="yoklama" 9
android:layout_marginleft="50dp" android:layout_marginright="50dp" android:layout_marginbottom="20dp" android:textappearance="?android:attr/textappearancelarge" android:textsize="36dip" /> <Button android:id="@+id/btamam" android:layout_width="match_parent" android:layout_height="wrap_content" android:onclick="uyoklama" android:layout_marginleft="50dp" android:layout_marginright="50dp" android:text="tamam" /> </LinearLayout> SQL: Dosya Yapıları CREATE TABLE [dbo].[ogrenci]( [Ogrenci_id] [int] IDENTITY(1,1) NOT NULL, [Kayit_tarihi] [datetime] NULL, [Mernis_id] [bigint] NULL, [Ogrenci_okul_no] [bigint] NULL, [Okul_id] [int] NULL, [Yabanci_Dil] [nvarchar](50) NULL, [Aktive] [bit] NOT NULL, [Yabanci] [bit] NULL) CREATE TABLE [dbo].[ogrenci_sube]( [Ogrenci_id] [int] NOT NULL, [Sube_id] [int] NOT NULL, [Donem_id] [int] NOT NULL, [Kayit_tarihi] [datetime] NULL, [Aktif] [bit] NULL, [Kontrol] [int] IDENTITY(1,1) NOT NULL 10
CREATE TABLE [dbo].[sube]( [Sube_id] [int] IDENTITY(1,1) NOT NULL, [Sube_adi] [nvarchar](50) NULL, [Sinif_id] [int] NULL, [Aktif] [bit] NULL CREATE TABLE [dbo].[kisi]( [Mernis_id] [bigint] IDENTITY(1,1) NOT NULL, [Adi] [nvarchar](50) NULL, [Soyadi] [nvarchar](50) NULL, [Kullanici_adi] [nvarchar](50) NULL, [Parola] [nvarchar](50) NULL, [Cinsiyeti] [nvarchar](50) NULL, [Referans_Mernis_id] [bigint] NULL, [Statu_id] [int] NULL, [Yoklama] [int] NOT NULL, [Resim] [nvarchar](50) NULL, [Eposta] [nvarchar](50) NULL, [webadresi] [nvarchar](50) NULL, [mernis_real] [bit] NULL, [oz_mernis] [bigint] NULL, [TCKimlikNo] [bigint] NOT NULL qogrenci Select Adi,Soyadi,Sube_adi,Ogrenci_okul_no,yoklama,o.mernis_id from Ogrenci o left outer join Ogrenci_Sube os on (o.ogrenci_id=os.ogrenci_id) outer join Sube s on (os.sube_id = s.sube_id) left outer join Kisi k on (o.mernis_id=k.mernis_id) where Okul_id = 17 and Sube_adi is not null and Donem_id =49 and s.sube_id=? order by Sube_adi left qupdate update Kisi set yoklama =? where Mernis_id in ( Select k.mernis_id from Ogrenci o "left outer join Ogrenci_Sube os on (o.ogrenci_id=os.ogrenci_id) left outer join Sube s on (os.sube_id = s.sube_id) outer join Kisi k on (o.mernis_id=k.mernis_id) where Okul_id = 17 and Sube_adi is not null and Donem_id =49 and s.sube_id=? and (o.mernis_id=0 or o.mernis_id=?)) qupdateall update Kisi set yoklama = 1 where Mernis_id in ( Select k.mernis_id from Ogrenci o " left outer join Ogrenci_Sube os on (o.ogrenci_id=os.ogrenci_id) 11
left outer join Sube s on (os.sube_id = s.sube_id) left outer join Kisi k on (o.mernis_id=k.mernis_id) where Okul_id = 17 and Sube_adi is not null and Donem_id =49 and s.sube_id=?) 12
D. SONUÇLAR VE TARTIŞMA Bu uygulamaların geliştirilmesindeki amaç öğrenci ve öğretmenin zamanını en etkin şekilde kullanarak okuldaki günlük işlerini hızlı ve hatasız yapmasını sağlamaktır. Günümüzde popüler olmaya başlayan Android tabanlı tablet bilgisayarlar yardımı ile bu proje gerçekleştirilmiştir. Android in açık kaynak kodlu olması ve geliştirme araçlarına kolaylıkla sahip olunabilmesi, bu projenin hayata geçirilmesini kolaylaştırmıştır. Proje ders kitaplarının da tablete yüklenmesi ve ders çalışmayı kolaylaştırması ile geliştirilebilir. Ayrıca var olan ders kitaplarının öğrencinin daha kolay kavramasını sağlayacak şekilde etkileşimli (interaktif) olarak hazırlanmasına da olanak sağlar. Sonuçta amacımız daha iyi öğrenim ve daha bilgili ve eğitimli nesiller yetişmesi ise, yakın zamanda bu ve buna benzer projelerin hayata geçirilmesi kaçınılmaz olacaktır. 13
E. ARAÇ GEREÇLER Eclipse IDE for Java Developers Android SDK (v2.2) SQL Management Studio Barnes&Noble Nook Color Tablet Samsung Galaxy Note 14
F. KAYNAKÇA www.eclipse.org developer.android.com Java Geliştirme Ders Notları Yaşar Üniversitesi Microsoft SQL 2008 R2 User Guide 15