Infrastruktur Big Data - kursus gratis dari Sekolah Analisis Data, 4 semester, Tanggal: 5 Desember 2023.
Miscellanea / / December 08, 2023
Bagi mereka yang menyukai algoritma, bekerja dengan data dan menikmati pemrograman, namun tidak ingin menghubungkan kehidupan mereka dengan pembelajaran mesin.
Algoritma, pemrograman, desain sistem file, disk, jaringan dan prosesor, serta sistem terdistribusi.
Dalam penciptaan dan dukungan sistem terdistribusi yang efisien dan andal untuk menyimpan dan memproses data besar.
Setiap siswa harus berhasil menyelesaikan setidaknya tiga mata kuliah selama semester tersebut. Misalnya, jika program utama ada dua, maka Anda harus memilih salah satu mata kuliah khusus.
Pengetahuan diuji terutama melalui pekerjaan rumah - ujian dan tes dilakukan hanya dalam mata pelajaran tertentu.
Semester pertama
Wajib
Algoritma dan struktur data, bagian 1
01 Kompleksitas dan model komputasi. Analisis nilai akuntansi (awal)
02 Analisis nilai akuntansi (akhir)
03 Algoritma Merge-Sort dan Quick-Sort
04 Statistik ordinal. Tumpukan (awal)
05 Tumpukan (akhir)
06 Pencirian
07 Pohon Pencarian (awal)
08 Pohon Pencarian (lanjutan)
09 Cari pohon (akhir). Sistem himpunan lepas
10 Tujuan RMQ dan LCA
11 Struktur data untuk pencarian geometris
12 Masalah konektivitas dinamis pada graf tidak berarah
Arsitektur komputer dan sistem operasi
01 UNIX dan pemrograman dalam C: baris perintah, kontrol proses, saluran, sinyal. Implementasi shell baris perintah.
Assembler 02 x86: aritmatika, transisi, kondisi, dan pemanggilan fungsi. Tumpukan, naikkan tumpukan.
03 Menghubungkan program dan format ELF. Tautan dinamis.
04 Konsep konteks dan alur eksekusi. Menerapkan benang ringan.
05 Multitasking preemptive: dukungan dari prosesor x86 dan implementasi proses di kernel UNIX.
06 Arsitektur multi-core: koherensi cache dan model memori. Sinkronisasi primitif dalam program multithread.
07 Menjadwalkan proses pada satu inti dan banyak inti.
08 Memori eksternal: hard drive dan solid state drive. Prinsip pengoperasian sistem file.
09 Virtualisasi: perangkat keras dan perangkat lunak. Siaran biner.
Pelatihan bahasa C++, bagian 1
C++ adalah bahasa yang kuat dengan warisan yang kaya. Bagi mereka yang baru mulai menguasai bahasa ini, sangat mudah tersesat dalam banyaknya teknik dan teknik yang diciptakan selama 30 tahun terakhir. Kursus ini mengajarkan "C++ Modern" - bagian modern dari bahasa tersebut (standar 11, 14 dan 17). Banyak perhatian diberikan pada alat dan perpustakaan - hal-hal yang bukan bagian dari bahasa, tetapi tanpanya tidak mungkin membangun proyek yang besar dan kompleks.
01 Pengantar C++.
02 Konstanta. Petunjuk dan tautan. Melewati argumen ke suatu fungsi.
03 Kelas.
04 Manajemen memori dinamis.
05 Variabel, pointer dan referensi.
06 Manajemen memori, penunjuk cerdas, RAII.
07 Pustaka templat standar.
08 Warisan dan fungsi virtual.
09 Penanganan kesalahan.
10 Pola desain.
11 Namespace Memindahkan semantik Penerusan sempurna.
12 Representasi struktur dan kelas dalam memori. Penyelarasan data. Petunjuk kepada anggota kelas/metode. Templat variadik.
Istilah kedua
Wajib
Algoritma dan struktur data, bagian 2
01 Lewati lebarnya. Traversal Pertama Kedalaman (mulai)
02 Traversal Kedalaman (lanjutan)
03 Traversal secara mendalam (akhir). 2 potong
04 Menemukan jalur terpendek (awal)
05 Menemukan jalur terpendek (lanjutan)
06 Pohon merentang minimum
07 Pemotongan minimal. Pencarian substring (mulai)
08 Pencarian substring (lanjutan)
09 Pencarian substring (akhir)
10 pohon akhiran (awal)
11 Pohon akhiran (berakhir). Array akhiran (mulai)
12 Array sufiks (berakhir)
13 Substring umum terpanjang. Perkiraan pencarian substring.
Pelatihan bahasa C++, bagian 2
Bagian kedua dari kursus C++, yang mencakup topik tingkat lanjut dan kemampuan bahasa.
01 Pemrograman multi-utas. Menyinkronkan thread menggunakan mutex dan variabel kondisi.
02 Variabel atom. Model memori C++. Contoh struktur data bebas kunci.
03 Teknik pemrograman meta tingkat lanjut di C++. Metafungsi, SFINAE, konsep.
04 Pemrograman kompetitif, interaksi dengan jaringan.
05 arsitektur llvm. Bekerja dengan pohon parse C++. Pengembangan alat untuk menganalisis kode C++.
Untuk memilih dari
Teori dan Praktek Konkurensi
Kursus ini dikhususkan untuk sistem dan tugas kompetitif dalam arti luas: dari tingkat persaingan antar inti prosesor untuk menulis hingga satu sel memori ke sistem terdistribusi yang ingin mereplikasi statusnya di beberapa server dengan cara yang toleran terhadap kesalahan dan konsisten.
01 https://gitlab.com/Lipovsky/shad-tpcc-course-2019/blob/master/lectures/syllabus.md
atau
Pergi bahasa
01 Pendahuluan. Program kursus. Melaporkan kursus, kriteria evaluasi. Filosofi desain. jika, ganti, untuk. Halo Dunia. Argumen baris perintah. Jumlah kata. GIF animasi. Mengambil URL. Mengambil URL secara bersamaan. server web. Tur pergi. Pengaturan IDE lokal. gofmt. goimports. serat
02 Struktur bahasa dasar. nama, deklarasi, variabel, tugas. ketik deklarasi. paket dan file. cakupan. Nilai nol. Alokasi memori. Tumpukan vs tumpukan. Tipe data dasar. Konstanta. Tipe data komposit. Array. Irisan. Peta. Struktur. JSON. teks/templat. string dan [] byte. Bekerja dengan unicode. Karakter pengganti Unicode. Fungsi. Fungsi dengan sejumlah argumen yang bervariasi. Fungsi anonim. Kesalahan.
03 Metode. Penerima nilai vs penerima penunjuk. Penyematan. Nilai metode. Enkapsulasi. Antarmuka. Antarmuka sebagai kontrak. io. Penulis, io. Pembaca dan implementasinya. menyortir. Antarmuka. kesalahan. http. Penangan. Antarmuka sebagai enumerasi. Ketik pernyataan. Ketik saklar. Semakin besar antarmuka, semakin lemah abstraksinya. Pemrosesan kesalahan. panik, menunda, pulih. kesalahan.{Buka, Adalah, Sebagai}. fmt. Kesalahanf. %w.
04 Goroutine dan saluran. server jam. server gema. Ukuran saluran. Memblokir dan tidak memblokir pembacaan. pilih pernyataan. Aksioma saluran. waktu. Setelah. waktu. Ticker Baru. Pola pipa. Pembatalan. Lingkaran paralel. sinkronisasi. Grup Tunggu. Penanganan kesalahan dalam kode paralel. grup yang salah. Kelompok. Perayap web secara bersamaan. Penjelajahan direktori secara bersamaan.
05 Pengujian lanjutan. Subtes. pengujian. B. (T).Logf. (T).Skipf. (T).GagalSekarang. pengujian. Short(), pengujian flag. Generasi tiruan. bersaksi/{wajib, tegaskan}. bersaksi/suite. Perlengkapan tes. Tes integrasi. Detektor kebocoran goroutine. PengujianUtama. Cakupan. Perbandingan tolok ukur.
06 Pengujian lanjutan. Subtes. pengujian. B. (T).Logf. (T).Skipf. (T).GagalSekarang. pengujian. Short(), pengujian flag. Generasi tiruan. bersaksi/{wajib, tegaskan}. bersaksi/suite. Perlengkapan tes. Tes integrasi. Detektor kebocoran goroutine. PengujianUtama. Cakupan. Perbandingan tolok ukur.
07 Konteks paket. Melewati data cakupan permintaan. perangkat tengah http. chi. Perute. Minta pembatalan. Pola konkurensi tingkat lanjut. Cache asinkron. Shutdown server dengan baik. konteks. Tanpa Batas Waktu. Batching dan pembatalan.
08 database/sql, sqlx, bekerja dengan database, redis.
09 Refleksi. mencerminkan. Ketik dan renungkan. Nilai. tag struct. bersih/rpc. pengkodean/gob. sinkronisasi. Peta. mencerminkan. DeepEqual.
10 Implementasi paket io, Reader dan Writer dari perpustakaan standar. Pemrograman tingkat rendah. tidak aman. Paket biner. byte. Penyangga. cgo, panggilan sistem.
11 arsitektur GC. Tulis hambatan. Pertumbuhan tumpukan. jeda GC. GOGC. sinkronisasi. Kolam. Penjadwal goroutine. GOMACPROCS. Benang bocor.
12 Pergi ke perkakas. pprof. Pembuatan profil CPU dan Memori. Kompilasi silang. Aduh, GOARCH. CGO_ENABLED=0. Buat tag. pergi modul. godoc. x/analisis. Pembuatan kode.
13 Perpustakaan yang berguna. Aplikasi CLI dengan kobra. Protobuf dan GRPC. zap pencatatan.
Semester ketiga
Wajib
Algoritma di memori eksternal
Kursus ini memperkenalkan siswa pada prinsip dasar membangun algoritma untuk bekerja dengan data yang tidak sesuai dengan RAM komputer.
01 Algoritma di memori eksternal.
02 Algoritme yang tidak menyadari cache.
03 Algoritma untuk pemrosesan data aliran.
Sistem terdistribusi
Kursus khusus yang direkomendasikan
Kekuatan sistem kriptografi
01 Pendekatan dasar dan prinsip kriptografi modern. Model musuh, formalisasi konsep kekuatan, masalah penilaian kekuatan dan masalah terkait, pembagian menjadi primitif dan protokol, tahapan “kehidupan” sistem kriptografi.
02 Kerahasiaan. Definisi kerahasiaan sehari-hari, pendekatan formalisasi (model musuh teori informasi, model KR, PR, LOR, ROR, IND, CPA, CCA), sistem enkripsi simetris, penerapan informasi teoretis kompleksitas untuk menentukan hubungan antar model. Hubungan antara model musuh dasar untuk menilai kekuatan sistem enkripsi.
03 Pendekatan untuk membangun sistem enkripsi. Membangun dari awal. Konstruksi berdasarkan block cipher, definisi block cipher, karakteristik utama, pendekatan konstruksi dan properti. Model PRP dan PRF. Paradoks masalah ulang tahun. Lemma tentang hubungan resistensi pada model PRF dan PRP.
04 Mode enkripsi. Mode enkripsi dasar: ECB, CBC, CFB, OFB, CTR. Properti kinerja dasar. Daya tahan CTR di LOR-CPA, ketidakstabilan ECB di LOR-CPA. Ketidakstabilan mode dasar dalam model CCA.
05 Integritas. Pengertian konsep integritas. Pendekatan formalisasi (model UF-CMA, model berdasarkan tugas diskriminasi, model PRF). Kode otentikasi pesan dan fungsi untuk menghasilkan sisipan yang ditiru. Desain berdasarkan cipher blok: CBC-MAC, XCBC, TMAC, OMAC. Modus yang rentan.
06 Fungsi hash. Definisi, sifat dasar, pendekatan konstruksi, formalisasi dan masalah terkait. Contoh penggunaan fungsi hash: hashing kata sandi, ekstraksi entropi. Membangun tumbukan dan gambar awal dari himpunan berkardinalitas rendah.
07 Sirkuit HMAC, KDF, PRF, DRNG. Diagram HMAC, langkah dasar untuk mendapatkan peringkat resistansi. Diversifikasi kunci dan prinsip pemisahan kunci, skema KDF dan PRF. Generator acak semu, sirkuit DRNG.
08 Beban kunci. Masalah beban kunci. Metode utama untuk mengurangi beban pada kunci adalah konversi kunci eksternal dan internal. Skema penguncian ulang paralel dan serial, properti dasar. Pohon kunci. Perubahan kunci internal dan mode CTR-ACPKM.
09 Enkripsi dengan perlindungan imitasi. Formulasi masalah. Struktur umum (EtA, AtE, A&E) dan propertinya. Contoh mode rentan untuk memastikan kerahasiaan dan integritas menggunakan satu kunci. Mode enkripsi AEAD: GCM, MGM.
10 Saluran komunikasi yang aman. Konsep saluran komunikasi yang aman: jenis saluran, sifat dasar (integritas dan kerahasiaan aliran data). Contoh protokol yang rentan. Rekam protokol TLS 1.3.
Semester keempat
Untuk memilih dari
Teori dan Praktek Konkurensi
Kursus ini dikhususkan untuk sistem dan tugas kompetitif dalam arti luas: dari tingkat persaingan antar inti prosesor untuk menulis hingga satu sel memori ke sistem terdistribusi yang ingin mereplikasi statusnya di beberapa server dengan cara yang toleran terhadap kesalahan dan konsisten.
01 https://gitlab.com/Lipovsky/shad-tpcc-course-2019/blob/master/lectures/syllabus.md
atau
Pergi bahasa
01 Pendahuluan. Program kursus. Melaporkan kursus, kriteria evaluasi. Filosofi desain. jika, ganti, untuk. Halo Dunia. Argumen baris perintah. Jumlah kata. GIF animasi. Mengambil URL. Mengambil URL secara bersamaan. server web. Tur pergi. Pengaturan IDE lokal. gofmt. goimports. serat
02 Struktur bahasa dasar. nama, deklarasi, variabel, tugas. ketik deklarasi. paket dan file. cakupan. Nilai nol. Alokasi memori. Tumpukan vs tumpukan. Tipe data dasar. Konstanta. Tipe data komposit. Array. Irisan. Peta. Struktur. JSON. teks/templat. string dan [] byte. Bekerja dengan unicode. Karakter pengganti Unicode. Fungsi. Fungsi dengan sejumlah argumen yang bervariasi. Fungsi anonim. Kesalahan.
03 Metode. Penerima nilai vs penerima penunjuk. Penyematan. Nilai metode. Enkapsulasi. Antarmuka. Antarmuka sebagai kontrak. io. Penulis, io. Pembaca dan implementasinya. menyortir. Antarmuka. kesalahan. http. Penangan. Antarmuka sebagai enumerasi. Ketik pernyataan. Ketik saklar. Semakin besar antarmuka, semakin lemah abstraksinya. Pemrosesan kesalahan. panik, menunda, pulih. kesalahan.{Buka, Adalah, Sebagai}. fmt. Kesalahanf. %w.
04 Goroutine dan saluran. server jam. server gema. Ukuran saluran. Memblokir dan tidak memblokir pembacaan. pilih pernyataan. Aksioma saluran. waktu. Setelah. waktu. Ticker Baru. Pola pipa. Pembatalan. Lingkaran paralel. sinkronisasi. Grup Tunggu. Penanganan kesalahan dalam kode paralel. grup yang salah. Kelompok. Perayap web secara bersamaan. Penjelajahan direktori secara bersamaan.
05 Pengujian lanjutan. Subtes. pengujian. B. (T).Logf. (T).Skipf. (T).GagalSekarang. pengujian. Short(), pengujian flag. Generasi tiruan. bersaksi/{wajib, tegaskan}. bersaksi/suite. Perlengkapan tes. Tes integrasi. Detektor kebocoran goroutine. PengujianUtama. Cakupan. Perbandingan tolok ukur.
06 Konkurensi dengan memori bersama. sinkronisasi. muteks. sinkronisasi. RWMutex. sinkronisasi. Kond. atom sinkronisasi. Sekali. Detektor balapan. Cache asinkron. Bekerja dengan basis data. basis data/sql. sqlx.
07 Konteks paket. Melewati data cakupan permintaan. perangkat tengah http. chi. Perute. Minta pembatalan. Pola konkurensi tingkat lanjut. Cache asinkron. Shutdown server dengan baik. konteks. Tanpa Batas Waktu. Batching dan pembatalan.
08 database/sql, sqlx, bekerja dengan database, redis.
09 Refleksi. mencerminkan. Ketik dan renungkan. Nilai. tag struct. bersih/rpc. pengkodean/gob. sinkronisasi. Peta. mencerminkan. DeepEqual.
10 Implementasi paket io, Reader dan Writer dari perpustakaan standar. Pemrograman tingkat rendah. tidak aman. Paket biner. byte. Penyangga. cgo, panggilan sistem.
11 arsitektur GC. Tulis hambatan. Pertumbuhan tumpukan. jeda GC. GOGC. sinkronisasi. Kolam. Penjadwal goroutine. GOMACPROCS. Benang bocor.
12 Pergi ke perkakas. pprof. Pembuatan profil CPU dan Memori. Kompilasi silang. Aduh, GOARCH. CGO_ENABLED=0. Buat tag. pergi modul. godoc. x/analisis. Pembuatan kode.
13 Perpustakaan yang berguna. Aplikasi CLI dengan kobra. Protobuf dan GRPC. zap pencatatan.
atau
Basis data
01 Antarmuka database modern: relasional, nilai kunci, dokumen, grafik. Aljabar relasional dan bahasa SQL.
02 Bekerja dengan disk dalam DBMS relasional klasik: halaman, kumpulan halaman, pengusiran dari kumpulan.
03 Menjalankan kueri SQL: penguraian ekspresi, perencanaan, eksekusi. Interpretasi dan pembuatan kode menggunakan LLVM.
04 Indeks dalam DBMS relasional: jenis indeks, metode penyimpanan, penggunaan dalam kueri.
05 Transaksi: Akronim ACID, tingkat isolasi, implementasi transaksi melalui kunci dan MVCC.
06 Pemulihan bencana: log, pos pemeriksaan, algoritma ARIES.
07 Penyimpanan data menggunakan metode Merge Tree Log-Structured.
08 DBMS berbasis kolom: kelebihan, fitur, algoritma kompresi data.
09 DBMS Terdistribusi: sharding, transaksi, eksekusi kueri.
10 DBMS terletak di memori utama. Struktur data untuk indeks dalam memori.
atau
Jaringan komputer
01 Pengantar teknologi jaringan. Sejarah jaringan, protokol jaringan, organisasi interaksi jaringan dalam jaringan peer-to-peer dan koneksi jaringan peer-to-peer satu sama lain.
02 Transportasi. Model jaringan OSI/ISO. TCP, pembentukan koneksi jaringan, perbandingan TCP dan UDP. Analisis Tcpdump – byte dalam sekejap, mentransmisikan ulang grafik. Metode untuk mengontrol aliran data dalam sesi TCP. Berbagai jenis sesi TCP dan manajemen bandwidth data yang dikirimkan dalam jaringan paket.
03 Perutean. Konsep routing dalam jaringan. Perutean statis dan dinamis. Dasar-dasar perutean dinamis. Protokol perutean dinamis - OSPF. Protokol perutean vektor jarak. Ikhtisar protokol perutean BGP - jenis pesan, atribut BGP, pemilihan rute optimal di BGP.
04 Cara kerja Internet: BGP dan DNS. Perutean internet. Ikhtisar protokol DNS.
05 Jaringan di pusat data besar. Fitur arsitektur jaringan pusat data. Persyaratan untuk jaringan pusat data. Arsitektur CLOS untuk jaringan pusat data.
06 Penundaan jaringan. Fitur membangun jaringan tulang punggung yang besar. Alasan keterlambatan transmisi data melalui jaringan backbone.
07 Penskalaan dan ketersediaan layanan Internet. Teknologi penyeimbangan beban dan arsitektur layanan.
08 MPLS dan SR, Programabilitas Jaringan. Teknologi MPLS dan Segment Routing untuk membangun jaringan backbone. Tujuan teknologi MPLS, protokol yang digunakan untuk pertukaran label.
09 Prinsip pengoperasian perangkat jaringan. Arsitektur router, fitur pemrosesan lalu lintas jaringan di dalam perangkat jaringan.
10 Awan. Dasar-dasar Jaringan yang Ditentukan Perangkat Lunak - Protokol yang digunakan untuk membangun jaringan yang ditentukan perangkat lunak. Integrasi platform virtualisasi dan infrastruktur jaringan.
atau
Protokol kriptografi
01 Ide dasar kriptografi asimetris. Perbedaan utama antara kriptografi asimetris dan kriptografi simetris. Ide utama: protokol untuk menghasilkan kunci bersama, enkripsi kunci publik, tanda tangan elektronik (masalah yang harus dipecahkan, pemahaman intuitif tentang properti keamanan). Skema kriptografi spesifik: Protokol Diffie-Hellman, skema enkripsi ElGamal dan RSA, tanda tangan ElGamal dan RSA. Masalah mendasar dengan skema asimetris adalah kepercayaan pada kunci publik.
02 Kekuatan skema kriptografi asimetris dasar. Definisi formal resistensi: model UF-CMA, IND-CPA, DLP, CDH, DDH. Hubungan di antara mereka. Kekuatan skema enkripsi ElGamal. Ketidakstabilan skema tanda tangan RSA tanpa menggunakan fungsi hash.
03 Pelajari lebih lanjut tentang kriptografi asimetris. Tanda tangan Lampart, diagram Merkle. serangan DSKS.
04 Landasan teori aljabar dan bilangan dari kriptografi asimetris. Grup hingga, grup siklik, urutan elemen grup. Masalah logaritma diskrit (DLP). Kelompok perkalian bidang berhingga. Informasi dasar tentang kurva elips.
05 Kurva elips. teorema Hasse. Penjumlahan titik pada kurva elips. Sekelompok titik pada kurva elips. Skema tanda tangan gost r 34.10-2012.
06 Logaritma diskrit. Algoritma logaritma diskrit (metode Pollard's Rho, metode pencocokan, metode Polig-Hellman, metode perhitungan indeks).
07 Teknologi PKI. Prinsip dasar dan konsep infrastruktur kunci publik (PKI). Sertifikat, CA, CRL, OCSP, ruang kepercayaan.
08 protokol TLS. Sejarah protokol TLS. Struktur protokol, prinsip operasi dasar. Rangkaian kriptografi protokol TLS berdasarkan algoritma kriptografi Rusia.
09 Dasar-dasar membangun protokol AKE. Konsep protokol AKE. Properti sasaran. Pendekatan dasar untuk konstruksi.
10 Penyimpanan kunci yang aman. Masalah penggunaan kunci pribadi yang aman. Media kunci, kunci yang tidak dapat dilepas. Masalah kehadiran musuh di saluran, protokol keluarga PAKE.
11 Konsep dasar teknologi blockchain. Tugas interaksi desentralisasi yang terkoordinasi. Konsep dasar konsep keamanan. Pendekatan keamanan.
12 Prinsip dasar teknologi kuantum dan penerapannya dalam kriptografi