Was wird beim Master in Software Engineering an der St. Petersburg HSE gelehrt?

Viele verstehen nicht, was sie im Masterstudiengang Software Engineering lehren können, und glauben, dass man nach dem Studium zur Arbeit gehen und alles genau dort lernen muss. Lohnt es sich, ein Masterstudium in SE zu besuchen? Dies ist eine schwierige Frage, und in diesem Artikel werden wir sie nicht beantworten, aber wir werden Ihnen sagen, welche Absolventen starker Junggesellen in unserem unterrichtet werden.



Mein Name ist Olya Kunyavskaya, ich bin in meinem ersten Jahr des Masterstudiengangs in Datenprogrammierung und -analyse an der Higher School of Economics in St. Petersburg auf der Strecke Software Engineering. In der vorherigen Serie habe ich bereits über meinen Weg zu HSE und die Motivation gesprochen, mit der ich hierher gekommen bin.

Wie ist unser Studium?


Was wird konzeptionell gelehrt?


Für unser Masterstudium werden nur Absolventen starker Bachelor-Studiengänge in IT zugelassen. Daher wird davon ausgegangen, dass wir bereits im Grundstudium alle erforderlichen Grundkenntnisse in Mathematik, Algorithmen und Programmierung erworben haben. Das Ziel des Software Engineering-Kurses ist es, den Studenten eine Vorstellung von den verschiedenen grundlegenden Richtungen in der Entwicklung zu geben. Daher werden Kurse für uns aus verschiedenen Wissensbereichen ausgewählt, die auf die eine oder andere Weise mit der Entwicklung zusammenhängen.

Die Fähigkeit, Ihr Lernen zu beeinflussen


Unser Programm ist neu und wir können Einfluss darauf nehmen, wie die Kurse aussehen werden. Die Disziplinen ändern sich nun von Jahr zu Jahr, und unser Programm unterscheidet sich bereits erheblich vom Programm unserer ein Jahr älteren Kollegen.

Wir können Wünsche äußern, welche Kurse wir besuchen möchten (vorzugsweise mit einem spezifischen Hinweis darauf, wer diesen Kurs liest und wo), und die Verwaltung wird versuchen, dem zuzustimmen. Unsere Meinung beeinflusst auch, wie und wer die Kurse im nächsten Jahr lesen wird. Am Ende eines jeden Semesters füllen wir Fragebögen aus, und dann bespricht der Kurator die Ergebnisse mit uns und berät, wie der Kurs am besten geändert werden kann und ob es sich lohnt, ihn für das nächste Jahr zu verlassen. Dieses Feedback ist wichtig für die Entwicklung des Lehrplans, da viele Kurse zum ersten Mal unterrichtet werden. 

Lernfunktionen


Von den ungewöhnlichen Dingen, die für HSE spezifisch sind, wird das Studium eher nach Modulen als nach Semestern wie an anderen Universitäten unterteilt. Ein Modul dauert zwei bis drei Monate, und in einem Jahr haben wir vier Schulungsmodule. In jedem Modul werden in der Regel drei Fächer behandelt. 

Einige Fächer dauern ein Semester, andere ein Modul. Einige der Fächer sind nur für uns und für Schüler des 2. Jahres unserer Unterleitung gelesen (dann sind vier bis sechs Personen in den Klassen anwesend). Wir nehmen einige Fächer an der Yandex Data Analysis School und einen Teil der Kurse zusammen mit Kindern aus anderen Bereichen. 

Wir hatten sowohl theoretische als auch fair angewandte Kurse und Kurse zur Entwicklung von Soft Skills. 

Was wird uns beigebracht?


Das Ziel des Software Engineering Track ist es, uns einige Erfahrungen aus verschiedenen Bereichen der Entwicklung zu vermitteln. Ich bin mir nicht sicher, ob ich das große Ganze beschreiben kann, also erzähle ich Ihnen nur von den Kursen, die uns dieses Jahr beigebracht wurden: Was ist bei jedem von ihnen passiert und welche Eindrücke hatte ich.

Datenverwaltungsalgorithmen


Theoretischer Kurs zu Algorithmen in Bezug auf Datenbanken. Der Kurs dauerte ein Modul, drei Paare pro Woche. Wir wurden über Transaktionsverarbeitungsalgorithmen in verteilten Datenbanken informiert. Zum Beispiel über die Kriterien für die Richtigkeit von Transaktionsausführungsplänen, Parallelitätskontrollprotokollen und Datenbankwiederherstellung nach einem Sturz.

Wir hatten zwei Vorträge und ein Seminar pro Woche. Bei jedem Seminar erstellten drei Personen 20 Minuten lang Berichte über einen der zuvor vorbereiteten Artikel. Wir waren nur zu sieben im Kurs, daher war es notwendig, alle zwei Wochen einen Bericht zu erstellen, was oft genug ist. Gleichzeitig wurden vorbereitete Berichte immer positiv behandelt. 

Der Hauptvorteil dieses Kurses war für mich nicht mit dem Hauptmaterial verbunden. Die Schlüsselkompetenz, die ich verbessert habe, ist die Fähigkeit, wissenschaftliche Berichte auf Englisch zu erstellen. 

Der Kurs wurde von Boris Novikov vollständig in englischer Sprache gelesen . Trotz der Tatsache, dass alle Studenten Russisch sprachen, wurden Vorlesungen auf Englisch gehalten, Fragen sollten auf Englisch gestellt worden sein und Berichte sollten auch auf Englisch erstellt werden. Während meines ganzen Lebens scheint es mir immer wieder so, als ob ich nicht gut genug Englisch kann und deshalb sollte ich mich verstecken und schweigen, aber eine der Regeln des Kurses war "Jeder kann willkürlich dumme Dinge sagen und willkürlich Analphabeten", daher wurde eine sehr positive Atmosphäre geschaffen.

Nach diesem Kurs glaubte ich erstens, dass ich einige nicht triviale Gedanken auf Englisch für einige Zeit erzählen konnte, und zweitens konnte ich einige wichtige Informationen aus wissenschaftlichen Artikeln isolieren.  

Computergrafik


Der Kurs war für ein Semester konzipiert und widmete sich hauptsächlich dem Rendern in Unity. Es wurde von Mikhail Panin gelesen , einem Techlide bei Playneta.gg . Es gab viele praktische Aufgaben, die hauptsächlich dem Schreiben von Shadern und dem Generieren von Maschen gewidmet waren. 

Während ich diesen Kurs belegte, hatte ich eine Bewusstseinserweiterung in Bezug auf die visuelle Wahrnehmung von Objekten. Die letzte Aufgabe war die Cloud-Generierung. Und während ich es tat, wurde mir klar, dass ich tatsächlich nie wirklich auf die Wolken schaute und mich fragte, wie sie aussahen. Ich konnte nicht überprüfen, ob es mir gelungen ist, einen schönen Himmel zu erzeugen, daher nahm mir die Aufgabe viel Zeit und am Ende habe ich sie nicht bis zur Höchstnote bestanden. Ich generiere eine Art Wolke, es scheint mir, dass es eine normale Wolke ist, ich sende sie an den Lehrer - und ich bekomme sofort die Antwort: "Nun, hier ist es dunkel, es muss nicht hier, sondern unten dunkel sein, aber dieser Ort sieht nicht wie eine Wolke aus." . Ich glaube, ich habe ungefähr 20 verschiedene Versionen der Wolken gesendet.


Jetzt gehe ich zur Arbeit, schaue in den Himmel, sehe eine Wolke, bleibe sofort und denke: "Hmm ... und warum ist die Wolke interessanterweise oben und unten dunkel, im Gegenteil hell?" Dann verstehe ich, dass es Morgen ist und die Lichtquelle unten ist. 


Hausaufgaben, bei denen es notwendig war, ein diffuses, reflektierendes Modell und etwas dazwischen zu implementieren.

Nach einem Kurs in Computergrafik schaue ich jetzt viel auf die Wolken. Und auch an Backsteinmauern und Objekten unterschiedlicher Spiegelung. 

Schutz vor Netzwerkangriffen


Der Kurs wurde nur für unsere Unterleitung gelesen, es gab insgesamt sechs Studenten. Wir haben gelernt, das Netzwerk zu heben, Apache und Nginx zu konfigurieren und zu laden, Schwachstellen zu erkennen und sich gegen Angriffe zu verteidigen.

Der Kurs war vollständig praktisch und bestand hauptsächlich aus den Antworten des Lehrers auf unsere Fragen und Laborarbeiten, auf die wir detaillierte Anweisungen erhielten. Die Hauptsache, die ich während dieses Kurses verstanden habe, ist, dass dies überhaupt nicht der Bereich ist, mit dem ich mich befassen möchte. Jedes Mal, wenn Sie sich hinsetzen, um das Labor zu bestimmen, scheint zunächst alles sehr klar zu sein. Dann werden viele Fallstricke entdeckt, zum Beispiel Inkonsistenzen in Programmversionen, unerwartete Begrenzungen der Anzahl offener Verbindungen oder es stellt sich plötzlich heraus, dass irgendwo nicht genügend Konfigurationen vorhanden sind. Darüber hinaus hatte jeder, der an dem Kurs teilnahm, Probleme an verschiedenen Orten, und ohne die Hilfe eines Lehrers konnten sie oft nicht herausfinden, was los war.

Es war einfach zu diesem Thema, als alles so lief, wie es sollte, und es wurde sehr schwierig, wenn plötzlich etwas schief ging.

Finite-Feld-Algebra und Codierungstheorie


Der Kurs ist sehr interaktiv aufgebaut. Vorträge und Übungen wurden nur für fünf Personen gehalten, und es gab viel Kommunikation. In der Vorlesung erfolgte der Übergang zum nächsten Gedanken erst, wenn alle Anwesenden den vorherigen verstanden hatten. Wir diskutierten eher reale Objekte als Ideen und abstrakte Konzepte, da dies meiner Erinnerung nach in Mathematikkursen im Grundstudium geschah. Bei Vorträgen erhielten wir zunächst Beispiele für einige neue Objekte, untersuchten sie, drehten sie in unseren Händen, verstanden, wie wir mit ihnen arbeiten konnten, und fanden einige Muster. Und erst nachdem wir uns von einem neuen Objekt inspirieren ließen, begann der Lehrer, die Theoreme zu formulieren und zu beweisen. 

Da wir zu fünft waren, gelang es allen während des Trainings, Probleme an der Tafel zu lösen. Die Aufgaben waren sehr praktisch: zum Beispiel ein endliches Feld konstruieren, inverse Elemente bestimmen, etwas verschlüsseln und entschlüsseln. Und so war das Wissen viel lebendiger.

Ein Beispiel für eine Aufgabe: Es gibt ein ausreichend großes endliches Feld, und Sie müssen viel darüber berechnen: Elementreihenfolgen, inverse, zyklotomische Klassen und etwas anderes. Sie wissen von Anfang an nicht, wie Sie alles zählen sollen, und Sie denken auf einfachste Weise. Nach mehreren Iterationen stellen Sie fest, dass Sie eine Größenordnung schneller zählen können, und beginnen, einige Eigenschaften für die Berechnung zu verwenden. Sie selbst haben verstanden, wie diese oder jene Eigenschaft funktioniert und warum sie funktioniert, und Sie verwenden sie aus diesem Grund und nicht, weil einer der Sätze besagt, dass dies getan werden sollte. 

Es scheint mir, dass es wirklich nicht genug solche Gegenstände gibt, bei denen die Intuition einfach entwickelt wird, um mit dem einen oder anderen Objekt zu arbeiten. Schade, dass der Kurs nur ein Modul dauerte. 

Spieleentwicklung


Ein Einführungskurs zur Spieleentwicklung wurde mit Unterstützung von Playkot unterrichtet und zum ersten Mal: ​​für uns und allgemein. Er wurde von verschiedenen Personen unterrichtet, die die Spielebranche repräsentieren.


Der Kurs war in Teile unterteilt, die verschiedenen Aspekten der Spieleentwicklung gewidmet waren: Animation, Physik, KI, fortgeschrittene Aspekte des Renderns und Optimierens, Netzwerk. Darüber hinaus gab es Übersichtsvorträge zu verwandten Bereichen (Spieledesign, Analyse in Spielen, Benutzerinteraktion und Kunst). Die Person, die sich damit befasst, sprach über jeden Bereich. Zum Beispiel hielt Anton Yakovlev eine Reihe von Vorträgen über die Einheit . Er arbeitet als Physikleiter bei Unity, macht Spiele für sein PointOmega Games-Team und hält verschiedene Vorträge. Uns wurde gesagt, wie man in Unity Animationen erstellt, die Kontrolle über Spieler erhöht oder Bots erstellt.

Dies ist der Fall, wenn mehr Lehrer als Schüler am Kurs teilnehmen. Wir sind nur zu fünft, und als Aufgabe für den gesamten Kurs machen wir fünf ein kleines Spiel mit Netzwerkinteraktion, Physik und mehreren Bots. Mal sehen, was wir am Ende bekommen :) 

C ++


Ich wollte diesen speziellen Kurs unbedingt hören. Im Grundstudium hatten wir einen jährlichen C ++ - Kurs, der jedoch 2014 stattfand. Seitdem haben sich der Standard und die Funktionen der Sprache bereits geändert. Ich entwickle in C ++ und kenne diese Sprache bis zu einem gewissen Grad, aber mein Wissen wird langsam veraltet und ich möchte es aktualisieren. 

Dieser Kurs ist der zweite Teil des C ++ - Kurses und gehört für uns und die Studenten des Computer Science Center zusammen. Es dauert ein Semester, gelesen von Valera Lesin und eingeladenen Dozenten, die sich in bestimmten Bereichen gut auskennen. Wir erfahren von allen möglichen coolen Chips, die im 20. Standard erschienen sind, dh einige Monate vor Kursbeginn. Zum Beispiel über Module, Konzepte oder Coroutinen. Danach lösen wir in der Praxis Probleme zu jedem Thema und haben die Möglichkeit, mit dem neuen Konzept der Sprache zu spielen. 

Spieltheorie


Dieser Kurs wurde für Studienanfänger mit zwei Master-Abschlüssen an unserer Fakultät unterrichtet: für etwa dreißig Personen. Es gab viele Lehrer, sie waren Mitarbeiter des Internationalen Labors für Spieltheorie und Entscheidungsfindung in St. Petersburg HSE. Der Kurs wurde gleichzeitig auf Russisch und Englisch unterrichtet: Einige ausländische Lehrer sprachen kein Russisch und unterrichteten auf Englisch, andere konnten Russisch sprechen, aber sie schrieben auf Englisch.

Aufgrund der Tatsache, dass sich die Lehrer ständig wechselten, waren einige Vorträge sehr cool und interessant, und bei einigen schlief ich ein. Und ich hatte kategorisch nicht genug Übung. Es gab einen einfachen Test und zwei Hausaufgaben, und es stellte sich heraus, dass es für den Test ausreichte, zwei dieser drei Aufgaben zu bestehen. Also warf ich die zweiten Hausaufgaben in die Mitte und beendete sie nicht. Sie wechselte in die Reihe der nicht dringenden und optionalen Aufgaben.

Meiner Meinung nach zu anspruchslos.

IT-Management


Der Kurs über IT-Management dauerte ein Modul und wurde von Ilya Andreevich Pshenichny gelesen: amtierende Direktorin für Geschäftsentwicklung bei Playkot . Der Kurs wurde von Studenten zweier Programme besucht: unseres und des Programms "Informationssysteme und Mensch-Computer-Interaktion".   

Der Unterricht bestand hauptsächlich aus Vorlesungen, und der Kurs erzählte uns ein wenig über die verschiedenen Aspekte des Managements, die für die IT-Branche spezifisch sind. Was sind zum Beispiel die Entwicklungsansätze, Entwicklungsstadien und in welchen Phasen, was verwendet werden kann, wie Risiken zu managen sind, was die Hauptfunktionen eines Leiters sind, wie man ein Team motiviert, wie man Mitarbeiter anstellt und entlässt, und am Ende des Kurses gab es einige Empfehlungen für die Selbstentwicklung.

Die Vorträge waren sehr einfach und interessant zu hören. Normalerweise wurde die Geschichte über jeden Bereich des Managements aktiv durch Beispiele aus persönlicher Erfahrung und Erklärungen darüber unterstützt, was genau in welchen Fällen gut funktioniert hat. 

Die praktische Aufgabe für diesen Kurs war nur eine. Wir erhielten einen Antrag und mussten einen Entwicklungsplan und ein Budget erstellen. Die Arbeit musste in zwei Wochen erledigt sein, dann wurde sie überprüft, und mit allen, die auf das Feedback hören oder etwas reparieren wollten, rief der Lehrer persönlich an und sprach. Danach wurde eine weitere Woche zur Korrektur gegeben. 

Die Vorträge befassten sich separat mit dem Thema, wie man mit dem Team arbeitet und was die Motivation der Mitarbeiter beeinflusst. Zum Beispiel wurde uns gesagt, dass eine der wichtigsten Aufgaben eines Leiters darin besteht, Untergebenen kompetent Feedback zu geben. 

In diesem Zusammenhang möchte ich eine Geschichte erzählen, wie Ilya Andreyevich mir Feedback zu meiner endgültigen Aufgabe gab. Anfangs bekam ich 7 von 10 Punkten für die Aufgabe (auf einer Fünf-Punkte-Skala sind dies 4). Im Allgemeinen ist dies so lala, aber keine Katastrophe. Ich bezweifelte, ob ich korrigieren sollte: Es gibt andere Dinge. Während des Anrufs erzählte mir Ilya Andreevich natürlich, was mit der Arbeit nicht stimmte: Die Gehälter der Mitarbeiter waren nicht marktgerecht, Steuern wurden nicht berücksichtigt, und das Testen des Antrags ging im Allgemeinen irgendwo aus dem Plan verloren. Am Ende fügte er hinzu, dass er definitiv erwartet, dass ich diese Aufgabe korrigiere. Ich fragte mich, woher dieses Vertrauen kam. Er antwortete: "Weil Sie obligatorisch, fleißig und nach Perfektion strebend sind." Und ich möchte diese Eigenschaften erfüllen, also habe ich es ohne Zweifel behoben! 

Es schien mir, dass dies ein sehr schönes Beispiel dafür ist, wie man negatives Feedback geben kann, so dass eine Person einen Schub an Motivation hat, den Job zu reparieren. Und ja, für diese Aufgabe habe ich insgesamt 10.    

Theorie und Praxis der Parallelität


Wir nehmen an diesem Kurs an der Yandex Data Analysis School teil, die von Roman Lipovsky unterrichtet wird. Der Kurs ist wettbewerbsfähigen Systemen gewidmet. Es zeigt uns, wie das Speichermodell funktioniert, wie Coroutinen, Fasern funktionieren und auch über die Vorrichtung verschiedener Synchronisationsprimitive und über die Arbeit mit asynchronen Systemen. 

Der Kurs ist abgelegen und wird von vielen Schülern besucht, sodass die individuelle Kommunikation mit dem Lehrer nicht funktioniert. Aber die Übungen und Hausaufgaben sind sehr durchdacht. 

Die Hausaufgaben werden auf Ihrem Computer im Docker-Container automatisch überprüft. Sie können Änderungen von Clion in Docker löschen und den Test dann mit einem einfachen Befehl starten. Gleichzeitig wurden die Tests recht gut durchgeführt, und dies ist für einen Kurs über wettbewerbsfähige Programmierung sehr schwierig. Wenn ich das richtig verstehe, verwenden wir anstelle von Standardprimitiven unsere eigenen Implementierungen von Lehrern, die die Richtigkeit der Arbeit überprüfen können. Zum Beispiel fließt der Schalter auf eine bestimmte Weise oder führt ein falsches Aufwecken durch.

Hausaufgaben sind auch sehr gut gemacht. Eine Reihe von Aufgaben mit verschiedenen Schwierigkeitsgraden wird regelmäßig angezeigt. Darüber hinaus ist in der Regel die gesamte Infrastruktur bereits für uns implementiert und wir müssen keine Zeit darauf verwenden. Es ist nur notwendig, die Essenz, für die die Aufgabe gegeben wurde, direkt zu erkennen. Es gab Aufgaben, um herauszufinden, wie man in C ++ asynchron arbeitet, ihre Coroutinen implementiert und ihre Grundelemente implementiert. 

MAGUEGO


Zusätzlich zu den Spezialkursen müssen wir während des Studiums an der Magistratur einen kleinen Kurs von der Größe eines Moduls belegen, der nicht mit unserer gewählten Richtung zusammenhängt. In der St. Petersburg HSE versteckt sich ein solcher Kurs unter dem Codenamen MAGOLEGO. Wir hatten die Wahl zwischen ungefähr 20 Disziplinen in verschiedenen Bereichen: Wirtschaft, Recht, Psychologie, Management und so weiter. Stattdessen können Sie den Online-Kurs unserer Wahl belegen, wenn Sie dem zuerst zustimmen. 

Ich nahm an einem Vollzeitkurs mit dem Titel Psychologie des beruflichen Erfolgs teil und war mit meiner Wahl mehr als zufrieden. Uns wurde gesagt, welche Konflikte bei der Arbeit wahrscheinlich sind, wie konstruktiv auf Rückmeldungen reagiert werden kann, welche beruflichen Funktionsstörungen auftreten und was mit emotionalem Burnout getan werden kann. Außerdem erzählten sie, wie man durch den Stil seiner Rede und seines Schreibens etwas über eine Person verstehen kann und worauf sie bei Interviews achten kann. 

Es scheint mir, dass ich interessanten Gedanken aus diesem Kurs einen eigenen Artikel widmen kann. Der Kurs wurde von Elena Igorevna Kudryavtseva gelesen, es war sehr einfach und interessant zu hören. Eine gute Erzählstruktur, eine gut gesetzte Stimme mit klarem Schwerpunkt auf der Intonation interessanter Orte und mit vielen Beispielen, die erklären, was gemeint ist. 

Als Berichtsaufgabe mussten wir unser eigenes Portfolio erstellen. Das Portfolio ähnelt einem Lebenslauf, aber der Unterschied besteht darin, dass jedes Projekt / jeder Arbeitsplatz / jede Leistung eine eigene Seite mit einer Geschichte hat. Es gibt eine Meinung, dass es sehr praktisch ist, einen solchen Vater zu haben, wenn man für einen Job interviewt, weil es viel einfacher ist, über sich selbst zu sprechen, und es für einen Interviewer einfacher ist, zu verstehen, was man tun kann. 

Mir hat gefallen, dass ich nach Abschluss des Kurses noch ein Artefakt in Form eines Portfolios hatte, das mir in Zukunft nützlich sein könnte. Ich habe vor, es zu ergänzen, wenn ich neue Erfahrungen sammle.   

Zusammenfassung


Hier finden Sie eine vollständige Liste der Kurse, die wir im ersten Studienjahr im Masterstudiengang „Datenprogrammierung und -analyse“ an der Higher School of Economics in St. Petersburg in Software Engineering absolviert haben. 

Jetzt erfüllt die Magistratur der HSE in St. Petersburg meine Entwicklungsbedürfnisse als Entwickler perfekt. Mir gefällt besonders, dass wir Kurse haben, an denen nur 5-6 Personen teilnehmen und in denen die Lehrer jedem Schüler viel Aufmerksamkeit schenken und bereit sind, auf alle auftretenden Probleme zu reagieren. Ein weiteres wichtiges Merkmal, für das ich unser Masterstudium schätze, ist, dass für mich nichts überflüssig ist. 

***** Der

30. April um 18:00 Uhr an der Fakultät ist der Tag der offenen Tür online über Masterstudiengänge. Kommen Sie!Und wenn Sie es später lesen (ich hoffe auf das schöne Russland der Zukunft, das das Coronavirus besiegt hat), ist der DOD-Datensatz in der VK- Gruppe verfügbar .

All Articles