Czy można nauczyć się matematyki poprzez programowanie, czy powinieneś nauczyć się matematyki do programowania? [Zamknięte]

10

Nie jestem najlepszy z matematyki, nie jestem też zbyt okropny, ale niższy od średniej, zawsze myślałem o poprawie matematyki, ale szkoły i książki nie zrobiły tego, bo zbyt szybko się nudziłem. Jedyne, co mnie nie nudzi, to kodowanie i granie, więc pomyślałem, co jeśli kodowanie programu, który rozwiązuje problemy matematyczne, pomoże mi lepiej zrozumieć matematykę, większość z tych problemów to granice (rachunek różniczkowy), funkcje, rachunek różniczkowy i niektóre inne tematy (już powiedziałem, że nie jestem tak dobry) podobne do poprzedniej odnotowanej.

Moje pytanie brzmi: czy jestem w stanie uzyskać lepszą wiedzę z matematyki, jeśli wykonam jakieś specjalne kodowanie programu i jeśli to możliwe, czy fizyka jest w ten sposób możliwa? Czy też się mylę i matematyki należy się nauczyć przed programowaniem, aby poprawić kodowanie?

PS: C ++ jest preferowanym językiem.

SAFAD
źródło
5
Dla mnie to działało na odwrót. Nauczyłem się programowania komputerowego, aby pomóc mi lepiej pracować w klasach statystycznych na poziomie magisterskim. Odkryłem, że lubię programować lepiej niż statystyki i zmieniłem kierunek kariery.
jfrankcarr
Sir, nie ma Royal Road to matematyki.
Karl

Odpowiedzi:

16

Nauczysz się matematyki lub fizyki od programowania tylko wtedy, gdy faktycznie wykorzystasz programowanie do rozwiązania problemów matematycznych i fizycznych, chociaż języki funkcjonalne, takie jak Haskell, zawierają pojęcia bardzo „matematyczne”. Sugerowałbym przejście na stronę internetową taką jak Kahn Academy lub Project Euler . Rozwiąż problemy za pomocą kodu, a jednocześnie poprawisz zarówno swoje umiejętności kodowania, jak i matematyki.

Mike Cellini
źródło
5
+1 dla obu zasobów. Muszę jednak powiedzieć, że nienawidziłem rachunku różniczkowego za pierwszym razem. Nigdy też nie było tak dobrze. Od nauki Lisp ma to po prostu sens . Trochę też zabawy.
Jason Lewis,
1
Jeśli chcesz wypróbować Haskella, możesz przeczytać „Drogę Haskella do logiki, matematyki i programowania”: książka uczy Haskella, robić matematykę i przedstawia wszystkie matematyczne koncepcje po drodze. Koncentruje się jednak na logice matematycznej, teorii liczb i pewnej algebrze elementarnej. Rachunek jest wymieniony tylko na samym końcu, jeśli udało ci się przejść przez wszystko inne.
Vincent Zoonekynd
Sugerowałbym także wyspecjalizowane języki CAS, takie jak Mathematica (drogi!), Maxima lub Axiom (bezpłatny). Gdy wpadniesz na pomysł przepisywania terminów, zasad i strategii, cała matematyka zaczyna mieć sens.
SK-logic
Osobiście uważam, że Khan Academy jest bardzo pomocna w uzupełnianiu luk w mojej wiedzy matematycznej.
jonners99
@Jason Lewis - Jeśli twoim problemem jest więcej stylu nauczania niż materiału, a chcesz pełnych kursów, I kursy MIT OpenCourseware są doskonałe dla wielu zagadnień matematycznych, w tym rachunku różniczkowego i algebry liniowej. Nie jest to jednak praktyczne w przypadku przeglądu jednego konkretnego tematu. Szczególnie podobał mi się kurs algebry liniowej. Oczywiście MIT OpenCourseware jest również bardzo dobry dla niektórych zagadnień informatycznych - szczególnie dla dwóch kursów algorytmów i struktur danych. Nigdy nie było lepszego czasu na kształcenie się we własnym tempie dzięki doskonałym darmowym materiałom.
Steve314,
5

Oczywiście powinieneś uczyć się matematyki poprzez programowanie. Jeśli spróbujesz symulować obiekty fizyczne, będziesz musiał nauczyć się wszelkiego rodzaju fizyki i matematyki, i będziesz się z tego cieszyć.

Kevin Cline
źródło
4

To jest moje zdanie ...

Programowanie pomoże przetestować WIEDZĘ

Kiedy byłem w liceum i gimnazjum, programowałem kalkulatory, by wykonywały monotonną matematykę. Niektórzy twierdzili, że to oszustwo, ale zawsze twierdziłem, że nie będę w stanie pisać programów, jeśli naprawdę nie rozumiem matematyki.

Załóżmy na przykład, że chcesz utworzyć mały program do obliczania wartości C, biorąc pod uwagę A i B, w twierdzeniu Pitagorasa. Jak to robimy? Wiemy, że:

A^2 + B^2 = C^2

Aby rozwiązać C, mamy:

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

W związku z tym program może być podobny (zakładając, że odpowiednie nagłówki, to przykład z gołą kością):

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";

JEDNAK...

Gdzie i jak zdobywasz wiedzę?

W poprzednim przykładzie musieliśmy wiedzieć, jak rozwiązać C w równaniu. A^2 + B^2 = C^2.Jeśli nie umiemy wyliczyć pierwiastka kwadratowego z obu stron, aby znaleźć C, to jak moglibyśmy rozwiązać problem?

IMO sprowadza się do: programowanie absolutnie NIE NAUCZY matematyki, ale POPRAWIĄ zdobyte umiejętności.

skippr
źródło
tak, zrozumiałem twój punkt widzenia i zgadzam się z tym, na podstawie twojej odpowiedzi, nauczę się matematyki, kiedy rozwiążę problemy w programowaniu, jednak nie będę w stanie rozwiązać ich bez wiedzy, więc musiałbym szukać rozwiązania i że tego nauczy mnie matematyki ...
SAFAD,
2

Książka SICP ma bardzo piękny rozdział o matematyce. Ale sugerowałbym, abyś spróbował wziąć co najmniej algebrę liniową, dyskretną matematykę i rachunek różniczkowy, jeśli uczysz się tylko z pisania programów, twoje wykształcenie może być bardzo głębokie, ale niezbyt szerokie.

gam3
źródło
2

Myślę, że idą w parze. Solidne podstawy w technikach matematycznych otworzą opcje programowania, których inaczej byś nie miał, podczas gdy programowanie może otworzyć interesujące ścieżki nauki matematyki.

Niedawno zacząłem używać wxMaxima , ładnego graficznego interfejsu do doskonałego otwartego systemu Maxima Computer Algebra System (inaczej CAS , jak komercyjne systemy Maple lub Mathematica ).

Nie nauczy Cię niczego na temat matematyki na własną rękę, ale z pewnością sprawi, że zabawa z matematyką będzie bardziej interesująca i zabawna, co samo w sobie może zachęcić cię do nauki.

Mark Booth
źródło
2

Nie potrzebujesz dużo matematyki do „programowania”.

Potrzebujesz matematyki do „informatyki”.

Jeśli planujesz używać wcześniej istniejących rozwiązań bibliotecznych do wszystkiego, prawdopodobnie nie obchodzi Cię, jak one działają. Ale jeśli planujesz tworzyć własne algorytmy i struktury danych, musisz znać matematykę, ponieważ CS jest w dużej mierze oparte na matematyce.

użytkownik541686
źródło
1

Jeśli chcesz pracować w AI, przetwarzaniu danych, symulacji fizyki lub grafice, potrzebujesz matematyki. I odwrotnie, jeśli nie jesteś, to uważam, że nie. Jest to przypadek użycia go lub stracenia, po co uczyć się francuskiego, jeśli nie chcesz mieszkać we Francji? Istnieje wiele domen problemowych, które wymagają jedynie logiki warunkowej.

To powiedziawszy, jest naturalne skłanianie do programowania w kierunku matematyki i nic ci to nie da, ale dobrze zrozumieć.

sunwukung
źródło
1

Spójrz na Matlab . Jest to język przeznaczony do wykonywania funkcji matematycznych w kodzie.

środowisko obliczeń numerycznych i język programowania czwartej generacji ... MATLAB umożliwia manipulowanie matrycami, wykreślanie funkcji i danych, implementację algorytmów, tworzenie interfejsów użytkownika i współpracę z programami napisanymi w innych językach ...

Chociaż MATLAB jest przeznaczony głównie do obliczeń numerycznych, opcjonalny zestaw narzędzi wykorzystuje silnik symboliczny MuPAD, umożliwiając dostęp do możliwości przetwarzania symbolicznego. Dodatkowy pakiet Simulink dodaje graficzną symulację wielu domen i projektowanie oparte na modelach dla systemów dynamicznych i osadzonych ...

Tom Squires
źródło
matlab jest korzystny tylko wtedy, gdy programista ma wcześniej solidną wiedzę matematyczną i jest ograniczony do pewnej dziedziny matematyki.
wirrbel
1

Matematyka jest nauką o bardzo szerokim zakresie. Istnieją różne rodzaje matematyki, które wyraźnie nie mają ze sobą nic wspólnego (oprócz matematyki).

Teraz programowanie jest często kojarzone z matematyką, ponieważ komputery obliczają i obliczają, przede wszystkim robią to z liczbami całkowitymi lub zmiennoprzecinkowymi w dyskretnych krokach.

Istnieją dziedziny matematyki, które można studiować, programując „przybliżając” matematykę w programie. Powiedzmy, że studiujesz rachunek różniczkowy i obliczasz wartości liczbowe dla małych przedziałów, tym samym „emulując” granicę „czystej” matematyki.

Inne aspekty programowania można łatwo odwzorować na matematykę (być może nie jest to część matematyki w szkole średniej, ale wciąż jest to cenna matematyka, która nie jest częścią tradycyjnego programu nauczania). Na przykład teoria typów - lub indukcja matematyczna.

Często jedynym sposobem uzasadnienia „poprawności” fragmentu kodu jest na przykład indukcja matematyczna. Tego rodzaju rozumowanie można dostrzec zwłaszcza w językach funkcjonalnych (rekurencja itp.).

Tzn. Jest wiele sposobów uczenia się matematyki podczas programowania, ale nie wszystkie matematyki są łatwo dostępne w modelu obliczeniowym naszych komputerów i języków programowania.

wirrbel
źródło
0

Nie mogłem znaleźć wpisu na blogu, ale przypominam sobie „typ” projektanta z późnej epoki pękania bąbelków (przed „0101”), który pisał na blogu o odkryciu zamiłowania do matematyki, zostając programistą i zdając sobie sprawę, że był właściwie był w tym całkiem dobry, mimo że w szkole średniej zawsze nieszczęśliwie poniósł klęskę i założył, że po prostu nie był kimś, kto byłby dobry w matematyce, a potem utożsamił się ze sztuką.

Nie, nie ja. Byłem po prostu leniwy. Od czasu do czasu muszę ponownie nauczyć się trygonometrii, ale o to chodzi.

IMO, możesz napisać dużo porządnego kodu bez dużej wiedzy matematycznej, dopóki nie będziesz w stanie tego zrobić.

Jednak programowanie MOŻE zrobić dla każdego, kto ma uzasadnione zainteresowanie nim, ale pomoże ci zrozumieć, czy jesteś taką osobą, czy taką osobą, i zapewni ci narzędzia, których potrzebujesz, aby po prostu wypróbować różne rzeczy. i przekonaj się sam, jak daleko posuną cię twoje zainteresowania na danym kierunku studiów.

I oczywiście wszystko, co robimy, jest powiązane z matematyką, więc możesz odkryć, że nauczyłeś się więcej niż zdałeś sobie sprawę, gdy robisz takie rzeczy, jak dowiedz się, o co chodzi w tym podsumowaniu wstecznym.

Erik Reppen
źródło
0

Inną opcją jest wykorzystanie zamiłowania do programowania do napędzania chęci nauki matematyki. Prawie wszystko staje się łatwiejsze do nauczenia się, jeśli uczysz się tego z konkretnym problemem, do którego chcesz go zastosować, a matematyka nie jest wyjątkiem. Musisz tylko znaleźć problemy matematyczne, które Cię interesują, i wykorzystać je jako powód do nauki matematyki. Nauka algebry liniowej, dzięki czemu można bawić się na przykład grafiką lub prawdopodobieństwem i statystykami dotyczącymi przetwarzania obrazu / obrazów typu komputerowego.

Myślę, że twój przebieg będzie się różnił w tej dziedzinie, ponieważ różni ludzie mają różne sposoby uczenia się, ale siadanie i abstrakcyjna matematyka ze względu na naukę matematyki po prostu nigdy dla mnie nie pracowała.

Evicatos
źródło
-2

Cóż, możesz poprosić uczniów o rozwiązanie niektórych problemów z geometrią, takich jak narysowanie kwadratu, pięciokąta, sześciokąta i okręgu za pomocą Scratch. Rzuć im wyzwanie, aby opracowali rozwiązania i NIE odpowiadaj im na pytanie, w jaki sposób je kodować. Pozwól im odkrywać i testować rozwiązania. Przynajmniej możesz zadać takie rzeczy, jak suma kątów w wielokątach. Następnie mogą budować algorytmy i własne kategorie.

użytkownik126143
źródło