Apakah Haskell pandai mengajar dasar-dasar matematika?


19

Saya terlibat dalam pengajaran matematika ke kelas dengan persyaratan seperti AS dan spesifikasi Matematika tingkat A.

Buku-buku pelajaran biasanya memberikan contoh-contoh perangkat lunak komputer yang diterapkan pada tugas-tugas matematika, tetapi biasanya didasarkan pada aplikasi perangkat lunak seperti mathlab, mathatica atau turunan.

Bahkan ketika bahasa pemrograman yang sebenarnya digunakan, itu biasanya bahasa fashoned lama seperti Pascal. Dan ini sangat menyedihkan menurut saya.

Karena, Haskell terkenal dengan perasaannya dengan matematika, dan karena saya juga tertarik pada hal itu, saya ingin bertanya apakah Haskell adalah pilihan yang baik sebagai metode latihan ekstensi untuk siswa kelas universitas tahun pertama. Subjek khasnya adalah fungsi, caclulus, batas, tetapi juga aljabar linier misalnya.

Saya memiliki pengalaman pengetahuan menengah dalam pemrograman (c #, ruby, PowerShell, javascript, tex) dan juga sudah mendekati pemrograman fungsional dengan XSLT.

Jawaban akan dihapus secara bertanggung jawab. Jawaban Verbose termasuk juga beberapa contoh dasar kode Haskell yang diterapkan pada matematika, seperti aljabar linier (misalnya ruang vektor), polinomial, penyelesaian persamaan linier sangat dihargai dan ditargetkan sebagai yang diinginkan.



@ Larsmans: terima kasih. Itu memang titik awal yang bagus; Saya juga tertarik pada matematika yang lebih praktis, seperti diferensiasi, batasan, integral.
Emiliano Poggi

Saya gagal melihat bagaimana Mathematica bukan bahasa pemrograman yang sebenarnya . Ketika saya memiliki masalah matematika, saya sangat sering menggunakannya terlebih dahulu (oktaf baik), dan kemudian dikonversi ke bahasa lain. Jika fokusnya adalah matematika maka saya tidak melihat alasan mengapa bahasa matematika khusus tidak cocok.
edA-qa mort-ora-y

@EDA: Mathematica! = Oktaf! Oktaf adalah tiruan Matlab. Orang-orang yang menggunakan keduanya memberi tahu saya Matlab / Oktaf lebih diarahkan untuk angka (array besar, FFT dll) sedangkan Mathematica lebih baik untuk manipulasi simbolik. Setara dengan FOSS terdekat dengan Mathematica mungkin adalah Maxima (sebelumnya Macsyma).
timday

@timday, ya, saya tahu Octave! = Mathematica, tetapi bahasa kodenya sama. Saya juga menggunakan Maxima untuk manipulasi simbolis.
edA-qa mort-ora-y

Jawaban:


9

Haskell semakin populer di kalangan matematikawan. Seperti yang dikatakan seorang blogger:

"Setelah saya melibatkan diri dalam subjek, satu hal yang menonjol adalah jarak yang relatif rendah antara pemikiran yang diungkapkan dalam wacana matematika sehari-hari saya, dan pemikiran yang diungkapkan dalam kode Haskell."

Jadi inilah beberapa pandangan yang terkumpul, yang menurut saya mengatakan Anda tidak bisa salah dalam mengambil pendekatan ini.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Akhirnya,


1
Setelah membaca beberapa tautan Anda, saya tidak bisa mengatakan saya terlalu yakin. Punya contoh nyata dari seseorang yang duduk untuk sesi Haskell dan bekerja seperti yang Anda bisa Mathematica / Maxima? Selanjutnya, "11 alasan" blog menunjukkan betapa berantakan perpustakaan standar dari sudut pandang seorang ahli matematika, dan melihat daftar paket matematika saya melihat banyak angka (misalnya blas, fft) tetapi tidak banyak dalam cara manipulasi simbolik / CAS. Karena itu ... kedua buku terlihat sangat menarik!
timday

Kamu, beberapa contoh matematika aktual akan menjadi hebat (seperti penambahan aljabar matriks aljabar dll ...) - untuk melihat bagaimana sintaksis yang sebenarnya terlihat. Saya yakin tidak ada op-overloading ...
Andriy Drozdyuk

@drozzy: tentu saja ada kelebihan operator, melalui kelas tipe.
Nomen

4

Meskipun saya penggemar berat Haskell untuk mengajar matematika, mungkin tidak cocok untuk semua topik di tingkat AS / A.

Anda tidak akan memiliki masalah dengan mengajarkan ide fungsi, dan aljabar linier bisa menyenangkan di Haskell. Aljabar linier sering diajarkan dengan cara yang sangat penting dengan pembaruan array di tempat. Itu semua dapat diterjemahkan ke Haskell, tetapi mungkin memerlukan sedikit pemikiran yang berbeda.

Tetapi menjadi rumit ketika Anda ingin berbicara tentang batasan dan kalkulus. Saya sangat sukses melakukan kalkulus di Haskell dengan pendekatan non-konvensional. Tapi itu mungkin bukan ide bagus ketika mengajar ke silabus yang tetap. Atau Anda bisa bermain dengan diferensiasi simbolis tetapi kemudian Anda harus mulai membangun tipe data untuk ekspresi yang mungkin rumit untuk tingkat A / AS. Tidak banyak kode untuk memulai, hanya beberapa baris, tetapi mungkin menakutkan bagi siswa. Tidak seperti Derive dan Mathematica, Anda tidak mendapatkan ekspresi simbolis secara gratis.

Kombinatorik dasar mudah dijelajahi dengan List monad. Ini mungkin berguna untuk pengajaran teori probabilitas.

Haskell baik untuk aplikasi numerik dari jenis yang mungkin muncul di tingkat A / AS, misalnya. menerapkan aturan Simpson atau menyelidiki mean dan varians sampel.

Apakah Anda melakukan teori kelompok dasar? Mudah untuk membuat kode dan bermain di Haskell.

Secara keseluruhan, jika Anda berhati-hati di sekitar batas saya curiga bahwa itu mudah untuk melakukan banyak matematika tingkat A / AS dengan Haskell.


2

Saya tidak yakin apakah Haskell adalah pilihan yang baik. Tentu, ini memiliki "perasaan matematika" yang sangat, berurusan dengan struktur tak terbatas dll. Tetapi Anda dapat menghargai fitur ini hanya jika Anda sudah tahu bahasa. Mempelajari Haskell untuk mempelajari matematika menumpuk satu tugas berat di atas yang lain. Dan belajar Haskell itu sulit, bahkan jika Anda sudah tahu pemrograman. Jadi itu benar-benar tergantung jika audiens Anda cukup cerdas dan ingin tahu, kalau tidak Anda kehilangan setengah dari mereka karena matematika, dan setengah lainnya karena Haskell.


Mempelajari Haskell itu mudah jika Anda sudah tahu matematika di baliknya. Sangat mudah.
Nomen

@Nomen Mungkin, tapi ini bukan pertanyaannya.
Landei

Saya mengatakan bahwa menjadi sulit untuk belajar kepada seseorang dengan latar belakang pemrograman tidak mendiskualifikasi itu.
Nomen

1

Tidak ada bahasa komputer yang akan mengajarkan Anda matematika. Hanya matematika yang akan mengajarkan Anda matematika. Yaitu: pendekatan pena dan kertas (atau kapur dan papan tulis), aksioma, teorema dan bukti. Ini matematika. Tidak peduli seberapa seksi bahasanya, sebuah program yang ditulis di dalamnya bukanlah matematika, itu hanya sebuah aplikasi matematika. Untuk menerapkan sesuatu, Anda harus mempelajarinya terlebih dahulu.


1
Saya tidak berpikir siapa pun mengharapkan bahasa pemrograman untuk benar-benar mengajarkan matematika dan saya tidak berpikir pertanyaan asli meminta bahasa pemrograman untuk benar-benar mengajar matematika. Mereka menginginkan sesuatu yang dapat digunakan untuk beberapa latihan untuk membantu pengajaran matematika.
user27539

Kapur, papan tulis ...
quant_dev

Tidak setuju. Bahasa hanyalah alat ekspresi. Kapur, pensil, komputer: hanya alat yang digunakan untuk mengekspresikan matematika secara konkret. Bahasa hanyalah alat untuk mengekspresikan matematika secara abstrak. Bandingkan teorema Isomorfisme Haskell-Curry (sebuah program adalah bukti dalam logika konstruktif)
nomen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.