Teorik CS'de nasıl başlayabilirim?


35

Ben bilgisayar bilimi okuyan bir birinci sınıf öğrenciyim ve zaten akademiye teorik kompozisyon bilimine odaklanmak istediğimi biliyorum. Bu soruya atıfta bulunulan bazı makaleleri okudum ve bu soru beni daha da ikna etti.

Şimdi bir lisans öğrencisi olarak bu alana katılmak için ne yapmalıyım ? Alanında araştırmaya hazırlanmak için ne yapabilirim?


7
Bu bir cevap olarak gönderilecek kadar önemli değil, ancak Michael Sipser'in "Hesaplama Teorisine Giriş" in bir kopyasını almayı da düşünün. Bu kitapla kendi kendine çalışma için vaktiniz olmasa bile, Wikipedia'da açıkça belirtilmemiş olan, araştırmanız gereken herhangi bir şey olması harika bir referans.
Philip White

2
İşlemin nasıl yürüdüğünü bilmiyorum, ama bunu topluluk wiki olarak görmeyi çok isterim.
chazisop

3
Moderatör dikkatine soruyu işaretleyin, biz ilgilenelim.
Suresh Venkat

2
@İyi Kişi: OP bir soru soramaz , sadece moderatörler yapabilir.
Kaveh

2
@Good Person: Kaveh'in de belirttiği gibi, orijinal posterler artık CW mesajları gönderemez (ve hiçbiri düzenleme ayrıcalıklarına sahip olamaz). Bunu sadece modlar yapabilir. hiçbir suç amaçlanmadı.
Suresh Venkat

Yanıtlar:


29

Diğer taraftan bir cevap vereyim. Birkaç lisans öğrencisi araştırmacı benimle birlikte çalıştı. Tecrübe karıştı: Bazılarında, makaleler yayınladım ve devam eden işlerim oldu ve diğerleri ile, hiçbir zaman herhangi bir işe başlamadık.

Ne yapmak istediğini bilmen harika. Bir lisans olarak odaklanmanız gereken şey:

  • Ciddi problemler üzerinde çalışmaya başladığınızda size yardımcı olacak matematiksel "kasları" oluşturmak
  • Teorik CS'nin farklı yönlerini araştırmak, alanı anlamak ve ne tür problemleri / alanları ilginç bulduğunuzu bulmak için
  • (bölgeye bağlı olarak) bazı bulmacalar çözebilir, belki bazı egzersizleri çözebilir ve bir araştırma sorusuna kadar yolunuzu açabilirsiniz.

Size rehberlik edecek bir profesör bulun ve ZAMAN AÇIN! Karşılaşacağınız en zor şey, sınıf çalışması, ödevler ve sınavların ortasındaki problemler hakkında düşünmek için açık zaman yaratmaktır. Ancak, bağımsız çalışma ve araştırmanız için zaman bloklarını ayırmanız gerekir, aksi takdirde herhangi bir ilerleme kaydetmeniz çok zor olacaktır. Bunu nasıl yapacağınız size kalmış: belki haftada bir kez sizinle buluşacak bir profesör bulabilir ve sizin için ara hedefler koyabilir veya belki de uzun süreli bir hedef belirleyebilir (bir metinden X alıştırmaları ile çalışmak) ve sürekli çalışabilirsiniz. söyledi.


4
Güzel cevap! “bağımsız çalışmanız için zaman ayırmanız gerekiyor”: bu beni kendi tecrübelerimi hatırlıyor. Eskiden tembel bir matematik öğrencisiydim, sonra ustada güzel bir TCS problemi keşfettim (meşgul kunduz işlevi etrafında toplandı). Profosörümden birinin rehberliğinde boş zamanımda çalışmaya başladım. Sorun hakkında hiçbir zaman ilginç bir şey bulamadım, ancak 12 yıl sonra kendisiyle 15'ten fazla makale yazdım (ancak hiçbir zaman doktora / yüksek lisans danışmanım olmadı, sadece bir "dış" akıl hocası).
Sylvain Peyronnet

1
Suresh'in cevabı harika! OP'ye: Matematiksel "kasları" inşa etmek, matematiğin dili ve araçlarına alışma (birleştirici, grafik teorisi, analiz vb.) Ve ayrıca teoremleri ispatlamaya alışmak demektir ! (Ve bu gerçekten heyecan verici kısım! :-)
Jay

19

Şu anda doktora öğrencisiyim ve profesör değilim, bu yüzden önerim (sınırlı) kişisel deneyimimden yüksek lisans öğrencisi olarak geliyor.

Lisans öğrencisiyken, yaz aylarında bölümümde farklı profesörlerle araştırma görevlisi olarak çalıştım. Kişisel olarak, TCS'nin gerçekten sizin için olup olmadığını anlamanın tek yolunun somut problemler üzerinde çalışmak ve en çok neyin tadını çıkarabileceğinizi görmek olduğuna inanıyorum. Sevdiğim bir profesör ve konuyu bulmak biraz zamanımı aldı. Ayrıca araştırmada "sosyal" bir yön var ve farklı meslek sahiplerinin farklı çalışma ve denetim alışkanlıkları var ve bu nedenle bu yaz araştırma işleri gelecekte bir süpervizörden en çok hangi kaliteyi istediğinizi size daha iyi bir fikir verecektir.

Bilgisayar Bilimi'nde birçok ilginç alan vardır ve TCS bunlardan sadece bir tanesidir. Bu yüzden seçeneklerinizi açık tutmak ve farklı profesyonellerle konuşmak daima en iyisidir. Doktora yaparken uzmanlaşmak çok önemlidir, ancak bir diploma olarak Mark Braverman'ın tavsiyesinin son derece alakalı olduğunu düşünüyorum :

“Mümkün olduğu kadar çok şey öğrenmeye çalışın. […] Daha sonra daha zor!”

[Mark, birçok kursa kaydolmayı denedi (sınırın çok üstünde) ve o bir lisans öğrencisiyken farklı Matematik ve Bilgisayar Bilimleri alanlarını keşfetmeye çalıştı.] Bölümünüzdeki farklı konularda ders ve seminerlere katılmaya çalışın. Üst yıllarınızdayken, ilginizle ilgili lisansüstü dersleri denetlemek için izin almalısınız.

Ayrıca, Matematik veya CS de okuyorsanız, ayrıca sağlam bir temel temeli hazırlamak için almanız gereken dersleri planlamanız gerekir. Eğer bir Math lisans öğrencisiyseniz algoritmalar ve karmaşıklık konusunda daha fazla CS dersi almalısınız, bu da size "algoritmik" bir zihin sağlar. Bir CS veya Mühendislik lisansı iseniz, o zaman bazı temel Matematik derslerini öğrenmek her zaman iyi bir fikirdir:

  • Kombinatorik
  • Olasılık ve İstatistik
  • İleri doğrusal cebir
  • Soyut Cebir
  • analiz

Asla yeterince matematik öğrenemediğiniz ve gerektiğinde hızlı bir şekilde yeni Matematik / yöntem / teknikler almayı öğrenmeniz gerektiği doğrudur. Ancak sağlam bir altyapı, TCS'ye kesinlikle daha kolay bir başlangıç ​​yapmanızı sağlayacaktır.

Size başarılar ve başarılar diliyorum!


6
+1: güzel cevap. Teorik olmayan CS veya CS olmayan dersleri almanın / denetlemenin de iyi bir şey olduğunu ekleyeceğim, sorunların üzerinde çalışılması için zihninizi açar, güzel bir teori sorusunun nerede ortaya çıkacağını asla bilemezsiniz, bu yüzden gözlerinizi açık tutun . :)
Kaveh

Bireysel çalışma için Steve Roman tarafından "Gelişmiş Doğrusal Cebir" i tavsiye eder misiniz?
Jacob

2
@ Jacob: Romanın kitabı kesinlikle birçok kişi tarafından tavsiye edilir. Gerçekten gelişmiş ve modüller, konveksite, afin geometri, tensör ürünleri, vb. Gibi güzel konuları kapsar. Fakat sonuçta her zaman zevkinize ve geçmişinize uygun bir şey seçmelisiniz! Bu yüzden, karar vermeden önce kütüphanede bir sürü kitap taramak her zaman iyi bir fikirdir (en azından benim için).
Dai Le

11

Birinci sınıf bir lisans öğrencisi olarak, bu ilgiyi CS departmanındaki profesörlere, size yardımcı olabilecek (bu yardımın işlerinin büyük bir bölümünü sağlamak!) İfade etmektir. Çoğu, beklediğim gibi, aynı şeylerle ilgilenen bir lisans öğrencisine yardımcı olmaktan mutluluk duyacaktır. En azından, kurumunuzda hangi derslerin alınacağı konusunda iyi tavsiyeler verebilir ve durumunuza göre uyarlanmış tavsiyeler verebilirler.


10

Birçok başka insan çeşitli iyi tavsiyeler veriyor gibi görünüyor. Bilgeliği eklemek için şunu söylememe izin verin: Çok fazla matematik bilmek gibi bir şey yoktur (bunun yerine saf matematik yapmak istediğinize karar vermediğiniz sürece). Cidden, analizinizi, kombinatoriklerinizi, cebirinizi, belki de bazı rep teorilerini, algı vb. CS teorisi alanlarında geniş çapta okunmayı çok daha kolaylaştırıyor :)


2
mükemmel bir tavsiye. Bunu benimle konuşmaya gelen tüm öğrencilere anlatıyorum.
Suresh Venkat

7

Harika bir ilk adım attınız! Bölümünüzdeki bir profesörle konuşmayı ikinci kez konuşacağım. Teori ile ilgileniyorsanız, teori derslerini kimin verdiğini bulun ve onlarla konuşun. Başlamak için çok fazla altyapı gerektirmeyen bazı problemleri olabilir. Benim kişisel deneyimime göre, teoriden daha teorik olana daha yaklaşılabilir olan fakat aynı araştırma becerilerini geliştiren kombinatoriklerde daha fazla sorun var. Matematik bölümünden korkma!

Ayrıca, özellikle burada soruları sorarak ve cevaplayarak, topluluğa katılmaya başlamanıza yardımcı olabilir. Kullanıcı adınızın kendi adınız olmasına yardımcı olur, böylece kim olduğunuzu biliriz.


6

Ben neredeyse mezun bir öğrenciyim. Bu nedenle, sorunuzun yanıtları da benim için ilginç, ancak belki de küçük kişisel deneyimim yardımcı olabilir.

Yapabileceklerim önerilerim (rastgele sırayla) listem:

  • Öncelikle bulabildiğiniz kadar çok makale / kitap / ders notu okuyun. Fakat bilginizi alıştırmalara ve daha sonra problemleri açmak için de uygulamak önemlidir! Öğretmenimden bazıları her zaman şöyle der: Sadece kaslarınızın sürekli eğitime ihtiyacı yoktur :)
  • Bu sitedeki (veya bazı diğer ilgili SE sitesinde) soruları Oku / Sor / Cevapla, TCS veya matematikte araştırma konularıyla nasıl çalışılacağını öğrenmenin iyi bir yoludur.
  • Tanınmış bir araştırmacıdan bir çok TCS blogu okumaya çalışıyorum. Konular hem güncel hem de tarihi sonuçları kapsar.

Bu bloglara herhangi bir bağlantınız var mı?
SH7890 30.03.20

2

Bence en önemli şey, TCS'nin hangi yönlerini sizi heyecanlandırdığını gerçekten öğrenmek için mümkün olduğunca geniş bir şekilde araştırmak. Bu keşif sırasında sizi en çok ilgilendiren sorunların TCS'nin diğer alanlarla (egeekonomi) kesişimi veya TCS'in uygulamaları (örneğin bilgisayar ağlarına) veya CS'deki diğer alanların bir parçası olan TCS konuları olduğunu görebilirsiniz. hesaplamalı veya istatistiksel öğrenme teorisi gibi. Heck, eğer ana dalınızı matematik veya fizik olarak değiştirebilir, eğer ilgileriniz sizi bu yöne götürürse ilgili bir şey bile yapabilirsiniz.

Demek istediğim şu ki, birinci sınıf öğrencisi olarak, yüksek lisans öğrencisi veya profesör olarak yaptığınızdan daha az baskıyla daha kapsamlı bir araştırma yapma şansınız var. Ve "olağan şüpheli" TCS konularına girmezseniz endişelenmeyin.

Elbette, bazı alanlarda "derin" gitmek, sağlam teknikler öğrenmek ve mükemmel sonuçlar yayınlamak ideal olacaktır.

Ve eğer ana akım olmadan önce yeni bir alanda uzmanlaşmayı başarırsanız, bu muhtemelen kariyeriniz için harika olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.