Mengapa kita harus belajar pemrograman prosedural sebelum kita belajar pemrograman berorientasi objek [ditutup]

10

Saya berada di tahun ke-4 di sebuah universitas IT sekarang, dan ketika saya berbicara dengan profesor saya tentang topik ini dia menolak pendapat saya dan memberi saya kritik yang sangat berat (di universitas saya, kami diajari C (ANSI) (dalam Prosedur Kelas pemrograman - tahun pertama di universitas) sebelum C ++ (di kelas OOP tahun kedua) dan lainnya ...

Tetapi pada usia 13 tahun, saudara lelaki saya diajari oleh saya tentang Jawa terlebih dahulu dan tidak ada yang lain. Sekarang, ia dapat melakukan hampir semua hal yang dapat dilakukan oleh siswa kelas 2 normal dengan Java.

Bagi Anda yang pro, saya ingin tahu mengapa menurut Anda kami harus diajarkan pemrograman prosedural terlebih dahulu.

Luke
sumber
8
Karena Assembler tidak memiliki objek.
9
Itu seperti mengapa kita harus diajari menghitung dengan benar sebelum belajar cara menggunakan kalkulator.
22
Karena desain berorientasi objek cacat. Program adalah kumpulan perilaku yang beroperasi pada data. Objek sering memperkenalkan kompleksitas yang tidak perlu. Baca "Cara Mendesain Program: Pengantar Pemrograman dan Komputasi".
8
Seperti yang ditulis oleh orang lain, "Jangan mengalihkan perhatian programmer baru dengan OOP": prog21.dadgum.com/93.html - pada dasarnya semua yang menghalangi OOP menghalangi pengajaran programmer baru tentang fundamental. Anda sedang mengajar mereka dua konsep yang sangat sulit pada saat bersamaan.
John Ripley
7
@ juxstapose - mengatakan pemrograman berorientasi objek memperkenalkan kompleksitas yang tidak perlu seperti mengatakan kita harus mengukir kendaraan dari satu blok baja. Hanya pendapat saya saja.

Jawaban:

23

Ringkasan Cepat:

  1. Karena di dunia nyata, cepat atau lambat, Anda harus bekerja dengan kode prosedural.

  2. Karena Bahasa Prosedural dapat bekerja seperti ekstensi, atau pengantar, Bahasa Berorientasi Obyek, alih-alih hanya menjadi alternatif.

  3. Pelengkap untuk jawaban 2. Karena OOP lebih kompleks daripada Pemrograman Prosedural, oleh karena itu lebih baik untuk mempelajari Pemrograman Prosedural, terlebih dahulu.

  4. Karena di dunia nyata, programmer bekerja dengan, dan menggabungkan beberapa cara untuk menyelesaikan masalah, AKA "pemrograman multi-paradigma", bukan hanya paradigma tunggal.

  5. Sebagian besar bahasa pemrograman adalah multi-paradigma, pada tingkat tertentu, bahkan, jika desainer atau pengembang umum mereka, mengatakan sebaliknya.

  6. [BARU] Karena Pemrograman Modular yang biasanya dicampur dan bingung dengan Pemrograman Prosedural, dapat diterapkan ke OOP Oleh karena itu pertanyaan dapat dibaca sebagai "Mengapa kita harus belajar pemrograman Modular sebelum kita belajar pemrograman berorientasi objek"

Deskripsi Boring yang Diperpanjang:

Butir 1 sangat jelas, bukan penjelasan lebih lanjut.

Poin 2, Kelas, Warisan, Polimorfisme, Antarmuka, dan seterusnya ...

Poin 3, saya kode Pascal Prosedural sebelum saya belajar Object Oriented Pascal, ketika saya sampai di sana saya berkata: "lihat, kelas seperti program prosedural kecil ... ... dan Anda dapat membuat mereka berbicara satu sama lain, keren !!! ".

Saya mendengar hal yang sama dari orang-orang yang pindah dari dataran C ke C plus plus.

Poin 4, Sebagian besar programmer menggabungkan beberapa teknik pemrograman atau paradigma, atau cara untuk menyelesaikan masalah. Fungsional, Prosedural, OOP, logis.

Bahkan Java "Pure OO" tidak pemrograman objek biasa seperti yang dikatakan.

+1 poin untuk mengatakan "Pemrograman Prosedural" bukan "Pemrograman Terstruktur". Atau Pemrograman Modular. Ini penting.

Sebenarnya, beberapa kali istilah-istilah ini diajarkan kepada orang lain dan digunakan secara bergantian, mereka tidak. Pemrograman Terstruktur, mencakup banyak konsep, tidak hanya menggunakan prosedur, dan salah satunya adalah membuat program agar tidak terlihat seperti "Kode Spaghetti".

Hari ini saya membaca beberapa program OO "murni" yang terlihat seperti "Kode Berorientasi Objek", yang berarti bahwa programmer menggunakan OOP, tetapi kodenya terlihat seperti berantakan.

Sering kali, saya dapat membaca kode OO dan memberi tahu bahwa pemrogram mempelajari Pemrograman Terstruktur sebelum OOP, karena kodenya jelas dan diatur.

Dan untuk Pemrograman Modular, saya telah melihat beberapa aplikasi. dalam C ++ dan PHP yang tidak menggunakan modul. *

umlcat
sumber
18

Saya akan berpikir bahwa analoginya akan mirip dengan matematika. Anda perlu mempelajari beberapa konsep dasar terlebih dahulu (penjumlahan / pengurangan / ...) kemudian beralih ke topik yang lebih kompleks (aljabar / kalkulus). Program prosedural sangat linier dan lebih mudah untuk memahami aliran kontrol saat Anda sedang belajar sintaksis. OOP mungkin dianggap lebih kompleks, ia dibangun di atas konstruksi yang lebih sederhana yang digunakan dalam bahasa prosedural tetapi lebih abstrak dan lebih sulit untuk dipahami. Memulai dengan bahasa seperti C juga membuat Anda lebih dekat dengan perangkat keras dan membuat Anda berurusan dengan masalah alokasi memori dan pointer, yang perlu Anda pahami tetapi tidak benar-benar bisa digunakan dalam bahasa seperti Java / C #. Ada beberapa nilai nyata dalam hal ini di sekolah terlepas dari apakah itu terjadi pertama atau kedua.

FWIW, itu pasti akan berubah pada akhirnya. Ketika saya mulai sekolah kami belajar di Pascal dan PL / 1. Kami tidak sampai ke C sampai kelas bahasa lanjutan (tanggal saya). Saya tidak menjemput Jawa sampai lulus sekolah - belum ditemukan!

tvanfosson
sumber
+1 - semacam paradoks niat di sana ... "lebih abstrak dan lebih sulit untuk dipahami" :)
10
@Spacemoses - tidak terlalu, sesuatu yang lebih abstrak adalah, semakin mudah diskusi tetapi semakin sulit untuk memahami realitas apa yang sedang dibahas.
setuju, saya mengerti maksud Anda sekarang.
ses011
12

Pemrograman berorientasi objek adalah kumpulan potongan prosedural secara terorganisir. Saya pikir pelajaran yang Anda pelajari adalah bahwa metodologi berorientasi objek membantu mempertahankan organisasi dan pemeliharaan. Ada banyak programmer yang tidak dapat membuat perbedaan ini dan akan mengklaim program mereka berorientasi objek ketika mereka lebih prosedural.

ses011
sumber
3
tetapi fungsi + negara = objek
Dan D.
4
Orientasi objek sering membuat pemeliharaan jauh lebih sulit karena mengembang basis kode. Sistem berbasis Java adalah mimpi buruk untuk dipertahankan karena tingkat kemurnian OO dan patternitis desain yang ditemukan di komunitas itu.
bit-twiddler
1
"Pola desain ditemukan di komunitas itu" - terdengar seperti masalah pribadi di "komunitas Java" jika itu adalah sikap Anda.
ses011
1
@Dan D: orientasi objek lebih dari sekadar menggabungkan fungsi dan status dalam objek ...
Marjan Venema
4
@Spacemoses: Saya punya masalah dengan komunitas pengembangan mana pun yang tidak menganut prinsip KISS. Solusi terbaik untuk suatu masalah seringkali merupakan solusi paling sederhana.
bit-twiddler
11

Kamu tidak.

Kami belajar pemrograman fungsional terlebih dahulu, dengan Skema. Kemudian kami pindah ke prosedural, lalu OOP, dan kemudian pemrograman deklaratif. Dan percaya atau tidak, sementara saya sudah tahu pemrograman, saya pikir itu sebenarnya lebih mudah bagi orang lain juga: karena FP seperti matematika! Jadi, Anda sudah tahu dasar-dasarnya.

Saya sudah sering berdebat dengan diri saya sendiri, dan akhirnya saya sampai pada kesimpulan bahwa itu benar-benar tergantung pada seberapa baik guru Anda mengajarkan Anda konsep-konsepnya.

Tidak ada jawaban tunggal karena:

  • Dimulai dengan sesuatu yang prosedural seperti C (atau bahkan perakitan) mungkin merupakan pilihan yang baik, karena Anda belajar bagaimana komputer benar-benar bekerja

  • Dimulai dengan sesuatu yang berorientasi objek Java mungkin merupakan pilihan yang baik, karena itu relatif mudah dipelajari dan menerapkan OOP untuk kehidupan nyata, dan karena itu mengajarkan Anda tentang pembentukan **

  • Dimulai dengan pemrograman fungsional seperti Skema mungkin merupakan pilihan yang baik karena mengajarkan Anda tentang berpikir lebih abstrak (dalam hal fungsi, bukan variabel), yang pada akhirnya membuat Anda seorang programmer yang lebih baik

Jika guru Anda tidak mengajar dengan baik, maka tidak masalah apa yang Anda mulai dengan; mereka akan berubah menjadi hampir sama.

pengguna541686
sumber
4
+1 bang dan saya tidak percaya saya harus menelusuri begitu banyak jawaban yang buruk untuk menemukannya!
jk.
Saya sebenarnya kesulitan memecah fungsi matematika untuk sementara waktu karena saya telah belajar beberapa pengkodean terlebih dahulu, dan konsep fungsi yang 'adalah' bukannya 'melakukan sesuatu' membingungkan saya. : 3
StarWeaver
6

Suatu bahasa dapat berorientasi objek seperti C ++, Java atau C #. Dan Anda bisa mulai dengan bahasa-bahasa ini. Tetapi intinya adalah, bahkan dengan bahasa OO ini, Anda harus mempelajari pemrograman prosedural terlebih dahulu, kemudian OOP. Saya pikir, hal yang sama juga dilakukan oleh Anda untuk kakak Anda.

Gulshan
sumber
3
+1 Tepat. Setiap metode OOP adalah program prosedural singkat. Jika Anda tidak tahu bagaimana untuk menggabungkan potongan-potongan kecil (jenis, nilai-nilai literal, variabel, operator, =tugas, if, for, dll) menjadi potongan-potongan yang lebih besar (metode), bagaimana bisa Anda pernah berharap memahami OOP. Seperti kebanyakan keterampilan, menjadi sangat cerdas, termotivasi, dan / atau memiliki akses ke instruksi satu-satu dapat memungkinkan Anda untuk belajar banyak, topik terkait secara bersamaan.
David Harkness
3

Pemrograman prosedural, setidaknya dalam bahasa seperti C, pemrograman strip ke praktik yang sangat sederhana: algoritma dan struktur data, dan pada tingkat abstraksi yang merupakan media yang menyenangkan antara kode sumber yang dapat dipahami manusia dan kode assembly.

Dengan cara ini, siswa dapat belajar sedikit ilmu pengetahuan (algoritma, struktur data) dan sedikit rekayasa (sumber-> objek-> kompilasi mesin, arsitektur von-neuman (kemungkinan)) pada saat yang sama.

OOP, melalui C ++ / obj-C memperkenalkan pola organisasi kode, yang hanya satu hal lagi untuk dipelajari. Ini bisa membuat belajar konsep-konsep di atas agak lebih sulit.

OOP via Java (antara lain) berjalan lebih jauh dengan mengabstraksi perangkat keras dan lingkungan. Sekarang produk yang mendasarinya bukan kode mesin, tetapi semacam perantara yang tidak mengungkapkan bagaimana perangkat keras yang mendasarinya bekerja, tetapi efeknya adalah memungkinkan siswa untuk berkonsentrasi pada pola organisasi kode.

Pada akhirnya saya pikir itu merupakan pertukaran antara belajar bagaimana perangkat keras bekerja atau mempelajari pola organisasi kode. Adapun yang lebih penting, saya tidak begitu tahu. Dunia nyata membutuhkan pengetahuan keduanya, setidaknya sampai taraf tertentu.

Saya akan menebak bahwa program sarjana yang dimulai dengan pemrograman prosedural tingkat rendah kemungkinan menghasilkan ilmuwan komputer / insinyur komputer, dan program yang dimulai dengan konsep tingkat tinggi menghasilkan insinyur / pengembang / pemrogram perangkat lunak.

Curtis Batt
sumber
3

Nyali objek OOP terdiri dari pemrograman prosedural.

Jika Anda tidak dapat melakukan for for, gunakan pointer dengan benar, nyatakan tipe dan fungsi Anda, Anda tidak akan bisa menulis antarmuka untuk kelas Anda apalagi membuat bagian dalam melakukan apa pun yang layak dilakukan.

Anda benar-benar tidak akan belajar OOP di kelas pengantar, itu hanya akan menjadi sintaks - melompat langsung ke OOP akan membuat hal-hal lebih rumit untuk dipahami (pada awalnya) daripada yang sudah ada.

OOP bukan tentang beberapa sintaks yang menyatakan untuk membentuk kelas, ini tentang struktur data, pola desain, polimorfisme, pewarisan, dan komposisi.

Untuk melakukan semua hal yang perlu Anda ketahui pemrograman prosedural, sesuatu yang mudah dilakukan dalam C. Anda dapat membawa hampir semua yang Anda pelajari dengan C ke dalam Java atau C ++, Anda mungkin harus memikirkan kembali beberapa hal yang Anda anggap remeh dalam C, TAPI ... Anda harus mengetahui tata bahasa (di mana Anda berada di dalam pengantar C) untuk menulis kalimat (harus menulis prosedur untuk mendefinisikan antarmuka) kemudian paragraf (harus tahu struktur data) lalu dan kemudian mengetahui beberapa pola desain (tragedi, komedi, cacat) pahlawan, bagaimana mereka berinteraksi, dan kapan tidak menggunakannya) sebelum Anda dapat menulis novel lengkap (sistem OOP lengkap).

Jika saya jadi Anda, saya akan mengambil beberapa buku berikut: Bahasa Pemrograman C , Bahasa Pemrograman Java , Pola Desain , Geng Empat , dan Pola Penetasan . Saya pasti akan mengambil salinan Bahasa Pemrograman C jika saya serius tentang C / C ++.

Jika Anda hanya ingin melakukan semua cara Java (dan melakukannya untuk $) id mengambil beberapa buku tentang pola desain Java dan bagaimana menggunakan Java dengan server web Apache dan Tomcat dan beberapa buku tentang pemrograman database SQL. Java menendang begitu banyak keledai di web, saya minta maaf tetapi PHP telah memiliki sejarah banyak lubang keamanan membuatnya menjadi sakit di pantat seperti Windows untuk menjaga agar server Anda tidak di-root atau database SQL Anda disuntikkan.

Anda juga harus meluangkan waktu untuk belajar SQL, Oracle MySQL Postgresql, dan MSSQL memiliki banyak kesamaan tentang sintaks, tetapi jika saya harus memilih belajar satu untuk saya sendiri, id, pilih Postgresql hanya karena BSD berlisensi alih-alih GPL (Anda harus mencari perbandingan dan kontras pada lisensi GPL / BSD juga)

Hategrin
sumber
2

Saya harus mengatakan bahwa sebagian besar kode yang ditulis dalam bahasa berorientasi objek seperti Java sebenarnya tidak berorientasi objek. Benar-benar memahami ide-ide di balik OO itu sulit, akibatnya kode OO yang seharusnya sebagian besar benar-benar prosedural.

Namun, ini tidak ada yang salah dengan menulis kode prosedural di Jawa. Ya, ada manfaat untuk melakukan OO, tapi itu bukan sesuatu yang saya ingin membingungkan seorang programmer pemula. Jadi atas dasar itu, saya tidak melihat ada yang salah dengan mengajar Jawa. Jangan berharap OO nyata darinya, tapi itu berhasil.

Namun, Java menyembunyikan banyak detail level rendah tentang apa yang terjadi di dalam komputer. C meninggalkan ini lebih banyak di tempat terbuka. Seseorang dapat membuat kasus yang baik bahwa siswa harus belajar bagaimana detail tingkat rendah ini bekerja sebelum menggunakan bahasa yang menangani ini untuk mereka. Tetapi Anda juga dapat membuat suatu kasus bahwa Anda harus mengabaikan rincian itu dan mempelajarinya nanti.

Winston Ewert
sumber
2

Beberapa orang lain telah menjawab sepanjang tema ini, tetapi saya pikir ada baiknya menyatakan hal ini lebih eksplisit.

Bahkan jika Anda mulai belajar pemrograman dengan bahasa berorientasi objek seperti Java, Anda mulai dengan mempelajari teknik pemrograman prosedural sebelum Anda sampai pada konsep OO . Saat mengajar Java programmer baru, Anda tidak memperkenalkan mereka ke objek dan kelas terlebih dahulu, Anda memperkenalkan mereka ke pernyataan dan variabel. Pada saat siswa berada dalam posisi untuk diajarkan banyak tentang objek dan kelas, mereka sudah memiliki setidaknya dasar-dasar pemrograman prosedural.

Jadi setidaknya, Anda harus belajar pemrograman prosedural di Jawa dan kemudian belajar pemrograman berorientasi objek di Jawa. Apakah Anda menghabiskan satu tahun penuh untuk pemrograman prosedural atau Anda hanya menghabiskan beberapa minggu pertama kursus pemrograman, dan apakah Anda menggunakan bahasa yang berbeda untuk itu atau tidak, hanya berdebat tentang rinciannya.

Ben
sumber
0

Untuk menjadi terlalu blak-blakan tentang hal itu, saya pikir momentum untuk ini terutama berasal dari programer lama yang berharap untuk masa lalu.

Sebelum mengatakan hal lain, saya sama sekali tidak berpegang teguh pada programmer yang lebih tua, banyak dari mereka yang benar-benar ahli. Sayangnya kadang-kadang mereka yang tidak, yang menjadi terhanyut dan tidak pernah benar-benar pandai pemrograman untuk memulainya .. menjadi profesor ketika mereka tidak bisa meretasnya di 'dunia nyata'. (Tidak semua profesor juga ... tapi ... BANYAK)

OOP bukanlah cawan suci pemrograman yang dibuatnya, juga pemrograman prosedural bukanlah peninggalan. Adalah baik untuk mengetahui setidaknya beberapa dari keduanya, tetapi saya pikir praktik umum dari apa yang akhirnya diajarkan sebagai pemrograman prosedural cenderung menjadi pemborosan waktu dan usaha yang besar. Kita perlu belajar pemrograman di dunia akademis, bukan hanya satu gaya atau lainnya. Saya mengaitkan sedikit kode mengerikan dan kesalahpahaman dengan ini, termasuk kode saya sendiri.

Garet Claborn
sumber
2
Saya punya guru yang menggunakan C dari '89, tapi itu untuk microchip yang mengharapkan c '99. Lalu ada guru lain yang menggunakan 'c ++' tetapi tanpa STL atau templat. Mungkin juga sudah struct dengan pointer fungsi di dalamnya.
Kera-inago
1
Agar adil, STL dan templat secara umum bukan merupakan topik pengantar C ++. Tujuan dasar dari setiap kursus pemrograman 101-level adalah untuk mengajarkan cara membuat logika sekuensial, bersyarat, dan iteratif terstruktur dengan baik dalam batasan sintaks yang diberikan. Semua fitur bahasa lainnya hanyalah gula sintaksis yang memungkinkan seseorang untuk mengelompokkan struktur kontrol dasar serta mengikatnya ke data.
bit-twiddler
Aduh dua downvotes. melihat bahwa satu datang = P aneh bagi saya karena pendapat awalnya berasal dari seorang programmer yang lebih tua yang membantu saya pulih dari pengajaran yang buruk. @Ape: Kepala departemen CS kami mencoba mengajari kami COBOL selama setahun di tahun 2004 XD (kekhawatiran saya yang paling sedikit dari gayanya yang 'mengajar', saya agak tidak keberatan karena saya bisa mengerjakan beberapa Point Of Sales mesin lol tapi gabung ... serius?)
Garet Claborn
1
@ bit-twiddler - Aye Pak, sangat aneh. Saya tidak bergantung banyak pada yang pengalaman banyak dalam pendapat ini, tapi saya telah melihat ke lokal lain. Saya benar-benar menyukai kedua gaya pemrograman dan menurut saya mereka harus mengajar mereka bersama. Saya hanya menemukan bahwa profesor yang bahkan sedikit lebih muda tidak memiliki persentase semangat yang sama tentang masalah ini. IMO itu hal yang baik. Saya mengerti beberapa berpikir prosedural pertama adalah penting.
Garet Claborn
1
@ bit-twiddler: yeah, tapi itu bukan kursus pengantar. Itu adalah tahun ke-4 kursus lanjutan dalam desain basis data, dan kami seharusnya menggunakan c ++. Rasanya salah setelah mengalami c ++ ke level yang tinggi dengan kursus sebelumnya.
Kera-inago
0

Dua alasan bagi saya: Satu pemrograman OO datang untuk memecahkan masalah pemrograman prosedural. Jadi dengan menulis beberapa kode prosedural dan kemudian hal yang sama di OO, membuatnya lebih mudah untuk memahami perbedaannya.

Ada juga elemen tambahan di sini: Dua pendekatan untuk mendidik tentang topik-topik Pemrograman. Seseorang dapat mulai dengan serendah yang didapatnya (misalnya perakitan, di banyak tempat prosedural, beberapa lainnya mulai dengan sirkuit) dan kemudian naik (menuju OO / Fungsional / Dikelola). Pendekatan lain adalah mulai dari dunia fisik (mis. Browser / Windows 7 dll) dan kemudian mulai masuk lebih dalam. Ada pro dan kontra untuk setiap pendekatan. Universitas Anda memilih yang pertama dan memulai dengan prosedural. Mungkin ada beberapa alasan atau mereka hanya menyalin orang lain :-).

Dimitrios Mistriotis
sumber
1
"Pemrograman OO datang untuk memecahkan masalah pemrograman prosedural." Itulah tujuannya, tetapi OO menciptakan banyak masalah yang diselesaikan.
bit-twiddler
@ bit-twiddler: Kisah yang sangat besar. Berfokus pada (atau mempersempitnya) pada aspek pedagogis, itu membuat kasus: Apa yang kita miliki ini, bagaimana kita membuatnya lebih baik: bahwa (Anda berdebat apakah itu lebih baik atau tidak)
Dimitrios Mistriotis
0

Tidak ada alasan selain kelembaman kelembagaan. Lihatlah CMU, mereka membuang seluruh kurikulum OOP mereka dan menggantinya dengan pemrograman fungsional. Jadi sekali lagi, jawaban untuk pertanyaan Anda adalah bahwa itu adalah pilihan sewenang-wenang yang dibuat oleh administrator dari sekolah mana pun yang Anda ikuti. Jika ada orang yang bertanya-tanya tentang pernyataan faktual yang saya buat di sini adalah posting tentang mengubah kurikulum di CMU oleh seorang profesor / administrator: Mengajar FP kepada mahasiswa baru .

davidk01
sumber
1
-1 menyesatkan - sementara saya memang melihat utas (melalui pencarian google) yang mengklaim bahwa CMU menjatuhkan OOP dari kurikulum CS tahun pertama mereka dan menggantinya dengan pemrograman fungsional, kurikulum CMU resmi dimulai dengan bahasa pemrograman Alice, yang merupakan objek- berorientasi [lihat enr-apps.as.cmu.edu/assets/SOC/CS_SPRING.htm]
Steven A. Lowe
1
@ davidk01: (1) pernyataan yang salah secara faktual dalam jawaban. (2) "Alice adalah alat pengajaran yang tersedia secara bebas yang dirancang untuk menjadi paparan pertama siswa untuk pemrograman berorientasi objek " dari alice.org
Steven A. Lowe
2
@Steven A. Lowe: Langsung dari mulut kuda: "Pemrograman berorientasi objek sepenuhnya dihilangkan dari kurikulum pengantar, karena sifatnya anti-modular dan anti-paralel, dan karenanya tidak cocok untuk kurikulum CS modern. Sebuah kursus baru yang diusulkan pada metodologi desain berorientasi objek akan ditawarkan di tingkat dua untuk para siswa yang ingin mempelajari topik ini. " - Mengajar FP kepada mahasiswa baru
davidk01
1
@ davidk01: tautan luar biasa, terima kasih. Dari makalah komite yang dikutip dalam artikel itu "Meskipun pemrograman berorientasi objek (dalam berbagai bentuknya) tetap menjadi tema dominan dalam pengembangan perangkat lunak industri, penggunaan bahasa berorientasi objek, seperti Jawa, pada tingkat pengantar memperkenalkan kompleksitas dan gangguan yang cukup besar. dari tujuan inti di tingkat pengantar . Tampaknya lebih baik untuk memberikan cakupan yang lebih lengkap dari desain OO dan metodologi implementasi untuk nanti dalam kurikulum untuk memungkinkan konsentrasi yang lebih fokus pada dasar-dasar di tingkat pengantar. " [penekanan milikku] ...
Steven A. Lowe
1
@ davidk01: Saya senang setuju untuk tidak setuju. Sebut saya hebat jika Anda suka, tetapi bagi saya ada perbedaan yang signifikan antara mengubah penekanan tingkat pengantar dan "membuang seluruh kurikulum OOP mereka". Saya hampir tidak akan menyebut pengurangan ruang lingkup kelas pengantar sebagai "perubahan besar" ;-)
Steven A. Lowe