Το δεύτερο μέρος (ΠΡΑΞΗ) περιλαμβάνει ένα σύνολο από Δραστηριότητες τις οποίες ο αναγνώστης καλείται να εκτελέσει. Ξεκινάμε με απλές Δραστηριότητες και αυξάνουμε τη δυσκολία τους προοδευτικά ώστε να χτίσουμε σταδιακά το υπόβαθρο που απαιτείται για τις πιο σύνθετες και απαιτητικές που ακολουθούν. Σε κάθε Δραστηριότητα δίνεται μόνο η θεωρία που απαιτείται για την εκτέλεση της και προτρέπεται ο αναγνώστης να προχωρήσει μόνος του στη διαμόρφωση της λύσης. Στο σχολιασμό της Δραστηριότητας δίνεται ενδεικτική λύση και εναλλακτικές επιλογές και σχολιάζονται. Επιπλέον, ο αναγνώστης παραπέμπεται στο αντίστοιχο κεφάλαιο του Τρίτου μέρους, όπου μπορεί να βρει εκτενέστερη αναφορά στις θεωρητικές έννοιες που εισάγονται περιληπτικά ή εν μέρη για την εκτέλεση της Δραστηριότητες. Το 2ο μέρος αποτελείται από επτά (7) κεφάλαια, τα 4-10.
Το Κεφάλαιο 4, με τίτλο “Πηγαίος Κώδικας - Βασικές έννοιες”, εισάγει θεμελιώδεις έννοιες προγραμματισμού, όπως οι συναρτήσεις, οι μεταβλητές, οι τύποι δεδομένων, οι τελεστές και οι εκφράσεις. Θέτει ως στόχο την ανάπτυξη ενός απλού προγράμματος, του Add2Numbers και για την επίτευξη του παρουσιάζει την τεχνική της αυξητικής ανάπτυξης, δημιουργώντας τέσσερις διαδοχικές εκδόσεις του. Αναδεικνύει τη σημασία των βιβλιοθηκών στον προγραμματισμό και δίνει ιδιαίτερη έμφαση στη χρήση συναρτήσεων. Παρουσιάζει επίσης δύο παραδείγματα αξιοποίησης AI chatbot, ως εισαγωγή στη χρήση τεχνητής νοημοσύνης στον προγραμματισμό.
Το Κεφάλαιο 5, με τίτλο “Παίζοντας με Αριθμούς”, εισάγει, μέσα από τέσσερις Δραστηριότητες, θεμελιώδεις έννοιες προγραμματισμού που είναι απαραίτητες για την ανάπτυξη πιο σύνθετων προγραμμάτων που επεξεργάζονται αριθμούς. Για τα πρώτα στάδια της ανάπτυξης εισάγονται η γραφική αναπαράσταση διεργασίας,
και η διαδικασία της σταδιακής δημιουργίας της Λεκτικής Περιγραφής. Για την ενίσχυση της ικανότητας συγγραφής πιο σύνθετου κώδικα εισάγονται: βασικές έννοιες ελέγχου της ροής εκτέλεσης προγράμματος, πίνακες, μηχανισμός περάσματος ορισμάτων, μετατροπή και έλεγχος τύπων. Δίνεται έμφαση στην εξοικείωση με τη χρήση της τυπικής βιβλιοθήκης.
Το Κεφάλαιο 6, με τίτλο “Παίζοντας με Συμβολοσειρές”, εισάγει θεμελιώδεις έννοιες για την αποθήκευση και διαχείριση από τη Μηχανή δεδομένων κειμένου ως συμβολοσειρών. Για την σε βάθος κατανόηση αυτών, το κεφάλαιο εμβαθύνει στη δομή του υλικού του υπολογιστή, συμπεριλαμβανομένης της CPU, της μνήμης και των μονάδων εισόδου/εξόδου, για να περιγράψει πώς εκτελείται ένα πρόγραμμα. Εστιάζοντας στην μονάδα μνήμης εισάγει την έννοια του δείκτη, ο οποίος θα χρησιμοποιηθεί στη συνέχεια και για αριθμούς.
Το Κεφάλαιο 7, με τίτλο “Παίζοντας με Αριθμούς Νο 2”, δίνει έμφαση στην αφαιρετική σκέψη, τον σχεδιασμό αλγορίθμων και τη σταδιακή ανάπτυξη λογισμικού. Μέσα από 7 Δραστηριότητες εισάγει σημαντικά θέματα όπως, πέρασμα ορίσματος κατά αναφορά, πολυδιάστατους πίνακες, αναδρομικότητα, έλεγχο ορθότητας προγράμματος, μέτρηση χρόνου εκτέλεσης διεργασίας, τεχνικές βελτίωσης χρόνου εκτέλεσης. Εξοικειώνει τον αναγνώστη με τη διαδικασία ανάπτυξης πιο σύνθετων και πιο απαιτητικών εφαρμογών στις οποίες ο σχεδιασμός του αλγορίθμου ανάγεται στο πλέον σημαντικό βήμα για την ανάπτυξη αρθρωτού κώδικα. Προς την κατεύθυνση αυτή, τονίζει τη σημασία της σταδιακής ανάπτυξης του αλγορίθμου μέσα από μια επαναληπτική διαδικασία για την αντιμετώπιση της πολυπλοκότητας, και, εισάγει τις τεχνικές της τμηματοποίησης (partitioning) και της από το γενικό προς το ειδικό ανάπτυξης (top-down).
Το Κεφάλαιο 8, με τίτλο “Ταξινόμηση και Αναζήτηση”, δίνει έμφαση σε τεχνικές ανάπτυξης κώδικα καθώς και καλές πρακτικές που αργότερα θα τις συναντήσει ο αναγνώστης ως μοτίβα σχεδιασμού. Εισάγει, τη σταδιακή ανάπτυξη αλγορίθμου χρησιμοποιώντας ως μελέτη περίπτωσης τον αλγόριθμο ταξινόμησης Bubble Sort και τη δόμηση προγράμματος σε περισσότερα από ένα αρχεία πηγαίου κώδικα. Εισάγει τον αναγνώστη σε πιο σύνθετες Δραστηριότητες που απαιτούν, αφενός συνθετική αξιοποίηση των γνώσεων που ήδη αποκτήθηκαν, αφετέρου αποτελούν το κίνητρο για εισαγωγή νέων τεχνικών. Έμφαση δίνεται στη δόμηση του προγράμματος σε περισσότερα από ένα αρχεία και τη σχετική θεωρητική γνώση που απαιτείται για αυτό. Πέρασμα συμπεριφοράς σε συνάρτηση ως όρισμα, και αντιστοίχιση της σημειολογίας του πίνακα με αυτή του δείκτη, αποτελούν υλικό για πιο προχωρημένους.
Το Κεφάλαιο 9, με τίτλο “Αφαιρετικότητα στα Δεδομένα”, δίνει έμφαση στην σημασία της αφαιρετικότητας στα δεδομένα και εισάγει την κατασκευή struct της C, η οποία την υποστηρίζει και σε συνδυασμό με την typedef επιτρέπει τον ορισμό νέων τύπων. Επιπλέον, εισάγει βασικές έννοιες για την αξιοποίηση αρχείων για μόνιμη αποθήκευση πληροφορίας εφαρμογής και παρουσιάζει την απλά συνδεδεμένη λίστα και τον τρόπο αξιοποίησης της για οργάνωση πληροφορίας. Ενθαρρύνει την σταδιακή και επαναληπτική προσέγγιση στην ανάπτυξη λογισμικού, δίνοντας έμφαση στον σαφή σχεδιασμό της δομής και της λειτουργικότητας πριν από τη συγγραφή του κώδικα.
Το Κεφάλαιο 10, με τίτλο “Γενικές Δραστηριότητες και Ασκήσεις”, περιέχει επιπλέον Δραστηριότητες καθώς και ένα αριθμό ασκήσεων για παραπέρα εξάσκηση. Οι Δραστηριότητες, που σχεδιάστηκαν για να σας βοηθήσουν να αναπτύξετε επιπλέον πρακτικές δεξιότητες είναι: η κατασκευή ενός προσομοιωτή κυκλώματος λογικών πυλών (Logic Gates Circuit Simulator), τη δημιουργία ενός παιχνιδιού Towers of Hanoi, τον προγραμματισμό ενός ρομπότ που πλοηγείται σε έναν λαβύρινθο και την εξερεύνηση της σειριακής επικοινωνίας χρησιμοποιώντας το πρότυπο RS-232.