Software Engineering is a fundamental engineering and technological field that covers the entire lifecycle of software product development: from requirements analysis, architectural design, and direct development (coding) to testing, deployment, maintenance, and software evolution.
Unlike pure computer science or mathematics, Software Engineering focuses on a systematic, disciplined, and quantifiable approach to creating reliable, scalable, secure, and high-quality software under constraints of limited resources, strict deadlines, and changing business requirements.
The training of software engineering specialists is based on studying the following objects:
- software: mobile and web applications, cloud services (Cloud Native), distributed and high-load systems, embedded software (Embedded Systems), AI/ML-based solutions, corporate systems (ERP/CRM);
- software lifecycle and development processes: development management methodologies (Agile, Scrum, Kanban, DevOps, MLOps), requirements analysis, design, modification, refactoring, deployment, and maintenance processes;
- tools and resources: programming languages (Java, C#, C++, Python, JavaScript/TypeScript, Go, Rust, etc.), modern frameworks, integrated development environments (IDEs), version control systems (Git), CI/CD pipelines, containerization systems (Docker, Kubernetes);
- quality assurance & control: manual and automated testing methods (Unit, Integration, E2E), static and dynamic code analysis, performance, security (AppSec), and software reliability evaluation;
- software architecture and design: design patterns, microservices architecture, event-driven systems, Clean Architecture, UML modeling.
Learning goals by higher education levels:
First (Bachelor's) level — training specialists capable of setting and solving practical tasks related to the development, maintenance, and quality assurance of software in standard and typically non-standard situations.
Main focuses of Bachelor's degree training:
- mastering core and advanced concepts of algorithmization, data structures, and object-oriented programming (OOP);
- designing relational and NoSQL databases, developing RESTful APIs, full-stack web and mobile development;
- acquiring skills in working with automated testing tools, version control systems, and collaborative team development;
- mastering fundamental principles of code cybersecurity, UX/UI design, and Agile/Scrum methodologies.
Second (Master's) level — training specialists capable of posing and solving complex problems in the development, quality assurance, deployment, and maintenance of software systems, involving research and/or innovation under uncertain conditions and requirements.
Main focuses of Master's degree training:
- designing complex distributed, cloud, and high-load systems (High-Load Systems Architecture);
- software project management (IT Project / Product Management), engineering team leadership (TechLead / TeamLead);
- applying artificial intelligence, machine learning technologies (MLOps), and big data analytics (Big Data) in software engineering;
- conducting scientific and applied research, developing new methodologies, development tools, and software test automation.
Third (Educational-Scientific) level — training highly qualified scientific and pedagogical personnel capable of conducting original scientific research, developing new fundamental concepts, methodologies, and toolsets for the creation, quality assurance, and evolution of software under high levels of uncertainty.
Main focuses of PhD (Doctor of Philosophy) training:
- fundamental and applied research in formal code verification methods, generative AI for code writing and program analysis (AI-driven Software Engineering);
- developing new architectural patterns, performance optimization methods, and cyber-resilience of software systems;
- publishing results in leading scientometric journals (Scopus / Web of Science), participating in international scientific projects;
- scientific and pedagogical activity in higher education institutions, developing new training courses in software engineering, supervising research projects.
Key competencies of a graduate:
- programming and development — proficiency in multiple programming paradigms (OOP, functional, asynchronous), developing clean, scalable, and maintainable code;
- software architecture — designing monolithic, microservices, and serverless architectures, selecting technology stacks to match business requirements;
- DevOps & Cloud Engineering — deployment automation (CI/CD), containerization, configuring cloud infrastructure (AWS, Azure, GCP);
- quality assurance (QA/Automation) — developing automated tests (Unit, Integration, UI, Performance), implementing DevSecOps and continuous code analysis practices;
- management and communication — project effort estimation, risk management, Agile/Scrum application, teamwork facilitation.
Graduates of specialty F2 Software Engineering are among the most sought-after specialists in the global and national labor markets with high compensation levels:
- software development: Software Engineer, Full-Stack / Back-End / Front-End Developer, Mobile Developer (iOS/Android), Embedded Software Engineer;
- architecture and tech leadership: Software Architect, Solution Architect, Technical Lead (TechLead);
- quality assurance: QA Automation Engineer, Software Test Engineer, Quality Assurance Lead;
- DevOps and cloud technologies: DevOps Engineer, Cloud Infrastructure Engineer, Site Reliability Engineer (SRE);
- project and product management: IT Project Manager, Product Owner / Product Manager, Scrum Master;
- artificial intelligence and AI engineering: Machine Learning Engineer, MLOps Specialist, Prompt / AI Software Integration Engineer;
- science and education (for PhD and Master's degree holders): researcher in research laboratories (R&D centers), lecturer/professor of computer science disciplines in higher education institutions.
Training is provided by:
- Department of Software Engineering (Department 603);
- Postgraduate and Doctoral Studies Department.
Education is provided under the following educational programs:
| Educational Program | Degree | Mode of Study | Duration of Study |
|---|---|---|---|
| Software Engineering | Bachelor based on complete general secondary education | Full-time | 3 years and 10 months |
| Software Engineering | Master, professional educational program | Full-time and Part-time | 1 year and 4 months |
| Software Engineering | Master, educational-scientific program | Full-time and Part-time | 1 year and 9 months |
| Software Engineering | Doctor of Philosophy | Full-time and Part-time | 4 years |