Big Data Infrastructure - δωρεάν μάθημα από το School of Data Analysis, 4 εξάμηνα, Ημερομηνία: 5 Δεκεμβρίου 2023.
μικροαντικείμενα / / December 08, 2023
Για όσους αγαπούν τους αλγόριθμους, την εργασία με δεδομένα και τον προγραμματισμό, αλλά δεν θα ήθελαν να συνδέσουν τη ζωή τους με τη μηχανική μάθηση.
Αλγόριθμοι, προγραμματισμός, σχεδιασμός συστημάτων αρχείων, δίσκων, δικτύων και επεξεργαστών, καθώς και κατανεμημένων συστημάτων.
Στη δημιουργία και υποστήριξη αποτελεσματικών και αξιόπιστων κατανεμημένων συστημάτων αποθήκευσης και επεξεργασίας μεγάλων δεδομένων.
Κάθε φοιτητής πρέπει να ολοκληρώσει επιτυχώς τουλάχιστον τρία μαθήματα κατά τη διάρκεια του εξαμήνου. Για παράδειγμα, εάν υπάρχουν δύο από αυτά στο κύριο πρόγραμμα, τότε πρέπει να επιλέξετε ένα από τα ειδικά μαθήματα.
Οι γνώσεις ελέγχονται κυρίως μέσω των εργασιών στο σπίτι - οι εξετάσεις και τα τεστ διεξάγονται μόνο σε ορισμένα μαθήματα.
Πρώτο εξάμηνο
Επιτακτικός
Αλγόριθμοι και δομές δεδομένων, μέρος 1
01 Πολυπλοκότητα και υπολογιστικά μοντέλα. Ανάλυση λογιστικών αξιών (αρχή)
02 Ανάλυση λογιστικών αξιών (τέλος)
03 Αλγόριθμοι συγχώνευσης-ταξινόμησης και γρήγορης ταξινόμησης
04 Τακτική στατιστική. Σωροί (αρχή)
05 Σωροί (τέλος)
06 Κατακερματισμός
07 Αναζήτηση δέντρων (αρχή)
08 Αναζήτηση δέντρων (συνέχεια)
09 Αναζήτηση δέντρων (τέλος). Σύστημα ασύνδετων συνόλων
10 Στόχοι RMQ και LCA
11 Δομές δεδομένων για γεωμετρική αναζήτηση
12 Πρόβλημα δυναμικής συνδεσιμότητας σε μη κατευθυνόμενο γράφημα
Αρχιτεκτονική και λειτουργικά συστήματα υπολογιστών
01 UNIX και προγραμματισμός σε C: γραμμή εντολών, έλεγχος διεργασιών, κανάλια, σήματα. Υλοποίηση κελύφους γραμμής εντολών.
02 x86 assembler: αριθμητική, μεταβάσεις, συνθήκες και κλήσεις συναρτήσεων. Στοίβα, ανεβαίνοντας τη στοίβα.
03 Σύνδεση προγραμμάτων και μορφή ELF. Δυναμική σύνδεση.
04 Η έννοια του πλαισίου και της ροής εκτέλεσης. Εφαρμογή ελαφρών νημάτων.
05 Preemptive multitasking: υποστήριξη από τον επεξεργαστή x86 και υλοποίηση διεργασιών στον πυρήνα του UNIX.
06 Αρχιτεκτονική πολλαπλών πυρήνων: συνοχή κρυφής μνήμης και μοντέλα μνήμης. Πρωτόγονα συγχρονισμού σε προγράμματα πολλαπλών νημάτων.
07 Προγραμματισμός διαδικασιών σε έναν πυρήνα και σε πολλούς πυρήνες.
08 Εξωτερική μνήμη: σκληροί δίσκοι και μονάδες SSD. Αρχές λειτουργίας συστημάτων αρχείων.
09 Εικονικοποίηση: υλικό και λογισμικό. Δυαδική μετάδοση.
Εκπαίδευση γλώσσας C++, μέρος 1
Η C++ είναι μια ισχυρή γλώσσα με πλούσια κληρονομιά. Για εκείνους που μόλις ξεκίνησαν τον δρόμο της κατάκτησης αυτής της γλώσσας, είναι πολύ εύκολο να χαθούν στην αφθονία των τεχνικών και των τεχνικών που δημιουργήθηκαν τα τελευταία 30 χρόνια. Το μάθημα διδάσκει "Modern C++" - ένα σύγχρονο υποσύνολο της γλώσσας (πρότυπα 11, 14 και 17). Δίνεται μεγάλη προσοχή σε εργαλεία και βιβλιοθήκες - πράγματα που δεν αποτελούν μέρος της γλώσσας, αλλά χωρίς τα οποία δεν θα είναι δυνατή η κατασκευή ενός μεγάλου και πολύπλοκου έργου.
01 Εισαγωγή στη C++.
02 Σταθερές. Δείκτες και σύνδεσμοι. Μεταβίβαση ορισμάτων σε μια συνάρτηση.
03 Τάξεις.
04 Δυναμική διαχείριση μνήμης.
05 Μεταβλητές, δείκτες και αναφορές.
06 Διαχείριση μνήμης, έξυπνοι δείκτες, RAII.
07 Τυπική βιβλιοθήκη προτύπων.
08 Κληρονομικότητα και εικονικές λειτουργίες.
09 Διαχείριση σφαλμάτων.
10 Σχεδιαστικά μοτίβα.
11 Χώροι ονομάτων Μετακίνηση σημασιολογίας Τέλεια προώθηση.
12 Αναπαράσταση δομών και κλάσεων στη μνήμη. Ευθυγράμμιση δεδομένων. Υποδείξεις προς τα μέλη/μέθοδοι της τάξης. Διαφορετικά πρότυπα.
Δεύτερη περίοδος
Επιτακτικός
Αλγόριθμοι και δομές δεδομένων, μέρος 2
01 Παράκαμψη σε πλάτος. Πρώτη διέλευση βάθους (έναρξη)
02 Διάβαση βάθους (συνέχεια)
03 Διάβαση σε βάθος (τέλος). 2-κοψίματα
04 Εύρεση συντομότερων μονοπατιών (αρχή)
05 Εύρεση συντομότερων μονοπατιών (συνέχεια)
06 Ελάχιστα εκτεινόμενα δέντρα
07 Ελάχιστες περικοπές. Αναζήτηση για υποσυμβολοσειρές (έναρξη)
08 Αναζήτηση για δευτερεύουσες συμβολοσειρές (συνέχεια)
09 Αναζήτηση για υποσυμβολοσειρές (τέλος)
10 Επίθημα δέντρα (αρχή)
11 Επίθημα δέντρα (κατάληξη). Πίνακες επιθημάτων (έναρξη)
12 πίνακες επιθημάτων (λήξη)
13 μεγαλύτερες κοινές υποσυμβολοσειρές. Κατά προσέγγιση αναζήτηση υποσυμβολοσειράς.
Εκπαίδευση γλώσσας C++, μέρος 2
Το δεύτερο μέρος του μαθήματος C++, το οποίο καλύπτει προχωρημένα θέματα και γλωσσικές δυνατότητες.
01 Προγραμματισμός πολλαπλών νημάτων. Συγχρονισμός νημάτων χρησιμοποιώντας mutexes και μεταβλητές συνθήκης.
02 Ατομικές μεταβλητές. Μοντέλο μνήμης C++. Παραδείγματα δομών δεδομένων χωρίς κλείδωμα.
03 Προηγμένες τεχνικές μετα-προγραμματισμού σε C++. Μεταλειτουργίες, ΣΦΗΝΑΕ, έννοιες.
04 Ανταγωνιστικός προγραμματισμός, αλληλεπίδραση με το δίκτυο.
05 llvm αρχιτεκτονική. Εργασία με το δέντρο ανάλυσης C++. Ανάπτυξη εργαλείων για την ανάλυση κώδικα C++.
Να διαλέξεις από
Θεωρία και Πρακτική του Συγχρονισμού
Το μάθημα είναι αφιερωμένο σε ανταγωνιστικά συστήματα και εργασίες με την ευρεία έννοια: από το επίπεδο ανταγωνισμού μεταξύ πυρήνων επεξεργαστή για εγγραφή σε ένα κελί μνήμη σε κατανεμημένα συστήματα που θέλουν να αναπαράγουν την κατάστασή τους σε πολλούς διακομιστές με ανεκτικό και συνεπή τρόπο σε σφάλματα.
01 https://gitlab.com/Lipovsky/shad-tpcc-course-2019/blob/master/lectures/syllabus.md
ή
Πήγαινε γλώσσα
01 Εισαγωγή. Πρόγραμμα μαθημάτων. Έκθεση για το μάθημα, κριτήρια αξιολόγησης. Σχεδιαστική φιλοσοφία. αν, διακόπτης, για. Γειά σου Κόσμε. Ορίσματα γραμμής εντολών. Καταμέτρηση λέξεων. Κινούμενο gif. Λήψη διεύθυνσης URL. Ταυτόχρονη λήψη διεύθυνσης URL. Διακομιστής Ιστού. Περιήγηση στο go. Ρύθμιση τοπικού IDE. gofmt. goimports. λινάζια
02 Βασικές γλωσσικές δομές. ονόματα, δηλώσεις, μεταβλητές, αναθέσεις. δηλώσεις τύπου. πακέτα και αρχεία. πεδίο εφαρμογής. Μηδενική τιμή. Εκχώρηση μνήμης. Στοίβα εναντίον σωρού. Βασικοί τύποι δεδομένων. Σταθερές. Σύνθετοι τύποι δεδομένων. Πίνακες. Φέτες. Χάρτες. Κατασκευές. JSON. κείμενο/πρότυπο. συμβολοσειρά και []byte. Εργασία με unicode. Χαρακτήρας αντικατάστασης Unicode. Λειτουργίες. Συναρτήσεις με μεταβλητό αριθμό ορισμάτων. Ανώνυμες συναρτήσεις. Σφάλματα.
03 Μέθοδοι. Δέκτης τιμής έναντι δέκτη δείκτη. Ενσωμάτωση. Τιμή μεθόδου. Ενθυλάκωση. Διεπαφές. Διεπαφές ως συμβόλαια. io. Συγγραφέας, io. Αναγνώστης και οι εφαρμογές τους. είδος. Διεπαφή. λάθος. http. Χειριστής. Διεπαφές ως απαριθμήσεις. Δήλωση τύπου. Διακόπτης τύπου. Όσο μεγαλύτερη είναι η διεπαφή, τόσο πιο αδύναμη είναι η αφαίρεση. Σφάλμα επεξεργασίας. πανικός, αναβολή, ανάκαμψη. σφάλματα.{Unwrap, Is, As}. fmt. Σφάλμαf. %w.
04 Γορουτίνες και κανάλια. διακομιστή ρολογιού. διακομιστή echo. Μέγεθος καναλιού. Αποκλεισμός και μη φραγή ανάγνωσης. επιλέξτε δήλωση. Αξιώματα καναλιών. χρόνος. Μετά. χρόνος. NewTicker. Μοτίβο αγωγού. Ακύρωση. Παράλληλος βρόχος. συγχρονισμός. Ομάδα Αναμονής. Σφάλμα χειρισμού σε παράλληλο κώδικα. errgroup. Ομάδα. Ταυτόχρονο πρόγραμμα ανίχνευσης ιστού. Ταυτόχρονη διέλευση καταλόγου.
05 Προηγμένες δοκιμές. Υποδοκιμές. δοκιμή. ΣΙ. (Τ).Λογφ. (Τ).Skipf. (T).FailNow. δοκιμή. Short(), δοκιμές σημαιών. Γενιά κοροϊδίας. καταθέτω/{απαιτώ, ισχυρίζομαι}. μαρτυρία/σουίτα. Εξάρτημα δοκιμής. Δοκιμές ολοκλήρωσης. Ανιχνευτής διαρροής Goroutine. TestingMain. Κάλυψη. Σύγκριση σημείων αναφοράς.
06 Προηγμένες δοκιμές. Υποδοκιμές. δοκιμή. ΣΙ. (Τ).Λογφ. (Τ).Skipf. (T).FailNow. δοκιμή. Short(), δοκιμές σημαιών. Γενιά κοροϊδίας. καταθέτω/{απαιτώ, ισχυρίζομαι}. μαρτυρία/σουίτα. Εξάρτημα δοκιμής. Δοκιμές ολοκλήρωσης. Ανιχνευτής διαρροής Goroutine. TestingMain. Κάλυψη. Σύγκριση σημείων αναφοράς.
07 Περιεχόμενο πακέτου. Διαβίβαση δεδομένων εύρους αιτήματος. http ενδιάμεσο λογισμικό. chi. Δρομολογητής. Αίτηση ακύρωσης. Προηγμένα μοτίβα συγχρονισμού. Ασύγχρονη προσωρινή μνήμη. Χαριτωμένος τερματισμός του διακομιστή. συμφραζόμενα. WithTimeout. Παρτίδα και ακύρωση.
08 database/sql, sqlx, εργασία με βάσεις δεδομένων, redis.
09 Αντανάκλαση. κατοπτρίζω. Πληκτρολογήστε και αντανακλάστε. Αξία. ετικέτες struct. net/rpc. κωδικοποίηση/gob. συγχρονισμός. Χάρτης. κατοπτρίζω. DeepEqual.
10 υλοποιήσεις πακέτου io, Reader και Writer από την τυπική βιβλιοθήκη. Προγραμματισμός χαμηλού επιπέδου. επισφαλής. Δυαδικό πακέτο. byte. Ρυθμιστής. cgo, syscall.
11 Αρχιτεκτονική GC. Γράψτε εμπόδιο. Ανάπτυξη στοίβας. Παύση GC. GOGC. συγχρονισμός. Πισίνα. Προγραμματιστής γορουτίνας. GOMACPROCS. Νήματα που διέρρευσαν.
12 Πηγαίνετε στο εργαλείο. προφ. CPU και προφίλ μνήμης. Σταυροσυλλογή. GOOS, GOARCH. CGO_ENABLED=0. Δημιουργία ετικετών. πηγαίνετε ενότητες. godoc. x/ανάλυση. Δημιουργία κώδικα.
13 Χρήσιμες βιβλιοθήκες. Εφαρμογές CLI με κόμπρα. Protobuf και GRPC. zap logging.
Τρίτο εξάμηνο
Επιτακτικός
Αλγόριθμοι στην εξωτερική μνήμη
Το μάθημα εισάγει τους φοιτητές στις βασικές αρχές κατασκευής αλγορίθμων για την εργασία με δεδομένα που δεν χωρούν στη μνήμη RAM του υπολογιστή.
01 Αλγόριθμοι στην εξωτερική μνήμη.
02 Αλγόριθμοι προσωρινής μνήμης.
03 Αλγόριθμοι επεξεργασίας δεδομένων ροής.
Κατανεμημένα συστήματα
Προτεινόμενα ειδικά μαθήματα
Ισχύς κρυπτογραφικών συστημάτων
01 Βασικές προσεγγίσεις και αρχές της σύγχρονης κρυπτογραφίας. Το μοντέλο του αντιπάλου, επισημοποίηση της έννοιας της δύναμης, το πρόβλημα της αξιολόγησης της δύναμης και των σχετικών προβλημάτων, η διαίρεση σε πρωτόγονα και πρωτόκολλα, στάδια της «ζωής» ενός κρυπτογραφικού συστήματος.
02 Εμπιστευτικότητα. Καθημερινοί ορισμοί εμπιστευτικότητας, προσεγγίσεις επισημοποίησης (πληροφοριακό-θεωρητικό μοντέλο του εχθρού, μοντέλα KR, PR, LOR, ROR, IND, CPA, CCA), συμμετρικό σύστημα κρυπτογράφησης, εφαρμογή θεωρητικών πληροφοριών πολυπλοκότητας για τον προσδιορισμό της σχέσης μεταξύ μοντέλα. Σχέσεις μεταξύ βασικών μοντέλων αντιπάλου για την αξιολόγηση της ισχύος των συστημάτων κρυπτογράφησης.
03 Προσεγγίσεις στην κατασκευή συστημάτων κρυπτογράφησης. Κτίριο από την αρχή. Κατασκευές βασισμένες σε μπλοκ κρυπτογράφησης, ορισμός κρυπτογράφησης μπλοκ, κύρια χαρακτηριστικά, προσεγγίσεις κατασκευής και ιδιότητες. Μοντέλα PRP και PRF. Το παράδοξο του προβλήματος γενεθλίων. Λήμμα για τη σχέση μεταξύ αντίστασης στα μοντέλα PRF και PRP.
04 Λειτουργίες κρυπτογράφησης. Βασικές λειτουργίες κρυπτογράφησης: ECB, CBC, CFB, OFB, CTR. Βασικές ιδιότητες απόδοσης. Ανθεκτικότητα του CTR στο LOR-CPA, αστάθεια της ΕΚΤ στο LOR-CPA. Αστάθεια βασικών τρόπων λειτουργίας σε μοντέλα CCA.
05 Ακεραιότητα. Ορισμός της έννοιας της ακεραιότητας. Προσεγγίσεις επισημοποίησης (μοντέλο UF-CMA, μοντέλα βασισμένα στην εργασία διάκρισης, μοντέλο PRF). Κώδικες ελέγχου ταυτότητας μηνυμάτων και λειτουργίες για τη δημιουργία απομίμητων ένθετων. Σχέδια βασισμένα σε μπλοκ κρυπτογράφησης: CBC-MAC, XCBC, TMAC, OMAC. Ευάλωτες λειτουργίες.
06 Συναρτήσεις κατακερματισμού. Ορισμός, βασικές ιδιότητες, προσεγγίσεις κατασκευής, επισημοποίηση και συναφή προβλήματα. Παραδείγματα χρήσης συναρτήσεων κατακερματισμού: κατακερματισμός κωδικού πρόσβασης, εξαγωγή εντροπίας. Κατασκευή συγκρούσεων και προεικόνων από σύνολα χαμηλής καρδιναικότητας.
07 Κυκλώματα HMAC, KDF, PRF, DRNG. Διάγραμμα HMAC, βασικά βήματα για την απόκτηση βαθμολογίας αντίστασης. Διαφοροποίηση κλειδιών και η αρχή του διαχωρισμού κλειδιών, σχήματα KDF και PRF. Γεννήτρια ψευδοτυχαίων, κυκλώματα DRNG.
08 Φόρτωση κλειδιού. Πρόβλημα φόρτωσης κλειδιού. Οι κύριες μέθοδοι για τη μείωση του φορτίου σε ένα κλειδί είναι οι μετατροπές εξωτερικών και εσωτερικών κλειδιών. Σχέδια παράλληλης και σειριακής επανακλειδοποίησης, βασικές ιδιότητες. Κλειδί δέντρο. Αλλαγή εσωτερικού κλειδιού και λειτουργία CTR-ACPKM.
09 Κρυπτογράφηση με προστασία απομίμησης. Διατύπωση προβλήματος. Γενικές δομές (EtA, AtE, A&E) και οι ιδιότητές τους. Παραδείγματα ευάλωτων λειτουργιών για τη διασφάλιση της εμπιστευτικότητας και της ακεραιότητας χρησιμοποιώντας ένα μόνο κλειδί. Τρόποι κρυπτογράφησης AEAD: GCM, MGM.
10 Ασφαλές κανάλι επικοινωνίας. Η έννοια ενός ασφαλούς καναλιού επικοινωνίας: τύποι καναλιών, βασικές ιδιότητες (ακεραιότητα και εμπιστευτικότητα της ροής δεδομένων). Παραδείγματα ευάλωτων πρωτοκόλλων. Καταγράψτε το πρωτόκολλο TLS 1.3.
Τέταρτο εξάμηνο
Να διαλέξεις από
Θεωρία και Πρακτική του Συγχρονισμού
Το μάθημα είναι αφιερωμένο σε ανταγωνιστικά συστήματα και εργασίες με την ευρεία έννοια: από το επίπεδο ανταγωνισμού μεταξύ πυρήνων επεξεργαστή για εγγραφή σε ένα κελί μνήμη σε κατανεμημένα συστήματα που θέλουν να αναπαράγουν την κατάστασή τους σε πολλούς διακομιστές με ανεκτικό και συνεπή τρόπο σε σφάλματα.
01 https://gitlab.com/Lipovsky/shad-tpcc-course-2019/blob/master/lectures/syllabus.md
ή
Πήγαινε γλώσσα
01 Εισαγωγή. Πρόγραμμα μαθημάτων. Έκθεση για το μάθημα, κριτήρια αξιολόγησης. Σχεδιαστική φιλοσοφία. αν, διακόπτης, για. Γειά σου Κόσμε. Ορίσματα γραμμής εντολών. Καταμέτρηση λέξεων. Κινούμενο gif. Λήψη διεύθυνσης URL. Ταυτόχρονη λήψη διεύθυνσης URL. Διακομιστής Ιστού. Περιήγηση στο go. Ρύθμιση τοπικού IDE. gofmt. goimports. λινάζια
02 Βασικές γλωσσικές δομές. ονόματα, δηλώσεις, μεταβλητές, αναθέσεις. δηλώσεις τύπου. πακέτα και αρχεία. πεδίο εφαρμογής. Μηδενική τιμή. Εκχώρηση μνήμης. Στοίβα εναντίον σωρού. Βασικοί τύποι δεδομένων. Σταθερές. Σύνθετοι τύποι δεδομένων. Πίνακες. Φέτες. Χάρτες. Κατασκευές. JSON. κείμενο/πρότυπο. συμβολοσειρά και []byte. Εργασία με unicode. Χαρακτήρας αντικατάστασης Unicode. Λειτουργίες. Συναρτήσεις με μεταβλητό αριθμό ορισμάτων. Ανώνυμες συναρτήσεις. Σφάλματα.
03 Μέθοδοι. Δέκτης τιμής έναντι δέκτη δείκτη. Ενσωμάτωση. Τιμή μεθόδου. Ενθυλάκωση. Διεπαφές. Διεπαφές ως συμβόλαια. io. Συγγραφέας, io. Αναγνώστης και οι εφαρμογές τους. είδος. Διεπαφή. λάθος. http. Χειριστής. Διεπαφές ως απαριθμήσεις. Δήλωση τύπου. Διακόπτης τύπου. Όσο μεγαλύτερη είναι η διεπαφή, τόσο πιο αδύναμη είναι η αφαίρεση. Σφάλμα επεξεργασίας. πανικός, αναβολή, ανάκαμψη. σφάλματα.{Unwrap, Is, As}. fmt. Σφάλμαf. %w.
04 Γορουτίνες και κανάλια. διακομιστή ρολογιού. διακομιστή echo. Μέγεθος καναλιού. Αποκλεισμός και μη φραγή ανάγνωσης. επιλέξτε δήλωση. Αξιώματα καναλιών. χρόνος. Μετά. χρόνος. NewTicker. Μοτίβο αγωγού. Ακύρωση. Παράλληλος βρόχος. συγχρονισμός. Ομάδα Αναμονής. Σφάλμα χειρισμού σε παράλληλο κώδικα. errgroup. Ομάδα. Ταυτόχρονο πρόγραμμα ανίχνευσης ιστού. Ταυτόχρονη διέλευση καταλόγου.
05 Προηγμένες δοκιμές. Υποδοκιμές. δοκιμή. ΣΙ. (Τ).Λογφ. (Τ).Skipf. (T).FailNow. δοκιμή. Short(), δοκιμές σημαιών. Γενιά κοροϊδίας. καταθέτω/{απαιτώ, ισχυρίζομαι}. μαρτυρία/σουίτα. Εξάρτημα δοκιμής. Δοκιμές ολοκλήρωσης. Ανιχνευτής διαρροής Goroutine. TestingMain. Κάλυψη. Σύγκριση σημείων αναφοράς.
06 Συγχρονισμός με κοινόχρηστη μνήμη. συγχρονισμός. Mutex. συγχρονισμός. RWMutex. συγχρονισμός. Cond. ατομικός συγχρονισμός. Μια φορά. Ανιχνευτής αγώνα. Ασύγχρονη προσωρινή μνήμη. Εργασία με τη βάση δεδομένων. βάση δεδομένων/sql. sqlx.
07 Περιεχόμενο πακέτου. Διαβίβαση δεδομένων εύρους αιτήματος. http ενδιάμεσο λογισμικό. chi. Δρομολογητής. Αίτηση ακύρωσης. Προηγμένα μοτίβα συγχρονισμού. Ασύγχρονη προσωρινή μνήμη. Χαριτωμένος τερματισμός του διακομιστή. συμφραζόμενα. WithTimeout. Παρτίδα και ακύρωση.
08 database/sql, sqlx, εργασία με βάσεις δεδομένων, redis.
09 Αντανάκλαση. κατοπτρίζω. Πληκτρολογήστε και αντανακλάστε. Αξία. ετικέτες struct. net/rpc. κωδικοποίηση/gob. συγχρονισμός. Χάρτης. κατοπτρίζω. DeepEqual.
10 υλοποιήσεις πακέτου io, Reader και Writer από την τυπική βιβλιοθήκη. Προγραμματισμός χαμηλού επιπέδου. επισφαλής. Δυαδικό πακέτο. byte. Ρυθμιστής. cgo, syscall.
11 Αρχιτεκτονική GC. Γράψτε εμπόδιο. Ανάπτυξη στοίβας. Παύση GC. GOGC. συγχρονισμός. Πισίνα. Προγραμματιστής γορουτίνας. GOMACPROCS. Νήματα που διέρρευσαν.
12 Πηγαίνετε στο εργαλείο. προφ. CPU και προφίλ μνήμης. Σταυροσυλλογή. GOOS, GOARCH. CGO_ENABLED=0. Δημιουργία ετικετών. πηγαίνετε ενότητες. godoc. x/ανάλυση. Δημιουργία κώδικα.
13 Χρήσιμες βιβλιοθήκες. Εφαρμογές CLI με κόμπρα. Protobuf και GRPC. zap logging.
ή
Βάση δεδομένων
01 Διεπαφές σύγχρονων βάσεων δεδομένων: σχεσιακό, κλειδί-τιμή, έγγραφο, γράφημα. Σχεσιακή άλγεβρα και γλώσσα SQL.
02 Εργασία με δίσκο σε κλασικό σχεσιακό ΣΔΒΔ: σελίδες, ομάδα σελίδων, απομάκρυνση από την πισίνα.
03 Εκτέλεση ερωτημάτων SQL: ανάλυση εκφράσεων, σχεδιασμός, εκτέλεση. Ερμηνεία και δημιουργία κώδικα με χρήση LLVM.
04 Ευρετήρια σε σχεσιακό DBMS: τύποι ευρετηρίων, μέθοδοι αποθήκευσης, χρήση σε ερωτήματα.
05 Συναλλαγές: ακρωνύμιο ACID, επίπεδα απομόνωσης, υλοποίηση συναλλαγών μέσω κλειδαριών και MVCC.
06 Ανάκτηση καταστροφών: αρχείο καταγραφής, σημεία ελέγχου, αλγόριθμος ARIES.
07 Αποθήκευση δεδομένων με χρήση της μεθόδου Log-Structured Merge Tree.
08 ΣΔΒΔ με βάση τη στήλη: πλεονεκτήματα, χαρακτηριστικά, αλγόριθμοι συμπίεσης δεδομένων.
09 Κατανεμημένα DBMS: διαμοιρασμός, συναλλαγές, εκτέλεση ερωτημάτων.
10 DBMS που βρίσκονται στην κύρια μνήμη. Δομές δεδομένων για ευρετήρια στη μνήμη.
ή
Δίκτυα υπολογιστών
01 Εισαγωγή στις τεχνολογίες δικτύου. Η ιστορία των δικτύων, τα πρωτόκολλα δικτύου, η οργάνωση της αλληλεπίδρασης δικτύου σε ένα δίκτυο peer-to-peer και η σύνδεση των peer-to-peer δικτύων μεταξύ τους.
02 Μεταφορές. Μοντέλο δικτύου OSI/ISO. TCP, εγκατάσταση σύνδεσης δικτύου, σύγκριση TCP και UDP. Ανάλυση Tcpdump – byte in fly, αναμεταδίδει γραφήματα. Μέθοδοι για τον έλεγχο της ροής δεδομένων σε μια περίοδο λειτουργίας TCP. Διαφορετικοί τύποι συνεδριών TCP και διαχείριση εύρους ζώνης μεταδιδόμενων δεδομένων σε δίκτυα πακέτων.
03 Δρομολόγηση. Η έννοια της δρομολόγησης στα δίκτυα. Στατική και δυναμική δρομολόγηση. Βασικά στοιχεία δυναμικής δρομολόγησης. Πρωτόκολλο δυναμικής δρομολόγησης - OSPF. Πρωτόκολλα δρομολόγησης διάνυσμα απόστασης. Επισκόπηση του πρωτοκόλλου δρομολόγησης BGP - τύποι μηνυμάτων, χαρακτηριστικά BGP, επιλογή της βέλτιστης διαδρομής στο BGP.
04 Πώς λειτουργεί το Διαδίκτυο: BGP και DNS. Δρομολόγηση Διαδικτύου. Επισκόπηση του πρωτοκόλλου DNS.
05 Δίκτυα σε μεγάλα κέντρα δεδομένων. Χαρακτηριστικά της αρχιτεκτονικής των δικτύων κέντρων δεδομένων. Απαιτήσεις για δίκτυα κέντρων δεδομένων. Αρχιτεκτονική CLOS για δίκτυα κέντρων δεδομένων.
06 Καθυστερήσεις στα δίκτυα. Χαρακτηριστικά της κατασκευής μεγάλων δικτύων κορμού. Λόγοι καθυστερήσεων στη μετάδοση δεδομένων μέσω δικτύων κορμού.
07 Κλιμάκωση και διαθεσιμότητα υπηρεσιών Διαδικτύου. Τεχνολογίες εξισορρόπησης φορτίου και αρχιτεκτονική υπηρεσιών.
08 MPLS και SR, Δυνατότητα προγραμματισμού δικτύου. Τεχνολογίες MPLS και Segment Routing για τη δημιουργία δικτύων κορμού. Σκοπός της τεχνολογίας MPLS, πρωτόκολλα που χρησιμοποιούνται για την ανταλλαγή ετικετών.
09 Αρχές λειτουργίας συσκευών δικτύου. Αρχιτεκτονική δρομολογητή, χαρακτηριστικά επεξεργασίας κίνησης δικτύου εντός συσκευών δικτύου.
10 Σύννεφα. Βασικές αρχές δικτύωσης που καθορίζονται από λογισμικό - Πρωτόκολλα που χρησιμοποιούνται για τη δημιουργία δικτύων καθορισμένων από λογισμικό. Ενοποίηση πλατφορμών εικονικοποίησης και υποδομής δικτύου.
ή
Κρυπτογραφικά πρωτόκολλα
01 Βασικές ιδέες ασύμμετρης κρυπτογραφίας. Η κύρια διαφορά μεταξύ της ασύμμετρης κρυπτογραφίας και της συμμετρικής κρυπτογραφίας. Βασικές ιδέες: πρωτόκολλο για τη δημιουργία κοινόχρηστου κλειδιού, κρυπτογράφηση δημόσιου κλειδιού, ηλεκτρονική υπογραφή (προβλήματα προς επίλυση, διαισθητική κατανόηση των ιδιοτήτων ασφαλείας). Ειδικά κρυπτογραφικά σχήματα: πρωτόκολλο Diffie-Hellman, σχήματα κρυπτογράφησης ElGamal και RSA, υπογραφές ElGamal και RSA. Το θεμελιώδες πρόβλημα με τα ασύμμετρα σχήματα είναι η εμπιστοσύνη στο δημόσιο κλειδί.
02 Αντοχή βασικών σχημάτων ασύμμετρης κρυπτογραφίας. Επίσημος ορισμός της αντίστασης: μοντέλα UF-CMA, IND-CPA, DLP, CDH, DDH. Οι σχέσεις μεταξύ τους. Ισχύς του σχήματος κρυπτογράφησης ElGamal. Η αστάθεια του σχήματος υπογραφής RSA χωρίς τη χρήση συνάρτησης κατακερματισμού.
03 Μάθετε περισσότερα για την ασύμμετρη κρυπτογραφία. Η υπογραφή του Lampart, το διάγραμμα της Merkle. Επίθεση DSKS.
04 Αλγεβρικές και αριθμοθεωρητικές βάσεις ασύμμετρης κρυπτογραφίας. Πεπερασμένες ομάδες, κυκλικές ομάδες, σειρά στοιχείων ομάδας. Πρόβλημα διακριτού λογαρίθμου (DLP). Πολλαπλασιαστικές ομάδες πεπερασμένων πεδίων. Βασικές πληροφορίες για τις ελλειπτικές καμπύλες.
05 Ελλειπτικές καμπύλες. Θεώρημα Hasse. Πρόσθεση σημείων σε ελλειπτική καμπύλη. Ομάδα σημείων σε ελλειπτική καμπύλη. Σχέδιο υπογραφής GOST R 34.10-2012.
06 Διακριτός λογάριθμος. Αλγόριθμοι διακριτών λογαρίθμων (μέθοδος Rho του Pollard, μέθοδος αντιστοίχισης, μέθοδος Polig-Hellman, μέθοδος υπολογισμού δεικτών).
07 Τεχνολογία PKI. Βασικές αρχές και έννοιες της υποδομής δημόσιου κλειδιού (PKI). Πιστοποιητικό, CA, CRL, OCSP, χώρος αξιοπιστίας.
08 πρωτόκολλο TLS. Ιστορικό του πρωτοκόλλου TLS. Δομή πρωτοκόλλου, βασικές αρχές λειτουργίας. Κρυπτογραφικές σουίτες πρωτοκόλλου TLS βασισμένες σε ρωσικούς κρυπτογραφικούς αλγόριθμους.
09 Βασικά στοιχεία κατασκευής πρωτοκόλλων ΑΚΕ. Η έννοια του πρωτοκόλλου της ΑΚΕ. Ιδιότητες στόχου. Βασικές προσεγγίσεις στην κατασκευή.
10 Ασφαλής αποθήκευση κλειδιών. Το πρόβλημα της ασφαλούς χρήσης των ιδιωτικών κλειδιών. Βασικά μέσα, μη αφαιρούμενα κλειδιά. Το πρόβλημα της παρουσίας αντιπάλου στο κανάλι, πρωτόκολλα της οικογένειας του ΠΑΚΕ.
11 Βασικές έννοιες της τεχνολογίας blockchain. Το έργο της συντονισμένης αποκεντρωμένης αλληλεπίδρασης. Βασικές έννοιες της έννοιας της ασφάλειας. Προσεγγίσεις ασφαλείας.
12 Βασικές αρχές των κβαντικών τεχνολογιών και οι εφαρμογές τους στην κρυπτογραφία