Bagaimana saya memulai dalam CS teoritis?

35

Saya mahasiswa baru yang sedang mempelajari ilmu komputer dan saya sudah tahu bahwa saya ingin masuk ke dunia akademis dengan fokus sci compi teoritis. Saya sudah membaca beberapa makalah yang dirujuk dalam pertanyaan ini dan pertanyaan ini meyakinkan saya lebih lanjut.

Apa yang harus saya lakukan sekarang , sebagai mahasiswa, untuk terlibat dalam bidang ini? Apa yang bisa saya lakukan untuk mempersiapkan penelitian di lapangan?

Orang Baik
sumber
7
Ini tidak cukup signifikan untuk dikirim sebagai jawaban, tetapi pertimbangkan untuk mengambil salinan Michael Sipser "Pengantar Teori Komputasi," juga. Bahkan jika Anda tidak punya waktu untuk belajar sendiri dengan buku itu, itu adalah referensi yang bagus jika ada sesuatu yang perlu Anda cari yang tidak dijelaskan dengan jelas di Wikipedia.
Philip White
2
Saya tidak tahu bagaimana prosedur ini bekerja, tetapi saya ingin melihatnya sebagai wiki komunitas.
chazisop
3
tandai pertanyaan untuk mendapatkan perhatian moderator dan kami akan menanganinya.
Suresh Venkat
2
@Good Person: OP tidak bisa membuat pertanyaan CW, hanya moderator yang bisa.
Kaveh
2
@Good Person: seperti yang disebutkan Kaveh, poster asli tidak bisa membuat tulisan CW lagi (dan tidak ada yang bisa mengedit hak istimewa). Hanya mod yang dapat melakukan ini. tidak ada pelanggaran yang dimaksudkan.
Suresh Venkat

Jawaban:

29

Biarkan saya memberikan jawaban dari pihak lain. Saya memiliki beberapa peneliti mahasiswa sarjana yang bekerja bersama saya. Pengalamannya bermacam-macam: dengan beberapa, saya telah menerbitkan makalah dan masih dalam proses, dan dengan yang lain, kami tidak pernah benar-benar memulai dari awal.

Sangat menyenangkan Anda tahu apa yang ingin Anda lakukan. Sebagai seorang sarjana, inilah yang harus Anda fokuskan:

  • Membangun "otot" matematika yang akan membantu Anda ketika Anda mulai mengerjakan masalah dengan sungguh-sungguh
  • Menjelajahi berbagai aspek CS teoretis untuk memahami area tersebut dan mencari tahu masalah / area apa yang menurut Anda menarik
  • (tergantung area) mengerjakan beberapa teka-teki, mungkin menyelesaikan beberapa latihan, dan menyelesaikan pertanyaan penelitian.

Temukan seorang profesor untuk membimbing Anda, dan PUT WAKTU! Hal tersulit yang akan Anda hadapi adalah menciptakan waktu terbuka untuk memikirkan masalah di tengah pekerjaan kelas, tugas, dan ujian. Tetapi Anda perlu mencadangkan banyak waktu untuk studi dan penelitian independen Anda jika tidak, akan sangat sulit untuk membuat kemajuan apa pun. Bagaimana Anda melakukan ini terserah Anda: mungkin Anda dapat menemukan seorang profesor untuk bertemu dengan Anda seminggu sekali dan menetapkan tujuan menengah untuk Anda, atau mungkin Anda dapat menetapkan tujuan jangka panjang (bekerja melalui latihan X dari teks) dan bekerja dengan mantap di bahwa.

Suresh Venkat
sumber
4
Jawaban bagus! "Anda perlu mencadangkan banyak waktu untuk belajar mandiri": ini mengingat pengalaman saya sendiri. Saya dulunya adalah seorang siswa matematika yang malas, kemudian di master saya menemukan masalah TCS yang bagus (berpusat di sekitar fungsi berang-berang yang sibuk). Saya mulai mengerjakan waktu senggang saya dengan bimbingan dari salah satu prof. Saya tidak pernah menemukan sesuatu yang menarik dalam masalah ini, tetapi 12 tahun kemudian, saya menulis lebih dari 15 makalah dengannya (tetapi dia tidak pernah menjadi penasihat doktoral, hanya mentor "eksternal").
Sylvain Peyronnet
1
Jawaban Suresh luar biasa! Untuk OP: Membangun "otot" matematika berarti membiasakan diri dengan bahasa dan alat matematika (kombinatorik, teori grafik, analisis dll) dan juga membiasakan diri untuk membuktikan teorema! (Dan ini adalah bagian yang sangat menarik! :-)
Jay
19

Saat ini saya seorang mahasiswa PhD dan bukan seorang prof, jadi saran saya berasal dari pengalaman pribadi saya sebagai mahasiswa pascasarjana.

Ketika saya masih seorang mahasiswa sarjana, saya selalu bekerja sebagai asisten peneliti di musim panas dengan berbagai profesor di departemen saya. Saya pribadi percaya bahwa satu-satunya cara untuk mengetahui apakah TCS benar-benar untuk Anda atau tidak adalah dengan mengerjakan masalah-masalah nyata dan melihat apa yang paling dapat Anda nikmati. Butuh beberapa saat untuk menemukan prof dan topik yang saya sukai. Ada juga aspek "sosial" dalam penelitian, dan para profesor yang berbeda memiliki kebiasaan kerja dan pengawasan yang berbeda, dan dengan demikian pekerjaan penelitian musim panas ini akan memberi Anda gagasan yang lebih baik tentang kualitas apa yang paling Anda inginkan dari seorang penyelia di masa depan.

Ada banyak bidang yang menarik dalam Ilmu Komputer, dan TCS hanyalah salah satunya. Jadi, selalu yang terbaik untuk membuat opsi Anda terbuka dan berbicara dengan para profesional yang berbeda. Sangat penting untuk mengkhususkan diri ketika Anda melakukan PhD, tetapi sebagai mahasiswa saya pikir saran Mark Braverman sangat relevan:

"Cobalah untuk belajar sebanyak mungkin. [...] Lebih sulit nanti!"

[Mark mencoba mendaftar di banyak kursus (jauh di atas batas), dan menjelajahi berbagai bidang Matematika dan Ilmu Komputer ketika dia masih sarjana.] Cobalah untuk menghadiri kuliah dan seminar tentang berbagai topik di departemen Anda. Ketika Anda berada di tahun atas Anda, Anda juga harus meminta izin untuk mengaudit program pascasarjana yang terkait dengan minat Anda.

Tergantung juga jika Anda mengambil jurusan Matematika atau CS, Anda juga harus merencanakan kursus yang harus Anda ambil untuk mempersiapkan dasar yang kuat. Jika Anda seorang sarjana Matematika, maka Anda harus mengambil lebih banyak kursus CS dalam algoritma dan kompleksitas yang memberi Anda pikiran yang lebih "algoritmik". Jika Anda seorang mahasiswa S1 CS atau Teknik, maka selalu ide yang baik untuk mempelajari beberapa kursus Matematika dasar di:

  • Kombinatorik
  • Probabilitas dan Statistik
  • Aljabar Linier Lanjutan
  • Aljabar Abstrak
  • Analisis

Memang benar bahwa Anda tidak akan pernah bisa belajar cukup banyak Matematika, dan Anda harus belajar mengambil Matematika / metode / teknik baru dengan cepat kapan pun diperlukan. Tapi latar belakang yang kuat pasti akan memberi Anda awal yang lebih mudah ke TCS.

Saya berharap yang terbaik dari keberuntungan dan kesuksesan!

Dai Le
sumber
6
+1: jawaban yang bagus. Saya akan menambahkan bahwa mengambil / mengaudit kursus non-teoritis CS atau non-CS juga merupakan hal yang baik, itu membuka pikiran Anda untuk kemungkinan masalah untuk dikerjakan, Anda tidak pernah tahu di mana pertanyaan teori yang bagus muncul, jadi tetap buka mata Anda . :)
Kaveh
Apakah Anda merekomendasikan "Aljabar Linear Lanjutan" oleh Steve Roman untuk belajar mandiri lulusan?
Jacob
2
@ Jacob: Buku Roman tentu saja direkomendasikan oleh banyak orang. Ini benar-benar canggih dan mencakup topik-topik bagus seperti modul, cembung, geometri affine, produk tensor, dll. Tetapi intinya adalah Anda harus selalu memilih sesuatu yang sesuai dengan selera dan latar belakang Anda! Jadi memindai melalui banyak buku di perpustakaan sebelum memutuskan selalu merupakan ide yang baik (setidaknya untuk saya).
Dai Le
11

Sebagai mahasiswa baru sarjana, taruhan terbaik Anda adalah untuk menyatakan minat ini kepada profesor Anda di departemen CS, yang dapat membantu Anda (memberikan bantuan ini sebagian besar dari pekerjaan mereka!). Sebagian besar dari mereka, saya harapkan, dengan senang hati membantu seorang sarjana yang tertarik pada hal-hal yang sama seperti mereka. Paling tidak, mereka dapat memberi Anda saran bagus tentang kelas apa yang akan diambil di institusi Anda, dan saran yang disesuaikan dengan situasi Anda.

Peter Boothe
sumber
10

Banyak orang lain tampaknya memberikan berbagai saran bagus. Untuk menambah kebijaksanaan, izinkan saya mengatakan ini: Tidak ada yang namanya mengetahui terlalu banyak matematika (kecuali Anda memutuskan ingin melakukan matematika murni sebagai gantinya). Serius, ketahui analisis Anda, kombinatorik, aljabar, mungkin beberapa teori rep, alg top, dan sebagainya. Itu membuat menjadi banyak dibaca di seluruh bidang teori CS jauh lebih mudah :)

Carter Tazio Schonwald
sumber
2
saran yang sangat bagus. Saya mengatakan ini kepada semua undergrads yang datang berbicara dengan saya juga.
Suresh Venkat
7

Anda telah membuat langkah pertama yang bagus! Saya akan pboothe tentang berbicara dengan seorang profesor di departemen Anda. Jika Anda tertarik pada teori, temukan siapa pun yang mengajar kursus teori dan berbicara dengannya. Mereka mungkin memiliki beberapa masalah yang tidak memerlukan terlalu banyak latar belakang untuk memulai. Dalam pengalaman pribadi saya, ada lebih banyak masalah dalam teori grafik dan kombinatorik yang lebih mudah didekati daripada teori, tetapi masih membangun keterampilan penelitian yang sama. Jangan takut dengan departemen matematika Anda!

Mungkin juga membantu untuk mulai terlibat dalam komunitas, terutama dengan mengajukan dan menjawab pertanyaan di sini. Akan membantu jika nama pengguna Anda menjadi nama Anda sendiri sehingga kami tahu siapa Anda.

Derrick Stolee
sumber
6

Saya hampir mahasiswa pascasarjana. Jadi jawaban untuk pertanyaan Anda juga menarik bagi saya, tetapi mungkin pengalaman pribadi saya yang kecil dapat membantu.

Inilah daftar saran saya (dalam urutan acak) yang dapat Anda lakukan:

  • Pertama-tama baca sebanyak kertas / buku / catatan kuliah yang dapat Anda temukan. Namun penting juga untuk menerapkan pengetahuan Anda pada latihan dan nanti untuk membuka masalah! Beberapa tutor saya selalu berkata: Tidak hanya otot Anda perlu pelatihan terus menerus :)
  • Baca / Tanyakan / Jawab pertanyaan di situs ini (atau situs SE terkait lainnya) adalah cara yang baik untuk belajar bagaimana bekerja dengan topik penelitian dalam TCS atau matematika.
  • Saya mencoba membaca banyak blog TCS dari peneliti terkenal. Topik mencakup hasil saat ini dan sejarah.
Marc Bury
sumber
Apakah Anda memiliki tautan ke blog-blog itu?
SH7890
2

Saya pikir hal yang paling penting adalah mengeksplorasi seluas mungkin untuk mempelajari aspek TCS apa yang benar-benar menggairahkan Anda. Dalam perjalanan eksplorasi ini, Anda mungkin menemukan bahwa masalah yang paling membuat Anda penasaran adalah persimpangan TCS dengan bidang lain (egekonomi) atau aplikasi TCS (misalnya ke jaringan komputer) atau topik TCS yang juga merupakan bagian dari area lain di CS seperti teori pembelajaran komputasi atau statistik. Heck, bahkan mungkin Anda dapat mengubah jurusan Anda ke matematika atau fisika atau sesuatu yang terkait jika minat Anda membawa Anda ke arah itu.

Maksud saya adalah bahwa sebagai mahasiswa baru, Anda benar-benar memiliki kesempatan untuk menjelajah secara luas dengan tekanan lebih sedikit daripada Anda sebagai mahasiswa pascasarjana atau profesor. Dan tidak perlu khawatir jika Anda tidak berakhir dengan topik TCS "tersangka biasa".

Tentu saja itu akan ideal jika Anda masuk "dalam" di beberapa daerah, mempelajari teknik yang solid dan mempublikasikan hasil yang bagus.

Dan jika Anda akhirnya menjadi ahli di bidang baru yang panas sebelum menjadi arus utama yang mungkin akan bagus untuk karier Anda.

Mugizi Rwebangira
sumber