Apa yang diajarkan di Magister Rekayasa Perangkat Lunak di St. Petersburg HSE

Banyak yang tidak mengerti apa yang bisa mereka ajarkan dalam gelar master dalam Rekayasa Perangkat Lunak, dan percaya bahwa setelah sarjana Anda harus pergi bekerja dan mempelajari segala sesuatu di sana. Apakah layak pergi ke program master di SE? Ini adalah pertanyaan yang sulit, dan dalam artikel ini kami tidak akan menjawabnya, tetapi kami akan memberi tahu Anda apa yang lulusan sarjana kuat diajarkan di kita.



Nama saya Olya Kunyavskaya, saya berada di tahun pertama program Magister Pemrograman dan Analisis Data di Sekolah Tinggi Ekonomi - St. Petersburg di jalur Rekayasa Perangkat Lunak. Dalam seri sebelumnya, saya sudah berbicara tentang jalan saya ke HSE dan motivasi yang saya gunakan untuk datang ke sini.

Bagaimana pelajaran kita?


Apa yang diajarkan secara konseptual


Hanya lulusan sarjana kuat di bidang TI yang diterima untuk program magister kami, oleh karena itu diyakini bahwa kami telah menerima semua pengetahuan dasar yang diperlukan dalam matematika, algoritma, dan pemrograman dalam studi sarjana. Tujuan dari jalur Rekayasa Perangkat Lunak adalah untuk memberi siswa gagasan tentang arah dasar yang berbeda dalam pengembangan. Oleh karena itu, kursus untuk kami dipilih dari berbagai bidang pengetahuan, satu atau lain cara terkait dengan pengembangan.

Kemampuan untuk memengaruhi pembelajaran Anda


Program kami baru, dan kami dapat memengaruhi apa yang akan terjadi. Serangkaian disiplin ilmu sekarang berubah dari tahun ke tahun, dan program kami sudah sangat berbeda dari program kolega kami satu tahun lebih tua.

Kami dapat mengungkapkan keinginan, kursus apa yang ingin kami hadiri (lebih disukai dengan indikasi spesifik tentang siapa yang membaca kursus ini dan di mana), dan administrasi akan mencoba untuk menyetujui. Pendapat kami juga mempengaruhi bagaimana dan siapa yang akan membaca kursus tahun depan. Pada akhir setiap semester, kami mengisi kuesioner, dan kemudian kurator mendiskusikan hasilnya dengan kami dan menyarankan cara terbaik untuk mengubah kursus dan apakah perlu meninggalkannya untuk tahun berikutnya. Umpan balik ini penting untuk pengembangan kurikulum, karena banyak kursus diajarkan untuk pertama kalinya. 

Fitur Pembelajaran


Dari hal-hal yang tidak biasa yang khusus untuk HSE, studi dipecah oleh modul, bukan semester, seperti di universitas lain. Modul adalah dua hingga tiga bulan, dan dalam setahun kami memiliki empat modul pelatihan. Sebagai aturan, dalam setiap modul kita melewati sekitar tiga mata pelajaran. 

Beberapa mata pelajaran bertahan satu semester, beberapa satu modul. Beberapa mata pelajaran hanya dibaca untuk kami dan untuk siswa tahun ke-2 dari sub-arah kami (kemudian dari empat hingga enam orang hadir di kelas-kelas). Kami mengambil beberapa mata pelajaran di Sekolah Analisis Data Yandex, dan bagian dari kursus bersama dengan anak-anak dari daerah lain. 

Kami memiliki kursus teori dan terapan, dan kursus terkait dengan pengembangan soft skill. 

Apa yang kami ajarkan


Tujuan dari jalur Rekayasa Perangkat Lunak adalah untuk memberi kami beberapa pengalaman dari berbagai bidang yang terkait dengan pengembangan. Saya tidak yakin bisa menggambarkan gambaran besarnya, jadi saya hanya akan memberi tahu Anda tentang kursus yang diajarkan kepada kami tahun ini: apa yang terjadi pada masing-masing dari mereka dan kesan apa yang saya miliki.

Algoritma manajemen data


Kursus teoretis tentang algoritma yang terkait dengan database. Kursus berlangsung satu modul, tiga pasang seminggu. Kami diberitahu tentang algoritma pemrosesan transaksi dalam database terdistribusi. Misalnya, tentang kriteria untuk kebenaran jadwal pelaksanaan transaksi, protokol kontrol konkurensi, pemulihan basis data setelah jatuh.

Kami memiliki dua kuliah dan satu seminar setiap minggu. Di setiap seminar, tiga orang menyiapkan laporan selama 20 menit pada salah satu artikel yang disiapkan sebelumnya. Hanya ada tujuh dari kami yang mengikuti kursus, jadi perlu menyiapkan laporan setiap dua minggu, yang seringkali cukup. Pada saat yang sama, laporan yang disiapkan selalu diperlakukan secara positif. 

Manfaat utama kursus ini bagi saya tidak terkait dengan materi utama. Keterampilan utama yang saya tingkatkan adalah kemampuan untuk menyiapkan laporan ilmiah dalam bahasa Inggris. 

Kursus ini dibacakan oleh Boris Novikov dalam bahasa Inggris penuh. Terlepas dari kenyataan bahwa semua siswa berbahasa Rusia, kuliah diberikan dalam bahasa Inggris, pertanyaan seharusnya diajukan dalam bahasa Inggris, dan laporan juga harus disiapkan dalam bahasa Inggris. Sepanjang hidup saya, terus-menerus saya merasa bahwa saya tidak mengenal bahasa Inggris dengan cukup baik dan karena itu saya harus bersembunyi dan diam, tetapi salah satu aturan kursus adalah "Siapa saja dapat mengatakan hal-hal bodoh yang sewenang-wenang dan buta huruf secara sewenang-wenang", oleh karena itu suasana yang sangat positif tercipta.

Setelah kursus ini, saya, pertama, percaya bahwa saya dapat menceritakan beberapa pemikiran non-sepele dalam bahasa Inggris untuk beberapa waktu, dan kedua, saya mendapatkan beberapa keterampilan dalam mengisolasi informasi kunci dari artikel ilmiah.  

Grafik komputer


Kursus ini dirancang untuk satu semester dan terutama ditujukan untuk rendering di Unity. Itu dibaca oleh Mikhail Panin , seorang techlide di Playneta.gg . Ada banyak tugas praktis, terutama ditujukan untuk menulis shader dan menghasilkan jerat. 

Ketika saya mengambil kursus ini, saya mengalami perluasan kesadaran dalam hal persepsi visual terhadap objek. Tugas terakhir adalah pembuatan cloud. Dan ketika saya melakukannya, saya menyadari bahwa, pada kenyataannya, saya tidak pernah benar-benar melihat ke awan dan bertanya-tanya bagaimana mereka terlihat. Saya tidak dapat memvalidasi apakah saya berhasil menghasilkan langit yang indah, sehingga tugas itu menghabiskan banyak waktu dan pada akhirnya saya tidak memberikannya ke tingkat maksimum. Saya membuat beberapa jenis awan, bagi saya itu adalah awan normal, saya mengirimkannya ke guru dan saya segera mendapatkan jawabannya: "Ini gelap, pasti gelap tidak di sini, tetapi di bawah, tetapi tempat ini tidak terlihat seperti awan sama sekali" . Saya pikir saya mengirim sekitar 20 versi awan yang berbeda.


Sekarang saya pergi bekerja, melihat ke langit, melihat awan, segera menempel dan berpikir: "Hmm ... Dan mengapa, yang menarik, apakah awan gelap di atas dan di bawah, sebaliknya, cerah?" Kemudian saya mengerti bahwa itu adalah fajar dan sumber cahaya di bawah. 


Pekerjaan rumah di mana perlu untuk menerapkan model reflektif yang menyebar dan sesuatu di antaranya.

Setelah kursus dalam grafik komputer, saya sekarang sering melihat awan. Dan juga pada dinding bata dan benda-benda dari berbagai spekulasi. 

Perlindungan Serangan Jaringan


Kursus ini dibaca hanya untuk sub-arah kami, ada total enam siswa. Kami belajar untuk mengangkat jaringan, mengkonfigurasi dan memuat Apache dan nginx, mendeteksi kerentanan dan mempertahankan diri dari serangan.

Kursus ini benar-benar praktis dan terutama terdiri dari jawaban guru untuk pertanyaan kami dan pekerjaan laboratorium, di mana kami diberi instruksi terperinci tentang apa yang harus dilakukan. Hal utama yang saya pahami selama kursus ini adalah bahwa ini sama sekali bukan bidang yang ingin saya tangani. Setiap kali Anda duduk untuk memutuskan laboratorium, pada awalnya tampaknya semuanya sangat jelas. Kemudian banyak jebakan yang ditemukan, misalnya, inkonsistensi dalam versi program, batas tak terduga pada jumlah koneksi terbuka, atau tiba-tiba ternyata di suatu tempat tidak ada cukup konfigurasi. Selain itu, setiap orang yang mengikuti kursus memiliki masalah di tempat yang berbeda, dan tanpa bantuan seorang guru mereka sering tidak dapat menemukan apa masalahnya.

Itu sederhana pada subjek, ketika semuanya berjalan sebagaimana mestinya, dan menjadi sangat sulit jika ada sesuatu yang tiba-tiba salah.

Aljabar bidang terbatas dan Teori Pengodean


Kursus ini dibangun dengan sangat interaktif. Ceramah dan praktik diadakan hanya untuk lima orang, dan ada banyak komunikasi. Di kuliah, transisi ke pemikiran berikutnya terjadi hanya ketika semua yang hadir memahami yang sebelumnya. Kami lebih membahas objek nyata, daripada ide dan konsep abstrak, karena ini, menurut ingatan saya, terjadi pada kursus matematika dalam studi sarjana. Di perkuliahan, pertama-tama kami diberikan contoh beberapa objek baru, kami memeriksanya, memelintirnya di tangan kami, memahami bagaimana kami dapat bekerja dengannya, dan menemukan beberapa pola. Dan hanya setelah kami terinspirasi oleh objek baru, guru mulai merumuskan dan membuktikan teorema. 

Karena kami berlima, selama latihan semua orang berhasil menyelesaikan masalah di dewan. Tugasnya sangat praktis: misalnya, membangun bidang yang terbatas, menentukan elemen terbalik, mengenkripsi dan mendekripsi sesuatu. Jadi pengetahuannya jauh lebih hidup.

Contoh tugas: ada bidang terbatas yang cukup besar dan Anda perlu menghitung banyak tentangnya: pesanan elemen, invers, kelas siklotomik, dan yang lainnya. Sejak awal, Anda tidak tahu cara menghitung semuanya, dan Anda berpikir dengan cara paling sederhana. Setelah beberapa iterasi, Anda melihat bahwa Anda dapat menghitung urutan besarnya lebih cepat, dan Anda mulai menggunakan beberapa properti dalam perhitungan. Anda sendiri mengerti bagaimana properti ini atau itu bekerja dan mengapa itu bekerja, dan Anda menggunakannya untuk alasan ini, dan bukan karena salah satu teorema mengatakan bahwa ini harus dilakukan. 

Tampak bagi saya bahwa sebenarnya tidak ada cukup item seperti itu di mana intuisi hanya dikembangkan untuk bekerja dengan satu atau objek lain. Sangat disayangkan bahwa kursus hanya berlangsung satu modul. 

Pengembangan game


Kursus pengembangan permainan pengantar diajarkan dengan bantuan Playkot , dan diajarkan untuk pertama kalinya: bagi kami, dan secara umum. Dia diajar oleh beberapa orang berbeda yang mewakili industri game.


Kursus ini dibagi menjadi beberapa bagian yang ditujukan untuk berbagai aspek pengembangan game: animasi, fisika, AI, aspek lanjutan dari rendering dan optimisasi, jaringan. Selain itu, ada kuliah umum tentang bidang terkait (desain game, analitik dalam game, interaksi pengguna, dan seni). Orang yang berurusan dengannya berbicara tentang masing-masing bidang. Misalnya, serangkaian kuliah tentang Unity diberikan oleh Anton Yakovlev . Dia bekerja sebagai pemimpin fisika di Unity, membuat game atas nama tim PointOmega Games-nya, dan memberikan berbagai kuliah. Kami diberi tahu cara membuat animasi di Unity, menambahkan kontrol atas pemain, atau membuat bot.

Ini adalah kasus ketika ada lebih banyak guru di kursus daripada siswa. Hanya ada lima dari kita, dan sebagai tugas untuk seluruh kursus, kita berlima membuat permainan kecil dengan interaksi jaringan, fisika dan beberapa bot. Mari kita lihat apa yang kita dapatkan pada akhirnya :) 

C ++


Saya benar-benar ingin mendengarkan kursus khusus ini. Di tingkat sarjana, kami memiliki kursus C ++ tahunan, namun ini tahun 2014. Sejak itu, standar dan fitur bahasa telah berubah. Saya berkembang di C ++ dan saya tahu bahasa ini sampai batas tertentu, tetapi pengetahuan saya perlahan-lahan menjadi usang dan saya ingin memperbaruinya. 

Kursus ini adalah bagian kedua dari kursus C ++, dan ini berjalan bersama untuk kami dan untuk siswa Pusat Ilmu Komputer. Itu berlangsung satu semester, dibaca oleh Valera Lesin dan mengundang dosen yang fasih dalam bidang tertentu. Kami diberitahu tentang semua jenis chip keren yang muncul dalam standar ke-20, yaitu, beberapa bulan sebelum dimulainya kursus. Misalnya, tentang modul, konsep atau coroutine. Setelah itu, dalam praktiknya, kami memecahkan masalah pada setiap topik, dan kami memiliki kesempatan untuk bermain dengan konsep bahasa yang baru. 

Teori permainan


Kursus ini diajarkan untuk siswa tahun pertama dari dua gelar master di fakultas kami: untuk sekitar tiga puluh orang. Ada banyak guru, mereka adalah pegawai Laboratorium Internasional Teori Game dan Pengambilan Keputusan di St. Petersburg HSE. Kursus ini diajarkan secara bersamaan dalam bahasa Rusia dan Inggris: beberapa guru asing tidak berbicara bahasa Rusia dan mengajar bahasa Inggris, beberapa dapat berbicara bahasa Rusia, tetapi mereka menulis dalam bahasa Inggris.

Karena kenyataan bahwa para guru berubah sepanjang waktu, beberapa ceramah sangat keren dan menarik, dan pada beberapa aku tertidur. Dan saya jelas tidak memiliki cukup latihan. Ada satu tes sederhana dan dua pekerjaan rumah, dan ternyata untuk ujian itu cukup untuk melewati dua dari tiga tugas ini. Jadi saya melempar PR kedua di tengah dan tidak menyelesaikannya. Dia pindah ke garis tugas yang tidak mendesak dan opsional.

Tentu saja terlalu ringan, menurut saya.

Manajemen TI


Kursus manajemen TI berlangsung satu modul dan dibacakan oleh Ilya Andreevich Pshenichny: penjabat direktur pengembangan bisnis di Playkot . Kursus ini dihadiri oleh mahasiswa dari dua program: kami dan program "Sistem Informasi dan Interaksi Manusia-Komputer."   

Kelas-kelasnya sebagian besar adalah kuliah, dan kursus itu memberi tahu kami sedikit tentang berbagai aspek manajemen khusus untuk industri TI. Misalnya, apa saja pendekatan untuk pengembangan, tahap pengembangan, dan pada tahap apa yang dapat digunakan, bagaimana mengelola risiko, apa fungsi utama seorang pemimpin, bagaimana memotivasi tim, cara merekrut dan memecat karyawan, dan pada akhir kursus ada beberapa rekomendasi untuk pengembangan diri.

Ceramahnya sangat mudah dan menarik untuk didengarkan. Biasanya, cerita tentang masing-masing bidang manajemen secara aktif didukung oleh contoh-contoh dari pengalaman pribadi dan penjelasan tentang apa yang sebenarnya bekerja dengan baik dan dalam kasus apa. 

Tugas praktis untuk kursus ini hanya satu. Kami diberi aplikasi, dan kami harus membuat rencana pengembangan dan anggaran. Pekerjaan perlu dilakukan dalam dua minggu, kemudian diperiksa, dan dengan semua orang yang ingin mendengarkan umpan balik atau memperbaiki sesuatu, guru secara pribadi memanggil dan berbicara. Setelah itu, satu minggu lagi diberikan koreksi. 

Ceramah secara terpisah menyentuh pada topik tentang bagaimana bekerja dengan tim dan apa yang mempengaruhi motivasi karyawan. Misalnya, kami diberitahu bahwa salah satu tugas penting seorang pemimpin adalah memberikan umpan balik kepada bawahan secara kompeten. 

Dalam hal ini, saya ingin menceritakan sebuah kisah bagaimana Ilya Andreyevich memberi saya umpan balik tentang tugas akhir saya. Awalnya, saya mendapat 7 dari 10 untuk tugas (pada skala lima poin, ini 4). Secara umum, ini biasa saja, tapi bukan bencana. Saya ragu apakah saya harus memperbaiki: ada hal-hal lain. Selama panggilan telepon, Ilya Andreevich secara alami memberi tahu saya apa yang salah dengan pekerjaan itu: gaji karyawan bukan pasar, pajak tidak diperhitungkan, dan pengujian aplikasi pada umumnya hilang di suatu tempat dari rencana. Pada akhirnya, dia menambahkan bahwa dia pasti mengharapkan saya untuk memperbaiki tugas ini. Saya bertanya-tanya dari mana asal kepercayaan itu. Dia menjawab: "Karena kamu wajib, rajin dan berusaha untuk kesempurnaan." Dan saya ingin memenuhi karakteristik ini, jadi saya pergi untuk memperbaikinya, tanpa keraguan! 

Tampak bagi saya bahwa ini adalah contoh yang sangat indah tentang bagaimana Anda dapat memberikan umpan balik negatif sedemikian rupa sehingga seseorang memiliki dorongan motivasi untuk memperbaiki pekerjaan. Dan ya, untuk tugas ini saya memiliki total 10.    

Teori dan Praktek Konkurensi


Kami mengambil kursus ini dari jarak jauh di Sekolah Analisis Data Yandex, yang diajarkan oleh Roman Lipovsky. Kursus ini didedikasikan untuk sistem kompetitif. Ini memberitahu kita bagaimana model memori bekerja, bagaimana coroutine, serat bekerja, dan juga tentang perangkat primitif sinkronisasi yang berbeda dan tentang bekerja dengan sistem asinkron. 

Kursus ini jauh, dan banyak siswa yang hadir, sehingga komunikasi individu dengan guru tidak berhasil. Tetapi praktik dan pekerjaan rumah sangat dipikirkan. 

Pekerjaan rumah diperiksa secara otomatis di komputer Anda di dalam wadah Docker. Anda dapat menghapus perubahan dari Clion ke Docker, dan kemudian memulai tes dengan perintah sederhana. Pada saat yang sama, pengujian dilakukan dengan cukup baik, dan ini sangat sulit untuk kursus tentang pemrograman kompetitif. Jika saya mengerti dengan benar, kenyataannya adalah bahwa alih-alih primitif standar, kami menggunakan implementasi kami sendiri dari guru yang dapat memeriksa kebenaran pekerjaan. Misalnya, beralih aliran dengan cara tertentu atau melakukan wake up.

Pekerjaan rumah juga dilakukan dengan sangat baik. Serangkaian tugas dari berbagai tingkat kesulitan muncul secara teratur. Selain itu, biasanya seluruh infrastruktur sudah diterapkan untuk kita dan kita tidak perlu menghabiskan waktu untuk itu. Hanya perlu untuk secara langsung menyadari esensi dari tugas yang diberikan. Ada tugas untuk mencari tahu bagaimana bekerja secara asinkron dalam C ++, dan untuk mengimplementasikan coroutine mereka, dan untuk mengimplementasikan primitif mereka. 

MAGUEGO


Selain kursus dalam spesialisasi, selama kursus belajar di magistrasi, kita harus mengambil satu kursus kecil ukuran modul yang tidak terkait dengan arah yang kita pilih. Di St. Petersburg HSE, kursus semacam itu bersembunyi di bawah nama kode MAGOLEGO. Kami diberi pilihan sekitar 20 disiplin ilmu yang terkait dengan bidang yang berbeda: ekonomi, hukum, psikologi, manajemen dan sebagainya. Sebagai gantinya, Anda dapat mengikuti kursus online pilihan kami, jika Anda menyetujuinya terlebih dahulu. 

Saya mengambil kursus penuh waktu yang disebut Psikologi Sukses Profesional, dan saya lebih dari senang dengan pilihan saya. Kami diberitahu tentang kemungkinan konflik di tempat kerja, bagaimana merespons secara konstruktif terhadap umpan balik, apa disfungsi profesional, dan apa yang dapat dilakukan dengan kelelahan emosional. Selain itu, mereka mengatakan bagaimana Anda dapat memahami sesuatu tentang seseorang dengan gaya bicara dan tulisannya, dan apa yang dapat mereka perhatikan selama wawancara. 

Tampaknya bagi saya bahwa saya dapat mencurahkan artikel terpisah untuk pemikiran menarik dari kursus ini. Kursus ini dibaca oleh Elena Igorevna Kudryavtseva, sangat mudah dan menarik untuk didengarkan. Struktur naratif yang baik, suara yang diatur dengan baik dengan penekanan yang jelas pada intonasi tempat-tempat menarik dan dengan banyak contoh yang menjelaskan apa yang dimaksud. 

Sebagai tugas pelaporan, kami perlu membuat portofolio sendiri. Portofolio mirip dengan resume, tetapi perbedaan di antara mereka adalah bahwa setiap proyek / tempat kerja / prestasi memiliki halaman terpisah dengan sebuah cerita. Ada pendapat bahwa sangat nyaman untuk memiliki ayah seperti itu ketika mewawancarai pekerjaan, karena jauh lebih mudah untuk berbicara tentang diri Anda sendiri, dan lebih mudah bagi pewawancara untuk memahami apa yang dapat Anda lakukan. 

Saya suka bahwa setelah menyelesaikan kursus saya masih memiliki beberapa artefak dalam bentuk portofolio, yang mungkin berguna bagi saya di masa depan. Saya berencana untuk menambahnya saat saya mendapatkan pengalaman baru.   

Ringkasan


Berikut adalah daftar lengkap kursus yang kami berhasil ambil pada tahun pertama studi di program master "Pemrograman Data dan Analisis" di Sekolah Tinggi Ekonomi - St Petersburg di Rekayasa Perangkat Lunak. 

Sekarang magistrasi HSE St. Petersburg sangat memuaskan kebutuhan pengembangan saya sebagai pengembang. Saya terutama menyukai bahwa kami memiliki kursus yang hanya dihadiri oleh 5-6 orang, dan di mana para guru memberikan perhatian yang besar kepada setiap siswa dan siap untuk menanggapi semua masalah yang muncul. Fitur penting lainnya yang saya hargai dari program master kami adalah bagi saya tidak ada yang berlebihan di dalamnya. 

*****

30 April pukul 18:00 di fakultas akan menjadi Open House Day online tentang program-program master. Datang!Dan jika Anda membacanya nanti (saya harap di Rusia yang indah di masa depan yang mengalahkan virus corona), catatan DOD tersedia di grup VK .

All Articles