เป็นไปได้หรือไม่ที่จะเรียนรู้คณิตศาสตร์ผ่านการเขียนโปรแกรมหรือคุณควรเรียนรู้คณิตศาสตร์เพื่อการเขียนโปรแกรม? [ปิด]


10

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

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

PS: C ++ เป็นภาษาที่ต้องการ


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



ไม่มีถนนหลวงสำหรับวิชาคณิตศาสตร์ครับ
Karl

คำตอบ:


16

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


5
+1 สำหรับทรัพยากรทั้งสอง ฉันต้องบอกว่าฉันเกลียดแคลคูลัสเป็นครั้งแรก ไม่เคยทำเช่นนั้นมาก่อน ตั้งแต่การเรียนรู้ Lisp มันก็สมเหตุสมผลแล้ว ค่อนข้างสนุกเช่นกัน
Jason Lewis

1
หากคุณต้องการลอง Haskell คุณสามารถอ่าน "The Haskell road to Logic, คณิตศาสตร์และการเขียนโปรแกรม": หนังสือเล่มนี้สอน Haskell, การทำคณิตศาสตร์และแนะนำแนวคิดทางคณิตศาสตร์ไปพร้อมกัน อย่างไรก็ตามมันมุ่งเน้นไปที่ตรรกะทางคณิตศาสตร์ทฤษฎีจำนวนและพีชคณิตเบื้องต้น แคลคูลัสจะกล่าวถึงในตอนท้ายเท่านั้นหากคุณสามารถจัดการทุกอย่างได้
Vincent Zoonekynd

ฉันยังแนะนำภาษา CAS เฉพาะเช่น Mathematica (แพง!), Maxima หรือ Axiom (ฟรี) เมื่อคุณได้รับความคิดของการเขียนคำใหม่กฎและกลยุทธ์คณิตศาสตร์ทั้งหมดจะเริ่มมีเหตุผล
SK-logic

ฉันพบว่า Khan Academy มีประโยชน์มากในการเติมช่องว่างในความรู้ทางคณิตศาสตร์ของฉัน
jonners99

@Jason Lewis - หากปัญหาของคุณคือรูปแบบการสอนมากกว่าเนื้อหาและคุณต้องการหลักสูตรเต็มหลักสูตร I MIT OpenCourseware เป็นหลักสูตรที่ยอดเยี่ยมสำหรับหัวข้อคณิตศาสตร์มากมายรวมถึงแคลคูลัสและพีชคณิตเชิงเส้น ไม่เหมาะสำหรับการทบทวนหัวข้อที่เฉพาะเจาะจงเพียงหัวข้อเดียว ฉันชอบหลักสูตรพีชคณิตเชิงเส้นเป็นพิเศษ MIT OpenCourseware นั้นดีมากสำหรับหัวข้อวิทยาศาสตร์คอมพิวเตอร์บางหลักสูตร - โดยเฉพาะอย่างยิ่งหลักสูตรอัลกอริธึมและโครงสร้างข้อมูลสองหลักสูตร ไม่เคยมีเวลาดีกว่าสำหรับการศึกษาด้วยตัวคุณเองด้วยวัสดุฟรีที่ยอดเยี่ยม
Steve314

5

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


4

นี่คือสิ่งที่ฉันต้องใช้ ...

การเขียนโปรแกรมจะช่วยทดสอบความรู้ของคุณ

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

ตัวอย่างเช่นสมมติว่าคุณต้องการสร้างโปรแกรมขนาดเล็กเพื่อคำนวณค่า C ที่กำหนด A และ B ภายในทฤษฎีบทพีทาโกรัส เราจะทำอย่างไร? เรารู้ว่า:

A^2 + B^2 = C^2

ดังนั้นเพื่อแก้ปัญหา C เรามี:

C = SQRT(A^2 + B^2)

ดังนั้นโปรแกรมอาจมีลักษณะดังนี้ (สมมติว่ามีส่วนหัวที่เหมาะสมนี่เป็นตัวอย่างกระดูกเปลือย):

cout << "Enter value for A: " 
cin << valA;
cout << "Enter value for B: "
cin << valB;

float valC = sqrt(pow(valA, 2) + pow(valB, 2))
cout << "C = " << valC << "\n";

อย่างไรก็ตาม ...

คุณได้รับความรู้จากที่ไหนและอย่างไร

ในตัวอย่างก่อนหน้านี้เราจำเป็นต้องรู้วิธีแก้ปัญหาสำหรับ C ภายในสมการA^2 + B^2 = C^2.ถ้าเราไม่รู้ว่าจะหาสแควร์รูททั้งสองข้างเพื่อหา C เราจะแก้ปัญหาได้อย่างไร

IMO มันเป็นสิ่งที่น่าจดจ่อถึง: การเขียนโปรแกรมจะไม่สอนคณิตศาสตร์คุณอย่างแน่นอน แต่มันจะปรับปรุงทักษะที่คุณได้รับ


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

2

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


2

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

ฉันเพิ่งเริ่มใช้wxMaximaซึ่งเป็นส่วนหน้าแบบกราฟิกที่ยอดเยี่ยมไปสู่ระบบโอเพ่นซอร์สMaxima Computer Algebra System (หรือที่รู้จักกันในนามCASเช่นระบบMapleหรือMathematicaเชิงพาณิชย์)

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


2

คุณไม่ต้องการคณิตศาสตร์มากนักสำหรับ "การเขียนโปรแกรม"

คุณต้องมีคณิตศาสตร์สำหรับ "วิทยาการคอมพิวเตอร์"

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


1

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

ต้องบอกว่ามีความโน้มเอียงที่เป็นธรรมชาติในการเขียนโปรแกรมทางคณิตศาสตร์และมันจะไม่ทำอะไรเลยนอกจากดีที่จะเข้าใจ


1

มีลักษณะที่MATLAB มันเป็นภาษาที่ออกแบบมาสำหรับการทำหน้าที่ทางคณิตศาสตร์ในรหัส

สภาพแวดล้อมการคำนวณเชิงตัวเลขและภาษาการเขียนโปรแกรมรุ่นที่สี่ ... MATLAB ช่วยให้การจัดการเมทริกซ์, การวางแผนฟังก์ชั่นและข้อมูล, การใช้อัลกอริทึม, การสร้างส่วนต่อประสานผู้ใช้, และการเชื่อมต่อกับโปรแกรมที่เขียนในภาษาอื่น ๆ ...

แม้ว่า MATLAB นั้นมีไว้สำหรับการคำนวณเชิงตัวเลขเป็นหลัก แต่กล่องเครื่องมือเสริมนั้นใช้เอ็นจิ้นสัญลักษณ์ MuPAD เพื่อให้สามารถเข้าถึงความสามารถในการคำนวณเชิงสัญลักษณ์ Simulink แพคเกจเพิ่มเติมเพิ่มการจำลองแบบหลายโดเมนแบบกราฟิกและการออกแบบตามแบบจำลองสำหรับระบบแบบไดนามิกและแบบฝัง ...


MATLAB จะมีประโยชน์เฉพาะเมื่อโปรแกรมเมอร์มีความรู้ทางคณิตศาสตร์ด้านเสียงมาก่อนและ จำกัด เฉพาะบางส่วนของคณิตศาสตร์
wirrbel

1

คณิตศาสตร์เป็นวิทยาศาสตร์ที่มีขอบเขตกว้างมาก มีคณิตศาสตร์หลายชนิดที่ไม่มีอะไรเหมือนกันอย่างชัดเจน(นอกเหนือจากคณิตศาสตร์)

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

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

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

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

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


0

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

ไม่ใช่ฉัน ฉันแค่ขี้เกียจ ฉันต้องเรียนรู้ตรีโกณมิติเป็นครั้งคราว แต่มันเกี่ยวกับมัน

IMO คุณสามารถเขียนโค้ดที่เหมาะสมจำนวนมากโดยไม่ต้องมีความรู้ด้านคณิตศาสตร์อย่างหนักจนกว่าคุณจะทำไม่ได้

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

และแน่นอนว่าทุกสิ่งที่เรากำลังทำอยู่นั้นเชื่อมโยงกับสะโพกด้วยคณิตศาสตร์ดังนั้นคุณอาจค้นพบว่าคุณได้เรียนรู้มากกว่าที่คุณรู้เมื่อคุณทำสิ่งต่าง ๆ เช่นเรียนรู้เกี่ยวกับสิ่งที่การสรุปแบบย้อนกลับเป็นเรื่องเกี่ยวกับ


0

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

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


-2

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

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