İçeriğe atla

San José Eyalet Üniversitesi, temel programlama ilkelerini kendi kendilerine öğrenmeleri için öğrencilerine destek oluyor

Sanal makine sayısı açısından sınırlamalarla karşı karşıya kalan SJSU Bilgisayar Bilimleri Bölümü, bilgisayar bilimleri öğrencilerine sınırsız programlama alıştırması sunmak için kaynaklarının kapsamını genişletecek bir yönteme ihtiyaç duyuyordu.

Bilgisayar bilimlerine (CS) giriş derslerinde programlamayı öğrenirken, öğrencilerin birçoğu temel kavramları uygulamakta zorlanıyor. SJSU'da bilgisayar bilimleri profesörü olan Cay Horstmann öğrencilerin programlamayı kendi kendilerine uygulayarak becerilerini daha hızlı geliştirmelerine yardımcı olmak istiyordu. Ne yazık ki kodlama soruları genellikle her yıl yeniden kullanıldığından, öğrenciler çözümleri internetten kolayca bulabiliyordu. Profesör Horstmann'ın, öğrencilerin yanıtları internette kolayca bulamadığı ve de daha fazla uygulama sağlayan bir yönteme ihtiyacı vardı.

"Pazar akşamı öğrenciler ev ödevlerini yaparken 20 sanal makine çalışıyor olabilir ve iş yükü değiştikçe makineler de otomatik olarak hızlanıp yavaşlayabilir."

Cay Horstmann, Bilgisayar Bilimleri Profesörü, San José Eyalet Üniversitesi

Tüm öğrenciler için uygulamalı, gerçek dünya deneyimi sunan eğitimi mümkün kılma

Öğrenciler için kendi kendilerini eğitebilecekleri bir sistem oluşturmak, biyoloji ve hukuk gibi bilgisayar bilimleri dışındaki alanlardaki öğrencilerin kendi araştırmalarını yapmalarına ve daha üretken olmalarına yardımcı olacak bir yol olarak programlamayla ilgilenmelerini sağlama açısından giderek önem kazandı. Programlama artık yalnızca geliştiricilerin alanı değil.

"Bilgisayar bilimleri bölümlerinin programlama becerilerinin geliştirilmesini özendirmek üzere bu değişikliği yapmaya hazırlanması gerekiyor," diyor Horstmann. "Genel öğrenciler bilgisayar bilimleri dersini kendi alanlarında daha verimli olmalarına yardımcı olması için alıyor. Bilgisayar bilimleri eğitmenlerin sayısı yetersiz olduğundan öğrencilerin kendi kendine eğitim uygulamalarıyla öğrenebilmesi gerekiyor."

Cay, Google Cloud Eğitim Bursu programını Special Interest Group on Computer Science Education (SIGCSE) kuruluşundan duydu ve Google Cloud kredileri almak için bir araştırma bursuna başvurdu. Herhangi bir Google Cloud ürününde kullanmak üzere kredi almaya hak kazandı. Araçları kullanarak CodeCheck adlı otomatik sınıflandırıcıyı geliştirdi ve programlama uygulaması öğrencileri için yüzlerce alıştırma hazırladı.

CodeCheck, öğrencilere birçok dilden herhangi birinde nasıl programlama yapılacağının öğretilmesine yardımcı olmak üzere tasarlanmış web tabanlı bir programdır. Profesörler programlama problemlerini özelleştirebilir, böylece öğrencilerin, yanıtlarını internetten bulma ihtimali düşük olan problemler için kendi çözümlerini bulmaları gerekir. Bilgisayar Bilimleri Bölümlerinin sunucuları zaten yüksek kapasiteyle çalıştığından, Cay, CodeCheck'i sınırsız bilgi işlem gücüne sahip sanal makinelerden oluşan Google Compute Engine'i kullanarak oluşturdu. İzleme, günlüğe kaydetme ve teşhis için Stackdriver'ı, aracın ölçeklenebilirliği ve kullanım kolaylığı için ise Cloud SQL'i kullandı.

"Pazar akşamı öğrenciler ev ödevlerini yaparken 20 sanal makine çalışıyor olabilir ve iş yükü değiştikçe makineler de otomatik olarak hızlanıp yavaşlayabilir," diyor Horstmann.

Artık SJSU bilgisayar bilimleri profesörleri okul sunucularının kapasitesini düşünmeleri gerekmeden programlama eğitiminde bulut bilişimi araçlarını kullanabiliyor. Bu da, bilgisayar bilimlerinin yanı sıra diğer lisans alanlarında da eğitim alan öğrenciler de dahil olmak üzere daha fazla öğrenciye ulaşmayı kolaylaştırıyor. Öğrenciler uzak sistemi yönetme, iş yüklerini ölçeklendirme, günlük kaydı ve otomatik dağıtım konularını öğreniyor.

Öğrencilerin kendi kendilerine öğrenmelerini teşvik etme

CodeCheck öğrencilere kodlama sırasında gerçek zamanlı olarak geri bildirim sağlıyor, böylece çözümlerinin başarılı olup olmadığını hemen görebiliyorlar. Ancak CodeCheck öğrencilere neyi yanlış yaptıklarını söylemez, bunu kendilerinin keşfetmesi gerekir. Geçmişte öğrenciler çalışmalarını sunduktan sonra haftalar boyunca geri bildirim alamazdı. Bu süre zarfında, yanıta ulaşmak için izledikleri süreci genellikle unutmuş olurlardı.

Anket sonuçları öğrencilerin internet tabanlı bir uygulama kaynağına sahip olmayı değerli bulduğunu gösteriyor. Böylece, bir hata yaptıklarında utanmıyorlar ve belirli bir süre içinde tamamlama baskısı hissetmiyorlar.

Horstmann'a göre, CodeCheck öğrencilerin öğrenme ve test performansını da iyileştiriyor. Ana branş dışındakilere yönelik iki bölümlü Java dersinde, CodeCheck kullanılan bölüm kontrol grubundan yüzde 50 daha başarılı oldu. Bir programlama dilleri sınıfında, CodeCheck kullanan bölüm Şema programlama sorularında kontrol grubundan yüzde 20 daha başarılı oldu. Uygulama soruları kapsamına girmeyen bir soruda her iki grup da aynı puanı aldı. Transfer olan öğrencilere yönelik olan ve tüm öğrencilerin problemleri uygulamalı olarak ele alması gereken bir C++ sınıfında, dersin başıyla sonu arasında problem başına ortalama deneme sayısı üçte bir oranında ve ortalama tamamlama süresi yarı yarıya azaldı.

Programlamayı herkese öğretme

Öğrenciler doğal bulut kullanıcıları haline geliyor ve öğrencilerin bilgisayar bilimlerinde diğer disiplinlerde olduğu gibi eğitim görmesini sağlamak için eğitim araçlarının evrilmesi gerekiyor. Örneğin, öğrenciler temel resim tabanlı problemlerden döngüler oluşturmaya geçtiklerinde, döngülerin tüm girdilerle çalışması gerektiği için büyük bir kavramsal sıçrama olur. Birçok öğrenci kavramı anlar, ancak kavramı uygulamakta zorlanır. Kalıbı öğrendiklerinde kavramı koda nasıl uygulayacaklarını anlamaya başlarlar.

Otomatik sınıflandırıcı ile öğrenciler beş satırlık basit bir kodla başlayabilir. Öğrencilerin bir sınıf ödevi için 200 satırlık bir kod yazması gerektiğinde beş satırlık kod çok basitmiş gibi görünebilir, ancak buradaki amaç öğrencilerin küçük adımlarla öğrenmesini ve öğrendiklerini daha karmaşık ödevlere kademeli olarak uygulamasını sağlamaktır.

"Programlama iş insanları, bilim insanları, avukatlar, gazeteciler, kısacası verilerle çalışan herkes için bir 21. yüzyıl becerisidir," diyor Horstmann. "Bilgisayar bilimleri ana dalında geleneksel ders-laboratuar-ev ödevi modeliyle eğitimde başarısızlık oranımız bu kadar büyükse ana dalı bu olmayan öğrencilerin başarıyı yakalaması iyice zor. Bu nedenle, zamanı içinde kendini kanıtlayan 'tekrarlayarak öğren' yaklaşımını kullanıyorum"

"Programlama iş insanları, bilim insanları, avukatlar, gazeteciler, kısacası verilerle çalışan herkes için bir 21. yüzyıl becerisidir."

Cay Horstmann, Bilgisayar Bilimleri Profesörü, San José Eyalet Üniversitesi

Otomatik sınıflandırıcıyı arka uç işlemleriyle entegre etme

Stackdriver, Cay'in sorunları gidermesine ve öğrencilerin otomatik sınıflandırıcıyı doğru şekilde kullanmasını sağlamasına olanak tanıyan güçlü izleme ve teşhis özellikleri sunar. Örneğin, bir öğrenci diğer programları silen veya makineyi kapatan bir program çalıştırmayı denerse otomatik sınıflandırıcı bu komutu engellemek için donanımla entegre olur. Eskiden, Cay'in bazen bir sorunun nedenini bulmak üzere program hatalarını ayıklamak için saatler harcadığı olurdu.

CodeCheck'in ana hedefi programlama uygulaması yapmak isteyen tüm öğrenciler için ihtilafları azaltmaktır. Öğrencilerin otomatik sınıflandırıcıyı kullanmak için kaydolmasına veya oturum açmasına gerek yoktur. Profesörler CodeCheck'i eğitim yönetimi sitemine (LMS) entegre edebilir. Öğrenciler doğrudan LMS içinde çalışır ve otomatik sınıflandırıcı öğrencilerin puanlarını verir. Cloud SQL öğrencinin bir ödev üzerinde ne kadar süre çalıştığının kaydını tutar ve bu verileri otomatik olarak yedekler. Bu entegrasyon sayesinde, öğrenciler bir ödevi göndermek için "Puanımı kaydet"i tıklayabilir, böylece program göndermek profesörler ve öğrenciler için kolay hale gelir.

"Programlama, geliştiricilerin uzmanlık alanından ziyade geleceğin becerilerinden biri haline geldiğinden bilgisayar bilimleri bölümlerinin buna uyum sağlaması gerekti ve böylece öğrenciler kendi hızlarında öğrenebilir hale geldi," diyor Horstmann. "CodeCheck ile öğrenciler kendilerini eğitime sınıf dışında da devam etmeye zorlayabilir."

Güncellemeler, içgörüler, kaynaklar ve daha fazlası için buradan kaydolun.