O halde ben, bir ilk programlama dili olarak lisede C ++ öğretildi oldu daha "C +" gibi, şimdi sen söyleyince; cout
Konsola ve dosyalara metin yazmak için kullandık , fakat aynı zamanda epeyce C fonksiyonunu kullandım ( getch()
favorim).
Temel bilgileri öğretmenin en etkili (ve muhtemelen eğlenceli) yolunun hedef odaklı bir müfredat kullanmak olduğunu düşünüyorum: bir şeyler nasıl yazılacağını, sonra klavye girişini, sonra basit dosya giriş / çıkışını, vb. Göstererek başlayın. tabanlı oyun (veya robotik eşdeğeri). Sonra, "X'i nasıl yaparım?" Diye sorduklarında, daha önce gördükleri örnekler açısından X'i parçalayabilirsiniz, örneğin, "Önce Z'de yaptığımız gibi kullanıcıdan girdi almanız gerekir, sonra" 3D grafik 'ama yine de nasıl açıklayabilir ..." X olasılıkla onlar, örneğin yapmak için ek bilgiye ihtiyaç şey olacağından (belli ki bu pratikte kolay değil' olacağını yüksek seviyede çalışmak yön).
Onlara göstereceğiniz örnekler, kara kutu kopya yapıştırılmış büyü olarak başlayacak ve programlama bulmacasının parçaları yavaşça çözüldüğü için gizemleri çözülecektir. Örneğin, öğrencileriniz if
oldukça hızlı bir şekilde temellerini öğreneceklerdir , ancak muhtemelen bir boolean ifadesinin yalnızca bir if
koşulda (klasik if (blah) return true; else return false;
koda neden olacak şekilde) kullanımıyla sınırlı olmadığını farketmeyeceklerdir .
Bir dizi veya vektörü bir kap olarak seçip seçmemenizin incelikleri, ilk başta öğrencilerle ilgisiz görünecektir. Bir vektör / dizi, bir indeks üzerinden erişilebilen, bir değişken olarak birçok değişkene sahip olmanın bir yolu olacaktır. Yapabileceğin bir yere yap. İşaretçiler de daha sonraya kadar anlaşılmayacak. Bu şeyleri açıklamaman gerektiğini söylemiyor; Sadece bir kerede her şeyi açıklayamazsınız ve açıkladığınız şeyler tamamen emilmez. İnsanlar doğrusal olarak değil organik olarak öğrenirler. Operatör aşırı yüklemesinin ne olduğunu tam olarak anlayabilmek cout
için birkaç senedir kullanıyordum !
Oh, ve tekrar etmekten korkma. “Bu yaptığımız Hello World programı gibi - konsola nasıl yazı yazdığımızı hatırlıyor musun?” (hayır ...) "Sadece emin olmak için tekrar geçelim." ... Ve sorular sorun! Öğrencileri eğlenceli örnekler ve çok fazla etkileşimle meşgul edin.
C ++ karmaşık bir dildir ve ne yaparsanız yapın, bu karmaşıklığın (ve genel olarak programlama zanaatinin) önemli bir kısmı öğrencilerinizde kaybolacaktır. Onlara gösterdiğiniz her şey onlar için yeni olacaktır; çoğu derin bir anlayış düzeyinde (en azından hemen değil) batamaz. Hafıza nasıl çalışır, bir PC'nin bileşenleri nasıl etkileşir, yığın ve yığının ne olduğu, işaretçiler, sınıflar, hatta döngüler ve eğer varsa zincirler çoğunluk tarafından tam olarak anlaşılmaz . Tamamdır! Kullanıldıkları anlaşılmayacaklar - süper çirkin 1000-line fonksiyonlarla, beşli-yuvalanmış yedekli if
s ve bunun gibi 43 değişkenli inanılmaz sayıda harika program yazılabilir x_2r
. Önemli olan, öğrencilerin sürekli öğrenmeleri ve gelişmeleridir.. Siyah kutular uzun vadede şeffaf (veya en azından yarı saydam gri) olduğu sürece iyidir. Kursun sonunda, tasarım patlayıcılarının ne olduğunu bilemeyebilirler, ancak ilk birkaç hafta içinde yazdıkları programlara tekrar bakabilmeli ve kodlarını zorlayabilmelidirler . Yazdıkları ilk programın gerçekte nasıl çalıştığını çok ayrıntılı bir şekilde anlamalıdırlar (oysa yazdıkları hakkında hiçbir fikirleri yoktu). Fakat henüz her şeyi bilemeyecekler - henüz .