Neden teorik bilgisayar bilimi / araştırmasına gidelim?


35

Şu anda üniversiteye [bilgisayar bilimi] başlıyorum ve burada araştırmaya başlamak için çok fırsatımız var. Bu web sitesini bulmadan önce bu yoldan gitme niyetim yoktu [AI, muhtemelen oyun geliştirme ile çalışmak istedim], ama şimdi bir seçim yapmak için [veya ihtiyacım] yapabilirim.

Beni bu "dünyaya" katılmaya ikna edebilir misin? Hangi "segmentleri" takip edebilirim? Bir bilgisayar bilimcisinin veya araştırmacının hangi konularda çalıştığı hakkında bir şey var mı?


18
Sitenin teori hakkında düşünmeniz için size zaten ilham vermesinden onur duyuyoruz! Ve doğru yere geldiniz, teorik bir bilgisayar bilimcisinin ne işe yaradığını bilmek istiyorsanız, okumaya devam edin, anlarsınız!
Ryan Williams

6
Bu topluluk wiki olmalı.
Dave Clarke

Sadece bugün katıldım ve aynı soruyu sordum ... Mühendisliğimi Elektronik mühendisliğinde yaptım, ancak kolejdeyken CS'ye yönelmeye başladıklarında ... Teoriye resmi bir giriş yapmadım, ama şimdi bu siteyi bulduğuma sevindim ... Ve @ Júlio Souza, bu soruyu sorduğunuz için teşekkür ederiz. Bunu bugünden izleyeceğim :)
Alan Turing

@supercooldave bunu topluluk wiki olarak değiştirdi.
JulioC

Epilogue: JulioC bir yazılım geliştiricisi oldu.
domotorp

Yanıtlar:


32

Sebeplerimi, bu yaklaşan Kış'ta (çok az zaman kaldı!) TCS lisansüstü programlarına başvuran bir lisans olarak ilişkilendirebilirim.

  • İşte güzellik Bu açıklayabileceğim bir şey değil (ve açıklayamayan diğer matematikçilere şahit olduk). "Sarı" gibi. Görmediyseniz, sizinle ne olduğunu bildirebileceğimden emin değilim. Ama teoriye ilgi duyduğun için, belki deneyersin galiba.
  • Evrensellik var. Kilise Turing Tezi ötesinde evrensellik . Çekirdeğindeki TCS, bilgi düzeyindeki yüksek ve düşük düzey olaylarını araştırıyor - bu bilginin "fiziği". Bilgi niteliksel olarak atomik olduğundan , bilgi teorisinin fizik hakkında söyleyecek şeyleri vardır (QM profesörüm bana özellikle bilgi teorisini sevdiğini söyledi). Bunların hepsi söyleniyor, Saf Matematik ve Mühendislik arasında bir yerlerde. Her ikisine de doğrudan katkıda bulunma ve her ikisinde de doğrudan katkıda bulunma yeteneğine ve esnekliğine sahiptir. Yine de, kendi sınırında savaşır.
  • Kapsam var. Bu önceki mermide ima edildi. Enformatik birçok farklı uygulamalara yolunu bulur - için DHD gelen şeyler herkesin başlatılması ilgilenen Kendini bulamazlar. Olarak Saf Matematik gibi finansman açlıktan. (Kendinizi her zaman fon bulmak için aç bırakmaya devam edeceksiniz.)
  • Zorluk var. Teorik Bilgisayar Bilimleri alanındaki açık problemlerin listesine bir göz atın (ve araştırmanın sonuna kadar onları anlayın). Bunlar çok zor - burada bazı nedenleri neden . TCS'yi gerçekten anlamıyoruz - kanıtlarımızın çoğu kanıtları toplamaktan kaynaklanıyor. Yapacak çok iş kaldı!

19

Nitekim teorik bilgisayar bilimi alanında araştırmaya girmeye karar verip vermemeniz bir seçim meselesidir. Ancak bu sitedeki soruları incelemek bile (muhtemelen yaptığınız gibi) umarım size genişlik duygusu verir, alanın güzelliğini kapsar. Sizi, teorisyenlerin yaptıkları çalışmaları takdir etmek için okuyabileceğiniz kaynaklara yönlendirmekle nereden başlayacağımı bile bilmiyorum, ama bu sitede, ilginizi çekebileceğini düşündüğüm bir soru var.

Soru:

Paul Erdos, Tanrı'nın her matematik teoreminin en zarif kanıtını tuttuğu “Kitap” hakkında konuştu. Bu bile bir kitaptan esinlendi (şu anda 4. baskısında olduğuna inanıyorum): Kitaptaki Kanıtlar.

Tanrı'nın algoritmalar için benzer bir kitabı olsaydı, hangi algoritmanın aday olacağını düşünüyorsunuz?

Şu anda 64 sorunun cevabı var, küçük problemler için algoritmalar, büyük problemler, bulmacalar ve derin matematik. Yaptığınız tek şey bu listeyi gözden geçirip gözünüze çarpan algoritmalar hakkında daha fazla şey okumak olsaydı, teorik bilgisayar bilim adamlarının ne yaptığı ve neden yaptığımız hakkında çok şey öğreneceğinize inanıyorum.

İyi şanslar !


16

Birçoğumuzun araştırmaya girmesinin nedeni, entelektüel olarak ödüllendirici ve eğlenceli olanın sınırlarını zorluyor olmamızdır. Araştırma yapmak da bize anlamlı ve ilginç bulduğumuz problemler üzerinde çalışmak için neredeyse eşsiz bir özgürlük sunuyor ve bizi sürekli zevkle karşılıyor.

TCS (diğer alanların aksine) bilgisayar bilimlerinin matematiksel bir çalışmasıdır. Dağıtılmış sistemlerden makine öğrenmeye kadar birçok farklı alanın teorik yönü üzerinde çalışabilirsiniz. TCS ve bilgisayar bilimlerindeki diğer alanlar arasındaki seçim, zevklerinizin ve yeteneklerinizin nerede yattığına bağlıdır. Doğal ilgi alanlarınız ve yetenekleriniz programlama veya sistem tasarımında matematiksel analizden daha fazla yatıyorsa, belki de TCS'ye girmemelisiniz. Diğer yandan, eğer becerileriniz ve ilgi alanlarınız matematiksel açıdan daha fazla yatıyorsa, TCS'yi göz önünde bulundurmalısınız.

Ayrıca, her zaman diğerlerinin üzerinde bir alan seçmeniz gerekmez. Birçok insan hem teorik hem de pratik açıdan problemler üzerinde çalışır. Bu, örneğin, ilk önce algoritmaları tasarladığımız ve analiz ettiğimiz (genellikle teori) ve sonra onları gerçek dünyada (deneysel tasarım, uygulamalar vb.) Test ettiğimiz makine öğreniminde yaygındır.

Ne yapmak istediğinizi anlamanın en iyi yolu, birçok farklı alanda ders almak ve belki yazları hem endüstriyi hem de araştırmayı denemek. Çalışmaların sonunda, muhtemelen ne yapmak istediğin konusunda iyi bir fikrin olacak.


Matematiği çok seviyorum ama programlamayı seviyorum. Belki aynı zamanda, her iki tarafla da aynı anda çalışmanın bir yolunu bulabilirim (makine AI alanındaki, doğru değil mi?). Gelecek yıl, üniversitemde AI ve Algoritma Analizi gibi bazı dersler için bana yardımcı olabilirim.
JulioC

Makine öğrenmesi (en azından benim açımdan), bir miktar çakışma olmasına rağmen AI alt alanı değildir. Kabaca konuşursak, AI normalde insanların çözdüğü sorunları çözmeye odaklanır. Makine öğrenmesi, verileri gördükçe davranışını değiştiren algoritmalar ve sistemler geliştirmeye odaklanır. Dolayısıyla, iki alan arasında açık bir şekilde örtüşme var, ancak bunlar aynı olmaktan uzak. Makine öğrenmesi, insanlara hem teori hem de programlama yapma imkanı verir, ancak bunun için CS'nin doğru olduğu tek alt alan olmadığından eminim.
Lev Reyzin

11

Programlama dili teorisi genç ve yaşlı için eğlencelidir. Gerçek dünyaya mantık uyguluyor. Gel geçit törenine katıl !!

Daha da önemlisi, benim için programlama dili teorisi aşağıdaki nedenlerden dolayı ilginçtir:

  • gerçek dünya üzerinde algılanan etki: Haskell'de ve tamamen mantıksal fikirlerden (Sistem F) kaynaklanan diğer fonksiyonel dillerdeki kapsamlı tip sistem çalışması, Java (korkunç jenerik özellikleri, kapanmalar) ve Scala (modern) gibi dillerin gelişimini önemli ölçüde etkiler. nerede-teorisi-pratik oyun alanı buluşuyor).

  • güzellik: programlama dili teorisinde kullanılan araçların çoğu mantığa dayanmaktadır. Bunların çoğu, mantıksal kanıt kuralları ile programlama dilleri için yazım kuralları arasında ve mantıkta kesilme ve programlama dilinde değerlendirme arasında yakın bir bağlantı olduğunu gösteren Curry-Howard yazışmalarından kaynaklanmaktadır. Programlama dili araştırmalarında mantık uygulamalarına dair son iki güzel örnek, doğrulamadaki ayırma mantığı ve değerlendirme sırası ve örüntü eşleme gibi programlama dili kavramlarını anlamaya odaklanan fikirlerin uygulanması üzerine yapılan kapsamlı çalışmalardır .

  • eğlenceli: programlama ve teoriyi aynı anda yapabilirsiniz, özellikle Coq gibi bir kanıt asistanı kullanarak teorilerinizi resmileştiriyor ve doğrulıyorsanız.

  • ve daha fazlası.


11

Hesaplama teorisini (“benim” teorik bilgisayar bilimi dalım) büyüleyici ve çalışmaya değer bulmamın ana nedenlerinden biri şudur: bize bazı derin (ve bazen şaşırtıcı) felsefi soruları araştırmanın bir yolunu sunar.

Hesaplama teorisinin kurucularından biri olan Alan Turing, sürecin matematiksel bir tanımını vererek, bir kağıt parçası ile donatılmış bir insan için “bir fonksiyonun hesaplanması” anlamını belirlemeye çalıştı. Son derece başarılı olduğunu düşünen tek kişi ben değilim ve Turing makineleri diğer birçok hesaplama işleminin doğru bir modeli olduğunu kanıtladı.

Artık hesaplamaları tanımlayan bir matematiksel nesne sınıfına sahip olduğumuza göre, aslında onlar hakkındaki teoremleri ispatlayabiliriz, böylece neyin hesaplanabileceğini ve nasıl hesaplanabileceğini ortaya çıkarabiliriz; hemen hemen birçok meşru fonksiyonun hesaplanamayacağı ve bir dereceye kadar hesaplanamazlık derecesine göre sınıflandırılabileceği ortaya çıktı (bazı fonksiyonlar diğerlerinden sadece “daha ​​tartışılmaz” dır).

Genellikle Juris Hartmanis ve Richard E. Stearns ile özdeşleşen diğer bazı çocuklar, bir fonksiyonun (bir problemin) hesaplanmasının zor veya kolay (hesaplanması ) için ne anlama geldiğini matematiksel olarak tanımlamaya çalıştılar . Sorunların sertliğinin tanımlanabileceği çeşitli karmaşıklık önlemleri vardır ; En yaygın olanı, onları çözmek için ne kadar zamana ihtiyacımız olduğudır. Alan Cobham ve Jack Edmonds, makul bir “verimli hesaplama” kavramını belirlemede oldukça başarılıydı.

Hesaplamalı karmaşıklık çerçevesi içinde, artık sezgisel hesaplama anlayışımızla tutarlı olan bazı sonuçları ispatlayabiliriz . En sevdiğim örnek zaman hiyerarşisi teoremidir: hesaplamamız için daha fazla zaman verilirse, daha zor problemleri çözebiliriz.

Karmaşıklık teorisinin merkezi açık problemi, P vs NP , felsefi açıdan önemli olan başka bir sorunun sadece biçimsel bir örneğidir: bir problemi çözmek, iddia edilen bir sorunun gerçekten doğru olup olmadığını kontrol etmekten daha mı zor? Bu sorunun pratik öneminden bağımsız olarak sormaya ve cevaplamaya değeceğini düşünüyorum.


+1: beğendim :) ps: birisi Scott'ın blogunda benzer görüşler dile getirdi .
Kaveh

6

Bilgisayar bilimi AI'dan veya diğer alanlardan matematiksel olarak daha iyi olmadığından sizi “ikna edemeyiz” . Yani, baskınlığının bir kanıtı olamaz! IMO, her şeyden çok bir zevk meselesi.


1
Seninle aynı fikirdeyim ama muhtemelen neden "sen" in (veya buradaki herkesin) bu alanı seçtiğini bilmek istiyor.
MS Dousti

@ Júlio Souza: Başlığında "teorik" değil "teorik" olmalıdır.
MS Dousti

Daha iyi olup olmadığını bilmek istemiyorum, ama Sadeq’in dediği gibi bu alanı neden seçtiğinizi bilmek istiyorum.
JulioC

6

Bu soruyu kesin olarak cevaplamak zor, ama burada akılda tutulması gereken birkaç şey var.

Bir bilgisayar bilimcisi olarak kariyer yaparsanız, işiniz muhtemelen yalnızca verileri yararlı ve verimli bir şekilde işlemeyi ve yapılandırmayı değil, aynı zamanda ne yaptığınızı ve neden yaptığınızı nasıl düşündüğünüzü düşünmeyi de içerecektir. hangi sınırları sınırlandırıyorsa (onu uygulamak için yeterince anlamaktan başka bir sebep yoksa). Bu özellikle, akademide olmasanız bile ÇOK araştırma ağırlıklı olan AI / NLP / IR için geçerlidir. Aslında, AI’ya girmeniz, “teorik” problemlerle ağır bir şekilde ilgileneceğinizi garanti eder ve aslında bu geçmişi olmayan bir iş bulmak zor olabilir. Bu yüzden düşüneceğiniz bir sebep olabilir.

Sadece bu değil, hayatınızın çoğunu herhangi bir CS alanında geçirmeniz de çok zor olacaktır; burada, aynı anda hiç bir şey yapmadan , bu kadar hassas ve kaprisli (ve zor değil) süreçlerle bu kadar yakın teması sürdürmek zorunda kalacaksınız. işlerin neden işe yaradığının temellerini bile dikkate almayın. Diğer bir deyişle, sana varsayalım olabilir hayatının geri kalanı için kütüphaneler birlikte tutkal, ama bu senin şey gibi gelmiyor ise, size başa sorunların temelleri ile en az bir geçer tanıdığımız var gerekecektir.

TCS araştırmasına aktif olarak katılmak, muhtemelen sadece sizin cevaplayabileceğiniz bir soru olsa da, iyi bir başlangıç ​​noktası (IMO), ilgilenmek istediğiniz sorunların bir görüntüsü ile başlamak ve oradan devam etmektir. Ayrıca, bu soruyu cevaplamak için yeterli bilgiye bile sahip olamayabilirsiniz, bu nedenle ilerlemenin daha iyi bir yolu, çıkarlarınızın sizi nereye götürdüğünü görmek olabilir.


Cevap için teşekkürler. POV'nuza tamamen katılıyorum, sadece çalıştığını, neden işe yaradığını, nasıl çalıştığını bilmeden bir şeyi üzerinde çalışıyorum ve daha iyisini yapabilseydim istediğim bir şey değil. Planlarımı AI [veya "pratik araştırma" gibi başka bir şeyle] sürdürmeye çalışabileceğimi düşünüyorum, ancak TCS'deki diğer konular hakkında bilgi edinmeye çalışacağım.
JulioC

6

Beni en çok merak uyandıran şey, bilgisayar bilimleri teorisini diğer bilim dallarına, özellikle de biyoloji ve hücre biyolojisine uygulama yeteneğidir. Eğer bu kavram sizi de etkiliyorsa, şunlara bir göz atmanızı öneririm: Jeannette Wing'in Hesaplamalı Düşünmenin önemi üzerine bir deneme ; ve Algoritmik Lensin diğer bilimsel disiplinlere uygulanması hakkında bir NSF raporu .

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.