Acorn BBC (1981)

 
Ο πρώτος υπολογιστής σε σχολείο



Εικ. 1 Acorn BBC model B (συλλογή Π. Παπάζογλου)

Κατασκευαστής : Acorn Computers

Έτος κυκλοφορίας : 1981 (1982 για το Model B)

Χώρα : Μεγάλη Βρετανία

Ενδεικτική τιμή : 335 λίρες

Πωλήσεις μονάδων : περισσότερες από 1.5 εκατομμύριο

Προγραμματισμός : BBC BASIC

Μικροεπεξεργαστής : 6502 / 2MHz

Μνήμη RAM : 16 Kbyte (32 Kbyte model B)

Μέσο αποθήκευσης : Κασέτα / μαλακός δίσκος

Απεικόνιση (οθόνη) : PAL/NTSC, UHF/composite/TTL RGB

Απεικόνιση κειμένου : 80x32 (ενδεικτικά)

Απεικόνιση γραφικών : 640×256, 2 χρώματα (ενδεικτικά)

Προκάτοχος : Acorn Atom


Εικ. 2 Στο εσωτερικό του BBC Model B


Ο υπολογιστής BBC, ήταν ο πρώτος που μπήκε στα σχολεία της Μεγάλης Βρετανίας.

Περισσότεροι από 1.000.000 υπολογιστές εντάχθηκαν σε όλες τις βαθμίδες της εκπαίδευσης.

Για αυτό το λόγο, του αξίζει μια μοναδική θέση στην ιστορία των υπολογιστών.

Εικ. 3 «Σύγχρονη» αναπαράσταση χρήσης του BBC από μαθητή σχολείου (φωτο Π. Παπάζογλου)


Για πρακτικούς λόγους, αλλά και για να είναι δυνατή η δημιουργία αντίστοιχων βίντεο,
χρησιμοποιήθηκε ένας μετατροπέας από RGB σε SCART.
Έτσι, είναι δυνατή η σύνδεση του υπολογιστή ακόμα και με επίπεδη τηλεόραση,
δίνοντας μια καλή ποιότητα εικόνας.
Η εκκίνηση απαιτεί περίπου 1 δευτερόλεπτο,
αφού δεν έχει λειτουργικό σύστημα, ενώ η BASIC και ο Editor βρίσκονται μόνιμα στη μνήμη ROM.


Εικ. 4 Εμφάνιση μηνύματος στην οθόνη του υπολογιστή BBC


Εικ. 5 Εμφάνιση μηνύματος στην οθόνη του υπολογιστή BBC


Εικ. 6 Ο υπολογιστής BBC είχε εξαιρετική υποστήριξη από βιβλία,

ενώ ήταν ο μόνος με τόσο προχωρημένες δυνατότητες (π.χ. ανάγνωση αναλογικών σημάτων).

Αυτό, τον έκανε ιδανικό για τεχνικές-επιστημονικές εφαρμογές της εποχής



Επειδή ο υπολογιστής BBC είχε τότε ως στόχο την εκπαίδευση, πολλές εταιρίες (κυρίως Βρετανικές), άρχισαν να αναπτύσσουν λογισμικό που θα μπορούσε να ενταχθεί στα σχολεία. Να σημειωθεί ότι, ακόμα και όταν ο υπολογιστής υπολόγιζε απλά μια αριθμητική πράξη ή παράσταση, αυτό αποτελούσε μια πολύ εντυπωσιακή διαδικασία. Προκειμένου να ενισχυθεί η συμμετοχή των μαθητών στη χρήση των υπολογιστών αλλά και να βελτιωθεί η δημιουργική και υπολογιστική τους ικανότητα, τα προγράμματα που αναπτύσσονταν έπρεπε να είναι διαδραστικά. Έπρεπε με άλλα λόγια, να υπάρχει συμμετοχή του μαθητή, ώστε να διατηρείται και το ενδιαφέρον του. Αρχικά, δοκιμάστηκαν προγράμματα που εμφάνιζαν στην οθόνη ένα σύνολο από προσθέσεις των οποίων το αποτέλεσμα έπρεπε να πληκτρολογήσουν οι μαθητές. Πολύ γρήγορα όμως, διαπίστωναν ότι κάθε φορά που τρέχει το πρόγραμμα, οι προσθέσεις που ζητούνται είναι οι ίδιες. Από κάποια στιγμή και μετά δηλαδή, μάθαιναν απ’ έξω τα αποτελέσματα και έτσι, η διαδικασία αυτή καταντούσε βαρετή. Στη συνέχεια, τα προγράμματα αυτά βελτιώθηκαν με την παραγωγή τυχαίων αριθμών για τις αντίστοιχες αριθμητικές πράξεις. Έτσι, οι μαθητές θα έπρεπε να υπολογίζουν το άθροισμα διαφορετικών κάθε φορά αριθμών. Με αυτό τον τρόπο δεν έχαναν το ενδιαφέρον τους, ενώ έμπαιναν ενεργά στη διαδικασία των αντίστοιχων υπολογισμών. Άλλες φορές πάλι, όταν οι μαθητές έφταναν κάποιους συγκεκριμένους στόχους επίδοσης, εμφανιζόταν στην οθόνη ένα «δωράκι» που ήταν ένα ωραίο έγχρωμο γραφικό που αναπαριστούσε κάτι ευχάριστο από την πραγματική ζωή. Στη συνέχεια, θα αναπτυχθεί ένα δοκιμαστικό πρόγραμμα που θα βοηθά τους μαθητές του δημοτικού να κάνουν αριθμητικούς υπολογισμούς, όπως ακριβώς έκαναν και τότε.

Το εκπαιδευτικό αυτό πρόγραμμα, θα βοηθά τους μικρούς μαθητές να εξασκηθούν στην πρόσθεση. Ίσως να φαίνεται αστείο αυτό το πρόγραμμα, αλλά εκείνη την εποχή ήταν αρκετά εντυπωσιακό. Όταν το χρησιμοποιούσαν, αναρωτιόντουσαν πόσα πολλά πράγματα μπορούσε να κάνει ένας υπολογιστής. Αξίζει επίσης να τονιστεί ότι, τότε ήταν της μόδας τα διαγράμματα ροής. Διαγράμματα δηλαδή που περιέγραφαν τα βήματα του προγράμματος που θα υλοποιούσε τη ζητούμενη εφαρμογή. Με άλλα λόγια, το διάγραμμα ροής περιγράφει αυτό που έχουμε συνηθίσει σήμερα να ονομάζουμε αλγόριθμο. Αρχικά λοιπόν, αναπτύχθηκε το διάγραμμα ροής, διότι ο κώδικας αποτελεί την υλοποίησή του στον υπολογιστή. Το γεγονός ότι, θα τρέξει το πρόγραμμα στην BBC BASIC του 1981, το κάνει εξαιρετικά σημαντικό, αφού θα γίνει αναβίωση της ιστορίας από εκείνη την εποχή.

Εικ. 7 Το διάγραμμα ροής για το εκπαιδευτικό πρόγραμμα


Όπως φαίνεται και στο διάγραμμα ροής, η λογική του προγράμματος που θα αναπτυχθεί, περιγράφεται ως εξής:

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

(β) παράγονται οι δύο τυχαίοι αριθμοί Α,Β που θα χρησιμοποιηθούν για την πρόσθεση. Η μεταβλητή C φιλοξενεί το άθροισμα το οποίο θα πρέπει να συγκρίνουμε με την απάντηση του μαθητή

(γ) εμφανίζεται στην οθόνη η πράξη και ο μαθητής εισάγει το αποτέλεσμα που νομίζει ότι είναι το σωστό

(δ) αν εισάγει το 99, εμφανίζεται το σύνολο των σωστών και λανθασμένων απαντήσεων και το πρόγραμμα τερματίζεται

(ε) αν η απάντηση είναι σωστή, εμφανίζεται σχετικό μήνυμα και ενημερώνεται ο μετρητής των σωστών απαντήσεων

(στ) αν η απάντηση είναι λανθασμένη, εμφανίζεται σχετικό μήνυμα και ενημερώνεται ο μετρητής των λανθασμένων απαντήσεων

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

Βάσει του διαγράμματος ροής, ανέπτυξα τον ακόλουθο κώδικα σε BBC BASIC:



10 REM ADD NUMBERS - BBC COMPUTER 1981

20 REM BY PANAYOTIS PAPAZOGLOU

23 REM INIT****************************************************

25 PRINT "PATA 99 GIA EXODO"

30 SWSTES=0

40 LATHOS=0

50 SYNOLO=0

55 REM START***************************************************

60 A=RND(15)

70 B=RND(15)

80 C=A+B

88 REM PRINT RANDOM NUMBERS************************************

90 PRINT TAB(10);A

100 PRINT TAB(10);"+"

110 PRINT TAB(10);B

120 PRINT TAB(10);"----"

125 REM DIAVASE APANTHSH*************************************

130 INPUT "=" ANS

137 IF ANS=99 THEN GOTO 500

140 IF ANS=C THEN GOTO 200 ELSE GOTO 300

190 REM SWSTH APANTHSH***************************************

210 SWSTES=SWSTES+1

220 GOTO 400

290 REM LATHOS APANTHSH**************************************

300 PRINT "LATHOS!!"

310 LATHOS=LATHOS+1

400 SYNOLO=SYNOLO+1

410 PRINT "SCORE:";(SWSTES/SYNOLO)*100;"%"

420 GOTO 60

490 REM TERMATISMOS******************************************

500 PRINT "SWSTES=",SWSTES

510 PRINT "LATHOS=",LATHOS

520 END

Πριν βιαστούμε να αποδοκιμάσουμε τη χρήση του  GOTO (το «μαύρο πρόβατο» του προγραμματισμού), αυτό έγινε για να ακολουθήσουμε το πνεύμα εκείνης της εποχής, αλλά και τους περιορισμούς της γλώσσας BASIC.

Στη συνέχεια, τρέχουμε το πρόγραμμα.  (σε MODE 1 για να είναι τα γράμματα αρκετά έντονα)

Εικ. 8 Δίνουμε δύο σωστές και μια λανθασμένη απάντηση και βλέπουμε τα αποτελέσματα

Για λόγους ευκολίας, δοκιμάστηκε το παραπάνω πρόγραμμα σε έναν emulator από internet (http://www.mkw.me.uk/beebem/). Ένας emulator μπορεί να «τρέξει» το λογισμικό που υπήρχε τότε σε κασέτες ή δισκέτες, κάτι που σήμερα είναι εξαιρετικά δύσκολο να γίνει με τον παραδοσιακό τρόπο.

Είναι σημαντικό να αναφερθεί ότι, πριν εμφανιστούν πιο εύχρηστες τεχνολογίες αποθήκευσης (π.χ. δισκέτες), κάθε φορά που έσβηνε ο υπολογιστής, οποιοδήποτε πρόγραμμα και αν είχε αναπτυχθεί, χανόταν. Έτσι, έπρεπε να πληκτρολογηθεί από την αρχή, κάθε φορά που ο υπολογιστής έμπαινε σε λειτουργία. Αυτό βέβαια απαιτεί αρκετό χρόνο και μάλλον δεν θα μπορούσαμε να πείσουμε κανένα από τα σημερινά παιδιά να κάνει κάτι τέτοιο. Σκεφτείτε όμως λίγο, πόσο σημαντική θα μπορούσε να είναι μια τόσο χρονοβόρα διαδικασία. Τα παιδιά όμως τότε, καταλάβαιναν ότι για να αναπτύξεις κάτι, απαιτούσε κόπο. Έτσι, μάθαιναν να έχουν υπομονή, ενώ πληκτρολογώντας μελετούσαν όλες τις φάσεις ανάπτυξης. Επιπρόσθετα, το γεγονός ότι ανέπτυσσαν μόνο κώδικα, τους έδινε τη δυνατότητα να σκεφθούν σε περισσότερο βάθος τον τρόπο περιγραφής μίας λύσης προβλήματος. Άρα λοιπόν, ακόμα και οι πιο «πρωτόγονες» διαδικασίες, είχαν και τα θετικά τους. Αρκεί να σκεφτούμε ότι, σήμερα πολλά παιδιά διαμαρτύρονται επειδή χρειάζεται να κάνουν πολλά κλικ για να δουλέψει μια εφαρμογή, ενώ ούτε λόγος για ανάπτυξη «καθαρού» κώδικα. Ίσως και για αυτό η γενιά των παλιών φοιτητών που σχεδίαζε αρχικά τα διαγράμματα σε μιλιμετρέ χαρτί πριν μάθει να χρησιμοποιεί υπολογιστή, έμαθε τελικά περισσότερα από τους σημερινούς που απλά εισάγουν τις μετρήσεις σε ένα πίνακα και όλα τα υπόλοιπα γίνονται αυτόματα.

Πάντως, εκείνη την εποχή υπήρχαν πολλά βιβλία για την αξιοποίηση του BBC. Ο υπολογιστής αυτός όμως, είχε και άλλες δυνατότητες. Διαθέτει μετατροπέα αναλογικού σε ψηφιακό, πράγμα που επιτρέπει μέσω κατάλληλων εξωτερικών κυκλωμάτων, τη σύνδεση με αναλογικούς αισθητήρες. 

Παρά τις τόσες δυνατότητες, αυτά τα χαρακτηριστικά παρέμεναν και τότε αναξιοποίητα λόγων των περιορισμένων γνώσεων των χρηστών. Όμως, πέρα από κάθε αμφιβολία, ο BBC ήταν αυτός που θεμελίωσε τη χρήση και τον προγραμματισμό των υπολογιστών, υποστηρίζοντας ταυτόχρονα την αλληλεπίδραση με τον «έξω» κόσμο.


ΠΗΓΕΣ ΣΤΟ INTERNET

https://en.wikipedia.org/wiki/BBC_Micro

BBC emulator

6502 BBC Assembly Programming