Σκοπος του μαθήματος ειναι ο φοιτητής/τρια να κατανοήσει τις βασικές αρχές του προγραμματισμού, των αλγοριθμικών δομών και των τεχνικών ανάπτυξης προγραμμάτων, να αποκτήσει δεξιότητες προγραμματισμού σε περιβάλλον γλώσσας υψηλού επιπέδου, να μπορεί να συνδυάζει τις διάφορες αλγοριθμικές δομές και εντολές μιας γλώσσας προγραμματισμού, να αποκτήσει την ικανότητα σύνθεσης προγραμμάτων που επιλύουν συγκεκριμένα προβλήματα όχι μόνο στο χώρο του επιστημονικού του πεδίου αλλά, γενικότερα, επιστημονικά ή άλλα προβλήματα πρακτικού ενδιαφέροντος, να μπορεί να επεξεργάζεται προγραμματιστικά μεγάλους όγκους δεδομένων, να παύσει να περιορίζεται από τις εξειδικευμένες δυνατότητες των υπαρχόντων πακέτων λογισμικού και να μπορεί να αναπτύξει λογισμικό για την επίλυση εξειδικευμένων προβλημάτων, να αποκτήσει ευρύτερη αναλυτική και συνθετική σκέψη και δεξιότητες στην επίλυση ενός προβλήματος (όχι απαραίτητα προβλήματος που απαιτεί τη σύνταξη προγράμματος) με τον τεμαχισμό του σε επιμέρους απλούστερα προβλήματα που επιτυγχάνουν ενδιάμεσους στόχους