
Algorithmization and Programming Languages
Planned learning outcomes: students should be able to formalize engineering tasks, design solution architectures, develop software systems in Python, C# , and JavaScript, apply DevOps tools, and use LLMs to train, analyze, generate, and refactor code.
This course provides a comprehensive, tool-oriented foundation for the program, aimed at developing algorithmic, architectural, and systems thinking through solving software engineering problems. Mastering Python, C#, JavaScript, and DevOps practices is carried out in the logic of system task formulation and implementation using LLMs as an intelligent tool.
The discipline belongs to the basic part of the general science module and is implemented over four semesters. It is an instrumental basis for the disciplines of systems analysis, information systems architecture, artificial intelligence, big data, and project activities.
Learning is structured around meaningful software engineering tasks via LLMs. Each topic block begins with a system analysis of the problem, its decomposition and architecture design, after which the software implementation is performed. LLMs is used as a tool for requirements formalization, architectural analysis, and engineering reflection.
OBJECTIVES
Develop an engineering approach to algorithmization and programming;
Mastering Python, C#, and JavaScript in the context of systems engineering;
Develop LLMs application skills for analysis, generation and architectural design of software solutions;
Preparation for the implementation of complex interdisciplinary projects.
KEY TASKS
Formalization of engineering tasks and their algorithmization;
Designing the architecture of software systems;
Integration of Git and DevOps practices;
Use LLM for analysis, refactoring and design;
Foster teamwork and collaborative development skills.
Thematic plan
Semester 1. Algorithmization and tool programming (Python)
At the initial stage, training focuses on developing algorithmic thinking and skills in formalizing engineering problems. Mastering the Python language is carried out through the decomposition of tasks, analysis of alternative implementations, and formation of primary architectural representations. The result of this stage is students can to formalize the problem and implement the correct software solution with justification of the chosen algorithm.
LLM is used as an intelligent tool for learning, algorithm analysis, and reflection.
Main topics of the semester:
1. Fundamentals of the Python language: syntax, basic data types, control constructs. Algorithms in Python. Technique of applying LLM in the training assistant mode;
2. Analysis of algorithms;
3. Architectural Assistant (OOP - Object Oriented Programming);
4. Implementation of testing, code analysis and refactoring;
5. Engineering partner (LLMs).
Semester 2. Architectural design of an applied system
The student learns: designing a domain model, building an architectural framework, integration of components, test procedure for the software system. The result of this stage is students can to formalize the problem and implement the correct software solution with justification of the chosen algorithm.
LLM is used as a tool for architectural analysis, test case generation, and engineering peer review.
Main topics of the semester:
1. C# as a tool for engineering modeling
2. Architecture and infrastructure of .NET applications
3. System quality, safety and operational maturity
Semester 3. Subsystem integration and Information product
The third stage is aimed at developing systematic thinking. Learning JavaScript is not considered in isolation, but in the context of client architecture and subsystem integration. The key becomes: approval of API contracts, integration of client and server logic, analysis of the evolution of architecture, justification of the technology stack, reviewing the life cycle of an information product. The student starts working not with a separate application, but with a complex system that interacts with the external environment. The result of this stage is the ability to design a comprehensive information system, taking into account its development and maintenance.
LLM is used as a tool for system analysis, identification of architectural risks, and engineering reflection.
Main topics of the semester:
1. JavaScript as a client architecture tool
2. Integration of subsystems and coordination of architectural solutions
3. Integrated information product architecture
Semester 4. Team Engineering and Product lifecycle
The final stage is implemented in the format of a team integration project with clearly distributed roles and personal responsibility of participants. The project covers the solution lifecycle: creating an idea and setting a task, architectural design and risk analysis, implementation of modules and their integration, conducting functional and integration tests, preparation of engineering documentation, defense of architectural decisions. The student works in conditions of distributed responsibility (architect, developer, quality engineer, etc.), which simulates a real professional environment. The result of this stage is the ability not only to implement a software system, but also to justify architectural solutions in a reasoned manner, to demonstrate their stability and readiness for commissioning.
LLM is used as an intelligent tool for auditing, opposing, and preparing for engineering defense.
Main topics of the semester:
1. Engineering statement and architectural justification of the project
2. Implementation and integration verification of the architecture
3. Engineering maturity and solution defense