Εισαγωγή στον Υπολογισμό και τον Προγραμματισμό με την Python, 3η Έκδοση
Με Εφαρμογές στην Υπολογιστική Μοντελοποίηση και την Κατανόηση Δεδομένων
Introduction to Computation and Programming Using Python, Third Edition : With Application to Computational Modeling and Understanding Data (τίτλος πρωτοτύπου)
Επιστημονική επιμέλεια: Χορταράς, Αλέξανδρος
Εξώφυλλο/εικαστικό: Θεοχάρη, Ιωάννα
Επιμέλεια κειμένου: Σίμος, Κώστας
Κυκλοφορεί
ISBN: 978-960-491-159-2
Παπασωτηρίου, Αθήνα, 7/2022
3η έκδ.
Γλώσσα: Ελληνική, Νέα
Γλώσσα πρωτοτύπου: Αγγλικά
€ 45.00 (περ. ΦΠΑ 6%)
Βιβλίο, Χαρτόδετο
17 x 24 εκ., 1,039 γρ., 616 σελ.
Περιγραφή

Βασισμένο σε ένα «massive open online course» (MOOC) του MIT, το παρόν βιβλίο εισάγει τους φοιτητές με μικρή ή καθόλου πρότερη προγραμματιστική εμπειρία στην τέχνη της επίλυσης υπολογιστικών προβλημάτων με χρήση της Python και διαφόρων βιβλιοθηκών της Python, όπως τις numpy, matplotlib, random, pandas και sklearn.
Στην παρούσα τρίτη έκδοση η βασική επεξηγηματική ύλη επεκτείνεται με επιπλέον προγραμματιστικά παραδείγματα και πολύ περισσότερες «ασκήσεις εμπέδωσης», γεγονός που την καθιστά μια σχετικά ομαλή εισαγωγή στον προγραμματισμό για τους αρχάριους. Σε ένα νέο κεφάλαιο επιδεικνύεται η χρήση του πακέτου pandas για την ανάλυση δεδομένων χρονοσειρών. Όλος ο κώδικας έχει γραφτεί εκ νέου ώστε να συμμορφώνεται με τα πρότυπα του PEP 8. Πέρα από τα παραδοσιακά θέματα, το βιβλίο πραγματεύεται επίσης ένα ευρύ φάσμα θεμάτων που δεν περιλαμβάνονται συνήθως στα εισαγωγικά βιβλία, όπως οπτική αναπαράσταση πληροφορίας, προσομοιώσεις για τη μοντελοποίηση της τυχαιότητας, υπολογιστικές τεχνικές για την κατανόηση δεδομένων, στατιστικές τεχνικές που πληροφορούν (και παραπληροφορούν) και προβλήματα βελτιστοποίησης και δυναμικός προγραμματισμός. Το βιβλίο περιλαμβάνει επίσης έναν συνοπτικό οδηγό αναφοράς της Python 3.
Ο JohnV. Guttag είναι καθηγητής επιστήμης υπολογιστών και ηλεκτρολογικής μηχανικής της έδρας Dugald C. Jackson στο MIT.

Έγραψαν για τις προηγούμενες εκδόσεις:

«Δεν υπάρχει ένα μοναδικό βιβλίο επιστήμης υπολογιστών που να καλύπτει κάθε ανάγκη. Αν όμως έπρεπε να διαλέξετε μόνο ένα, το συγκεκριμένο θα αποτελούσε εξαιρετική επιλογή».
— HalAbelson, συγγραφέας (μαζί με τον Gerald Jay Sussman) του StructureandInterpretationofComputerPrograms.

«Είναι το βιβλίο πάνω στην “υπολογιστική σκέψη” που όλοι περιμέναμε! Με χιούμορ και ιστορικά ανέκδοτα, ο John Guttag μεταφέρει την ευρύτητα και τη χαρά της επιστήμης υπολογιστών χωρίς δυσνόητες τεχνικές λεπτομέρειες».
JeannetteM. Wing, Αντιπρόεδρος της Microsoft Research και σύμβουλος καθηγήτρια επιστήμης υπολογιστών και πρώην διευθύντρια τμήματος στο Πανεπιστήμιο Carnegie Mellon.

Ο John V. Guttag είναι καθηγητής επιστήμης υπολογιστών και ηλεκτρολογικής μηχανικής της έδρας Dugald C. Jackson στο MIT.

ΠΡΟΛΟΓΟΣ xi
ΕΥΧΑΡΙΣΤΙΕΣ xv
1 ΓΕΝΙΚΗ ΕΙΣΑΓΩΓΗ 1
1.1 Όροι που παρουσιάστηκαν στο κεφάλαιο  8
2 ΕΙΣΑΓΩΓΗ ΣΤΗΝ PYTHON 9
2.1 Εγκατάσταση της Python και των ΟΠΑ της Python  11
2.2 Τα βασικά στοιχεία της Python  13
2.2.1 Αντικείμενα, εκφράσεις και αριθμητικοί τύποι  14
2.2.2 Μεταβλητές και ανάθεση 16
2.3 Διακλαδιζόμενα προγράμματα 19
2.4 Συμβολοσειρές και είσοδος  24
2.4.1 Είσοδος 28
2.4.2 Σύντομη αναφορά στην κωδικοποίηση χαρακτήρων 29
2.5 Βρόχοι while  30
2.6 Βρόχοι for και συνάρτηση range  33
2.7 Το ύφος έχει σημασία 37
2.8 Όροι που παρουσιάστηκαν στο κεφάλαιο  39
3 ΜΕΡΙΚΑ ΑΠΛΑ ΑΡΙΘΜΗΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ 41
3.1 Εξαντλητική απαρίθμηση 41
3.2 Προσεγγιστικές λύσεις και διχοτομική αναζήτηση  46
3.3 Λίγα λόγια για τη χρήση αριθμών κινητής υποδιαστολής 51
3.4 Μέθοδος Newton–Raphson 55
3.5 Όροι που παρουσιάστηκαν στο κεφάλαιο  57
4 ΣΥΝΑΡΤΗΣΕΙΣ, ΕΜΒΕΛΕΙΕΣ ΚΑΙ ΑΦΑΙΡΕΣΗ 59
4.1 Συναρτήσεις και εμβέλειες 60
4.1.1 Ορισμοί συναρτήσεων  60
4.1.2 Κλειδωνυμικά ορίσματα και προεπιλεγμένες τιμές  65
4.1.3 Μεταβλητό πλήθος ορισμάτων  66
4.1.4 Εμβέλειες 67
4.2 Προδιαγραφές  72
4.3 Χρήση συναρτήσεων για την αρθρωμάτωση του κώδικα  76
4.4 Συναρτήσεις σαν αντικείμενα  76
4.5 Μέθοδοι (υπεραπλουστευμένη παρουσίαση) 79
4.6 Όροι που παρουσιάστηκαν στο κεφάλαιο  81
5 ΔΟΜΗΜΕΝΟΙ ΤΥΠΟΙ ΚΑΙ ΜΕΤΑΛΛΑΞΙΜΟΤΗΤΑ 83
5.1 Πλειάδες 83
5.1.1 Πολλαπλή ανάθεση  85
5.2 Εύρη και επαναλήψιμα αντικείμενα 86
5.3 Λίστες και μεταλλαξιμότητα  87
5.3.1 Κλωνοποίηση 94
5.3.2 Συμπερίληψη λίστας 96
5.4 Πράξεις υψηλότερης τάξης με λίστες  98
5.5 Συμβολοσειρές, πλειάδες, εύρη και λίστες  100
5.6 Σύνολα 103
5.7 Λεξικά  105
5.8 Συμπερίληψη λεξικού  110
5.9 Όροι που παρουσιάστηκαν στο κεφάλαιο  113
6 ΑΝΑΔΡΟΜΗ ΚΑΙ ΚΑΘΟΛΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ 115
6.1 Αριθμοί Fibonacci  117
6.2 Παλίνδρομες φράσεις 119
6.3 Καθολικές μεταβλητές 123
6.4 Όροι που παρουσιάστηκαν στο κεφάλαιο  124
7 ΑΡΘΡΩΜΑΤΑ ΚΑΙ ΑΡΧΕΙΑ 125
7.1 Αρθρώματα  125
7.2 Χρήση προκαθορισμένων πακέτων 128
7.3 Αρχεία  131
7.4 Όροι που παρουσιάστηκαν στο κεφάλαιο  134
8 ΔΟΚΙΜΗ ΚΑΙ ΑΠΟΣΦΑΛΜΑΤΩΣΗ 135
8.1 Δοκιμή  136
8.1.1 Στρατηγική δοκιμής μαύρου κουτιού 137
8.1.2 Στρατηγική δοκιμής γυάλινου κουτιού 139
8.1.3 Διεξαγωγή δοκιμών  141
8.2 Αποσφαλμάτωση 143
8.2.1 Μάθηση της διαδικασίας αποσφαλμάτωσης  146
8.2.2 Σχεδιασμός του πειράματος 148
8.2.3 Όταν τα πράγματα ζορίζουν 151
8.2.4 Όταν βρούμε «το» σφάλμα  152
8.3 Όροι που παρουσιάστηκαν στο κεφάλαιο  153
9 ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ ΙΣΧΥΡΙΣΜΟΙ 155
9.1 Διαχείριση εξαιρέσεων 155
9.2 Οι εξαιρέσεις σαν μηχανισμός ροής ελέγχου 161
9.3 Ισχυρισμοί  163
9.4 Όροι που παρουσιάστηκαν στο κεφάλαιο  163
10 ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 165
10.1 Αφηρημένοι τύποι δεδομένων και κλάσεις  166
10.1.1 Μαγικές μέθοδοι και κατακερματίσιμοι τύποι 172
10.1.2 Σχεδίαση προγραμμάτων με χρήση αφηρημένων τύπων δεδομένων 174
10.1.3 Χρήση κλάσεων για την καταγραφή φοιτητών
και διδακτικού προσωπικού 174
10.2 Κληρονόμηση  177
10.2.1 Πολλαπλά επίπεδα κληρονόμησης 181
10.2.2 Η αρχή της αντικατάστασης 183
10.3 Ενθυλάκωση και απόκρυψη πληροφορίας 183
10.3.1 Γεννήτορες 189
10.4 Ένα αναλυτικό παράδειγμα  191
10.5 Όροι που παρουσιάστηκαν στο κεφάλαιο  196
11 ΜΙΑ ΥΠΕΡΑΠΛΟΥΣΤΕΥΜΕΝΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΛΓΟΡΙΘΜΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 197
11.1 Πώς μελετάμε την υπολογιστική πολυπλοκότητα  198
11.2 Ασυμπτωτικός συμβολισμός  201
11.3 Μερικές σημαντικές κλάσεις πολυπλοκότητας  204
11.3.1 Σταθερή πολυπλοκότητα  204
11.3.2 Λογαριθμική πολυπλοκότητα 205
11.3.3 Γραμμική πολυπλοκότητα  206
11.3.4 Λογαριθμογραμμική πολυπλοκότητα 207
11.3.5 Πολυωνυμική πολυπλοκότητα 207
11.3.6 Εκθετική πολυπλοκότητα 209
11.3.7 Σύγκριση των κλάσεων πολυπλοκότητας 210
11.4 Όροι που παρουσιάστηκαν στο κεφάλαιο  213
12 ΜΕΡΙΚΟΙ ΑΠΛΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ 215
12.1 Αλγόριθμοι αναζήτησης 216
12.1.1 Γραμμική αναζήτηση και χρήση έμμεσης αναφοράς για την προσπέλαση στοιχείων 217
12.1.2 Δυαδική αναζήτηση και αξιοποίηση παραδοχών 219
12.2 Αλγόριθμοι ταξινόμησης 222
12.2.1 Ταξινόμηση με συγχώνευση 224
12.2.2 Ταξινόμηση στην Python  229
12.3 Πίνακες κατακερματισμού 230
12.4 Όροι που παρουσιάστηκαν στο κεφάλαιο  234
13 ΣΧΕΔΙΑΣΗ ΔΙΑΓΡΑΜΜΑΤΩΝ ΚΑΙ ΠΕΡΙΣΣΟΤΕΡΑ ΓΙΑ ΤΙΣ ΚΛΑΣΕΙΣ 237
13.1 Κατασκευή διαγραμμάτων με το Matplotlib  237
13.2 Αναλυτικό παράδειγμα κατασκευής διαγραμμάτων για στεγαστικά δάνεια  243
13.3 Αλληλοδραστικό διάγραμμα για μια μεταδοτική νόσο  249
13.4 Όροι που παρουσιάστηκαν στο κεφάλαιο  256
14 ΠΡΟΒΛΗΜΑ ΤΟΥ ΣΑΚΙΔΙΟΥ ΚΑΙ ΠΡΟΒΛΗΜΑΤΑ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΓΡΑΦΗΜΑΤΩΝ 257
14.1 Προβλήματα σακιδίου  258
14.1.1 Άπληστοι αλγόριθμοι 258
14.1.2 Μια βέλτιστη λύση του 0/1 προβλήματος του σακιδίου  262
14.2 Προβλήματα ελαχιστοποίησης γραφημάτων 265
14.2.1 Μερικά κλασικά προβλήματα της θεωρίας γραφημάτων 270
14.2.2 Βραχύτερη διαδρομή: Αναζήτηση κατά βάθος και αναζήτηση κατά πλάτος 271
14.3 Όροι που παρουσιάστηκαν στο κεφάλαιο  277
15 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 279
15.1 Ακολουθίες Fibonacci: μια διαφορετική προσέγγιση  279
15.2 Δυναμικός προγραμματισμός και το 0/1 πρόβλημα του σακιδίου 282
15.3 Δυναμικός προγραμματισμός και «διαίρει και βασίλευε» 291
15.4 Όροι που παρουσιάστηκαν στο κεφάλαιο  291
16 ΤΥΧΑΙΟΙ ΠΕΡΙΠΑΤΟΙ ΚΑΙ ΠΕΡΙΣΣΟΤΕΡΑ ΓΙΑ ΤΗΝ ΟΠΤΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ 293
16.1 Τυχαίοι περίπατοι 294
16.2 Ο περίπατος του μεθυσμένου 295
16.3 Μεροληπτικοί τυχαίοι περίπατοι  302
16.4 Επικίνδυνα χωράφια 309
16.5 Όροι που παρουσιάστηκαν στο κεφάλαιο  311
17 ΣΤΟΧΑΣΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ, ΠΙΘΑΝΟΤΗΤΕΣ ΚΑΙ ΚΑΤΑΝΟΜΕΣ 313
17.1 Στοχαστικά προγράμματα  314
17.2 Υπολογισμός απλών πιθανοτήτων 316
17.3 Επαγωγική στατιστική 317
17.4 Κατανομές  333
17.4.1 Κατανομές πιθανότητας 334
17.4.2 Κανονικές κατανομές 337
17.4.3 Συνεχείς και διακριτές ομοιόμορφες κατανομές  343
17.4.4 Διωνυμικές και πολυωνυμικές κατανομές  344
17.4.5 Εκθετικές και γεωμετρικές κατανομές 346
17.4.6 Κατανομή του Benford 348
17.5 Κατακερματισμός και συγκρούσεις 350
17.6 Πόσο συχνά κερδίζει η καλύτερη ομάδα;  353
17.7 Όροι που παρουσιάστηκαν στο κεφάλαιο  354
18 ΠΡΟΣΟΜΟΙΩΣΗ MONTE CARLO 357
18.1 Πρόβλημα του Pascal 358
18.2 Pass ή don’t pass; 359
18.3 Βελτίωση της επίδοσης με χρήση αναζήτησης σε πίνακα  364
18.4 Εύρεση του π  366
18.5 Μερικές τελικές παρατηρήσεις για τα μοντέλα προσομοίωσης 371
18.6 Όροι που παρουσιάστηκαν στο κεφάλαιο  373
19 ΔΕΙΓΜΑΤΟΛΗΨΙΑ ΚΑΙ ΕΜΠΙΣΤΟΣΥΝΗ 375
19.1 Δειγματοληψία από τον Μαραθώνιο της Βοστώνης  376
19.2 Το κεντρικό οριακό θεώρημα 382
19.3 Τυπικό σφάλμα του μέσου 386
19.4 Όροι που παρουσιάστηκαν στο κεφάλαιο  389
20 ΚΑΤΑΝΟΗΣΗ ΠΕΙΡΑΜΑΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ 391
20.1 Η συμπεριφορά των ελατηρίων 391
20.1.1 Εύρεση καμπύλης προσαρμογής με χρήση γραμμικής
παλινδρόμησης 395
20.2 Η συμπεριφορά των βλημάτων  401
20.2.1 Συντελεστής προσδιορισμού  403
20.2.2 Χρήση ενός υπολογιστικού μοντέλου  405
20.3 Προσαρμογή εκθετικά κατανεμημένων δεδομένων 407
20.4 Όταν δεν υπάρχει θεωρία 411
20.5 Όροι που παρουσιάστηκαν στο κεφάλαιο  412
21 ΤΥΧΑΙΟΠΟΙΗΜΕΝΕΣ ΔΟΚΙΜΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΥΠΟΘΕΣΕΩΝ 413
21.1 Έλεγχος σημαντικότητας 414
21.2 Προσοχή στις τιμές p 420
21.3 Μονόπλευροι και μονοδειγματικοί έλεγχοι  423
21.4 Σημαντικό ή μη σημαντικό; 425
21.5 Ποιο N; 428
21.6 Πολλαπλές υποθέσεις. 429
21.7 Δεσμευμένες πιθανότητες και Μπεϋζιανή στατιστική 432
21.7.1 Δεσμευμένες πιθανότητες  433
21.7.2 Θεώρημα του Bayes 435
21.8 Όροι που παρουσιάστηκαν στο κεφάλαιο  437
22 ΨΕΜΑΤΑ, ΚΑΤΑΡΑΜΕΝΑ ΨΕΜΑΤΑ ΚΑΙ ΣΤΑΤΙΣΤΙΚΗ 439
22.1 Garbage In Garbage Out (GIGO) 440
22.2 Οι διαγνωστικοί έλεγχοι δεν είναι τέλειοι  441
22.3 Οι εικόνες μπορεί να είναι παραπλανητικές. 441
22.4 Cum hoc ergo propter hoc  445
22.5 Τα στατιστικά μέτρα δεν δίνουν την πλήρη εικόνα  447
22.6 Μεροληψία δειγματοληψίας  449
22.7 Τα στοιχεία δεν πρέπει να εξετάζονται αποσπασματικά  450
22.8 Σύγκριση ανόμοιων πραγμάτων 450
22.9 Επιλεκτικό διάλεγμα  451
22.10 Προσοχή στην προεκβολή 452
22.11 Η πλάνη του Τεξανού σκοπευτή 453
22.12 Τα ποσοστά μπορεί να μπερδέψουν 455
22.13 Η πλάνη της παλινδρόμησης  456
22.14 Οι στατιστικά σημαντικές διαφορές μπορεί να είναι ασήμαντες 457
22.15 Απλά προσοχή  458
22.16 Όροι που παρουσιάστηκαν στο κεφάλαιο  459
23 ΕΞΕΡΕΥΝΗΣΗ ΔΕΔΟΜΕΝΩΝ ΜΕ ΤΟ PANDAS 461
23.1 DataFrame και αρχεία CSV 461
23.2 Κατασκευή σειρών και DataFrame  464
23.3 Επιλογή στηλών και γραμμών 468
23.3.1 Επιλογή με χρήση των loc και iloc 470
23.3.2 Επιλογή κατά ομάδα 473
23.3.3 Επιλογή κατά περιεχόμενο 474
23.4 Χειρισμός δεδομένων σε ένα DataFrame 476
23.5 Ένα αναλυτικό παράδειγμα  479
23.5.1 Δεδομένα θερμοκρασιών  479
23.5.2 Κατανάλωση ορυκτών καυσίμων 488
23.6 Όροι που παρουσιάστηκαν στο κεφάλαιο  491
24 ΜΙΑ ΣΥΝΤΟΜΗ ΜΑΤΙΑ ΣΤΗ ΜΗΧΑΝΙΚΗ ΜΑΘΗΣΗ 493
24.1 Διανύσματα χαρακτηριστικών 497
24.2 Μετρικές απόστασης  500
24.3 Όροι που παρουσιάστηκαν στο κεφάλαιο  505
25 ΣΥΣΤΑΔΟΠΟΙΗΣΗ 507
25.1 Κλάση Cluster  509
25.2 Συσταδοποίηση k μέσων  510
25.3 Ένα τεχνητό παράδειγμα  512
25.4 Ένα λιγότερο τεχνητό παράδειγμα 519
25.5 Όροι που παρουσιάστηκαν στο κεφάλαιο  525
26 ΜΕΘΟΔΟΙ ΤΑΞΙΝΟΜΗΣΗΣ 527
26.1 Αξιολόγηση ταξινομητών  528
26.2 Πρόβλεψη του φύλου των δρομέων 531
26.3 Αλγόριθμος k πλησιέστερων γειτόνων  533
26.4 Ταξινομητές παλινδρόμησης  538
26.5 Διάσωση από τον Τιτανικό 550
26.6 Σύνοψη 556
26.7 Όροι που παρουσιάστηκαν στο κεφάλαιο  556
ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΑΝΑΦΟΡΑΣ ΤΗΣ PYTHON 3.8 557
ΓΛΩΣΣΑΡΙ 561
ΕΥΡΕΤΗΡΙΟ 583


Add: 2022-12-16 09:25:41 - Upd: 2022-12-19 15:45:06