Program, bilgisayara bir şeyi nasıl yapacağını söyleyen bir dizi talimattır. Herhangi bir programın temel prensibi, bilgisayarın girdiyi nasıl alacağını ve çıktıyı nasıl döndüreceğini göstermektir.
Bir program sorunları çözer. Ancak programlar fazlasıyla harfi harfine işler. Bu durum, bir cinle anlaşma yapmak gibidir. Cin (program) sana tam olarak istediğin şeyi verecektir. Ne bir eksik, ne bir fazla. Hatalar, programcının hangi girdinin alınabileceğini ve bunun hangi çıktıyla sonuçlanacağını tam olarak açıklamak yerine ne olması gerektiği konusunda varsayımlarda bulunması halinde ortaya çıkar.