Java'yı neden üniversitede okuyoruz? [kapalı]


25

Java genellikle akademi'de bulunur. Bunun arkasındaki sebep nedir?


9
Microsoft ekosisteminde olduğu gibi Java IDE için lisans ücreti alınmaz. Üniversiteye yaptığınız büyük okul ücretlerinden daha fazlası.
mjhilton

16
Ne? Microsoft Visual Studio Express'i ücretsiz olarak alabilirsiniz.
quant_dev

12
Aslında öğrenciyseniz ve diğer tüm Microsoft uygulamalarında Visual Studio'yu ücretsiz olarak alabilirsiniz.
Erin

5
Çünkü mezun olduktan sonra para kazanmak istiyorsun. realDünyada hiç kimsenin kullanmadığı şeyleri incelemek için 4 yıl harcamak , öğrencilere veya öğrencileri işe almak isteyen şirketlere fayda sağlamaz.

5
@JarrodRoberson, sadece bazı şirketler Java kullanıyor, üniversiteler sizi gerçekten daha geniş bir dil çeşitliliği konusunda eğitmeli, bu nedenle gerçek dünyaya daha iyi hazır olmalısınız. Düşünmek ve geliştirmek için başka birçok yol varken, sadece bir Java programcısı olarak sıkışıp kalmak istemezsiniz.
CaffGeek

Yanıtlar:


73

Bir kaç Üniversiteler yeterince iyi birçok (olmasa bile en) kararları örneğin vs. o kişinin hoşlandığı, hoşlanmadığı, görüşler, tat, sadece etrafında döner olduğu bilinmektedir birileri, Texas A & M kadrosunda Bjarne Stroustrup sahiptir var; Müfredatının C ++ 'ı vurgulama eğiliminde olduğu kimseye pek de sürpriz gelmedi.

Çoğu üniversite olsa da biraz farklı. Birincisi, kararlar genellikle fakültenin yararına öğrencilerden çok daha fazla verilir. Birçok durumda en büyük kriter "hangi dil bizim tarafımızdan en az çabayı gerektiriyor?" Bunların çoğu tembelliklerine de dikkat ediyorlar - sadece öğrenecekleri en az gelişmiş konseptli dili değil, aynı zamanda yeni bir şeyi yenilemek, güncellemek ya da kucaklamak için en yavaş olanı da istiyorlar.

İkincisi, çoğu karar komite tarafından verilir. Bu, nihai kararın nadiren (hiç de olsa) herhangi birinin gerçekte istediği anlamına geldiği anlamına gelir - komitenin en az üyesinin (özellikle en fazla etkiye sahip olanlar) özellikle sakıncalı bulduğu şeydir. Dondurmanın tadına bakmak gibi. Biri çileği sever, ancak bir diğeri de çileğe alerjisi vardır. Bir başkası çikolataya bayılır, ama başkası buna dayanamaz. Yine bir diğeri romlu kuru üzümün harika olduğunu düşünüyor, ancak diğer ikisi de "rom" lafının alkol kötüye kullanımını teşvik ettiği şeklinde yorumlanacağından endişe ediyorlar - bu yüzden herhangi birisinin istediği şey olmasa da vanilya ile sonuçlandılar.

Son olarak, genellikle , önceki iki kriterin izolasyonda üreteceklerinin çoğuna doğrudan doğrudan karşı çıksa da, genellikle endüstrinin ihtiyaçlarına cevap veren olarak görülmeleri gerekir (veya en azından istemektedir).

Java, bu üçünün kesişimidir:

  1. İçerdiği her kavram 1980'de iyi bilinmektedir. OOP'nin ne olduğu konusunda en temel kavramın ötesinde bilinecek bir şey yoktur.
  2. Tatsız, kokusuz, toksik olmayan, biyolojik olarak parçalanabilen, politik olarak doğru seçim.
  3. Neredeyse tarihte var olan ve (muhtemelen) daha az inovatif olan tek dil SQL'dir. Hızlı hareket eden hedefler dediğiniz şey olsalar bile, COBOL ve Fortran, her ikisini de Java'dan daha fazla yeniledi.
  4. Yaygın olarak kullanılır. Aşağı indiğinizde, profesörler ve PHB'ler benzer kriterlere sahiptir.

Gerçekten de (örneğin) Java hakkında bilmeniz gereken, OOP'nin en temel kavramından daha fazla bir şey olmadığını söylemiyorum - yalnızca öğretmenin kabul edilebilir bir işi için geçenleri yapmak için gereken tek şey budur.


Yorumların bir kısmı, bu cevabın görüşleri ayrıldığı için buradan çıkarıldı.
Görünen Ad,

1
Şimdi vanilyayı tercih ederim.
Monica ile Hafiflik Yarışları,

Cevabınızı değiştirmek için kayıt oldum
user2445942

22

Java ortaya çıkmadan hemen önce doksanlı yılların başında Bilgisayar Bilimi okudum. Profesörlerimiz tarafından takip edilen yaklaşım aşağıdaki gibidir.

İlk yıl: Pascal'da programlama ve algoritmalar hakkında tanıtım kursu. Neden Pascal? Çünkü programlama kavramlarını hackleme imkânı olmadan öğretmek için tasarlanmış temiz bir dildir. Elbette biz öğrenciler o zamanki en popüler dilin C olduğunu ve artan popülariteye sahip yeni bir dil olduğunu biliyorduk: C ++. Bu yüzden sürekli bu dilleri okuyup tartışıyor ve kendi başımıza kullanarak küçük projeler yapıyorduk. Yani fikir şuydu: sınıfta ciddi teoriyi yaparız (Pascal) evdeyken nasıl hack edeceğimizi (C) öğreniriz. :-)

İkinci yıl boyunca C ve montajda alıştırmaları yapmamızın istendiği bir işletim sistemi kursu vardı. Profesör bize C konusunda tam bir ders vermedi (sadece birkaç ders) çünkü (1) ilk yıl boyunca programlama dersi aldık ve (2) programlama kavramlarını bilen her bilgisayar bilimcisinin, Bir kitap okuyabilir ve yeni bir programlama dili öğrenebilir. Kurs oldukça sorunsuz geçti ve hepimiz C ve meclisin kendi başınıza öğrendiğiniz ya da diğer öğrencilerle koridorda tartıştığınız ancak ders yapmaya değmeyecek pratik konular olduğunu normal bulduk.

Üçüncü yıl boyunca, farklı programlama dilleri paradigmalarını (zorunlu, işlevsel, mantıksal, nesne yönelimli) çalıştığımız programlama dilleri üzerine bir kurs yaptık, genel kavramları ve uygulama tekniklerini öğrendik ve ana programlama dillerini gözden geçirdik (Pascal, C, Modula2, Simula, Lisp, C ++, Prolog). Profesörümüzün kursun başında bize anlattığı şey şuydu: kursun sonunda kaç tane programlama dili bildiğinizi düşünerek bu kursu değerlendirmemelisiniz, bunun yerine öğrendiğiniz tüm genel kavramlar, nasıl olduklarını düşünerek birbirleriyle, ne için iyi olduklarını, hangi dillerde nasıl kullanıldığını. Daha sonra, belirli bir dili öğrenmek, sadece kitap okumak, mevcut koda bakmak, belirli bir projede kullanmaya çalışmak, vb.

Bu yaklaşımı çok uygun ve etkili buldum. Üniversitenin iyi programcılar hazırlamayı amaçlaması gerektiğini düşünmüyorum, bunun yerine programlama ve programlama dillerini anlamaya izin veren iyi bir bilgi vermeyi amaçlıyorum. İyi bir programcı olmak bunun bir yan etkisi olarak ortaya çıkacaktır. Şimdi Ada'nın zorunlu olduğu bir işe başvurmayı düşünüyorum ve daha önce Ada'da ciddi bir programlama yapmadığım halde ondan korkmuyorum.

Java öğretimi sorununa geri dönüyoruz. Sanırım Java genellikle öğretim için kullanılıyor, çünkü yeterince tarafsız ve endüstri dünyasına yakın bir dil kullanarak programlama ilkelerini açıklamaya izin veriyor.

Şahsen ilk dersim için Pascal veya benzer bir dil kullanmaya devam edeceğim, çünkü bu, Java / nesne yönelimli dillerde sıkıca tümleşik olan kontrol yapıları ve veri yapıları arasında ayrım yapmama izin verecek. Bu yüzden, benim görüşüme göre Pascal, programlama temel kavramları için daha kademeli bir giriş yapacaktır.

Ayrıca, bir bilgisayar bilimcisi (ve iyi bir programcı), yığın, yığın, parametre geçirme, bellek tahsisi, işaretçiler gibi temel mekanizmalar / çalışma zamanı yapıları veya yerleşik tesislerini kullanmadan soyut veri tiplerinin nasıl uygulanacağı hakkında bilgi sahibi olmalıdır. dil (listeler, ayarlar vb.) Java, bunun çoğunu programcılardan alır (elbette iyi), ancak yeni başlayanlar bu şeyleri öğrenmelidir. Belki de Java’daki ilk programlama kursundan sonra, programlama dilleri kavramları hakkında daha genel bir kurs almalısınız.

Bu sadece benim deneyimim ve görüşlerim.


1
İlk yıl üniversitedeyken programlama kursları için Ada'yı yaptık (bilgisayar sistemleri kursunda bazı montajlar). 2. yıl oldukça benzer bir dil tarzıydı. 3. yıl tam olarak şöyle söylendi: "programlama kavramlarını bilen her bilgisayar bilimcisi, bir kitap okuyabilir ve yeni bir programlama dili öğrenebilir". Yıl sonunda C, C ++, Java ve kendi projenizde hangi dilde yaptınız (benimki Python'du) öğrenildi. Gerçek dünya için şimdiye kadar aldığım en iyi hazırlıktı.
Amy

(+1) Pascal ile ilgili programlama dilleri, programlama öğretimi için daha iyidir, çünkü babası "Niklaus Wirth", onları dikkatlice öğretmek için tasarladı. ;-)
umlcat

@umlcat: Teşekkürler. Evet, C ya da C ++ 'a sahip olmanın iyi olacağını düşünüyorum. Ancak kuralları çiğnemeden önce, hangi kuralları çiğnediğinizi biliyor olmalısınız. Bunun için, “ideal bir dünyada” nasıl programlanacağınızı öğrenmek için Pascal gibi temiz bir programlama diline sahip olmak çok yararlıdır. O zaman en azından hack yaparken ne yaptığını biliyorsun. :-)
Giorgio

@Giorgio: Bence öğrencilere önce Pascal, sonra C / C ++ ve daha sonra Java öğretilmelidir. Sadece birini ya da başkaını kastetmiyorum, ama hepsini belirli bir düzende. Bazı okullar birisini diğerinin lehine bırakıyor. PSD de C ve Java'da çalışıyorum. Umarım yardımcı olur ;-)
umlcat

@ umlcat: Tamamen katılıyorum. Lisp, Haskell, Prolog da ekleyeceğim: ne kadar çok programlama paradigması varsa o kadar iyi.
Giorgio

10

Java geldiğinde okuldaydım. Ve üniversitem neredeyse bir gecede değişti. Java'da akademi'de insanlar başıboş dolaşıyordu. Ortaya çıktığında bir Jr'ydim ve o zamana kadarki son sınıfımda, neredeyse tüm akademi müfredatlarını değiştirmek için hızla ilerliyordu. Sadece üniversitemde değil her yerde. Gerçekten bu kadar hızlıydı. İkinci giriş kursumuz Pascal idi ve bu bir yıldan kısa bir süre içinde hızlı bir şekilde Java'ya dönüştürüldü. Neden bu kadar hızlı dönüştüler? İki büyük sebep.

Bir akademisyen teori ve algoritmaları öğretmek istiyor. Çalıştırmak için çok fazla deneyime ihtiyaç duymayan algoritmaları öğrenmenizi kolaylaştıran diller en iyisidir: Şema, Python, Java, Smalltalk, vb. O zamanlar betik dilleri ikinci sınıf vatandaşlardır, işverenler tarafından ucuz ya da hızlı ve kirli olarak kaşlarını çattılar. Akademisyenler, onları daha çok kopya kedi olarak görüyordu, ancak işverenlerin istediği şey akademisyenlerle de birlikte hareket ediyor.

Bu bizi bir sonraki nedene getiriyor. İşverenler belli bir dil tecrübesi istiyorlar ve o zamanlar C / C ++ idi. Ancak, C / C ++ öğrenmek için çok fazla tecrübe alır ve dikkat dağıtıcı olan bir çok köşe durumu vardır. C / C ++ derslerini aldık ancak daha düşük seviyelerde değil. O zamanlar işverenler CS programlarına kızdılar çünkü öğrenciler C / C ++ guruları olmadılar.

Java, neredeyse akademi kadar hızlı bir şekilde endüstriyi taradı. Sonunda akademi istediklerini elde ediyordu. Öğrenmesi kolay olan üst düzey bir dil ve bir dil işvereninin aranması. Her şey çok mükemmeldi. Ben gittikten 3 yıl sonra arkadaşıma akademi'ye geri döndüm ve her CS dersinde bir Java kitabı bulabileceğini söyledi. Java, akademi'yi bu kadar hızlı aldı.

Şahsen, Java’nın CS’yi bırakmadığını düşünüyorum, çünkü öğrenciler CS’i okuyabilir, Açık Kaynak’a katılabilir ve okuldayken bile iş bulabilirler. Hala CS öğrencisi olarak birçok dil öğrenmelisin ve bu sadece Java olmamalı. Ancak, eğer hepsi python kullandıysa, Joel de pythondan nefret ederdi.


Okulunuz hala 90'lı yılların ortalarında Pascal kullanıyorsa, o zaman zaten bir revizyon için gecikmişlerdi. İlk CS derslerim Pascal'daydı, ama bu 1980'di! İlginçtir, ancak, sadece tanıtım kurslarıydı - C (işletim sistemi kurumları için), Modula (derleyici tasarımı için), Prolog ve bazı lisansüstü kursları Ada'yı bile kullandı. Okulların neden hala bunu yapmadığını anlamıyorum.
TMN

1
çoğu ya da hepsi hala Pascal'ı 1995 kadar geç kullandı, birkaçı Modula'ya geçti. Mine, 1995 yılında C ++ 'ı yaşlılar için Pascal' ı tanıtmaya başladı. Sanırım Pascal'ı artık Java ile değiştirdiler (çalışmaların çoğu donanım ile etkileşimi içerdiğinden düşük seviyeli bir dile ihtiyaçları var, bu yüzden C ++ muhtemelen hala buralarda).
saat

Pascal tanıtım kursundan sonra biraz C / C ++ kullandık. Prolog, LISP, Şema, Smalltalk, Assembly hepsi orta sınıflarda kullanıldı. Hükümetin teknoloji tüketiminin önemi 1990'larda azalırken, Ada aşamalı kaldı ve yalnızca 1990'ların sonunda söylendi. Bence Java tehlikelerinin Java ile ilgisi yok, ama monokültür ve öğrenim var. Artık bir Flex geliştiricisiyim ve Adobe geçen hafta onunla geçimeme yetti. Endişelenmiyorum çünkü sadece 1 dili kullanmama konusunda uzun bir geçmişim var. Java, Ruby, Php, Python'a geri döneceğim.
chubbsondubs

8

Bunun da dahil birkaç nedeni var:

  • İş piyasasındaki eşitsizlik - eğer üniversiteler öğrencilerinin işe alınmasını istiyorsa (ve üniversiteye daha fazla öğrenci önerirse) ilgili dilleri öğretmeleri gerekir.
  • Müfredatı kolaylaştırır
  • Ödevini uygulamak için notlandırmak daha kolay ve kolaydır.
  • Çöp toplandığından göstericilere ve manuel hafıza yönetimine gerek yok

Aynı nedenden dolayı C # öğreten çok sayıda okul olduğunu unutmayın. Bazılarının bireysel okula özgü olmasının çok daha fazla nedeni var. Temelde Java, geçmişe ait nesneye yönelik "TEMEL" olmuştur.


Harika Java kitapları da var, BlueJ kullanan Java ilk nesne gibi OOP'yi de basitleştiriyor. Ancak, C # 'da sizi en baştan alıp iyi bir şekilde öğrenen bu tür öğrenme kitapları görmedim. Benimle aynı fikirde misin?
Goma

Yapacağım. Öğretim çok zor bir iştir ve öğretmenler hala en iyi nasıl öğretileceğini öğreniyorlar. Strayer gibi C # 'a bağlı çevrimiçi okulların birçoğunu bulacaksınız ve tuğla ve diğer okullar Java’ya yönelmektedir. Muhtemelen, çevrimiçi okullar zaten çalışmakta olan öğrencilere hitap etmektedir. Temel programlama kitapları herhangi bir dile uygulanabilir, bu nedenle kullanılabilir materyaller var.
Berin Loritsch

"Çöp toplandı, bu yüzden işaretçilere ve manuel bellek yönetimi öğretmeye gerek yok." bir yazılım mühendisi olarak, işaretçiler ve bellek yönetimi hakkında bir şey bilmiyorsanız veya nasıl çalıştıklarını bilmiyorsanız, çok önemli bazı bilgileri kaçırıyorsunuz.
sağa dönüş

Java *sözdizimine sahip olmayabilir , ancak temel bir işaretçi anlayışı olmadan kullanımı çok zor olurdu .
dan04, kas

@WTP ve bu yüzden Java genellikle başlangıç ​​kursları için kullanılır (daha önce Pascal veya Modula'nın kullanıldığı yerlerde) ve daha sonra C (++) tanıtılır.
saat

6

Joel Spolsky'nin The Perils Of Java Schools başlıklı yayınını beğendim . Bence Berin Loristch bu dersi basitleştirmekte haklı ve aynı zamanda gerçek dünyaya da uygulanabilir.

Aşağıdakilerin birçok kez söylediklerini duydum: "Bilgisayar Bilimi derecesi programlama öğrenmek için bir derece değil, teoriyi öğrenmek için". Dilin, mutlaka teori öğrenilebildiği sürece (buna engel olmamasına rağmen) önemli olması gerekmez. Java, alması nispeten kolay bir dildir ve her şeyin arkasındaki teoriyi öğrenmek için daha fazla zaman harcanmasını sağlar. Bu, MIT’in Şema’yı kullanmasının sebeplerinden biridir (bu yüzden duydum).


2
- Mit birkaç yıl önce Şema kullanılarak durduruldu cemerick.com) / 2009/03/24 / ...
Nate c

@nate c - ya emin değildim. Yine de Python'un öğrenmesi de oldukça kolaydır. Gerçi bağlantı için teşekkürler!
Jetti,

Bir ders veriyor olsaydım öğrencilerimle tamamen uğraşırdım. Kendi programlama dilinizi yazmayı teşvik ediyorum ve bu programlama dilini yalnızca dersin dışında kullanabilirsiniz.
berlinbrown2

1
@Berlin - Sanırım bu yüzden öğretmen değilsin :)
Jetti

3

Yukarıda verilen cevapların çoğu iyi cevaplardır, ancak bir şeyi dışarıda bırakırlar.

Java çok platformlu bir dildir. Bir öğrenci Mac, diğeri PC, diğeri ise öğrenci Unix hesabını kullanabilir. Aynı kod aynı şeyi yapacaktır. Hem öğretmenin hem de okulun BT departmanının desteklemesinin ne kadar kolay olduğunu düşünün.

Java ortaya çıktığında asıl önemi buydu. Şaka, "Kod bir kez, her yerde hata ayıklama" idi, ancak gerçekten donanım ve işletim sistemlerini denklemden çıkardı.


Belki de bu, Java'nın neden C, C ++ veya C # üzerinden seçildiğini açıklamaktadır, ancak Ruby ve Python (diğerlerinin yanı sıra) sadece ince bir platformda çalışmaktadır.
Eric Wilson

İyi bir nokta. CS departmanlarının da bir çok sebepten dolayı çokça yazılmış dilleri desteklediğine inanıyorum. Ayrıca, Java’nın ABD’de başlaması başlamıştı Ruby, bunu 1999’a kadar veya daha sonraya kadar başaramadı ve Python 2.0 çıkana kadar oldukça sınırlıydı.
Matthew Flynn

1

Profesörlerin Java'yı öğretmek için kullandıklarını söylediklerini duydum çünkü

  • yeni paradigma (ları) kullanır (OOP, bazı jenerikler)
  • oldukça ayrıntılı olmasına rağmen sözdizimsel olarak çok basit
  • daha üst düzey fonksiyonlar, kapanışlar, kızarma veya insanların hala temel kavramları öğrenmelerini engelleyebilecek devamlılık gibi ileri kavramlar yok
  • bunun için yazılmış çok sayıda kütüphane
  • Bir gc olduğundan öğrenciler bellek sızıntısı hata ayıklamalarına boğulmazlar

Şahsen ben öğretmek için Scheme kullandıkları zaman Berkeley’de CS aldığım için mutluyum. Bir dilin ne kadar zarif olduğunu fark etmeme rağmen, birkaç yıl sonraya kadar.


1

Küçük bir arka plan

Okulumuzda sunulan tek Java sınıfını aldım. Bu, 90'lı yılların başında, 2000'lerin başındaydı. Java büyüyordu, ancak neredeyse kalkmıyordu. C'deki bir çok gelişmeden gelince, Java'nın çalışmaya başlaması için gereken tüm kod kodunda biraz hayal kırıklığına uğradım. Görevime odaklanamadım. "Open" ile bir dosyayı açamadım. Sınıfı ve ardından ithalatları vb.

Bilgisayar mühendisliği yaptım, bu yüzden önce montaj programlamasına sonra da C ve sonra C ++, Scheme ve o bir Java kursu aldım. Çoğunlukla C odaklı bir okul programıydı. Algoritmalar sınıfı C kullanılarak öğretildi.

Endüstriye girdiğimde Java açıkça baskın oyuncuydu. Belki de arka uç COBOL sistemlerinden Java web iş uygulamalarına dönüşüm sırasında tek oyuncuydu. Java, iş dünyasında 2000 gün başlarında büyük adımlar attı.

Aynı zamanda, Java çerçevelerinin tümünü bilmiyordum ama nasıl Java ortamına kodlanacağını ve uyarlanacağını biliyordum. İyi Java kodlama standartları hakkında eğitim kursları alsaydım, muhtemelen daha iyi Java stili ya da Java ekosistemi bilgisiyle başlayabilirdim.

Geçmişe bakıldığında, bunun önemli olduğunu sanmıyorum.

Sorunuzu cevaplamak için: Neden üniversitede Java okuyoruz?

Java öğretilmeli ancak tüm derslerde kullanılmamalıdır:

Bilgisayar bilimi öğreniyorsanız, Java'yı üniversitedeki bir noktada öğrenmelisiniz. İş dünyasında popüler. Java ve belki de C # öğrenmelisin. ABSOLUTELY, Java'ya giriş programlama dersi olarak ders vermezdim. Ve Java kesinlikle tüm derslerde kullanılan ana dil olmamalıdır.

Java eleştirisinde:

Java çok fazla eleştiri alır ve her zaman vardır. "Java, Enterprise için hazır mı?" Java platformu hala yaygın olarak kullanılan bir platformdur. Ancak, çoğu genel programlama görevi için Java iyi çalışıyor. Ve Java ile ilgili herhangi bir önemli sorun yoktur. Yeteneğini incitmez. Altında ne olup bittiğini öğrenmeden Java kütüphanelerine güveniyorsanız olabilir. Ancak Java, herhangi bir beyin hasarına neden olmaz (bazı geliştiriciler bunun gerçekten doğru olduğuna inanır).

Ayrıca, geliştiriciler neden C veya C ++ 'ya saldırmıyor? Veya en azından C ++. Zorunlu programlama paradigmaları çok benzer. Ve ben C ++ ile bir webapp yazmayı düşünmezdim ama Java ile yapabilirim.

İşte nasıl bir müfredat kurarım:

  1. Giriş Kursu: Program, Python, Assembly Dili, C (üçü de)
  2. Algoritmalar Kursu: C, Haskell, Python (üçü de)
  3. İşletim Sistemi Kursu / Ağ Kursu: C / C ++
  4. GUI Geliştirme: Java Swing, C ++ ile Win32
  5. Nesneye Dayalı Programlama: (Bu zor, bir OOP kursum olmaz). C ++, Java, C #
  6. Şirket? Geliştirme: Java, C #, Python
  7. Dil Tasarımı, Derleyiciler: Haskell, Scala, C, Assembly, Şema, Ortak Lisp, Prolog.

Müfredatımda listelediğim diller oldukça yaygın. Pek çok okul, pek çok dili sorunsuzca öğretiyor. Endüstride birçok farklı programlama dili kullanacaksınız. Duymadığınız dilleri kullanacaksınız.

Okullardaki Java konusu, sizi tamamen Java'dan korumak istemedikleri veya SADECE Java'yı öğretmek istemedikleri sürece bir sorun değildir. Her iki durumda da okullar haksız.

(Üzgünüm Ruby Lang)


(-1) “Assembly Language” “Giriş Kursu” için çok karmaşık. "Öğretme" demek istemiyorum, "Daha sonra öğreteceğiz" anlamına
geliyorum

1

Üzgünüm, sadece uzun sıkıcı cevap:

(1) Bunu mu demek istediniz:

“Neden Java'yı üniversitede ilk programlama dili olarak okuyoruz?”

(2) Yoksa:

“Neden Java'yı başka programlama dilleri öğrensek bile, Java'dan önce üniversitede okuyoruz?”

Her iki soruyu da kastediyor gibisin.

(1) durumunda:

Java'nın (veya .NET C # ve Visual Basic'in) ilk programlama dili olarak öğretilmesi gerektiğini düşünmüyorum. Yapısal ve Modüler Pascal, eski ve modası geçmiş olsa bile ilk olmalıdır.

Pek çok insan, "Hype" veya "trend" olduğu için, insanlara anında Nesne Yönelimli programlama veya İşlevsel programlama öğretmemiz gerektiğini düşünüyor.

Structured Pascal'ı benzer bir şey değil, "Object Oriented Programming" in küçük bir sürümü olarak öğrendim. Yapısal bir programı tek bir küçük nesne olarak görüyorum.

Bundan sonra, İşlevsel diller ve Nesne Pascal'a devam etmeyi öneririm.

Ve sonra, C, C ++, C #, VB.Net, Java.

Java veya C # 'ı ilk programlama dili olarak sevmememin temel nedenleri, "işaretçiler", "nesnelere işaretçiler" ve "nesnelerin" kendileri ("referanslar") kavramlarını karıştırmalarıdır.

Öğrencilerin bu kavramlar arasındaki farklılıkları ve benzerlikleri göz önünde bulundurmaları gerektiğine inanıyorum. Java'daki Strings nesnelerinin karşılaştırılması bu tuhaflığa iyi bir örnektir:

String A = "Mars";
String A = "Venus";

// pointer comparison or object comparison ???
if (A == B)
{
  DoSomething();
}

(2) durumunda:

Bence Java ya da C # okulda öğretilmelidir, çünkü çeşitli güncellenmiş iyi özelliklere sahipler ve aynı zamanda gerçek dünya kullanımları var.


0

Bilgisayar bilimi öğreniyorsanız, Java'yı üniversitedeki bir noktada öğrenmelisiniz. İş dünyasında popüler. Java ve belki de C # öğrenmelisin. ABSOLUTELY, Java'ya giriş programlama dersi olarak ders vermezdim. Ve Java kesinlikle tüm derslerde kullanılan ana dil olmamalıdır.

Daha fazla katılmıyorum. Java, üniversitemde, okulumdaki CS&E programına girmek için almanız gereken bir dildi. Java'nın öğretilmesi son derece kolaydır. Çünkü kendinizi “programcı olmayanların” öğrenebileceği bazı kavramlarla sınırlayabilirsiniz.

Ayrıca, KESİNLİKLE Java'yı bir giriş programlama kursu olarak öğretmek isteyip istemediğinizi de söyleyemem. Temel olarak, kesinlikle öğretmeyeceğinizi söyleyemeyeceğinizi mi söylediniz ?

Basit sebep zaten açıklanmıştır. Java'nın lisans ücreti yoktur. Temel bir test editörü kullanarak bunu öğretebilirsiniz. Kesinlikle yanlış sebeplerden dolayı kullanılır.

Bir önceki cevaba katılmıyorum, Java'nın öğrencileri "alçakgönüllü" olarak geçirmesini sağlamadı, gerçekten C ++ 'da diziler ve listeler gibi basit kavramlarla ilgili problemleri olduğunda gerçekten gösteriyor.


Bilmiyorum, cehaletin "aptal" olmakla aynı olmadığını. Java'yı "geçen" insanlar, öğretilmedikleri için bu "basit kavramları" bilemeyebilirler. Anlamak için biraz zaman harcarlarsa, alamayacakları anlamına gelmez.
Jetti

0

Dan anahtarı C için Java meydana geldi yanlış zamanda .

2000 civarında bir yerlerde. Üniversitemdeki son C sınıfındaydım .

  • C ++ acemiyi karıştırmamak için çok fazla özelliğe sahipti . (Ve hala var. Ve bazı eklemeyi planlıyor.)

  • .NET yeterince olgun değildi ve bugünden daha pahalıydı.

  • Amaç C eskiydi ve Apple'ın kullanımı radarın altında uçuyordu ( çevresinde iPhone yoktu )


O sırada diğer .NET sorunları? Taşınabilir çalışma zamanı yok - kullanılabilir mono yok .
ZJR

Hiçbir metin editörü tarafsızlık. ( Metin düzenleyici savaşları çirkindir, ama gerçek) Ve markaları öğrencilerin keyfini bir varsayılan IDE boilerplating .
ZJR

BTW, Dünyayı Objective C yolunu izlemiş olmayı tercih ederdim , Apple bu oyun parkındaki tek çocuk olmayacaktı ve iş modeli bile biraz daha az delice olurdu.
ZJR

0

Buradaki cevapları eklemeye mecbur olduğumu hissediyorum çünkü bu cevapların hiçbirini aslında bakış açımla örtüşmüyor.

Ben hobi programcısıyım. “Bilgisayarlar” ve “programlama” söz konusu olduğunda eğrinin çok ilerisindeydim. Lisans - Lisans - 2007 ve Yüksek Lisans derecelerini iki sene sonra tamamladım - 2009. Meclis, QuickBASIC, C, C ++, Java, PHP, Perl, Python, BASH Scriptleri, Javascript, COBOL vb. Dillerin bolluğu ile çalıştım. .

Öğrencilere programlama öğretmek için kullanılan IMHO, şu an içinde yaşadığımız zamanların bir göstergesidir. Örneğin, 1980'lerde, C yüksek seviyeli bir dil olarak kabul edilirken, Meclis, düşük seviye bir dildi.

1990'lı yıllarda C ++, Java, Perl ve bu tür diller önem kazandı; çünkü C'den çok daha yüksek seviyeli ve hızlı gelişim ilkelerini içeriyordu. Böylece, Meclis'e CS öğrencilerine öğretmeyi bıraktılar ve C'ye algoritmaları ifade etmenin bir yolu olarak öğrettiler. Yavaş yavaş bu, C'nin algoritmaların özünü etkili ve çok fazla 'sistem' bilgisi olmadan yakalayamayacak kadar düşük seviyeli bir dil olarak kabul edildiği son yıllarda değişmiştir. CS müfredatının odağının pratikten daha “teorik” olması gerektiği ve bir algoritma yazmak istediği her seferinde, bellek tahsisleri ve işaretçi aritmetiği ile boğuşursa, o zaman elde edemeyeceğiniz için bu gerçekten çok önemlidir. herhangi bir yer.

Bugün bir Masters CS programında olsanız bile, öğrencilerin sistem düzeyinde uygulamaları programlayabilmeleri için gereken belirli 'Sistemler' gereksinimlerini (ABD'de en az ve bu ABD üniversiteleri için çok farklı olmamalıdır) yerine getirmeniz gerekir. Bazı durumlarda çekirdek seviyesi kadar derin olan haberi, gerçekte gereklilikleri geçmek için hacklemek. Bu nedenle, C okullarda öğretilen defacto dili olmasa da , sözde Sistemler veya Yüksek Performanslı Bilgi İşlem veya bu gibi alanlarda uzmanlaşmak isteyebilirsiniz.

Başka bir noktadan da bahsetmek isterim ki, Java gibi diller bu tür kısıtlamalar konusunda biraz rahatlarken, C'nin işleri düzeltmek için çok fazla disiplin gerektirdiğidir. Bu, RA / TA'ların bir öğrencinin programında hata ayıklamak için GDB'yi başlatmalarını gerektirmeden kurslar düzenlemeyi kolaylaştırır :)


0

Sanırım bunun büyük bir kısmı sektörde kullanılan şey.

CS programımın yerel teknoloji ve havacılık şirketlerinden kıdemli çalışanlardan oluşan bir Endüstriyel Danışma Kurulu vardı ve müfredata çok fazla katkı sağladı. Giriş sınıfındaki CS sınıfları Pascal'ı, başladığım yıl (1986), büyük ölçüde IAB'nin emriyle C'nin lehine düşürdü. Benzer şekilde, yerel havacılık şirketleri DoD çalışması için kullanmak zorunda kaldıklarından, bazı üst düzey kurslarda Ada'ya öğretme yönünde bir baskı vardı.

Java'nın şimdi her yerde, özellikle de Android cihazların çıkardığı her yerde. Didaktik bir bakış açısıyla berbat, ama sonra C de.


0

Çünkü daha az öğrencinin kendi içinde başarısız olan dersten başarısız olacağını ümit ediyorlar, IMHO. Belki de neredeyse hiç kimsenin Üniversite derecelerini ciddiye almamasının nedenlerinden biri, en azından burada.

Java, bir dil için çok basittir ve PC sınırlı kaynaklar paradigması olduğunu öğretmez. Aynı zamanda “başka bir soyutlama katmanı ile çözülemeyen hiçbir şey yoktur” düşüncesi içine zorlar.

Evet, OOP konseptleri ve oyuncak problemleri için iyidir, fakat problemlere yanlış açıdan yaklaşmayı öğretir. Burada düzgün bir yapı kullanın, gerisini sıkın.

Ancak akademi AI, OWL ve diğer oyuncak teknolojileri hakkında rüya gördüğüyle bilinir. Bu tür şeyleri araştırmaya devam ederken, bazen birileri de orada şaşırtıcı bir şeyler icat eder, ancak iyi bir geliştirici olmak istiyorsanız, bunu bağımsız olarak öğrenmelisiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.