Bilgisayar programlama yeterliliğini artıran matematik konuları veya alanları? [kapalı]


14

Genelde matematikçi veya matematik geçmişine sahip bilgisayar programcıları algoritma ve genel olarak bilgisayar programlama açısından çok iyidir.

Ne demiyorum:

İyi bir bilgisayar programcısı olmak için matematiğe ihtiyaç vardır. Matematik programlama için gereklidir. İyi matematikçiler iyi programcılardır ve bunun tersi de geçerlidir

Ben ne diyorum

Bazı matematik öğrenmek istiyorum çünkü bana daha iyi bir programcı olacağına inanıyorum. Matematiğin hangi alanları / konuları daha iyi bir programcı olmamda bana yardımcı olacak? Formun cevapları math topic - corresponding cs areatakdir edilecektir.

Not: Bunu konu dışı bildirildiği StackOverflow üzerinde sordum. Boş zamanlarımda bilgisayar programlama ile yaptığım gibi öğrenmek istiyorum. Şimdiden teşekkürler.


1
StackOverflow bu sorunun konu dışı ilan etti şaşırdım. (Emekli bir programcı) bakış açımdan, bu soru SO için en önemli sorulardan biri olmalıdır.
scaaahu

1
StackOverflow gerçekten daha spesifik programlama problemleri hakkında. Bu en iyi CSEducators için olurdu ve SoftwareEngineering üzerinde çalışmış olabilir.
Nat

1
Daha önce bunun gibi sorularımız vardı ve hepsinin aynı sorunu var: çok geniş ve çok öznel. Tek fikir birliği yanıtı: hepsi .
Raphael

@ Raphael İlk olarak, Mod'un kararına saygı duyuyorum. Ancak, OP adına bir soru sormak istiyorum. Sorunun tekrar açılabilmesi için geliştirilmesinin bir yolu var mı? Bunu geliştirmenin bir yolu yoksa OP'nin bu soruyu sorabilecek başka bir SE'si var mı? (Açıkçası, OP zaten
SO'yu

Spesifik sorunlara resmi çözümler isteyen sorular iyi olacaktır. Çalışma önerisi soruları genellikle SE formatı için uygun değildir; "görüşe dayalı" yakın neden tüm siteler için geçerlidir!
Raphael

Yanıtlar:


19

Bu nedenle, CS Bilimi ile ilgili birçok matematik alanı vardır, ancak özellikle programlama için:

  • Grafik teorisi : bu büyük olanı. Grafikler ve ağaçlar her yerde. Ağlar, haritalar, video oyunlarındaki yollar. Rubik küpünü çözmek gibi şeyler bile bir grafik algoritması olarak modellenebilir ve A * ile çözülebilir.

  • Ayrık matematik : grafik teorisinin yanı sıra, bu alanı genel olarak bilmek yardımcı olur. Özellikle veri yapıları ile programlamada çok yararlı olan özyinelemeyi anlamak için çok yararlı olan indüksiyon ile kanıtlarla doludur. Kümeleri bilmek, sayma, dahil etme-hariç tutma, boole mantığı, vb. Arada bir kullanışlı olabilir.

  • Tip teorisi: Şaşırtıcı olmayan bir şekilde, tip teorisini bilmek, yazılan dillerde programlamanın anlaşılmasına ve daha geniş olarak, türlerin belirli doğruluk özelliklerini sağlamanın bir yolu olarak kullanılmasına yardımcı olur. Alt tipleme teorisini bilmek Java benzeri dillerde kovaryans ve karşıtlığı anlamanıza yardımcı olur. Parametrik polimorfizm gibi şeyleri bilmek Haskell veya Purescript gibi tip-ağır bir dil öğrenirken açıkça yararlıdır, ancak Scala, TypeScript ve Rust gibi diller endüstride daha yaygın hale gelmektedir ve türler çekirdeklerinde bulunmaktadır.

    Bunu aşırıya çıkarırsanız, programlar hakkında son derece hassas doğruluk özelliklerini kanıtlamak için kullanılabilen Coq ve Agda ve Idris gibi şeyler alırsınız.

  • Hesaplanabilirlik ve Karmaşıklık Teorisi : bir sorunun çözülemez veya NP-zor olduğunu bilmek yararlıdır, çünkü beyninizi hızlı bir şekilde yapmak için saatlerce uğraşmazsınız. Benzer şekilde, yaklaşım algoritmalarının, sabit parametre izlenebilirliğinin veya düşük tabanlı üstel algoritmaların arkasındaki teorinin bazılarının bilinmesi, NP-zor bir sorunu gerçekten çözmeniz gerektiğinde yardımcı olabilir.

  • Otomata teorisi: çeşitli durum makineleri ile birçok sorun modellenebilir, bu nedenle özelliklerinin anlaşılması yararlıdır.

Ayrıca, alana özgü bazı alanlar da vardır:

  • İstatistikler: Makine öğrenimi veya büyük veri yapıyorsanız, bu bir zorunluluktur.

  • Doğrusal cebir / vektör hesaplaması: her ikisi de makine öğrenimi, grafikler, simülasyonlar veya görüntü / ses işleme için önemlidir.

  • Kafes teorisi : derleyiciler veya program optimizasyonu ile herhangi bir iş yapıyorsanız, bu her zaman ortaya çıkar. Her yerde sabit noktalar!

  • Kategori teorisi: kodlamaya gerek yoktur, ancak tip teorisine derinlemesine batırılmış herhangi bir şey için yararlıdır.

Düzenleme: unuttuğuma inanamıyorum:

  • Kriptografi : güvenlik, karma, dijital imzalar ve benzerleri ile ilgileniyorsanız, bazı sayı teorisi, Grup Teorisi, Alan teorisi, eliptik eğri Teorisi vb.
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.