Bahasa apa yang harus saya gunakan saat mengajar program sarjana dalam pemrograman komputer?

22

Pergi untuk mengajar siswa tingkat sarjana kursus berjudul Pengantar Pemrograman Komputer. Saya sedikit bingung. Dalam Ilmu Fisika Komputasi, para ilmuwan menggunakan C / C ++ atau Python atau Fortran, CUDA dll ..... inilah saatnya untuk membangun basis mereka. Apa yang harus saya gunakan? Saya tahu Anda dapat mempelajari bahasa pemrograman baru kapan saja dalam hidup Anda, tetapi merupakan pilihan yang lebih bijaksana bagi saya untuk menguraikan semua konsep pemrograman dasar dan konsep OOP nanti.

Afnan Bashir
sumber
9
@ k20: Saya harap saran Anda hanya sedikit; kalau tidak, itu akan menjadi pelanggaran serius etika akademik.
Christian Clason
6
@ k20: Semua ini di luar topik, tetapi memilih perangkat lunak berdasarkan suap (dalam bentuk apa pun) kepada guru dan bukan pada konten yang diajarkan pasti tidak etis. (Hanya untuk membuatnya jelas, itu "barang curian" saya keberatan.) Apa yang biasanya dilakukan adalah perusahaan membuat perangkat lunak yang tersedia dengan biaya yang sangat berkurang (atau gratis).
Christian Clason
3
@ k20: Juga, ingatlah bahwa motivasi perusahaan perangkat lunak itu tidak sepenuhnya bersifat altruistik: Siswa Anda mungkin mendapatkan perangkat lunak secara gratis sekarang, tetapi ada kemungkinan bahwa mereka harus membeli perangkat lunak beberapa waktu kemudian dalam hidup mereka (atau belajar yang baru perangkat lunak).
Wrzlprmft
3
@ k20 Matlab dan Mathematica tidak terlalu banyak digunakan untuk perhitungan ilmiah yang serius. Mereka lebih banyak alat eksplorasi untuk mencoba ide. Jika tujuan kursus adalah untuk mengajarkan algoritma dasar, maka ini mungkin cocok (terutama Matlab), tetapi jika itu adalah pemrograman umum, maka Anda ingin menggunakan bahasa pemrograman yang lebih umum seperti Python dari C ++.
Truman Ellis
2
MATLAB memiliki desain (jika saya tidak diplomatis saya akan mengatakan cacat :)) yang membutuhkan apa dalam bahasa lain adalah praktik buruk. Banyak hal lain yang berbeda dari yang lain, jadi "pacaran" bisa sulit. Menurut saya, Mathematica memiliki desain yang indah, tetapi tidak ada yang mirip dengan bahasa lain (kecuali mungkin Lisp, tetapi tidak digunakan dalam sains), jadi apa yang Anda pelajari sebagian besar tidak berguna untuk mempelajari bahasa lain. OTOH, menggunakan C <-> Python jauh lebih mudah.
Davidmh

Jawaban:

32

Pertama, jika sarjana Anda seperti kami dan tidak memiliki pengenalan sebelumnya ke komputer, berharap untuk meluangkan waktu mengajar mereka bagaimana menggunakan hal-hal dasar seperti menggunakan editor yang tepat (yaitu, bukan MS Word), baris perintah, dll.

Saya pikir jawabannya agak tergantung pada di mana Anda menetapkan fokus program studi Anda (atau apa yang harus Anda ajarkan). Sebagai contoh: Seberapa relevan kerja internal komputer? Apakah Anda memerlukan kelas dan struktur OOP canggih lainnya? Apakah Anda ingin mengajari mereka cara menghasilkan program yang efisien atau apakah Anda senang jika mereka menghasilkan program yang bekerja sama sekali? Juga, jangan lupa bahwa Anda kemungkinan besar akan membutuhkan tutor yang cakap.

Tapi sekarang sesuatu untuk kelebihan dan kekurangan bahasa, saya kenal. Perhatikan bahwa ini terutama dari pengalaman saya sebagai fisikawan komputasi dan beberapa di antaranya mungkin tergantung pada bidang tertentu, kelompok kerja, universitas, dll.

Python

Saya biasanya merekomendasikan menggunakan Numpy dari awal dan saya berasumsi untuk digunakan sebagai berikut.

Keuntungan:

  • Mudah dipelajari dan begitu juga membaca kode orang lain (misalnya, kode contoh Anda, tetapi juga kode siswa untuk tutor).
  • Input dan output (yang seharusnya tidak menjadi fokus program studi Anda) dapat sepenuhnya dicakup oleh print, Numpy savetxtdan loadtxt, dan mungkin sys.argv. Ini dapat diperkenalkan dengan cepat dan tidak memakan banyak waktu pemrograman.
  • Anda tidak perlu berurusan dengan atau hanya perlu berurusan sedikit dengan detail seperti representasi angka, manajemen memori, tipe data. Dengan demikian cepat untuk memprogram dan Anda dapat fokus pada algoritma yang sebenarnya.
  • Itu bukan bahasa yang dikompilasi. Ini memiliki dua keuntungan: Siswa tidak perlu berurusan dengan kompiler dan siswa dapat menguji hal-hal langsung di konsol tanpa harus mengkompilasi, memulai kembali dan menjalankan kembali program. Terkait, debugging lebih mudah.
  • Ada perpustakaan yang mudah digunakan untuk hampir semua hal.
  • Anda tidak perlu mempelajari bahasa skrip tambahan seperti skrip shell, Make, Gnuplot, dan sebagainya - semua ini dapat dilakukan dari Python.
  • Ada banyak tutorial bagus (gratis).

Kekurangan:

  • Itu tidak dikompilasi. Oleh karena itu program Python mungkin secara drastis lebih lambat daripada program yang dikompilasi dalam beberapa kasus yang relevan dengan fisika komputasi. Namun, dalam kasus lain, perpustakaan (terutama Numpy) dapat menghasilkan kinerja yang sebanding. Cara lain, untuk mendapatkan kinerja yang baik dengan Python adalah dengan menulis cuplikan kode yang relevan dalam bahasa lain seperti C¹. Jelas Anda perlu mempelajari bahasa ini untuk ini, tetapi ini bisa dilakukan nanti dan waktu Anda belajar Python tidak sia-sia.
  • Lebih sulit untuk mengajarkan perincian seperti representasi angka, manajemen memori, tipe data, dan jebakannya, karena agak membingungkan.

C / C ++

Keuntungan:

  • Ini dikompilasi dan karenanya lebih mudah untuk menghasilkan kode yang efisien.
  • Anda secara langsung berurusan dengan representasi angka, manajemen memori, tipe data dan karenanya lebih intuitif untuk mengajarkan ini - siswa Anda akan lebih dekat dengan apa yang sebenarnya terjadi di komputer mereka.
  • Pada dasarnya ada perpustakaan untuk semuanya tetapi memahami dan menggunakan perpustakaan membutuhkan pekerjaan.
  • Ada jumlah yang relevan dari kode yang ada di C / C ++ dan dengan demikian siswa perlu belajar bahasa jika mereka ingin bekerja dengan kode ini.
  • Jika Anda sudah tahu C / C ++, Anda bisa belajar Python (misalnya) dengan sangat cepat.

Kekurangan:

  • Itu dikompilasi dan siswa Anda harus berurusan dengan kompiler, preprosesor, header dan sebagainya. Anda akan terkejut betapa banyak siswa gagal pada langkah ini, bahkan pada akhir semester.
  • Lebih lambat belajar dan butuh waktu lebih lama untuk menghasilkan kode kerja.
  • Berurusan dengan hal-hal marjinal seperti input dan output membutuhkan waktu juga dalam mengajar maupun dalam pemrograman. Di C ++, ada sintaks tambahan untuk input dan output.
  • Ketergantungan kompiler dan sistem operasi.
  • Anda harus berurusan dengan kebingungan C / C ++.
  • Membaca kode orang lain terutama di C ++ bisa sangat sulit karena banyaknya fitur sintaks.

Keuntungan utama C ++ daripada C (Kelas, templat) tidak boleh relevan untuk kursus Anda dan hanya menjadi relevan untuk proyek yang lebih besar. Karena itu saya akan memilih C dari keduanya, karena lebih ringkas.

Lainnya

Beberapa komentar tentang bahasa lain:

  • Fortran: Ini masih digunakan oleh banyak kelompok dan ada banyak kode warisan, tetapi Anda tidak dapat menyiasati berurusan dengan standar lama dan keterbatasan dan jebakan yang sangat besar (banyak orang masih bekerja dengan Fortran 77). Juga, akan jauh lebih sulit untuk menemukan tutorial, bantuan di Internet dan sebagainya.
  • Matlab / Mathematica: Semua masalah perangkat lunak berpemilik. Pertimbangkan khususnya bahwa siswa Anda kemungkinan akan berkolaborasi dengan orang-orang yang tidak memiliki akses ke perangkat lunak ini dan masalah-masalah selanjutnya.
  • Cuda: Ini hanya relevan untuk masalah tertentu, jika masalah kinerja. Juga, setelah semua yang saya tahu, Anda tidak ingin belajar pemrograman dengan cara ini.

¹ Yang merupakan alur kerja standar setidaknya di grup kami.

Wrzlprmft
sumber
Jawaban yang sangat tepat
Afnan Bashir
1
Saya juga akan berpadu untuk mengatakan salah satu bonus yang tidak disebutkan dari Python adalah bahwa ada sejumlah distribusi ilmiah (Anaconda / Enthought / PythonXY / SAGE) yang benar-benar memperlancar proses mendapatkan semua orang di halaman komputasi yang sama. Juga, yang lebih keren adalah pendekatan berbasis web (Wakari dan SAGE) yang menyediakan semuanya melalui browser alias 0 perangkat lunak yang diinstal. Mengajar undergrads c ++ atau Fortran akan menghasilkan lebih banyak waktu yang hilang melawan kompiler daripada waktu yang diperoleh dalam kecepatan kode.
meawoppl
Ada ekosistem luar biasa dalam python untuk fisika komputasi. Numpy, cekatan untuk menyediakan infrastruktur dasar, mayavi, tvtk untuk visualisasi. Python cukup matang dalam komunitas komputasi ilmiah. Saya menggunakan C ++ dalam produksi tetapi tidak peduli apa itu sakit untuk digunakan.
Sai Venkat
@meawoppl: "Mengajar undergrads c ++ atau Fortran akan menghasilkan lebih banyak waktu kalah melawan kompiler daripada waktu yang diperoleh dalam kecepatan kode." - Bukan kecepatan kode untuk latihan selama kursus yang penting (program akan sangat cepat, kecuali latihan khusus dibuat sedemikian rupa sehingga tidak), tetapi kecepatan kode program yang akan mereka tulis untuk kehidupan nyata atau serupa. Dan ada beberapa hal yang tidak dapat dilakukan secara efisien hanya dengan Python.
Wrzlprmft
1
Saya akan mengatakan CUDA keluar dari pertanyaan untuk kursus tujuan umum, karena membutuhkan perangkat keras yang tidak semua orang miliki. Dan jika Anda hanya memiliki laptop tanpa itu, hampir tidak ada cara untuk menginstalnya.
Davidmh
22

Pada 2014, saya akan mengatakan Python. Pada 2017, dengan sepenuh hati saya percaya bahwa bahasa untuk mengajar sarjana adalah Julia.

Mengajar selalu tentang pengorbanan. Di satu sisi, Anda ingin memilih sesuatu yang cukup sederhana sehingga mudah dipahami. Tetapi kedua, Anda ingin mengajarkan sesuatu yang memiliki kekuatan tetap, yaitu sesuatu yang dapat tumbuh bersama Anda. Bahasa dinamis umum (Python / MATLAB / R) semuanya dengan mudah masuk ke dalam kategori 1 karena kode boilerplate yang tidak ada dan kemudahan membuka juru bahasa dan meludahkan kode, sementara C / C ++ / Fortran masuk dalam kategori kedua sebagai bahasa-bahasa yang dengannya perangkat lunak berkinerja tinggi dari dunia saat ini ditulis.

Tetapi ada masalah dengan menggunakan bahasa yang tidak sepenuhnya menangkap kategori lainnya. Saat menggunakan bahasa seperti Python, ia dengan baik mengabstraksi hal-hal seperti tipe dan integer overflow. Ini bagus untuk mengajar komputasi semester pertama, tetapi karena Anda ingin menggali lebih dalam dan lebih dalam bagaimana hal-hal benar-benar berfungsi, bahasa Python terlalu jauh disarikan dari logam yang mendasari untuk menjadi alat pengajaran yang baik. Tapi C / C ++ / Fortran (atau Java ... saya belajar Java dulu ...) semua memiliki biaya startup yang besar sehingga hal tersulit untuk dipelajari adalah bagaimana cara membuat header dan maindikompilasi, yang mengalihkan perhatian dari benar-benar belajar ke program .

Masukkan Julia. Saat Anda pertama kali menggunakan Julia, Anda dapat mengabstraksi seluruh ide tipe dan menggunakannya seperti MATLAB atau Python. Tetapi karena Anda ingin belajar lebih banyak, ada "lubang kelinci" yang mendalam untuk bahasa tersebut. Karena ini benar-benar lapisan abstraksi yang didasarkan pada sistem tipe + beberapa pengiriman melalui LLVM, pada dasarnya "cara mudah untuk menulis kode yang dikompilasi secara statis" (dan fungsi tipe-stabil sebenarnya dapat dikompilasi secara statis). Ini artinya rincian C / C ++ juga dapat diakses. Anda dapat mempelajari cara menulis loop dan fungsi sederhana tanpa kode boilerplate, dan kemudian menggali ke dalam pointer fungsi. Fitur metaprogramming Julia memungkinkan Anda langsung mengakses AST, dan ada makro yang menunjukkan setiap bagian dari rantai kompilasi. Juga, sebagai Lisp, dapat menerima gaya pemrograman fungsional. Dan ia memiliki banyak kemampuan komputasi paralel. Gagasan seperti mengetik parametrik dan stabilitas jenis cukup unik dan mendalam di Julia.

Jika Anda ingin mempelajari sendiri bahasa pemrograman, Anda dapat mempelajari langkah-langkah bagaimana kompilasi bekerja dengan menggunakan @code_lowereduntuk melihat apa yang menurunkan, melihat AST yang diketik dengan @code_typed, melihat LLVM IR dengan @code_llvm, dan akhirnya dengan kode assembly asli @code_native. Ini dapat digunakan untuk menunjukkan berapa biaya variabel dinamis dan bagaimana "tinju variabel" bekerja, dan posting blog ini menunjukkan bagaimana alat introspeksi ini dapat digunakan untuk mengajarkan bagaimana optimasi kompiler dapat / tidak dapat terjadi.

Tidak hanya ilmu komputer dan ide-ide rekayasa perangkat lunak untuk mengeksplorasi, tetapi juga ide-ide matematika yang kaya. Karena perpustakaan utama Julia ditulis dengan pengetikan generik, itu sepele untuk membuat operator bebas-matriks dan menggunakan IterativeSolvers.jl untuk melakukan GMRES menggunakan mereka. Anda dapat menggunakan alat introspeksi ingin @whichmenunjukkan dengan tepat bagaimana sesuatu diterapkan. Misalnya, bagaimana cara \kerjanya?

@which rand(10,10)\rand(10)
#\(A::AbstractArray{T,2} where T, B::Union{AbstractArray{T,1}, AbstractArray{T,2}} where T) in Base.LinAlg at linalg\generic.jl:805

Itu mengarahkan saya langsung ke definisi \ . Ini diimplementasikan dalam Julia, sehingga seseorang yang mengenal Julia kemudian dapat mempelajari algoritma dan cara kerjanya melalui mengidentifikasi subtipe matriks dan mengkhususkan diri bila mungkin (kembali ke eliminasi Gaussian). Karena kode Julia dilisensikan MIT (dan hampir semua paket dilisensikan MIT), siswa kemudian bebas untuk menggunakan ide-ide ini dalam kode mereka sendiri (dengan atribusi) (ketika kode dilisensikan GPL, seperti halnya dengan sebagian besar paket MATLAB dan R, mereka harus berhati-hati tentang masalah perizinan!).

Karena inti bahasa dibangun dengan komunitas open source yang sangat aktif, ada juga sumber daya yang kaya tentang sejarah perkembangan bahasa: masalah Github-nya . Memahami pertanyaan bahasa seperti apa sebenarnya transpos matriks? bisa sangat mencerahkan untuk memahami objek matematika ini secara lebih rinci.

Tetapi terakhir, pada akhirnya, Anda ingin mengajari siswa Anda cara membuat. Sayangnya, mempelajari Python atau R tidak berarti Anda memiliki apa yang diperlukan untuk "mengembangkan Python / R" karena sebagian besar paket yang digunakan secara luas dan dioptimalkan dengan baik memiliki sejumlah besar kode C / C ++ / Fortran di dalamnya dalam rangka untuk mendapatkan kinerja. Dengan demikian, agar para siswa ini dapat berkontribusi pada ekosistem ilmiah untuk bahasa-bahasa ini, pada akhirnya mereka harus belajar bahasa lain. Meskipun itu tidak sepenuhnya mengerikan, itu tidak optimal sekarang karena Julia ada. Karena tipe-stable Julia mampu mencapai kecepatan C / Fortran, sebagian besar paket dalam ekosistem Julia adalah kode Julia murni. Mempelajari Julia berarti seseorang telah belajar mengembangkan Julia. Dan karena Pangkalan Julia juga sebagian besar kode Julia (hanya beberapa primitif dan parser tidak),

Yang mengatakan, ada beberapa kerugian untuk pilihan Julia. Untuk satu, itu jauh lebih baru daripada bahasa-bahasa lain dan jadi itu sedikit lebih langka pada sumber daya. Anda harus datang dengan banyak alat pengajaran sendiri, atau menarik dari sumber daya di web yang terdaftar di situs web Julia . Juga, detail bahasa tidak cukup diselesaikan, meskipun 1.0 akan segera keluar (pada akhir 2017). Dan sangat mungkin bahwa Anda, calon guru kursus di Julia, mungkin tidak memiliki banyak pengalaman dengan bahasa itu sendiri. Namun, ini adalah jenis masalah yang hilang seiring waktu, sedangkan manfaat Julia yang saya sebutkan di atas jauh lebih inti bagi bahasa itu sendiri.

Chris Rackauckas
sumber
Bertanya-tanya apakah menggunakan sedikit bahasa yang digunakan masuk akal karena pengetahuan sintaksis kemungkinan akan hilang dan itu tidak menjamin bahwa siswa akan belajar beberapa bahasa. Mungkin dalam sudut pandang seperti itu, python masih bagus.
Xavier Combelle
1
Itu sebabnya saya tidak akan mengatakan Julia sebelumnya, tetapi sekarang sudah cukup umum Anda sebaiknya menggunakannya.
Chris Rackauckas
Saya pikir Julia masih terlalu baru. Dalam industri, siswa akan diharapkan untuk mengetahui Python, C ++, (ew) MATLAB, dan R. Saya pikir lebih baik sebagai bahasa kedua atau ketiga untuk dipelajari, sebagai pengalaman yang memperkaya. Siswa tidak mungkin menggunakan Julia lagi dalam waktu dekat.
Mateen Ulhaq
2
Siswa harus mempelajari keterampilan yang dapat ditransfer, bukan templat untuk menyalin dan menempel. Dalam pengertian itu, abstrak Python / MATLAB / R terlalu jauh dari komputer untuk menjadi alat pengajaran yang baik di luar pemrograman yang paling sederhana, tetapi C ++ terlalu rendah untuk menjadi alat pengajaran yang baik. Tentu, jika Anda akan memiliki bahasa di samping seperti dalam kursus analisis numerik, lakukan apa yang akan Anda gunakan karena kursus ini bukan tentang pemrograman. Tetapi jika ini tentang konsep pemrograman, Julia adalah satu-satunya bahasa sederhana yang sebenarnya memiliki sebagian besar konsep dalam desainnya.
Chris Rackauckas
2

Berbicara sebagai sarjana yang tidak terlalu jauh dihapus, dan dengan asumsi bahwa Anda tidak mengajar di departemen CS, saya pikir itu akan menjadi bencana untuk memperkenalkan siswa ke pemrograman komputer dengan sesuatu seperti C, C ++, atau Fortran (atau dewa melarang CUDA), meskipun yang lain menunjukkan bahwa mereka mungkin status quo dalam komputasi ilmiah.

Jika Anda mengharapkan untuk mengajar siswa komputasi ilmiah dan memperkenalkan mereka ke pemrograman dalam kursus yang sama, saya berani bertaruh itu terlalu banyak untuk dicakup dalam satu semester kecuali Anda tetap menggunakan bahasa yang ditafsirkan seperti matlab atau python. Dalam pengalaman saya, sebagian besar kelas dalam komputasi ilmiah di tingkat sarjana diajarkan di salah satu dari dua cara itu, dan python menjadi semakin bermanfaat sebagai bahasa tingkat produksi setiap hari, sehingga masih memiliki beberapa kegunaan sebagai keterampilan praktis ( bukan hanya mengajarkan dasar-dasar pemrograman, maksud saya).

Hanya dua sen saya.

Sumedh Joshi
sumber
4
Bencana adalah kata yang terlalu kuat untuk digunakan untuk menggambarkan pengajaran siswa C, C ++, atau Fortran. Salah satu dari bahasa ini (C, C ++, Fortran, atau Python) dapat digunakan untuk mengajar pemrograman dan komputasi ilmiah tergantung pada bagaimana Anda melakukannya.
Bill Barth
1
Dari pengalaman saya tentang kelas oleh departemen CS (C ++), dan kelas untuk astronom (Fortran 77), C / C ++ / Fortran tidak memberikan bantuan yang cukup dibandingkan dengan python untuk programmer yang benar-benar baru (segfaults vs pengecualian). Menggunakan C / C ++ / Fortran menyiratkan belajar tentang cara menggunakan debugger (atau penggunaan IDE), sedangkan python dapat digunakan sendiri.
James Tocknell
0

C, C ++, & Fortran (terdaftar tanpa urutan tertentu) adalah tiga bahasa pemrograman utama yang digunakan untuk matematika / fisika komputasi jika Anda ingin menyelesaikan masalah besar pada superkomputer. Saya pikir CUDA dianggap sebagai perpustakaan yang digunakan bersama dengan bahasa lain untuk komputasi GPU yang dipercepat. Matlab dan python sangat bagus untuk dipelajari untuk menjalankan diagnostik keluaran dan membuat model prototipe. Mereka juga lebih mudah untuk dipelajari dan mungkin lebih baik untuk kursus di mana Anda ingin membahas ayat-ayat algoritma belajar cara memprogram.

Jadi, jika kursus Anda murni tentang pemrograman saya akan memilih C ++ atau, jika ini adalah pemrograman pertama kali siswa, Python. Kedua bahasa tersebut memiliki utilitas tinggi di luar dunia komputasi ilmiah. Jika kursus ini berpusat pada algoritma pembelajaran untuk memecahkan masalah berbasis fisika maka saya pikir Matlab tidak diragukan lagi pemenangnya.

James
sumber
0

singkat: Memperhatikan bahwa komputasi ilmiah itu sendiri rumit. Apakah Anda benar-benar ingin bahasa pemrograman ikut bermain?

Matematika menggunakan abstraksi untuk memecahkan masalah yang tidak dapat diselesaikan dengan intuisi. Karena itu konsep cenderung abstrak. Ini sebabnya tidak sepele untuk memahami konsep apa yang harus dienkapsulasi. Dalam perhitungan ilmiah contoh-contoh biasa untuk kelas seperti "Hewan" "Kendaraan" agak tidak berguna. Ini berlaku untuk pemrograman berorientasi Objek, tetapi saya percaya bahwa mereproduksi konsep abstrak pada komputer tidak sepele dalam pemrograman Imperatif juga.

Inilah mengapa saya percaya bahwa di sini kita berurusan dengan dua upaya berbeda: pemrograman, di satu sisi, dan komputasi ilmiah di sisi lain. Di tingkat sarjana, di mana siswa berasal dari latar belakang yang heterogen, Anda mungkin berakhir dengan mengajarkan dua hal yang berbeda secara bersamaan.

Jika tujuan Anda mengajar komputasi ilmiah, saya pikir itu cukup sulit. Memiliki penghalang tambahan sebagai bahasa pemrograman (kita semua sepakat bahwa C ++ memerlukan pelatihan) akan mendemotivasi sebagian besar siswa, inilah mengapa saya menyarankan untuk menggunakan python.

Jika kursus Anda adalah "Pengantar SC" Saya percaya bahwa python memiliki rasio hasil / usaha terbaik.

PS: sekarang kami punya komputer yang bagus, kami tidak perlu mencari efisiensi di tingkat sarjana.

Nicola Cavallini
sumber
Mengenai PS Anda: Mengapa kinerja tidak penting hanya untuk sarjana? Terlepas dari kenyataan bahwa mudah untuk memahami tugas-tugas untuk sarjana di mana kinerja itu penting, itu bukan tugas-tugas yang mereka pelajari untuk kinerja tetapi kehidupan nyata. Selain itu, kecepatan komputer mungkin menjadi lebih tinggi, tetapi demikian juga harapan kami.
Wrzlprmft
Maaf saya terlalu tajam. Biarkan saya ulangi dalam "siswa dapat menjalankan aplikasi besar yang memuaskan dengan bahasa yang ditafsirkan, sebelum menggali ke dalam optimasi kode dan kemudian pergi ke bahasa yang dikompilasi".
Nicola Cavallini