Educational courses
The course objective is to acquaint students with fundamental knowledge in the field of visualization and related domains of computer graphics and computational geometry. Particular focus is attended on basic principles of visualization, problem statements arisen in different applied domains as well as important computational methods and algorithms applied for their solution.
The course serves as a introductory programming course and is taught for the 1st year students in Moscow State University on the faculty of computational mathematics and cybernetics (CMC). The course has three parts, which are basic introduction to the theory of algorithms, the C programming language, and basic algorithms and data structures.
The main purpose of the course is to provide mathematical background for information security. The emphasis is on provable security as opposed to commonly accepted methodology of explaining smart cryptographic techniques. No initial knowledge in cryptography is required. A prerequisite for the course comprises background knowledge in computation models and computational complexity.
Foundations of numerical analysis.
The aim of the course is to acquaint students with the mathematical methods of approximation of functions. After studying this course, the students will better understand the capabilities and limitations when programming functions on computers. It assumes knowledge of the foundations of functional analysis.
Latticies, algorithms, number theory and modern cryptography.
Course objective is to acquaint students with the most important modern tools to build cryptosystems using the methods of number theory and algebraic geometry. Special attention is given to the methods that use lattice in Euclidean space. The basis for this approach are the assumptions on the complexity of some problems on lattices.
Computer architecture and assembly language.
The course covers the basic principles of modern computers, quantitative and qualitative analysis of computer components characteristics, and gives analysis of the impact of these characteristics on various types of software. The Intel IA-32 architecture has been chosen as basic for the study. The main approach toward presenting computer architecture features is example-based: through study of C language implementation in modern optimizing compilers. Besides, the course includes practical homework: solving text problems by implementing algorithms in assembly language.
Foundations of Text Processing
This course is devoted to different problems of text processing and to approaches for their solution.
Construction of the Operating System Kernel
The aim of the course is to practice the basic principles of designing the operating system kernel and related concepts such as a scheduler, virtual memory, interrupts, synchronization, system calls, file systems and others.
Special Seminar “The Correctness of the Programs”
Special Seminar “The correctness of the Programs” consist of three courses: «Introduction to the logical design of the hardware», «An introduction to formal specifications», «Software technology and free software».
The course presents an introduction to methods of software verification. The aim of the course is to introduce the software verification, present wide diversity of existing methods and approaches, consider advantages and restrictions of the verification methods.
Open Systems and Organization of the Session Security
The course presents an introduction to the problem of data transfer protection in open networks. The aim of the course is to show the diversity of the aspects of the information security problem, to give an impression of the methods of the designing of the complex systems of the protection system of the data transmissions.
The course introduces students to the basic problems of quality checking of complex software systems and modern problem-solving approaches which based on testing. Classic techniques of constructing tests based on the situation partition into equivalence classes, finite state machine or combinatorial scheme and integrated approaches which are more suitable to real complex systems are considered in these course.
Software Development Technologies. Component-based Approach.
The course introduces students to the technological problems of development of large-scale software systems and how to solve these problems. In addition, course describes the modern methods of organizing the development of such systems which based on component technologies. Web-application with J2EE and .NET technologies are considered as example of such development.
Formal Specification and Verification of Programs
The course focuses on the problems of development of mission-critical program system. Special stress is being placed on the formalization of the functional properties of the systems and analytical verification methods. Students will get acquainted with modern approaches and tools for verification of programs in object-oriented and system programming languages.