ฉันจะเริ่มต้นใน CS เชิงทฤษฎีได้อย่างไร


35

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

ฉันควรทำอะไรในตอนนี้ในฐานะนักศึกษาปริญญาตรีเพื่อมีส่วนร่วมในสาขา? ฉันจะทำอย่างไรเพื่อเตรียมพร้อมสำหรับการวิจัยในสาขานี้?


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

2
ฉันไม่ทราบวิธีการทำงาน แต่ฉันชอบที่จะเห็นสิ่งนี้เป็นวิกิชุมชน
chazisop

3
ติดธงคำถามเพื่อให้ผู้ดูแลสนใจและเราจะจัดการกับมัน
Suresh Venkat

2
@ บุคคลที่ดี: OP ไม่สามารถสร้างคำถาม CW ได้เพียงผู้ดูแลเท่านั้นที่สามารถทำได้
Kaveh

2
@ บุคคลที่ดี: ตามที่ Kaveh กล่าวถึงผู้โพสต์ดั้งเดิมจะไม่สามารถโพสต์ CW ได้อีก (และไม่มีใครสามารถแก้ไขสิทธิ์ได้) มีเพียง mods เท่านั้นที่สามารถทำได้ ไม่มีความผิดมีเจตนา
Suresh Venkat

คำตอบ:


29

ฉันขอคำตอบจากอีกด้านหนึ่ง ฉันมีนักวิจัยระดับปริญญาตรีบางคนที่ทำงานกับฉัน ประสบการณ์ได้รับการผสม: กับบางฉันได้ตีพิมพ์เอกสารและมีความคืบหน้าในการดำเนินการและกับคนอื่น ๆ เราไม่เคยออกไปเริ่มต้นใด ๆ

เป็นเรื่องดีที่คุณรู้ว่าคุณต้องการทำอะไร ในฐานะนักศึกษาระดับปริญญาตรีนี่คือสิ่งที่คุณควรเน้น:

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

ค้นหาอาจารย์เพื่อนำทางคุณและวางในเวลา! สิ่งที่ยากที่สุดที่คุณจะต้องเผชิญคือการสร้างเวลาที่เปิดกว้างในการคิดเกี่ยวกับปัญหาต่างๆในชั้นเรียนการบ้านและการสอบ แต่คุณต้องสำรองช่วงเวลาสำหรับการศึกษาค้นคว้าอิสระของคุณไม่เช่นนั้นมันจะยากมากที่จะก้าวหน้า คุณทำสิ่งนี้ได้อย่างไรสำหรับคุณ: บางทีคุณอาจหาอาจารย์มาพบกับคุณสัปดาห์ละครั้งและกำหนดเป้าหมายขั้นกลางให้คุณหรือคุณอาจตั้งเป้าหมายระยะยาว (ทำงานผ่านแบบฝึกหัด X จากข้อความ) และทำงานอย่างต่อเนื่อง ที่.


4
คำตอบที่ดี! "คุณต้องจองช่วงเวลาสำหรับการศึกษาอิสระของคุณ": สิ่งนี้จะจดจำประสบการณ์ของฉันเอง ฉันเคยเป็นนักเรียนคณิตศาสตร์ขี้เกียจแล้วในระดับปริญญาโทฉันค้นพบปัญหา TCS ที่ดี (มีศูนย์กลางอยู่ที่ฟังก์ชันบีเวอร์ที่ยุ่ง) ฉันเริ่มทำงานในเวลาว่างกับคำแนะนำโดยหนึ่งในศาสตราจารย์ของฉัน ฉันไม่เคยพบสิ่งที่น่าสนใจเกี่ยวกับปัญหา แต่ 12 ปีต่อมาฉันเขียนบทความมากกว่า 15 ฉบับกับเขา (แต่เขาไม่เคยเป็นที่ปรึกษา phd / master ของฉันเพียงผู้ให้คำปรึกษา "ภายนอก")
Sylvain Peyronnet

1
คำตอบของ Suresh นั้นยอดเยี่ยมมาก! สำหรับ OP: การสร้าง "กล้ามเนื้อ" ทางคณิตศาสตร์หมายถึงการคุ้นเคยกับภาษาและเครื่องมือทางคณิตศาสตร์ (combinatorics, ทฤษฎีกราฟ, การวิเคราะห์ ฯลฯ ) และการใช้เพื่อพิสูจน์ทฤษฎีบท! (และนี่คือส่วนที่น่าตื่นเต้นจริงๆ! :-)
Jay

19

ปัจจุบันฉันเป็นนักศึกษาระดับปริญญาเอกและไม่ใช่ผู้เชี่ยวชาญดังนั้นข้อเสนอแนะของฉันมาจากประสบการณ์ส่วนตัว (จำกัด ) ของฉันในฐานะนักศึกษาระดับบัณฑิตศึกษา

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

มีสาขาที่น่าสนใจมากมายในสาขาวิทยาศาสตร์คอมพิวเตอร์และ TCS เป็นหนึ่งในนั้น ดังนั้นจึงเป็นการดีที่สุดที่จะให้ตัวเลือกของคุณเปิดอยู่และพูดคุยกับผู้เชี่ยวชาญที่แตกต่างกัน เป็นสิ่งสำคัญมากที่จะต้องมีความเชี่ยวชาญเมื่อคุณกำลังศึกษาระดับปริญญาเอก แต่ในฐานะที่เป็นระดับปริญญาตรีฉันคิดว่าคำแนะนำของMark Bravermanนั้นมีความเกี่ยวข้องอย่างยิ่ง:

"พยายามที่จะเรียนรู้ให้ได้มากที่สุด [... ] มันยากกว่าในภายหลัง!"

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

นอกจากนี้หากคุณเรียนวิชาเอกคณิตศาสตร์หรือ CS คุณต้องวางแผนหลักสูตรที่คุณควรทำเพื่อเตรียมพื้นฐานพื้นฐานที่มั่นคง หากคุณอยู่ในระดับปริญญาตรีคณิตศาสตร์คุณควรเรียนหลักสูตร CS เพิ่มเติมในขั้นตอนวิธีและความซับซ้อนซึ่งจะทำให้คุณมี "อัลกอริทึม" มากกว่า หากคุณอยู่ในระดับปริญญาตรี CS หรือวิศวกรรมก็เป็นความคิดที่ดีที่จะเรียนรู้วิชาพื้นฐานทางคณิตศาสตร์ใน:

  • combinatorics
  • ความน่าจะเป็นและสถิติ
  • พีชคณิตเชิงเส้นขั้นสูง
  • พีชคณิตนามธรรม
  • การวิเคราะห์

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

ฉันขอให้คุณโชคดีและประสบความสำเร็จ!


6
+1: คำตอบที่ดี ฉันจะเพิ่มว่าการเรียน / การตรวจสอบหลักสูตรที่ไม่ใช่เชิงทฤษฎีหรือ CS ไม่ใช่วิชาก็เป็นสิ่งที่ดีมันเปิดใจของคุณสำหรับปัญหาที่เป็นไปได้ที่จะทำงานในคุณไม่เคยรู้ว่าคำถามทฤษฎีที่ดีปรากฏขึ้นเพื่อให้เปิดตา . :)
Kaveh

คุณอยากจะแนะนำ "Advanced Linear Algebra" โดย Steve Roman เพื่อการศึกษาด้วยตนเองหรือไม่?
จาค็อบ

2
@Jacob: หนังสือของชาวโรมันหลายคนแนะนำอย่างแน่นอน มันเป็นขั้นสูงจริงๆและครอบคลุมหัวข้อที่ดีเช่นโมดูลนูนเรขาคณิตเลียนแบบผลิตภัณฑ์เทนเซอร์ ฯลฯ แต่บรรทัดล่างคือคุณควรเลือกสิ่งที่เหมาะกับรสนิยมและพื้นหลังของคุณ! ดังนั้นการสแกนหนังสือหลายเล่มในห้องสมุดก่อนที่จะตัดสินใจจึงเป็นความคิดที่ดี (อย่างน้อยสำหรับฉัน)
Dai Le

11

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


10

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


2
คำแนะนำที่ดี ฉันบอกเรื่องนี้กับทุกคนที่อยู่ใกล้ ๆ
Suresh Venkat

7

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

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


6

ฉันเป็นนักเรียนที่เกือบสำเร็จการศึกษา ดังนั้นคำตอบสำหรับคำถามของคุณก็น่าสนใจสำหรับฉันเช่นกัน แต่บางทีประสบการณ์ส่วนตัวของฉันอาจช่วยฉันได้

นี่คือรายการของฉัน (เรียงลำดับแบบสุ่ม) ของข้อเสนอแนะสิ่งที่คุณสามารถทำได้:

  • ก่อนอื่นให้อ่านเอกสาร / หนังสือ / เอกสารประกอบการบรรยายให้มากที่สุดเท่าที่จะหาได้ แต่สิ่งสำคัญคือการใช้ความรู้ของคุณกับแบบฝึกหัดและต่อมาเพื่อเปิดปัญหา ผู้สอนของฉันบางคนพูดเสมอว่า: ไม่เพียง แต่กล้ามเนื้อของคุณต้องการการฝึกอย่างต่อเนื่อง :)
  • อ่าน / ถาม / ตอบคำถามในเว็บไซต์นี้ (หรือเว็บไซต์ SE อื่น ๆ ที่เกี่ยวข้อง) เป็นวิธีที่ดีในการเรียนรู้วิธีการทำงานกับหัวข้อการวิจัยใน TCS หรือคณิตศาสตร์
  • ฉันพยายามอ่านบล็อก TCS จำนวนมากจากนักวิจัยที่มีชื่อเสียง หัวข้อที่ครอบคลุมทั้งผลในปัจจุบันและประวัติศาสตร์

คุณจะมีลิงค์ไปยังบล็อกเหล่านั้นหรือไม่
SH7890

2

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

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

แน่นอนว่ามันจะเหมาะถ้าคุณไป "ลึก" ในบางพื้นที่เรียนรู้เทคนิคที่แข็งแกร่งและเผยแพร่ผลลัพธ์ที่ยอดเยี่ยม

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

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