Ανακεφαλαίωση

Κύριο χαρακτηριστικό του υπολογιστή είναι η δυνατότητα του να προγραμματίζεται. Ο προγραμματισμός αποτελεί ένα μεγάλο κομμάτι της επιστήμης των υπολογιστών.
Τα πρώτα προγράμματα γράφονταν σε γλώσσα που ήταν κατανοητή από τον υπολογιστή αλλά όχι τον άνθρωπο, ονομαζόταν γλώσσα μηχανής. Στη συνέχεια τα προγράμματα γράφονταν σε συμβολική γλώσσα. Αυτή ήταν ένα επίπεδο πάνω από την γλώσσα μηχανής, χρησιμοποιούσε κάποιες λέξεις όπως ADD και SUB, εξακολουθούσε όμως να μην είναι ιδιαίτερα αποτελεσματική. Για να μετατραπούν σε γλώσσα μηχανή και να είναι κατανοητές από τον υπολογιστή χρειάζονταν την μετάφραση από έναν συμβολομεταφραστή(assembler).
Μετά περάσαμε στις γλώσσες υψηλού επιπέδου όπου αξιοποιούσαν καλύτερα την φυσική γλώσσα άρα ήταν και ποιο κατανοητές από τον άνθρωπο. Υπήρξε μεγάλη διάδοση τους, χωρίστηκαν σε δύο κατηγορίες τις γλώσσες ειδικού σκοπού (ήταν πολύ καλές σε ένα συγκεκριμένο σύνολο εφαρμογών) και τις γενικού σκοπού (κάλυπταν ένα μεγαλύτερο φάσμα εφαρμογών). Για να μετατραπούν σε γλώσσα κατανοητή από τον υπολογιστή χρησιμοποιείται είτε μεταγλωττιστής(compiler) είτε διερμηνέας(interpreter).
Λόγω της ραγδαίας ανάπτυξης της επιστήμης αυτής γεννήθηκαν μεγάλα έργα όπου για να ολοκληρωθούν έπρεπε να συντονιστεί αρκετός κόσμος. Το γεγονός αυτό δημιούργησε τα πρότυπα προγραμματισμού. Τα πιο διαδεδομένα είναι ο διαδικαστικός, ο αντικειμενοστραφής, ο λογικός, ο συναρτησιακός προγραμματισμός. Ακριβώς για τον ίδιο λόγο η διαδικασία ανάπτυξης λογισμικού αναδείχθηκε σε σχεδόν αυτόνομη επιστήμη. Τα στάδια που διακρίνονται σε αυτή την διαδικασία είναι ο καθορισμός των απαιτήσεων, η ανάλυση του προβλήματος, ο σχεδιασμός, η υλοποίηση, ο έλεγχος, η τεκμηρίωση και τέλος η συντήρηση.
Η συγγραφή κώδικα γίνεται συνήθως σε προγραμματιστικά περιβάλλοντα που εκτός από έναν κειμενογράφο προσφέρουν κάποιες ιδιαίτερα χρήσιμες λειτουργίες στους προγραμματιστές.