Mengapa kita belajar Java di universitas? [Tutup]

25

Java sering ditemukan di dunia akademis. Apa alasan di balik itu?

Goma
sumber
9
Tidak ada biaya lisensi untuk IDE Java seperti ada untuk ekosistem Microsoft. Lebih banyak biaya kuliah besar-besaran Anda ke uni.
mjhilton
16
Apa? Anda bisa mendapatkan Microsoft Visual Studio Express secara gratis.
quant_dev
12
Sebenarnya sebagian besar waktu Anda bisa mendapatkan Visual Studio gratis jika Anda seorang mahasiswa plus setiap aplikasi Microsoft lainnya.
Erin
5
karena Anda ingin menghasilkan uang ketika lulus, bukan? Menghabiskan 4 tahun mempelajari hal-hal yang tidak ada yang digunakan di realdunia tidak bermanfaat bagi siswa atau perusahaan yang ingin mempekerjakan siswa.
5
@JarrodRoberson, hanya beberapa perusahaan yang menggunakan Java, universitas harus benar-benar mendidik Anda tentang berbagai bahasa yang lebih luas sehingga Anda lebih siap untuk dunia nyata. Anda tidak ingin terjebak menjadi seorang programmer Java ketika ada begitu banyak cara berpikir dan berkembang.
CaffGeek

Jawaban:

73

Sebuah beberapa Perguruan memiliki seseorang siapa yang cukup terkenal bahwa banyak (jika tidak sebagian besar) keputusan berputar di sekitar orang itu suka, tidak suka, opini, rasa, dll Hanya misalnya, Texas A & M memiliki Bjarne Stroustrup pada staf; mungkin sedikit mengejutkan bagi siapa pun bahwa kurikulum mereka cenderung menekankan C ++.

Namun kebanyakan universitas agak berbeda. Pertama, keputusan sering dibuat lebih untuk kepentingan fakultas daripada mahasiswa. Kriteria tunggal terbesar dalam banyak kasus adalah "bahasa mana yang paling membutuhkan usaha kita?" Sebagian besar dari mereka juga berhati-hati dalam kemalasan mereka - mereka tidak hanya ingin bahasa dengan konsep maju paling sedikit untuk dipelajari, tetapi juga bahasa yang (misalnya) paling lambat untuk berinovasi, memperbarui, atau merangkul sesuatu yang baru.

Kedua, sebagian besar keputusan dibuat oleh komite. Ini berarti keputusan akhir jarang (jika pernah) apa yang benar-benar diinginkan siapa pun - itu hanya apa yang anggota komite paling sedikit (terutama yang memiliki pengaruh paling besar) secara khusus tidak dapat diterima. Ini seperti memetik rasa es krim. Yang satu sangat suka stroberi, tetapi yang lain alergi terhadap stroberi. Lain benar-benar menyukai cokelat, tetapi orang lain tidak tahan. Namun, yang lain menganggap rum kismis itu hebat, tetapi dua lainnya khawatir menyebutkan "rum" akan ditafsirkan sebagai mendorong penyalahgunaan alkohol - sehingga mereka berakhir dengan vanila, meskipun itu bukan yang diinginkan siapa pun.

Akhirnya, meskipun biasanya berjalan secara langsung bertentangan dengan sebagian besar dari apa yang dua kriteria sebelumnya akan menghasilkan secara terpisah, mereka umumnya perlu (atau paling tidak ingin) dilihat sebagai responsif terhadap kebutuhan industri.

Jawa adalah persimpangan dari ketiga:

  1. Setiap konsep yang diwujudkannya dikenal dengan baik pada tahun 1980. Tidak banyak yang tahu di luar gagasan yang paling mendasar tentang apa itu OOP.
  2. Ini adalah pilihan yang hambar, tidak berbau, tidak beracun, biodegradable, dan benar secara politis.
  3. Hampir satu-satunya bahasa lain dalam sejarah yang telah ada selama ini dan (mungkin) kurang berinovasi adalah SQL. Meskipun itu bukan apa yang Anda sebut target yang bergerak cepat, COBOL dan Fortran masih berinovasi lebih dari Jawa.
  4. Ini banyak digunakan. Ketika Anda sampai ke sana, prof dan PHB memiliki kriteria serupa.

Perhatikan bahwa saya tidak benar-benar mengatakan (misalnya) bahwa tidak ada yang lebih tahu tentang Jawa daripada gagasan paling mendasar tentang apa itu OOP - hanya itu yang diperlukan untuk melakukan apa yang diperlukan untuk pekerjaan mengajar yang dapat diterima.

Jerry Coffin
sumber
banyak komentar telah dihapus dari sini, karena pendapat tentang jawaban ini terbagi.
Nama Tampilan
1
FWIW, saya lebih suka vanilla.
Lightness Races dengan Monica
Saya mendaftar untuk mengubah jawaban Anda
user2445942
22

Saya belajar Ilmu Komputer pada awal tahun sembilan puluhan tepat sebelum Jawa keluar. Pendekatan yang diikuti oleh profesor kami adalah sebagai berikut.

Tahun pertama: kursus pengantar tentang pemrograman dan algoritma dalam Pascal. Mengapa Pascal? Karena itu adalah bahasa yang bersih yang dirancang untuk mengajarkan konsep pemrograman tanpa fasilitas untuk peretasan. Tentu saja kami, para siswa tahu bahwa bahasa yang paling populer saat itu adalah bahasa C dan ada bahasa baru dengan popularitas yang semakin meningkat: C ++. Jadi, kami membaca dan berdiskusi tentang bahasa-bahasa ini sepanjang waktu dan melakukan proyek-proyek kecil dengan menggunakannya sendiri. Jadi idenya adalah: di kelas kita melakukan teori serius (Pascal) sementara di rumah kita belajar cara meretas (C). :-)

Selama tahun kedua kami memiliki kursus sistem operasi di mana kami diminta untuk melakukan latihan di C dan perakitan. Profesor itu tidak memberi kami kursus lengkap tentang C (hanya beberapa pelajaran) karena (1) kami sudah memiliki kursus pemrograman selama tahun pertama dan (2) ia mengatakan bahwa setiap ilmuwan komputer yang tahu konsep pemrograman harus dapat membaca buku dan belajar bahasa pemrograman baru. Kursus berjalan cukup lancar dan kami semua merasa normal bahwa C dan assembly adalah topik praktis yang Anda pelajari sendiri atau berdiskusi di koridor dengan siswa lain tetapi tidak ada gunanya mengikuti kursus.

Selama tahun ketiga kami memiliki kursus tentang bahasa pemrograman, di mana kami mempelajari berbagai paradigma bahasa pemrograman (imperatif, fungsional, logis, berorientasi objek), kami belajar konsep umum dan teknik implementasi, dan merevisi bahasa pemrograman utama (Pascal, C, Modula2, Simula, Lisp, C ++, Prolog). Apa yang dikatakan oleh profesor kami pada awal kursus adalah: Anda tidak boleh mengevaluasi kursus ini dengan memikirkan berapa banyak bahasa pemrograman yang Anda ketahui di akhir kursus, melainkan tentang semua konsep umum yang telah Anda pelajari, bagaimana mereka terkait satu sama lain, apa manfaatnya, bagaimana mereka digunakan dalam bahasa apa. Kemudian, mempelajari bahasa tertentu hanya masalah membaca buku, melihat kode yang ada, mencoba menggunakannya pada proyek tertentu, dan sebagainya.

Saya menemukan pendekatan ini sangat tepat dan efektif. Saya tidak berpikir bahwa universitas harus bertujuan mempersiapkan programmer yang baik tetapi lebih pada memberikan pengetahuan yang baik yang memungkinkan untuk memahami bahasa pemrograman dan pemrograman. Menjadi seorang programmer yang baik hanya akan datang sebagai efek samping dari itu. Saya sekarang mempertimbangkan untuk melamar pekerjaan di mana Ada diperlukan dan saya tidak takut karenanya, meskipun saya belum pernah melakukan pemrograman serius di Ada sebelumnya.

Kembali ke pertanyaan tentang mengajar Java. Saya kira Java sering digunakan untuk mengajar karena cukup netral dan memungkinkan untuk menjelaskan prinsip-prinsip pemrograman menggunakan bahasa yang juga dekat dengan dunia industri.

Secara pribadi saya masih akan menggunakan Pascal atau bahasa yang serupa untuk kursus pertama, karena itu akan memungkinkan saya untuk membedakan antara struktur kontrol dan struktur data, yang dalam bahasa Java / bahasa berorientasi objek terintegrasi secara ketat. Jadi, menurut saya, Pascal akan memungkinkan pengenalan yang lebih bertahap ke konsep dasar pemrograman.

Juga, seorang ilmuwan komputer (dan programmer yang baik) harus tahu tentang mekanisme dasar / struktur runtime seperti tumpukan, tumpukan, melewati parameter, alokasi memori, pointer, atau bagaimana menerapkan tipe data abstrak tanpa menggunakan fasilitas built-in dari bahasa (daftar, set, dan sebagainya). Java mengambil banyak dari ini dari programmer (itu bagus, tentu saja), tetapi seorang pemula harus belajar tentang hal-hal ini. Mungkin setelah kursus pemrograman pertama di Jawa kita juga harus mengambil kursus yang lebih umum tentang konsep bahasa pemrograman.

Ini hanya pengalaman dan pendapat saya.

Giorgio
sumber
1
Ketika saya masih di uni di tahun pertama kami melakukan Ada untuk kursus pemrograman (beberapa perakitan di kursus sistem komputer). Tahun ke-2 adalah gaya bahasa yang sangat mirip. Tahun ke-3, kami diberi tahu persis ini, "setiap ilmuwan komputer yang mengetahui konsep pemrograman harus dapat membaca buku dan belajar bahasa pemrograman baru". Pada akhir tahun, kami mengajar C, C ++, Java, dan bahasa apa yang Anda gunakan dalam proyek Anda (milik saya adalah Python) Itu adalah persiapan terbaik yang pernah saya dapatkan untuk dunia nyata, cara belajar dengan cepat dan cepat
Amy
(+1) Bahasa pemrograman terkait Pascal, lebih baik digunakan untuk pengajaran pemrograman, karena ayahnya "Niklaus Wirth" dengan hati-hati mendesainnya, untuk mengajar. ;-)
umlcat
@umlcat: Terima kasih. Ya, saya pikir itu baik untuk memiliki C atau C ++ di mana Anda dapat melanggar aturan dan meretas. Tetapi sebelum melanggar aturan Anda harus tahu aturan apa yang Anda langgar. Untuk ini, sangat berguna untuk memiliki bahasa pemrograman yang bersih seperti Pascal untuk mempelajari bagaimana Anda harus memprogram di "dunia ideal". Maka setidaknya Anda tahu apa yang Anda lakukan saat meretas. :-)
Giorgio
@Iorgio: Saya pikir siswa harus diajarkan Pascal terlebih dahulu, dan kemudian, C / C ++, dan kemudian Java. Maksud saya bukan hanya satu atau yang lain, tetapi, semuanya dalam urutan tertentu. Beberapa sekolah menolak mengajar satu demi yang lain. PD saya juga bekerja di C dan Jawa. Semoga bisa membantu ;-)
umlcat
@umlcat: Saya sepenuhnya setuju. Saya juga akan menambahkan beberapa Lisp, Haskell, Prolog: semakin banyak paradigma pemrograman yang diketahui, semakin baik.
Giorgio
10

Saya di sekolah ketika Jawa keluar. Dan universitas saya hampir berubah dalam semalam. Orang-orang keluar benar pusing di Jawa di akademisi. Saya adalah seorang Jr ketika keluar, dan pada saat tahun senior saya, hampir semua akademisi dengan cepat bergerak untuk mengubah kurikulum mereka. Bukan hanya di universitas saya tetapi di mana-mana. Itu sangat cepat. Kursus intro kedua kami adalah Pascal, dan itu dengan cepat dikonversi ke Jawa dalam waktu kurang dari setahun. Mengapa mereka mengkonversi begitu cepat? Dua alasan besar.

Seorang akademisi ingin mengajarkan teori dan algoritma. Bahasa yang memudahkan Anda mempelajari algoritme yang tidak membutuhkan banyak pengalaman untuk beroperasi adalah yang terbaik: Skema, Python, Java, Smalltalk, dll. Semakin banyak bahasa yang menghalangi Anda, semakin terpusat Anda mempelajari algoritma yang sebenarnya. Pada saat bahasa scripting adalah warga negara kelas dua disukai oleh majikan sebagai murah atau cepat dan kotor. Para akademisi melihat mereka sebagai lebih banyak tiruan, tetapi apa yang diinginkan majikan juga mempengaruhi para akademisi.

Itu membawa kita ke alasan berikutnya. Pengusaha menginginkan pengalaman bahasa tertentu, dan pada saat itu C / C ++. Tapi, C / C ++ membutuhkan banyak pengalaman untuk belajar, dan memiliki banyak kasus sudut dan jika ands atau buts yang mengganggu. Kami belajar kursus di C / C ++ tetapi tidak di tingkat yang lebih rendah. Pada saat itu majikan marah pada program CS karena siswa tidak keluar menjadi guru C / C ++.

Jawa menyapu industri terlalu cepat seperti akademisi. Jadi akhirnya akademisi mendapatkan apa yang mereka inginkan. Bahasa tingkat tinggi yang lebih mudah dipelajari, dan bahasa yang diinginkan majikan. Semuanya terlalu sempurna. Saya punya teman yang kembali ke dunia akademis mungkin 3 tahun setelah saya pergi, dan dia bilang Anda bisa menemukan buku Java di setiap mata pelajaran CS. Begitulah cepatnya Jawa mengambil alih akademisi.

Secara pribadi saya pikir Java belum menipiskan CS. Saya pikir itu sebenarnya hal yang baik karena siswa dapat belajar CS, berpartisipasi dalam Open Source, dan menemukan pekerjaan bahkan ketika mereka di sekolah. Saya masih percaya Anda harus belajar banyak bahasa sebagai siswa CS, dan itu seharusnya tidak hanya Java. Tapi, jika mereka semua menggunakan python, Joel akan membenci python juga.

chubbsondubs
sumber
Jika sekolah Anda masih menggunakan Pascal pada pertengahan 90-an, maka mereka sudah terlambat untuk perbaikan. Kelas CS pertama saya di Pascal, tapi itu pada 1980! Menariknya, meskipun, itu hanya kursus pengantar - kelas tingkat atas menggunakan C (untuk OS internal), Modula (untuk desain kompiler), Prolog dan beberapa program pascasarjana bahkan menggunakan Ada. Saya tidak mengerti mengapa sekolah masih melakukan hal ini.
TMN
1
sebagian besar atau semua masih menggunakan Pascal hingga 1995, beberapa telah pindah ke Modula. Milik saya mulai memperkenalkan C ++ pada tahun 1995 untuk senior, menjaga Pascal untuk junior. Saya pikir mereka sekarang menggantikan Pascal dengan Java (mereka memang membutuhkan bahasa tingkat rendah karena banyak pekerjaan melibatkan interaksi dengan perangkat keras, jadi C ++ mungkin masih ada).
jwenting
Kami menggunakan C / C ++ sedikit setelah kursus pengantar Pascal. Prolog, LISP, Skema, Smalltalk, Majelis semua digunakan di kelas menengah. Karena pentingnya konsumsi teknologi pemerintah berkurang pada 1990-an Ada dihapus, dan hanya disebutkan pada akhir 1990-an. Saya pikir bahaya Jawa tidak ada hubungannya dengan Jawa, tetapi dengan monokultur dan pembelajaran. Saya seorang pengembang Flex sekarang, dan Adobe mengakhiri kemampuan saya untuk mencari nafkah dengannya minggu lalu. Saya tidak khawatir karena saya memiliki sejarah panjang tidak hanya menggunakan 1 bahasa. Saya memiliki Java, Ruby, Php, Python untuk kembali.
chubbsondubs
8

Ada beberapa alasan untuk itu termasuk:

  • Ubiquity di pasar kerja - jika universitas ingin siswa mereka dipekerjakan (dan merekomendasikan lebih banyak siswa ke universitas) mereka perlu mengajar bahasa yang relevan.
  • Menyederhanakan kurikulum
  • Lebih mudah untuk menilai dan lebih mudah untuk mengimplementasikan pekerjaan rumah Anda di dalamnya.
  • Sampah dikumpulkan jadi tidak perlu mengajarkan petunjuk dan manajemen memori manual

Harap dicatat bahwa ada sejumlah sekolah yang mengajar C # karena banyak alasan yang sama. Ada banyak alasan lagi, beberapa di antaranya lebih khusus untuk sekolah individu. Intinya, Java telah menjadi "BASIC" berorientasi objek tadi.

Berin Loritsch
sumber
Ada banyak buku Java yang bagus serta OOP yang tersempit seperti objek Java pertama yang menggunakan BlueJ. Namun, di C # saya tidak melihat buku-buku pembelajaran seperti itu yang membawa Anda dari awal dan mempelajari Anda dengan baik. Apa kamu setuju denganku?
Goma
Aku akan. Mengajar adalah tugas yang sangat sulit, dan guru masih belajar cara terbaik untuk mengajar. Anda akan menemukan sejumlah sekolah online seperti Strayer keep to C # dan sekolah bata dan morter cenderung ke Jawa. Mungkin karena sekolah online melayani siswa yang sudah bekerja. Buku pemrograman dasar dapat berlaku untuk bahasa apa pun, jadi ada bahan yang tersedia.
Berin Loritsch
"Sampah dikumpulkan jadi tidak perlu mengajarkan petunjuk dan manajemen memori manual." jika Anda sebagai insinyur perangkat lunak tidak tahu tentang petunjuk dan manajemen memori, atau tidak tahu cara kerjanya, Anda kehilangan beberapa pengetahuan yang sangat penting.
rightfold
Java mungkin tidak memiliki *sintaks, tetapi akan sangat sulit untuk digunakan tanpa pemahaman dasar tentang pointer.
dan04
@WTP dan itulah sebabnya Java sering digunakan untuk kursus pengantar (di mana sebelumnya Pascal atau Modula digunakan), dan kemudian C (++) diperkenalkan.
jwenting
6

Saya suka posting Joel Spolsky berjudul The Perils Of Java Schools . Saya pikir Berin Loristch benar tentang penyederhanaan kurikulum dan juga berlaku untuk dunia nyata.

Saya telah mendengar kata-kata berikut berkali-kali: "gelar Ilmu Komputer bukan gelar untuk belajar pemrograman, itu untuk belajar teorinya". Bahasa tidak perlu berarti (meskipun tidak menghalangi) selama teorinya dipelajari. Java adalah bahasa yang relatif mudah untuk diambil dan memungkinkan lebih banyak waktu dihabiskan untuk mempelajari teori di balik semuanya. Ini adalah salah satu alasan MIT menggunakan Skema (jadi saya dengar).

Jetti
sumber
2
Mit berhenti menggunakan Skema beberapa tahun yang lalu - cemerick.com) / 2009/03/24 /…
nate c
@nate c - ya saya tidak yakin. Meski demikian, Python cukup mudah dipelajari juga. Terima kasih untuk tautannya!
Jetti
Saya akan benar-benar mengacaukan siswa saya jika saya mengajar kelas. Saya akan mendorong penulisan bahasa pemrograman Anda sendiri dan Anda hanya dapat menggunakan bahasa pemrograman itu selama kursus berlangsung.
berlinbrown2
1
@Berlin - Saya rasa itu sebabnya Anda bukan seorang guru :)
Jetti
3

Banyak dari jawaban yang diberikan di atas adalah jawaban yang bagus, tetapi mereka meninggalkan sesuatu.

Java adalah bahasa multi platform. Satu siswa dapat menggunakan Mac-nya, satu PC-nya, dan satu lagi akun Unix siswanya. Kode yang sama akan melakukan hal yang sama. Pikirkan betapa lebih mudahnya dukungan guru dan departemen TI sekolah.

Ini adalah kepentingan Jawa yang sebenarnya ketika itu keluar. Lelucon itu adalah "Kode sekali, debug di mana-mana", tetapi itu benar-benar mengeluarkan perangkat keras dan sistem operasi dari persamaan.

Matthew Flynn
sumber
Mungkin ini menjelaskan mengapa Java dipilih lebih dari C, C ++, atau C #, tetapi Ruby dan Python (antara lain) berfungsi dengan baik lintas platform.
Eric Wilson
Poin bagus. Saya percaya departemen CS juga menyukai bahasa yang diketik dengan kuat, karena sejumlah alasan. Juga, Java memiliki awal di AS. Ruby tidak benar-benar membuatnya di sini sampai tahun 1999 atau lebih baru, dan Python sangat terbatas sampai 2.0 keluar.
Matius Flynn
1

Saya pernah mendengar profesor mengatakan mereka menggunakan java untuk mengajar karena:

  • menggunakan paradigma yang lebih baru (OOP, beberapa obat generik)
  • secara sintaksis sangat sederhana, walaupun cukup verbose
  • tidak ada konsep lanjutan seperti fungsi tingkat tinggi, penutupan, currying atau kelanjutan yang dapat membingungkan orang masih belajar konsep dasar
  • banyak perpustakaan yang ditulis untuk itu
  • siswa tidak terjebak dalam debugging kebocoran memori karena ada gc

Secara pribadi saya senang saya mengambil CS di Berkeley ketika mereka menggunakan Skema untuk mengajar. Meskipun saya tidak menyadari betapa elegannya bahasa itu sampai beberapa tahun kemudian.

dietbuddha
sumber
1

Sedikit latar belakang

Saya mengambil satu-satunya kelas Java yang ditawarkan di sekolah kami. Ini akhir 90-an hingga awal 2000. Jawa tumbuh tetapi hampir tidak lepas landas. Berasal dari banyak pengembangan di C, saya sedikit frustrasi dengan semua kode boilerplate yang diperlukan untuk menjalankan Java. Saya tidak bisa fokus pada tugas saya. Saya tidak bisa hanya membuka file dengan "terbuka". Saya harus mendefinisikan kelas dan kemudian impor, dll, dll.

Saya adalah insinyur komputer, jadi saya mengambil pemrograman perakitan pertama dan kemudian C dan kemudian C ++, Skema, dan satu saja kursus Java. Itu sebagian besar program sekolah berorientasi C. Kelas algoritma diajarkan menggunakan C.

Ketika saya masuk ke industri, Jawa jelas pemain yang dominan. Mungkin itu adalah satu-satunya pemain selama konversi dari sistem COBOL backend ke aplikasi bisnis web Java. Jawa membuat langkah besar di dunia bisnis selama awal 2000 hari.

Pada saat yang sama, saya tidak tahu semua kerangka kerja Java tetapi saya tahu bagaimana cara membuat kode dan beradaptasi dengan lingkungan Java. Jika saya mengambil kursus pelatihan tentang standar pengkodean Java yang baik, saya mungkin bisa memulai dengan gaya Jawa yang lebih baik atau pengetahuan tentang ekosistem Jawa.

Dalam retrospeksi, saya tidak berpikir itu penting.

Untuk menjawab pertanyaan Anda: Mengapa kami belajar Java di universitas?

Java harus diajarkan tetapi tidak digunakan dalam semua kursus:

Anda harus belajar Java di beberapa titik di perguruan tinggi jika Anda belajar ilmu komputer. Ini populer di dunia bisnis. Anda harus belajar Java dan mungkin C #. Saya tidak akan BENAR-BENAR tidak akan mengajarkan Java sebagai kursus pemrograman pengantar. Dan Java tentu saja tidak harus menjadi bahasa utama yang digunakan di semua kursus.

Pada kritik Jawa:

Jawa menerima banyak kritik dan selalu begitu. Saya telah membaca majalah Java yang menyebutkan Jawa dengan tanda tanya, "Apakah Java siap untuk Enterprise?". Platform Java masih merupakan platform yang banyak digunakan. Tapi, untuk sebagian besar tugas pemrograman umum, Java berfungsi dengan baik. Dan tidak ada masalah besar dengan menggunakan Java. Tidak akan menyakiti skillet Anda. Mungkin jika Anda hanya mengandalkan perpustakaan Java tanpa mempelajari apa yang terjadi di bawahnya. Tetapi Java tidak menyebabkan kerusakan otak apa pun (beberapa pengembang benar-benar percaya ini benar).

Plus, mengapa pengembang tidak menyerang C atau C ++? Atau setidaknya C ++. Paradigma pemrograman imperatif sangat mirip. Dan saya tidak akan pernah mempertimbangkan untuk menulis aplikasi web di C ++ tapi saya mungkin dengan Java.

Inilah cara saya membuat kurikulum:

  1. Kursus Pengantar: Skema, Python, Bahasa Majelis, C (ketiganya)
  2. Kursus Algoritma: C, Haskell, Python (ketiganya)
  3. Kursus Sistem Operasi / Kursus Jaringan: C / C ++
  4. Pengembangan GUI: Java Swing, C ++ on Win32
  5. Pemrograman Berorientasi Objek: (ini rumit, saya tidak akan memiliki kursus OOP). C ++, Java, C #
  6. Perusahaan? Pengembangan: Java, C #, Python
  7. Desain Bahasa, Penyusun: Haskell, Scala, C, Majelis, Skema, Common Lisp, Prolog.

Bahasa yang saya cantumkan dalam kurikulum saya cukup umum. Banyak sekolah yang mengajarkan banyak bahasa tanpa masalah. Dalam industri, Anda akan menggunakan banyak bahasa pemrograman yang berbeda. Anda akan menggunakan bahasa yang belum pernah Anda dengar sebelumnya.

Topik Java di sekolah tidak menjadi masalah kecuali mereka benar-benar ingin melindungi Anda dari Jawa atau mereka ingin mengajar HANYA di Jawa. Dalam kedua kasus tersebut, sekolah tidak bisa dibenarkan.

(Maaf Ruby lang)

berlinbrown2
sumber
(-1) "Bahasa Majelis" terlalu rumit untuk "Kursus Pengantar". Maksud saya bukan "jangan mengajarkannya", maksud saya "Kami akan mengajarkannya, nanti"
umlcat
1

Maaf, hanya jawaban yang membosankan:

(1) Apakah maksud Anda:

"Mengapa kita belajar Java di universitas, sebagai bahasa pemrograman pertama?"

(2) Atau maksud Anda:

"Lagipula, mengapa kita belajar Java di universitas, bahkan jika kita mempelajari bahasa pemrograman lain, sebelum Java?"

Kedengarannya seperti Anda benar-benar bermaksud kedua pertanyaan.

Dalam hal (1):

Saya tidak berpikir Java (atau .NET C # dan Visual Basic) harus diajarkan sebagai bahasa pemrograman pertama. Structured & Modular Pascal harus menjadi yang pertama, bahkan jika itu terdengar kuno & usang.

Banyak orang berpikir kita harus mengajar orang pemrograman Berorientasi Objek atau pemrograman Fungsional secara langsung, hanya karena "hype" atau "tren".

Saya belajar Structured Pascal sebagai versi kecil dari "Pemrograman Berorientasi Objek", bukan sebagai sesuatu yang serupa. Saya melihat program terstruktur sebagai objek kecil tunggal.

Setelah itu, saya sarankan melanjutkan bahasa Fungsional dan Object Pascal.

Dan kemudian, C, C ++, C #, VB.Net, Java.

Alasan utama saya tidak suka Java atau C #, sebagai bahasa pemrograman pertama, karena mereka memiliki campuran "pointer", "pointer ke objek" dan "objek" sendiri ("referensi") konsep.

Saya percaya bahwa siswa harus ada dalam pikiran, perbedaan & persamaan di antara konsep-konsep itu. Perbandingan objek Strings di Jawa adalah contoh yang bagus dari keanehan itu:

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

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

Dalam hal (2):

Saya pikir Java atau C # harus diajarkan di sekolah, karena mereka memiliki beberapa fitur bagus yang diperbarui, dan pada saat yang sama, mereka menggunakan dunia nyata.

umlcat
sumber
0

Anda harus belajar Java di beberapa titik di perguruan tinggi jika Anda belajar ilmu komputer. Ini populer di dunia bisnis. Anda harus belajar Java dan mungkin C #. Saya tidak akan BENAR-BENAR tidak akan mengajarkan Java sebagai kursus pemrograman pengantar. Dan Java tentu saja tidak harus menjadi bahasa utama yang digunakan di semua kursus.

Saya tidak bisa tidak setuju lagi. Java adalah bahasa di kampus saya yang harus Anda ikuti untuk mengikuti program CS&E di sekolah saya. Jawa sangat mudah untuk diajarkan. Karena Anda dapat membatasi diri pada konsep-konsep tertentu yang dapat dipelajari "non-programmer".

Saya juga tidak tahu apakah Anda mau atau tidak akan benar-benar mengajar Java sebagai kursus pemrograman pengantar. Anda pada dasarnya mengatakan Anda TIDAK AKAN TIDAK AKAN mengajarkannya ?

Alasan sederhana sudah dijelaskan. Java tidak memiliki biaya lisensi. Anda dapat mengajarkannya menggunakan editor tes dasar. Ini digunakan untuk alasan yang salah tentunya.

Saya tidak setuju dengan jawaban sebelumnya, bahwa Java belum membuat siswa melewatinya "bodoh", itu benar-benar menunjukkan ketika mereka memiliki masalah dengan konsep-konsep sederhana yang realistis seperti array dan daftar di C ++.

Ramhound
sumber
Saya akan menunjukkan bahwa ketidaktahuan tidak sama dengan menjadi "bodoh". Orang yang "melewati" Jawa mungkin tidak tahu "konsep sederhana" itu karena mereka tidak diajari. Itu tidak berarti bahwa jika mereka mengambil waktu untuk mencari tahu, bahwa mereka tidak akan mendapatkannya.
Jetti
0

Pergantian dari C ke Java terjadi pada waktu yang salah .

Di suatu tempat sekitar tahun 2000. Saya berada di kelas C terakhir di universitas saya.

  • C ++ memiliki terlalu banyak fitur untuk tidak membingungkan pemula. (Dan masih. Dan berencana untuk menambahkan beberapa.)

  • .NET tidak cukup dewasa dan bahkan lebih mahal daripada hari ini.

  • Objective C sudah tua dan penggunaan Apple untuk itu terbang di bawah radar (tidak ada iPhone di sekitar)

ZJR
sumber
Masalah .NET lainnya saat itu? Tidak ada runtime portabel - tidak ada mono yang tersedia.
ZJR
Tidak ada netralitas teks-editor . ( perang editor teks jelek, tapi nyata) Dan IDE default yang membuat siswa menikmati boilerplating .
ZJR
BTW, saya lebih suka dunia mengambil jalur Objective C , Apple tidak akan menjadi satu-satunya anak di stadion baseball itu dan bahkan model bisnisnya akan sedikit lebih gila.
ZJR
0

Saya merasa terdorong untuk menambahkan jawaban di sini karena saya tidak benar-benar melihat salah satu dari jawaban ini yang sebenarnya menutupi perspektif saya.

Saya seorang programmer hobbyist. Saya jauh di depan kurva ketika datang ke 'komputer' dan 'pemrograman'. Saya menyelesaikan sarjana saya - Sarjana - pada tahun 2007 dan Master sekitar dua tahun kemudian - 2009. Saya telah bekerja dengan sejumlah besar bahasa termasuk Majelis, QuickBASIC, C, C ++, Jawa, PHP, Perl, Python, Skrip BASH, Javascript, COBOL dll .

IMHO, bahasa yang digunakan untuk mengajarkan pemrograman kepada siswa adalah indikator dari zaman kita saat ini tinggal. Misalnya, selama 1980-an, Assembly adalah bahasa tingkat rendah sementara C dianggap sebagai bahasa tingkat tinggi.

Selama 1990-an, C ++, Java, Perl dan bahasa-bahasa semacam itu menjadi penting terutama karena tingkat yang jauh lebih tinggi daripada C dan mewujudkan prinsip-prinsip pembangunan yang cepat. Jadi mereka agak berhenti mengajar Majelis kepada siswa CS dan mengajar C sebagai cara mengekspresikan algoritma. Perlahan-lahan itu telah berubah selama dekade terakhir di mana C dianggap bahasa tingkat terlalu rendah untuk menangkap esensi algoritma secara efektif dan tanpa terlalu banyak pengetahuan 'sistem'. Ini sebenarnya sangat penting karena fokus kurikulum CS seharusnya lebih 'teoretis' daripada praktis dan setiap kali seseorang ingin menulis algoritma, jika dia macet dengan alokasi memori dan aritmatika pointer maka Anda tidak akan mendapatkan dimana saja.

Bahkan hari ini jika Anda berada di program Master CS, Anda harus menyelesaikan persyaratan 'Sistem' tertentu (minimal di AS dan ini tidak boleh sangat berbeda untuk universitas AS) yang membutuhkan siswa untuk dapat memprogram aplikasi tingkat sistem dan dalam kasus-kasus tertentu sedalam peretasan tingkat kernel untuk benar-benar melewati persyaratan. Jadi, meskipun C bukan bahasa defacto yang diajarkan di sekolah, adalah relevan jika Anda ingin berspesialisasi dalam katakanlah Sistem atau Komputasi Kinerja Tinggi atau ceruk seperti itu.

Saya juga ingin menyebutkan poin lain adalah C membutuhkan banyak disiplin untuk memperbaiki hal-hal sementara bahasa seperti Jawa sedikit santai tentang kendala tersebut. Ini membuatnya lebih mudah untuk melakukan kursus tanpa memerlukan RA / TA untuk meluncurkan GDB untuk men-debug program siswa :)

void_ptr
sumber
0

Saya pikir sebagian besar dari itu adalah apa yang digunakan di industri.

Program CS saya memiliki Dewan Penasihat Industri, yang terdiri dari staf senior dari perusahaan teknologi dan kedirgantaraan lokal, dan mereka memiliki banyak masukan ke dalam kurikulum. Kelas CS intro menurunkan Pascal dan memilih C pada tahun saya mulai (1986), sebagian besar atas perintah IAB. Demikian pula, ada dorongan untuk mengajar Ada di beberapa kursus tingkat tinggi karena perusahaan kedirgantaraan lokal harus menggunakannya untuk pekerjaan Departemen Pertahanan.

Java sudah ada di mana-mana sekarang, terutama sekarang saat perangkat Android lepas landas. Itu menyebalkan dari perspektif didaktik, tetapi kemudian, begitu pula C.

John Bode
sumber
0

Karena mereka berharap bahwa lebih sedikit siswa yang akan gagal dalam kursus, yang merupakan GAGAL dalam dirinya sendiri, IMHO. Mungkin salah satu alasan mengapa hampir tidak ada yang mengambil gelar sarjana lagi, setidaknya di sini.

Java adalah bahasa yang terlalu sederhana, dan tidak mengajarkan PC memiliki paradigma sumber daya yang terbatas. Sementara pada saat yang sama memaksa masuk ke dalam garis pemikiran "tidak ada yang tidak bisa diselesaikan dengan lapisan abstraksi lain".

Ya, itu baik untuk konsep OOP dan masalah mainan, tetapi mengajarkan untuk mendekati masalah dari sudut yang salah. Gunakan konstruksi yang rapi di sini, sekrup sisanya.

Tetapi akademisi terkenal karena suka bermimpi tentang AI, OWL dan teknologi mainan lainnya. Sementara mereka terus meneliti hal-hal seperti itu, kadang-kadang, seseorang menemukan sesuatu yang luar biasa di sana juga, tetapi jika Anda ingin menjadi pengembang yang baik, Anda harus mempelajarinya secara mandiri.

Coder
sumber