ทำไมต้องไปที่วิทยาการคอมพิวเตอร์เชิงทฤษฎี / การวิจัย?


35

ขณะนี้ฉันกำลังเริ่มต้นในมหาวิทยาลัย [วิทยาการคอมพิวเตอร์] และที่นั่นเรามีโอกาสมากมายที่จะเริ่มต้นด้วยการค้นคว้า ก่อนที่จะค้นพบเว็บไซต์นี้ฉันไม่ได้ตั้งใจจะทำแบบนี้ [ฉันต้องการทำงานกับ AI อาจเป็นเกม dev] แต่ตอนนี้ฉันสามารถ [หรือต้องการ] เพื่อเลือก

คุณช่วยโน้มน้าวให้ฉันเข้าร่วมใน "โลก" นี้หรือไม่? ฉันสามารถติดตาม "กลุ่ม" อะไรได้บ้าง มีหัวข้อเกี่ยวกับประเภทใดบ้างที่นักวิทยาศาสตร์คอมพิวเตอร์หรือนักวิจัยทำงาน


18
เรารู้สึกเป็นเกียรติที่เว็บไซต์ได้เป็นแรงบันดาลใจให้คุณคิดถึงทฤษฎี! และคุณมาถูกที่แล้วถ้าคุณอยากรู้ว่านักวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีทำงานอะไร ... แค่อ่านต่อไปคุณก็จะพบ!
Ryan Williams

6
นี่ควรเป็นวิกิชุมชน
Dave Clarke

เพิ่งเข้าร่วมในวันนี้และมีคำถามเดียวกัน ... ฉันทำวิศวกรรมของฉันในวิศวกรรมอิเล็กทรอนิกส์ แต่ในขณะที่วิทยาลัยเริ่มรู้สึกเอนเอียงไปที่ CS ... ไม่เคยมีการแนะนำอย่างเป็นทางการเกี่ยวกับทฤษฎี แต่ตอนนี้ฉันดีใจที่ฉันพบเว็บไซต์นี้ ... และ @ Júlio Souza ขอบคุณที่ถามคำถามนี้ ฉันกำลังจะไปตรวจสอบเรื่องนี้ตั้งแต่วันนี้ :)
อลันทัวริง

@supercooldave เปลี่ยนเป็น community wiki
JulioC

บทส่งท้าย: JulioC กลายเป็นผู้พัฒนาซอฟต์แวร์
domotorp

คำตอบ:


32

ฉันสามารถอธิบายเหตุผลของฉันในฐานะนักศึกษาปริญญาตรีที่สมัครเข้าเรียนหลักสูตรระดับบัณฑิตศึกษาของ TCS ในฤดูหนาวที่กำลังจะมาถึงนี้ (เหลือเวลาอีกเล็กน้อย!)

  • มีความสวยงาม นี่ไม่ใช่สิ่งที่ฉันสามารถอธิบายได้ (และได้เห็นนักคณิตศาสตร์คนอื่นไม่สามารถอธิบายได้) มันเหมือน "สีเหลือง" หากคุณไม่ได้เห็นฉันไม่แน่ใจว่าฉันจะสามารถสื่อสารกับคุณว่ามันคืออะไร แต่เนื่องจากคุณมีความสนใจในทฤษฎีฉันคิดว่าบางทีคุณอาจมีประสบการณ์
  • มีความเป็นสากล สากลเกินวิทยานิพนธ์โบสถ์ทัวริง TCS ที่เป็นแกนหลักจะทำการตรวจสอบข้อมูลระดับสูงและปรากฏการณ์ระดับต่ำซึ่งเป็นข้อมูล "ฟิสิกส์" ของข้อมูล และเนื่องจากข้อมูลเป็นอะตอมในเชิงคุณภาพทฤษฎีข้อมูลจึงมีสิ่งที่จะพูดเกี่ยวกับฟิสิกส์ (อาจารย์ QM ของฉันได้บอกฉันโดยเฉพาะว่าเขารักทฤษฎีข้อมูล) ทั้งหมดนี้ถูกกล่าวว่ามันอยู่ที่ไหนสักแห่งระหว่างคณิตศาสตร์และวิศวกรรมบริสุทธิ์ มันมีความสามารถและความยืดหยุ่นในการสนับสนุนโดยตรงกับทั้งสองและมีส่วนร่วมโดยตรงจากทั้งสอง ถึงกระนั้นก็ยังต่อสู้กับชายแดนของตัวเอง
  • มีขอบเขต นี่เป็นนัยในกระสุนนัดก่อนหน้า สารสนเทศหาทางในการใช้งานที่แตกต่างกัน - สิ่งที่ทุกคนจาก DHD เพื่อที่เพิ่งเริ่มต้นมีความสนใจในคุณจะไม่พบว่าตัวเอง. เป็นที่หิวโหยสำหรับการระดมทุนเช่นคณิตศาสตร์บริสุทธิ์ (คุณยังจะพบว่าตัวเองหิวโหยสำหรับการระดมทุน)
  • มีความท้าทาย ดูรายการปัญหาที่เปิดกว้างในวิทยาการคอมพิวเตอร์เชิงทฤษฎี (และติดตามความเข้าใจของปัญหาเหล่านั้นจนจบการสอบสวน) พวกเขาจะยากมาก - ที่นี่มีบาง เหตุผล ว่าทำไม เราไม่เข้าใจ TCS จริงๆ - หลักฐานส่วนใหญ่ของเราต้มลงไปที่หลักฐานการติดตั้ง เหลืองานอีกมากให้ทำ!

19

อันที่จริงไม่ว่าคุณจะตัดสินใจทำการวิจัยในสาขาวิทยาการคอมพิวเตอร์เชิงทฤษฎีก็ตาม แต่ถึงแม้จะอ่านคำถามในเว็บไซต์นี้ (อย่างที่คุณอาจจะทำ) หวังว่าจะให้ความรู้สึกกว้างและขอบเขตความงามของสนาม ฉันไม่รู้ด้วยซ้ำว่าจะเริ่มต้นชี้คุณที่แหล่งข้อมูลที่คุณสามารถอ่านเพื่อชื่นชมประเภทของงานที่นักทฤษฎีทำ แต่มีคำถามหนึ่งคำถามในเว็บไซต์นี้ที่ฉันคิดว่าคุณอาจสนใจ

คำถามคือ:

Paul Erdos พูดคุยเกี่ยวกับ "หนังสือ" ที่ซึ่งพระเจ้าเก็บหลักฐานอันงดงามที่สุดของทฤษฎีบทคณิตศาสตร์แต่ละอันไว้ สิ่งนี้เป็นแรงบันดาลใจให้กับหนังสือเล่มหนึ่ง (ซึ่งฉันเชื่อว่าตอนนี้อยู่ในรุ่นที่ 4): หลักฐานจากหนังสือ

ถ้าพระเจ้ามีหนังสือที่คล้ายกันสำหรับอัลกอริทึมคุณคิดว่าอัลกอริทึมใดที่จะเป็นผู้สมัคร?

ขณะนี้มี 64 คำตอบสำหรับคำถามนี้ครอบคลุมอัลกอริทึมสำหรับปัญหาเล็ก ๆ ปัญหาใหญ่ปริศนาและคณิตศาสตร์เชิงลึก ฉันเชื่ออย่างยิ่งว่าหากทุกสิ่งที่คุณทำผ่านรายการนี้และอ่านเพิ่มเติมเกี่ยวกับอัลกอริธึมที่ดึงดูดสายตาของคุณคุณจะได้เรียนรู้มากมายเกี่ยวกับสิ่งที่นักวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีทำและทำไมเราถึงทำ

โชคดี !


16

เหตุผลที่พวกเราหลายคนเข้าสู่การวิจัยก็เพราะเราพบว่าการผลักดันขอบเขตของสิ่งที่เป็นที่รู้จักทั้งการให้รางวัลทางสติปัญญาและความสนุกสนาน การทำวิจัยยังช่วยให้เรามีอิสระที่หาตัวจับยากในการทำงานกับปัญหาที่เราพบว่ามีความหมายและน่าสนใจและทำให้เรามีความท้าทายอยู่ตลอดเวลา

TCS (ตรงข้ามกับสาขาอื่น) เป็นการศึกษาทางคณิตศาสตร์ของวิทยาการคอมพิวเตอร์ คุณสามารถทำงานในด้านทฤษฎีของสาขาที่แตกต่างกันมากมายจากระบบกระจายไปสู่การเรียนรู้ของเครื่อง ทางเลือกระหว่าง TCS และสาขาอื่น ๆ ในสาขาวิทยาศาสตร์คอมพิวเตอร์ขึ้นอยู่กับรสนิยมและความสามารถของคุณ หากความสนใจและความสามารถตามธรรมชาติของคุณอยู่ในการเขียนโปรแกรมหรือการออกแบบระบบมากกว่าในการวิเคราะห์ทางคณิตศาสตร์บางทีคุณไม่ควรเข้าสู่ TCS ในทางตรงกันข้ามหากทักษะและความสนใจของคุณอยู่ในด้านคณิตศาสตร์มากขึ้นคุณควรพิจารณา TCS

นอกจากนี้คุณไม่จำเป็นต้องเลือกพื้นที่ใดพื้นที่หนึ่งเหนือพื้นที่อื่นทั้งหมด หลายคนทำงานกับปัญหาจากทั้งภาคทฤษฎีและภาคปฏิบัติ สิ่งนี้เป็นเรื่องปกติตัวอย่างเช่นในการเรียนรู้ของเครื่องซึ่งเราออกแบบและวิเคราะห์อัลกอริทึม (มักเป็นทฤษฎี) แล้วทดสอบในโลกแห่งความเป็นจริง (การออกแบบการทดลองการใช้งานและอื่น ๆ )

วิธีที่ดีในการค้นหาว่าคุณต้องการทำอะไรคือเข้าเรียนในสาขาวิชาต่าง ๆ และอาจลองทั้งภาคอุตสาหกรรมและการวิจัยในช่วงฤดูร้อนของคุณ ในตอนท้ายของการศึกษาของคุณคุณอาจจะมีความคิดที่ดีเกี่ยวกับสิ่งที่คุณต้องการจะทำ


ฉันชอบวิชาคณิตศาสตร์ แต่ฉันชอบการเขียนโปรแกรม บางทีฉันอาจหาวิธีทำงานร่วมกับ "ทั้งสองฝ่าย" ในเวลาเดียวกันเช่นการเรียนรู้ด้วยเครื่อง [ซึ่งอยู่ในพื้นที่ AI ใช่ไหม?] ในปีหน้าฉันจะสมัครเข้าเรียนในมหาวิทยาลัยของฉันเช่น AI และ Algorithm Analysis ที่สามารถช่วยฉันได้
JulioC

การเรียนรู้ของเครื่อง (อย่างน้อยจากมุมมองของฉัน) ไม่ใช่พื้นที่ย่อยของ AI แม้ว่าจะมีการทับซ้อนบ้าง AI พูดอย่างคร่าวๆโดยมุ่งเน้นที่การแก้ปัญหาที่มนุษย์ปกติแก้ไข การเรียนรู้ของเครื่องมุ่งเน้นไปที่การพัฒนาอัลกอริธึมและระบบที่เปลี่ยนพฤติกรรมเมื่อเห็นข้อมูล ดังนั้นจึงมีการทับซ้อนกันอย่างชัดเจนระหว่างสองฟิลด์ แต่มันอยู่ไกลจากที่เดียวกัน การเรียนรู้ด้วยเครื่องช่วยให้ผู้คนมีโอกาสทำทั้งทฤษฎีและการเขียนโปรแกรมได้อย่างชัดเจน แต่ฉันแน่ใจว่าไม่ใช่สาขาย่อยของ CS ที่เป็นจริง
เลฟ Reyzin

11

ทฤษฎีการเขียนโปรแกรมภาษาสนุกสำหรับเด็กและผู้ใหญ่ มันใช้ตรรกะกับโลกแห่งความจริง มาร่วมขบวนพาเหรด !!

สำหรับฉันอย่างจริงจังทฤษฎีภาษาการเขียนโปรแกรมเป็นที่น่าสนใจด้วยเหตุผลดังต่อไปนี้:

  • การรับรู้ถึงผลกระทบต่อโลกแห่งความจริง: การทำงานของระบบที่กว้างขวางใน Haskell และภาษาที่ใช้งานได้อื่น ๆ ซึ่งมีต้นกำเนิดมาจากความคิดเชิงตรรกะ (System F) ล้วนมีผลต่อการพัฒนาภาษาเช่น Java วันที่สนามเด็กเล่นฝึกทฤษฎี)

  • ความงาม: เครื่องมือหลายอย่างที่ใช้ในทฤษฎีภาษาโปรแกรมตั้งอยู่บนพื้นฐานของตรรกะ ส่วนใหญ่เกิดจากการติดต่อกันของ Curry-Howard ซึ่งแสดงให้เห็นถึงการเชื่อมโยงอย่างใกล้ชิดระหว่างกฎการพิสูจน์เชิงตรรกะและกฎการพิมพ์สำหรับภาษาการเขียนโปรแกรมและระหว่างการตัดการตัดออกในตรรกะและการประเมินผลในภาษาโปรแกรม สองตัวอย่างสวยงามที่ผ่านมาของการใช้งานของตรรกะในการเขียนโปรแกรมภาษาการวิจัยคือการทำงานอย่างกว้างขวางในตรรกะแยกในการตรวจสอบและการประยุกต์ใช้ความคิดของการพิสูจน์เน้นแนวคิดการเขียนโปรแกรมภาษาเข้าใจเช่นเพื่อประเมินผลและการจับคู่รูปแบบ

  • สนุก: คุณสามารถทำการเขียนโปรแกรมและทฤษฎีได้ในเวลาเดียวกันโดยเฉพาะอย่างยิ่งถ้าคุณทำแบบฟอร์มและตรวจสอบทฤษฎีของคุณโดยใช้ผู้ช่วยพิสูจน์เช่น Coq

  • และอื่น ๆ อีกมากมาย.


11

หนึ่งในเหตุผลหลักที่ว่าทำไมฉันถึงพบทฤษฎีการคำนวณ (“ ของฉัน” สาขาวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี) ที่น่าสนใจและมีค่าการเรียนคือสิ่งต่อไปนี้: มันทำให้เรามีวิธีในการตรวจสอบคำถามเชิงปรัชญาที่ลึกซึ้ง (และบางครั้งทำให้งง)

อลันทัวริงหนึ่งในผู้ก่อตั้งทฤษฎีการคำนวณพยายามที่จะปักหลักความหมายของ "การคำนวณฟังก์ชั่น" สำหรับมนุษย์ที่ติดตั้งแผ่นกระดาษโดยให้คำอธิบายทางคณิตศาสตร์ของกระบวนการ ฉันไม่ใช่คนเดียวที่คิดว่าเขาประสบความสำเร็จอย่างมากและเครื่องทัวริงพิสูจน์ให้เห็นว่าเป็นแบบจำลองที่แม่นยำของกระบวนการคำนวณอื่น ๆ

ตอนนี้เรามีคลาสของวัตถุทางคณิตศาสตร์ที่อธิบายการคำนวณเราสามารถพิสูจน์ทฤษฎีบทเกี่ยวกับสิ่งเหล่านั้นได้ดังนั้นจึงพยายามเปิดเผยสิ่งที่สามารถคำนวณได้และวิธีการคำนวณ ปรากฏว่าในทันทีนั้นฟังก์ชั่นที่สมบูรณ์แบบถูกกฎหมายจำนวนมากไม่สามารถคำนวณได้เลยและพวกมันสามารถจำแนกตามระดับความไม่สามารถคำนวณได้ (ฟังก์ชั่นบางฟังก์ชั่นเป็น

คนอื่น ๆ บางคนคนแรกที่มักระบุกับ Juris Hartmanis และ Richard E. Stearns พยายามที่จะอธิบายทางคณิตศาสตร์ว่ามันหมายถึงอะไรสำหรับฟังก์ชั่น (resp. ปัญหา) ที่จะยากหรือง่ายต่อการคำนวณ (resp. เพื่อแก้ไข) มีมาตรการความซับซ้อนหลายประการซึ่งสามารถอธิบายความแข็งของปัญหาได้ สิ่งที่พบบ่อยที่สุดคือเวลาที่เราต้องแก้ปัญหา Alan Cobham และ Jack Edmonds ค่อนข้างประสบความสำเร็จในการระบุแนวคิดที่เหมาะสมของ "การคำนวณที่มีประสิทธิภาพ"

ภายในกรอบความซับซ้อนของการคำนวณตอนนี้เราสามารถพิสูจน์ผลลัพธ์บางอย่างที่สอดคล้องกับแนวคิดการคำนวณที่ใช้งานง่ายของเรา ตัวอย่างที่ฉันชอบคือทฤษฎีบทลำดับชั้นเวลา: หากเรามีเวลามากขึ้นในการคำนวณเราสามารถแก้ปัญหาที่ยากขึ้นได้

ปัญหาเปิดกลางของทฤษฎีความซับซ้อน, P vs NPเป็นเพียงการทำให้เป็นรูปธรรมของคำถามที่มีความสำคัญทางปรัชญาอีกข้อหนึ่ง: มันยากกว่าการแก้ปัญหามากกว่าการตรวจสอบว่าวิธีแก้ปัญหาที่ถูกกล่าวหาจริงหรือไม่? ฉันเชื่อว่าคำถามนี้คุ้มค่าที่จะถามและตอบโดยอิสระจากความสำคัญในทางปฏิบัติ


1: ชอบ :) PS: ใครบางคนแสดงความคิดเห็นที่คล้ายกันในบล็อกของสกอตต์
Kaveh

6

เราไม่สามารถ "โน้มน้าว" คุณได้เนื่องจากวิทยาศาสตร์คอมพิวเตอร์ไม่ได้ดีไปกว่าวิชาคณิตศาสตร์หรือวิชาอื่น ๆ ดังนั้นเราไม่สามารถพิสูจน์การปกครองของมันได้! IMO มันเป็นเรื่องของรสนิยมมากกว่าสิ่งอื่นใด


1
ฉันเห็นด้วยกับคุณ แต่เขาอาจต้องการทราบว่าทำไม "คุณ" (หรือคนอื่น ๆ ที่นี่) จึงเลือกสาขานี้
MS Dousti

@ Júlio Souza: ในชื่อเรื่องมันควรจะเป็น "เชิงทฤษฎี" ไม่ใช่ "เชิงทฤษฎี"
MS Dousti

ฉันไม่ต้องการรู้ว่ามันจะดีกว่า แต่ฉันต้องการทราบว่าทำไมคุณเลือกสาขานี้ตามที่ Sadeq กล่าว
JulioC

6

เป็นการยากที่จะตอบคำถามนี้ด้วยความมั่นใจ แต่มีบางสิ่งที่ต้องจำไว้ที่นี่

หากคุณประกอบอาชีพในฐานะนักวิทยาศาสตร์คอมพิวเตอร์งานของคุณอาจเกี่ยวข้องกับการประมวลผลและการจัดโครงสร้างข้อมูลในแบบที่ทำให้มีประโยชน์และมีประสิทธิภาพในการใช้งาน แต่ยังคิดเกี่ยวกับวิธีการและเหตุผลที่คุณทำงานเช่นเดียวกับใน ขอบเขตใดที่ทำงาน (หากไม่มีเหตุผลอื่นนอกจากทำความเข้าใจให้เพียงพอที่จะใช้งาน) นี่เป็นกรณีพิเศษสำหรับ AI / NLP / IR ซึ่งมีการวิจัยสูงมากแม้ว่าคุณจะไม่ได้อยู่ในสถาบันการศึกษา ในความเป็นจริงการเข้าสู่ AI ค่อนข้างรับประกันได้ว่าคุณจะจัดการกับปัญหา "เชิงทฤษฎี" อย่างหนักและในความเป็นจริงมันยากที่จะหางานที่ไม่มีพื้นฐานมาก่อน นั่นอาจเป็นเหตุผลที่น่าสนใจอย่างหนึ่งที่คุณจะพิจารณา

ไม่เพียงแค่นั้น แต่มันอาจเป็นเรื่องยากมากที่จะใช้เวลาส่วนใหญ่ในชีวิตของคุณในสาขา CS ใด ๆ ซึ่งคุณจะต้องรักษาการติดต่อใกล้ชิดเช่นกระบวนการที่ละเอียดอ่อนและไม่แน่นอน (และไม่พูดถึงเรื่องยาก) ในขณะที่ไม่มีสนใจอะไรก็ตามแม้กระทั่งพื้นฐานของสิ่งที่ทำงาน ฉันคิดว่าคุณสามารถติดห้องสมุดด้วยกันตลอดชีวิตของคุณ แต่ถ้านั่นฟังดูไม่เหมือนของคุณคุณจะต้องมีความคุ้นเคยอย่างน้อยกับพื้นฐานของปัญหาที่คุณจัดการ

ในขณะที่มีส่วนร่วมอย่างแข็งขันในการวิจัย TCS เป็นคำถามที่มีเพียงคุณเท่านั้นที่สามารถตอบได้จุดเริ่มต้นที่ดี (IMO) คือการเริ่มต้นด้วยมุมมองของปัญหาที่คุณสนใจในการดูและไปจากที่นั่น คุณอาจไม่มีข้อมูลเพียงพอที่จะตอบคำถามนั้นดังนั้นวิธีที่ดีกว่าในการดำเนินการต่อคือการดูว่าสิ่งที่คุณสนใจนำคุณไปที่ใด


ขอบคุณสำหรับคำตอบ. ฉันเห็นด้วยอย่างยิ่งกับ POV ของคุณทำงานกับสิ่งที่เพิ่งทำโดยไม่รู้ว่าทำไมมันถึงทำงานได้ผลอย่างไรและถ้าฉันสามารถทำให้ดีขึ้นได้ก็ไม่ใช่สิ่งที่ฉันต้องการ ฉันคิดว่าฉันสามารถพยายามรักษาแผนไว้กับ AI [หรืออย่างอื่นซึ่งเป็นเหมือน "การวิจัยเชิงปฏิบัติ"] แต่ฉันจะพยายามเรียนรู้เกี่ยวกับหัวข้ออื่น ๆ ใน TCS ต่อไป
JulioC

6

สิ่งที่ฉันสนใจมากที่สุดคือความสามารถในการใช้ทฤษฎีวิทยาการคอมพิวเตอร์กับสาขาวิชาอื่น ๆ โดยเฉพาะอย่างยิ่งชีววิทยาและชีววิทยาของเซลล์ ถ้าความคิดนี้ชั่วช้าคุณยังผมขอแนะนำให้คุณลองดูที่ต่อไปนี้: การเขียนเรียงความโดยแนปีกเกี่ยวกับความสำคัญของการคำนวณคิด ; และรายงานของ NSF เกี่ยวกับการใช้เลนส์อัลกอริทึมกับศาสตร์อื่น ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.