Vì vậy, có nhiều lĩnh vực toán học có liên quan đến Khoa học CS, nhưng dành riêng cho lập trình:
Lý thuyết đồ thị : đây là một trong những lớn. Đồ thị và cây ở khắp mọi nơi. Mạng, bản đồ, đường dẫn trong trò chơi video. Ngay cả những thứ như giải một khối Rubiks cũng có thể được mô hình hóa như một thuật toán đồ thị và giải bằng A *.
Toán học rời rạc : ngoài lý thuyết đồ thị, biết khu vực này nói chung là hữu ích. Nó chứa đầy các bằng chứng bằng cảm ứng, rất hữu ích để hiểu đệ quy, rất hữu ích trong lập trình, đặc biệt là với các cấu trúc dữ liệu. Biết về các bộ, đếm, loại trừ bao gồm, logic boolean, vv có thể có ích một lần trong một thời gian.
Lý thuyết loại: không có gì đáng ngạc nhiên, biết lý thuyết loại giúp hiểu về lập trình bằng các ngôn ngữ được gõ và rộng hơn, với việc sử dụng các loại như một cách đảm bảo các thuộc tính chính xác nhất định. Biết về lý thuyết phân nhóm giúp bạn hiểu hiệp phương sai và chống đối trong các ngôn ngữ giống như Java. Biết về những thứ như đa hình tham số rõ ràng là hữu ích khi học một ngôn ngữ nặng như Haskell hoặc Purescript, nhưng các ngôn ngữ như Scala, TypeScript và Rust đang trở nên phổ biến hơn trong ngành và các loại nằm trong lõi của chúng.
Nếu bạn thực hiện điều này đến mức cực đoan, bạn sẽ có được những thứ như Coq và Agda và Idris, có thể được sử dụng để chứng minh các thuộc tính chính xác cực kỳ chính xác về các chương trình.
Lý thuyết tính toán và độ phức tạp : biết khi nào một vấn đề là không thể giải quyết được, hoặc NP-hard, là hữu ích, bởi vì bạn sẽ không lãng phí hàng giờ để làm hỏng bộ não của mình để làm điều đó nhanh chóng. Tương tự như vậy, biết một số lý thuyết đằng sau các thuật toán gần đúng, khả năng biến đổi tham số cố định hoặc thuật toán hàm mũ cơ sở thấp, có thể giúp ích khi bạn thực sự cần giải một bài toán NP-hard.
Lý thuyết tự động: nhiều vấn đề có thể được mô hình hóa với các máy trạng thái khác nhau, vì vậy việc hiểu các thuộc tính của chúng là hữu ích.