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?
10
Jawaban:
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.
sumber
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.
sumber
Aljabar linier, teori probabilitas, beberapa teori grafik / kombinatorik minimal.
sumber
Beberapa hal yang mungkin Anda butuhkan, beberapa lebih, beberapa kurang:
Tentu saja (hampir) apa pun akan berguna, terutama jika Anda akan masuk ke bidang ilmu komputer teoretis.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber