Kursus matematika apa yang harus saya ambil untuk mempersiapkan master CS atau PhD?

10

Saya seorang programmer profesional otodidak. Saya cukup pandai (Ruby, Unix, Clojure, Java, Objective-C), tapi sekarang saya berpikir untuk membawanya ke tingkat berikutnya dengan mungkin mendaftar untuk program master atau PhD di CS. Topik apa dalam matematika yang harus saya pelajari untuk mempersiapkan sasaran ini?

dan
sumber
2
Lihat: cstheory.stackexchange.com/q/2571/1621
Dana Moshkovitz
1
Jika Anda masuk angin, dengan sedikit atau tanpa akademisi di belakangnya, saran saya adalah memilih program yang menyediakan jalur masuk untuk orang-orang non-CS. Ini tidak biasa bagi orang-orang dengan EE, fisika, matematika, atau gelar BS serupa lainnya ingin membuat perubahan karir. Beberapa universitas memiliki program yang dirancang untuk membantu memfasilitasi itu dalam struktur program mereka.
Novak

Jawaban:

10

Ada kursus di MIT OCW yang disebut Matematika untuk Ilmu Komputer , yang berisi daftar beberapa topik yang HARUS Anda bahas .

Mempelajari beberapa aljabar abstrak akan menjadi nilai tambah yang besar. Karena saya melihat terlalu banyak referensi teori grup dalam literatur.

Pratik Deoghare
sumber
3
dang. lupa aljabar abstrak dalam jawaban saya - panggilan bagus.
Suresh Venkat
1
Versi Musim Gugur 2005 yang ditautkan di atas tidak ada sekitar 1/3 dari catatan kuliah. Versi Spring 2005 dan Spring 2010 memiliki catatan yang lebih lengkap.
Daniel Apon
13

Tingkat kematangan matematis yang umumnya tinggi membuat banyak aspek formal dari ilmu komputer (belum tentu teoretis) lebih mudah untuk dipahami. Jadi melakukan minor di bidang matematika bersama jurusan ilmu komputer Anda akan lebih baik daripada merugikan.

Dave Clarke
sumber
11

Aljabar linier, teori probabilitas, beberapa teori grafik / kombinatorik minimal.

Suresh Venkat
sumber
7

Beberapa hal yang mungkin Anda butuhkan, beberapa lebih, beberapa kurang:

  • Logika Matematika
  • Teori Probabilitas / Kombinatorik / Statistik
  • Aljabar linier
  • Kalkulus
  • Teori grafik
  • Tetapkan Teori
  • Teori Angka
  • Mungkin beberapa teori optimasi

Tentu saja (hampir) apa pun akan berguna, terutama jika Anda akan masuk ke bidang ilmu komputer teoretis.

George
sumber
4

Semua jawaban lain + ...

Bisa dibilang hal yang paling berguna untuk Anda coba dan lakukan adalah terlibat dalam penelitian. Mengikuti stackexchange, membaca beberapa bahan latar belakang / makalah dan mencari tahu apa yang menurut Anda menarik mungkin merupakan cara paling efektif untuk mempersiapkan diri Anda ke sekolah pascasarjana.

Sariel Har-Peled
sumber
2

tanggapan yang sangat baik / luas sejauh ini. Saya menyarankan beberapa kelas yang tidak disebutkan sejauh ini. kelas esp yang condong ke arah penerapan teori & mengharuskan siswa untuk menulis / debug kode & memvisualisasikan [hasil grafik] sebagai bagian dari tugas. atau bangun / debug sistem kerja. dll.

  • persamaan diferensial. khususnya hubungan antara itu & persamaan diferensial diskrit misalnya menghasilkan fungsi.
  • metode numerik. optimasi. Pemecah Runge Kutta diffeq dll. Latihan yang rapi / sangat mendidik adalah untuk menyelesaikan / membuat grafik persamaan cuaca Lorentz. konsep tentang presisi / akurasi dalam aritmatika perangkat lunak dll.
  • ada kelas MIT "pemodelan dan simulasi sistem dinamis". sesuatu yang serupa tidak akan tersedia di semua universitas tetapi mungkin beberapa akan memilikinya.
  • beberapa universitas akan memiliki prinsip / dinamika sistem yang kompleks atau sistem adaptif yang kompleks dll
  • apapun yang berhubungan dengan pemodelan atau simulasi sistem yang menggunakan perangkat lunak dengan fokus matematis
  • sistem fraktal & matematika
  • pembelajaran mesin (esp dengan teknik gradient descent)
  • komputasi kuantum (beberapa kelas dalam hal ini sangat atau sebagian besar matematika)
vzn
sumber
1

Pertanyaan yang bagus Saya baru saja lulus ujian kualifikasi PhD yang sebagian merupakan ujian masuk - campuran topik sarjana dan pascasarjana.

Agar praktis - itu tergantung pada sekolah yang Anda rencanakan untuk hadir, jenis ujian masuk yang mungkin mereka butuhkan dan jenis program yang mereka tawarkan.

Beberapa memerlukan GRE, jadi persiapan untuk mendaftar tidak spesifik CS. Beberapa membutuhkan mata pelajaran GRE, yang setara dengan 5-6 mata kuliah inti CS dan teori akan dibahas (teori automata, matematika diskrit, dll)

Untuk mendapatkan latar belakang yang paling mendasar saya akan mengambil Matematika Diskrit, Algoritma dan Teori Komputasi dari Ad Uni .

Ada sumber-sumber fantastis lainnya dari MIT dan Stanford tetapi tiga kursus ini, yang disajikan oleh Shai Simonson yang hebat adalah fondasi yang sangat baik.

Semoga ini membantu.

Edmon
sumber
Salah satu kursus ini dicerminkan di YouTube: Theory of Computation . Sayangnya, mirror untuk Algoritma dan Matematika Diskrit tidak lengkap.
Jeffε
1

saya sangat mendukung jawaban di atas. Saya dapat menambahkan yang berikut ini yang mungkin berguna untuk gambaran besar matematika di CS:

Matematika dapat menjadi bagian dari tujuan itu sendiri; analisis algoritma, batas kompleksitas, bukti deterministik atau probabilistik, algoritma paralel, dan banyak lagi area penelitian yang terkait dengan waktu dan ruang komputasi.

Di sisi lain, matematika dapat menjadi jalur aktual untuk tujuan tingkat yang lebih tinggi; PDE, persamaan cahaya untuk grafik komputer, seluruh area penelitian fisika komputasi (sistem dinamik, mekanika statistik, pembentukan galaksi) untuk beberapa nama.

Dalam keadaan yang tepat, kedua bentuk matematika bisa hidup bersama.

labotsirc
sumber