Programlama, bir algoritma alıp bir gösterime, yani bir programlama dilinde kodlayan, böylece bir bilgisayar tarafından yürütülebilen bir işlemdir. Birçok programlama dili ve birçok farklı bilgisayar türü mevcut olsa da, önemli ilk adım çözümün olmasıdır. Bir algoritma olmadan herhangi bir program olamaz. Bilgisayar bilimi programlama çalışması değildir. Bununla birlikte, programlama, bir bilgisayar bilimcisinin ne yaptığı önemli bir bölümdür.
Programlama genellikle bizim çözümlerimiz için bir gösterim yaratmamızdır. Dolayısıyla, bu dil temsili ve onu oluşturma süreci disiplinin temel bir parçası haline gelir. Algoritmalar, sorunun örneğini temsil etmek için ihtiyaç duyulan veriler ve amaçlanan sonucu üretmek için gerekli adımlar dizisi ile bir sorunun çözümünü tanımlar. Programlama dilleri hem işlemi hem de veriyi temsil etmek için notasyonel bir yol sağlamalıdır. Bu amaçla, diller kontrol yapıları ve veri türleri sağlar. Kontrol yapıları, algoritmik adımların uygun fakat kesin bir şekilde temsil edilmesine izin verir.
En azından, algoritmalar, sıralı işleme, karar verme için seçim ve tekrarlayan kontrol için iterasyon gerçekleştiren yapılar gerektirir. Dil bu temel ifadeleri sağladığı sürece, algoritma gösterimi için kullanılabilir. Bilgisayardaki tüm veri öğeleri, ikili basamaklı dizeler olarak gösterilir. Bu dizeleri anlamlandırmak için, veri türlerine sahip olmamız gerekir. Veri türleri, bu ikili veriler için bir yorumlama sağlar; böylece, çözülmekte olan soruna göre anlamlı olan terimlerle ilgili verileri düşünebiliriz. Bu düşük seviye, dahili veri türleri (bazen ilkel veri türleri olarak adlandırılır) algoritma geliştirme için temel taşları sağlar.
Örneğin, çoğu programlama dili tamsayılar için bir veri türü sağlar. Bilgisayarın belleğindeki ikili basamaklar, tamsayılar olarak yorumlanabilir ve tamsayılarla ilişkilendirdiğimiz tipik anlamlar (örneğin 23, 654 ve -19) göz önüne alındığında, bu terimler tamsayılar olarak yorumlanabilir. Buna ek olarak, bir veri türü de veri öğelerinin katılabilir operasyonların bir açıklaması sağlar. Tamsayılarla, toplama, çıkarma ve çarpma gibi işlemler yaygın.
Sayısal veri türlerinin bu aritmetik işlemlere katılmasını beklemeye başladık. Sık sık ortaya çıkan zorluk, sorunların ve çözümlerinin çok karmaşık olmasıdır. Bu basit, dil tarafından sağlanan yapılar ve veri türleri, karmaşık çözümleri temsil etmek için kesinlikle yeterli olmasına rağmen, problem çözme sürecinde çalıştıkça tipik olarak dezavantajlıdır. Bu karmaşıklığı kontrol etme ve çözüm üretme yollarına ihtiyacımız var.

EmoticonEmoticon