"Master of Science in Engineering" Program in the field of

INFORMATION TECHNOLOGIES and SYSTEMS

of the IIEP- Saint Petersburg State Politechnical University

GENERAL INFORMATION
The Program is designed to give students a through knowledge in the field of information technologies and to provide an enduring foundation for future professional growth. Program provides students with a solid background in objects-oriented technologies, by addressing theoretical concept and their practical application.

· DURATION:
2 years
· DIPLOMA:
Master of Science in the field of Information technologies and intelligent systems issued by St. Petersburg State Polytechnic University

· LANGUAGE OF INSTRUCTION:
English.
Russian language course is also included to facilitate students' staying in new cultural surrounding.

· FEES:
Tuition fee $3750* per year , including books from the University's library and mentor's sceintific support
Accommodation $50-$150 per month according to conditions in University dormitory
Medical insurance $90 per academic year

*Please note that this amount must be paid in Euros according to the rate of the Central Bank of the Russian Federation

· CANDIDATE PROFILES
.Bachelor of Science degree in Computer Science or an equivalent degree
.Solid background in mathematics and foundation of computer science
.Fair knowledge of object-oriented technology and software engineering
.TOEFL : 450 points

· SELECTION PROCEDURE
. The candidate's BSc. Diploma in Computer Science and Transcript or an equivalent degree according to their education system
. The C.V. of the candidate
. The candidate's previous grades, scores and recommendations
. The candidate's fluency English documentation

· PROGRAM CONTENT:

.Programming technologies
.Modern problems of information science and computer engineering
.History and methology of information science and computer engineering
.Intelligent systems and knowledge engineering
.Neuroinformatics and Neurotechnologies
.Speech technologies
.Operating systems concepts
.Computer technologies in science and education
.Network operating systems
.Modeling of computer networks
.Databases and distributed computing
.Distributed Artificial Intelligence Systems
.Computer networking
.Guarding and safety
.Networks administration
.Mobile communication systems

· PROGRAM CONTENT:

· PROGRAMMING TECHNOLOGIES

OBJECT-ORIENTED PROGRAMMING IN VISUAL STUDIO ENVIROMENT
Preface:Object-oriented approach to problem solving is applied in many different fields of scientific investigations and it is considered to be the most efficient and universal. This is not just a software development technology but also a way of thinking, a method of formulating the problems and gradually evolving them in order to design some reliable models of the process or phenomena under investigation. It also enables us to develop a flexible data structure and methods of its processing based on the few fundamental concepts: abstract data types, encapsulation, inheritance and polymorphism.
C++ language is a significant tool that helps to solve many kinds of problems. C++ allows expressing the certain real-world problems more naturally. C++ versions of programs are more concise, more readable, and less error-prone than their C counterparts. Languages, after all, are tools for expressing ideas. The various class libraries: MFC (Microsoft Foundation Classes), Stingray Objective Grid and the new .NET Framework Classes have powerful means to develop a modern looking graphical user interface.

Prerequisite: This course is intended for students that have some experience in developing simple programs in any language. It is considered that they have learned basics of discrete mathematics, data structures, some standard algorithms of linear algebra. Their current skills and technical training should be on a level that enables them to solve basic problems of data manipulation, such as declarations of variables of standard data types, using them to implement iterative calculations, conditional branches and arrays processing.

Skills obtained at the end of the course:
This course gives the students the intermediate-level skills needed to write applications for the Microsoft Windows operating system. The course is taught in C++ using the Microsoft Foundation Class (MFC) Libraries. At the end of the course, students will be able to:

.Implement a full-featured Windows–based application that meets the standard requirements.
.Create and implement a Windows–based application that conforms to User Interface Design Guidelines, including toolbars, status bars, modeless dialog boxes, context menus, and system colors/metrics.
.Use the Registry to register applications.
.Support and use files to store the application data.
.Provide simple support of SDI (Single Document Interface) applications.
.Implement simple MDI (Multiple Document Interface) applications.
.Use the common dialogs to control colors, file system objects and fonts
.Create message-handling procedures to control general system events.
.Use general application programming interface (API) tools.

The topics covered in this course:
.Introduction
.Principles of Windows operating system.
.Message handling mechanisms.
.Structure of a standard Windows application based on API elements, such as: functions, macro extensions, messages, interfaces, new data types and aggregate types (arrays, structures, classes).

Development of traditional, API-oriented application
At this stage the students find out how to control the built-in Visual Studio tools needed to automate some usual actions and perform everyday tasks, such as debugging the code. The standard architecture of Win32 applications is considered and used to produce the graphical output into the window’s client region. The following topics are covered:

.WinMain function and window procedure.
.WNDCLASS structure and registry of window class attributes.
.Main window styles and creation a window.
.Message handling loop and the role of window procedure.
.Device contexts and graphical primitives drawing. Main GDI instruments, their usage and management.
.Bitmap-image structures, management and animation using timers.

MFC library-oriented applications without Doc-View architecture
Simple Windows applications that do not use Document-View architecture have some advantages over the intricate applications based on that architecture. In this section some technological methods of such applications’ development are considered. We use special tools to create a single document interface application based on only two MFC classes. The topics are:

.General outlook of MFC
.Class hierarchy.
.Basic classes and class inheritance.
.How to produce and develop the functionality of SDI-application.
.Types of Windows messages
.Message handling and message response table.
.Message route and handler’s search.
.Debugging technology, methods and tricks.
.Win32 coordinate spaces used to produce the graphical output into a window or printer. Coordinates transformations and main GDI functions supporting them.
.Graphical objects’ sizes control. Investigating the coordinate transformations.
.Bringing in the ClassWizard tool to automate some basic, frequently repeated actions and tasks.
.Creating main window menu and menu commands handling.
.Modal and modeless dialogs. How to control the application logic using basic control elements.
.Control variables. Binding variables and control elements. Basic functions controlling the data exchange.

MFC application based on dialog template
Dialog-based applications are used to automate the process of data exchange between the class variables and control elements placed on the window’s form or dialog template form. Here we illustrate the main principles of data exchange using as an example the special error code’s file. We gradually develop the application that enables the user to analyze the Win32 and HRESULT error codes:
Using ClassWizard to create message handling procedures and data exchange variables.

.Fundamental dynamic data structures used to store the data.
.Data formats used to store the results of Win32 functions and COM methods.
.STL (Standard Template Library) containers and algorithms.
.Input and output streams of STL library. Character strings management using the string class.
.Non-standard ways to control the dialog’s behavior.
.Using the Windows registry to find out the file paths of applications and data structures.
.Notification messages and reflected notifications.
.Syntactic analysis methods to parse the data from system files.

MFC MDI-applications development
Applications based on AppWizard’s startup projects allow you to easily get the full power of multiple document interface and Document-View architecture features without much pain. Further application development uses document templates that can handle multiple document views through the built-in lists of object pointers. This advanced technique allows to create complex window structure displaying the data stored in document’s classes. The topics are:

.File system navigation using special tree control element.
.Image lists associated with the file tree.
.The lists controlled by CTreeCtrl class. Peculiar methods of list handling. Updating the user interface by means of control elements state variables.
.Notification messages issued by CTreeCtrl. Message handlers realizing the special WM_NOTIFY pattern.
.Shell API family used to control the file tree behavior.
.Window splitting and window’s panes used to contain different views of a document data.
.Multiple document template class. Template list and methods to manage them.
.Document-View architecture. Document class. The dynamic list of views. Interoperability of all the components.Application resources. Resource management.
.Binding and synchronization of multiple different views of document data using dynamic MFC library lists
.Step-wise CObject inheritance and management of functionality levels.
.Object persistence and document data serialization. CArchive class and its connection to a CFile object.
.GDI-objects and different tactics of their usage.

Advanced MDI-application technology
The file tree management application is further developed to gain control of several different views, representing the draft view of files’ data in a splitter window and detailed view of those data in a special view that enables the visual editing of objects’ geometry. The topics are:

.New class creation to control different views of document data. Class’s interoperability.
.Flexibility in objects scale management gained by using of different Win32 coordinate spaces.
.Device contexts and their usage to produce flicker-free drawings.
.Visual editing technology and special tricks. The logic of raster operations.
.Non-standard windows creation to render the graphical output of document data.
.Dynamic container of pointers to window class objects.
.CBitmapButton class and its methods.
.Printer output support. Special dialogs to control the procedure. Device context management.

back to program content

· MODERN PROBLEMS OF INFORMATION SCIENCE AND COMPUTER ENGINEERING
Lecturer: Ass.Prof. Helen Rodionova, Physical - Mechanical Department, St. Petersburg State Polytechnic University

Aim: The aim is to present new achievements in methods, models, software tools and modern optimization (mathematical programming) techniques for different problems of information science and computer engineering. Optimization problems have extensive applications in various fields of human activity where it is necessary to choose the best way (program)of action: in controlling, planning, designing finance, etc.

Contents:
.Optimization as the way of selecting the best of many possible decisions in a complex real-life environment
.Applications
.Decision making
.Classification of Mathematical Programming problems: Linear, Nonlinear, Convex, Quadratic, Integer programming
.Multiextremum problems.

Elements of Convex Analysis: Convex sets and functions. Optimality Conditions for Convex Programs.

Methods: Linear programming problems: the Simplex Method. One-dimensional optimization. MultiDimensional Unconstrained optimization. Descent Algorithms. Quasi-Newton -Type Methods. Solution of Constrained Problems: Penalty Function Methods. Practical algorithms. Approximation - Type Algorithms.New models and optimization technique solutions: a model of effective transit system, for trading financial instruments with uncertainty in interest rates, models of Mixed Integer and Programming, LSP- models for experimental data.

Instruction: Mathematical background,elementary calculus,real analysis and linear algebra.

back to program content

· HISTORY AND METHODOLOGY OF INFORMATION AND COMPUTER ENGINEERING

The history and methodology of informatics and computer science is intended for master studying. The goal of study is to get knowledge in the field of modern directions of computer science development. The applications of computer science methodology are given by Java programming. Students consider the general problems of pre-computer mathematic, the algorithms theory and practices, the mathematical logic, computational mathematic and numeric methods. They pay attention to computer technology expansion, general programming paradigm, structured coding and object-oriented implementation, Graphics User Interface (GUI) programming, events processing, threads control, drawing and image processing. Students study the Local Area Network (LAN), Wide Area Network (WAN) hardware, software evolution and network programming. They consider relational and object-oriented databases history and development, query languages and computer programs, based on open database connectivity interface. The examples of informatics methodology adaptation are given by means Java language programming. During practical training students develop 8 routines: computational structure and object-oriented coding, thread control, GUI application coding, drawing in applet, database interface programming, client-server TCP/IP based application and URL in applet.

Course requirements are 34 hours for lectures and 34 hours for hands-on programming, tutorial and examination.

Lecture professor G.F.Malykhina.

back to program content

· SPEECH TECHNOLOGIES

Course includes problems of digital speech representation: PCM coding, A- and µ-laws, D- and S- D modulation, frequency domain coding, short-time Fourier-transformation, and cepstral analysis. Students consider linear prediction, vector quantization and entropy coding methods, review of LPC based modern standards for speech coding as CELP, SELP, MPLPC, PRE-LPC. The problems of speech signal adaptive filtering are also under consideration. Speech recognition methods are presented by dynamic time warping method based on restricted vocabulary.
Illustrative examples for application speech processing methods are given by programming in Matlab environment. On the base of special Matlab functions students execute 6 applications: phonemes analyses, frequency domain speech processing, cepstral analysis, vector quantization, adaptive filtering and separated words recognition. The Matlab simulink examples are used for and modulation studying. Course requirements are 34 hours for lectures and 17 hours for hands-on programming, tutorial and examination.
Lecture professor G.F.Malykhina.

back to program content

· OPERATING SYSTEMS CONCEPTS

Objectives : The main goal of the course is to discuss fundamental concepts of uni-processor and distributed operating systems which are applicable to a variety of systems regardless of the underlying hardware on which the system will run on. Also we are interested in graduates who may prepare different kind of applications using system calls and services.

Content: Concurrent processes, synchronization, process scheduling. Memory management, virtual memory, protection issues. Deadlock. Network management, load balancing, fault tolerance.

Laboratory works include: system calls for process management and interprocess communication in Linux, interprocess communication in distributed systems.

Duration: Lectures, laboratory works and exam, 52 hours.

Background: basic C programming

Course materials will be provided by the lecturer.

Lecturer: Ass. Prof. Marina Khloudova, Dpt. of Engineering Cybernetics, St.Petersburg State Technical University.

back to program content

· INTELLIGENT SYSTEMS AND KNOWLEDGE ENGINEERING

Objectives: basics of intelligent systems development. The main goal of course : to teach the basics of knowledge engineering.
Laboratory works include: expert system prototyping.
Course requirements Lectures 40, laboratory works 12 and an exam.

CONTENT
Lectures: 32 hours
1. Artificial intelligence (AI) as a basis of new information technology.Brief history of AI. Neurocybernetics: brief synopsys of evolution. Basic topics of artificial intelligence.
2. Knowledge and data. Classification of knowledge and models of knowledge. Knowledge representation models: Production, frames and semantic networks.
3. Expert system: definition, structure and classification. Life cycle of expert system, technology of rapid prototyping.
4. Knowledge engineering. Developers team for expert system building.
5. Strategies of knowledge acquisition. Theoretical aspects of knowledge elicitation: psychological, linguistical, gnoseological.
6. Textological methods of knowledge elicitation. Communicative methods of knowledge engineering: group and individual, active and passive.
7.Knowledge structuring and object-structured analysis.
8. Software environment for expert systems development.

Practice: 32 hours
Expert system development. Lisp - language N1 in AI . Expert systems shells EXSYS and Kappa.
Course is intended for bachelor/master level depending of the previous background. No special requirements to the knowledge level of students except basic computer skills.
Course materials will be provided by the lecturer.

Lecturer: Prof. Tatiana Gavrilova, DSc, Dpt. of Intelligent Computer Technologies, School of Computer Science, St.Petersburg State Technical University.

back to program content

· NEUROINFORMATICS AND NEUROTECHNOLOGIES

Objective

With the phenomenal growth in the area of intelligent systems and instruments in the past years, the subject of artificial neural networks, neurocomputing and its application has become extremely popularity. What is the reason of such interest? And why is this theme so popular? The answer to this questions can be found if to reflect: why, with a modern level of development of computer technologies, the human brain remains the most perfect computer.
The course provides the background of the neurocomputing methods with an emphasis on application to instrumentation. Laboratory practice intends to give you an initial knowledge and skill in programming the virtual instruments – special software instrumentation for intelligent data analysis and adaptive machine learning techniques. You will acquaint with original virtual instrumentation technologies and unique general-purpose graphical programming system LabVIEW for design of virtual instruments.
This course aims to combine two novel instrumentation concepts of neural net simulation algorithms for intelligent data analysis with virtual instruments engineering technology on base of LabVIEWR Graphical Programming Systems (National InstrumentsTM, USA).

Course Contents

Lecture 1: Neuroinformatics: Theory and Applications.
.Novel technologies of Computer Science via mathematical and technological point of view.
.Intelligent computing: symbol manipulation or pattern recognition?
.Ill-formalizable tasks in data analysis and signal processing.
.Adaptive, self-organizing and machine learning systems.
.Artificial Intelligence and knowledge-based systems.

Lecture 2: Paradigms of Neuroinformatics and Neurocomputation.
."Brain computer" paradigms.
.Biological prototype and artificial neuron.
.Neurocomputing and its paradigms.
.Knowledge representation in Neural Networks.

Lecture 3: Mathematical Models and Algorithms of Neurocomputation.
.Formal neuron and its characteristis.
.Models of neurons.
.Neural Network architectures.
.Mathematical description of Neural Network.

Lecture 4: Learning Theory Background.
.Algebraic approach to Learning via Optimization.
.Unconstrained Optimization: methods and algorithms.
.Stochastic Gradient Optimization, Boltzmann machine, Simulated annealing.

Lecture 5: Advanced Learning Theory

.Modern tendency of learning theory.Genetic algorithms and adaptive learning.Computational models of learning algorithm.

Lecture 6: Perceptron - Simplest Neural Network.
.Threshold Logic Units and Vectors Computation.
.Linear separation of Classes: 2-layer Perseptron.
.Nonlinear separation of Classes: Multilayer Perseptron.

Lecture 7: Supervised Learning of Perceptrons.
.Rosenblatt's learning rule.
.Delta-rule.
.Backpropagation algorithm.
.Modification of the Backpropagation algorithm.

Lecture 8: Multilayer Feedforward Networks.
.Models and Architectures of MLFN.
.MLFN as adaptive filtering. ADALINE and MADALINE nets.
.MLFN as universal approximators.
.RBF approximation and RBF-nets.

Lecture 9: Pattern Recognition with Neural Networks.
.Formulation of the pattern recognition problem.
.Statistical approach to pattern recognition.
.Neural network pattern classifier.
.General models and algorithms.

Lecture 10: Applications of Feed-Forward Neural Networks.
.Intelligent control with neural network.
.Medicine diagnostic with neural network.
.Sound recognition with neural network.

Lecture 11: Self-Organization in Neural Networks: Principle of Unsupervised Learning.
.Self-Organization and unsupervised learning from Observations.
.Information Extraction from Redundant Data.
.Mathematical Formulation of Self-Organization Task.
.Models of Unsupervised Rules for Self-Organizing NN.

Lecture 12: Self-Organization via Principal Component Analysis.
.Intuitive principles of self-organization.
.Statistic Characterization via principal component analysis.
.Self-Organization via Principal Component Analysis.
.Self-Organizing Neural Networks model for Principal Component Analysis.

Lecture 13: Competitive Models of Self-Organizing Neural Networks.
.Excitement Propagation Models of Self-organizing Neural Networks.
.Statistic Characterization via Clustering.
.Competitive Learning Rule.
.Self-Organizing Feature Maps.

Lecture 14: Information Analytical Theory of Self-Organizing Neural Networks.
.Information-Theoretic Models of Self-Organizing Neural Networks.
.Information Criterion of Self-Organization.
.Independent Component Analysis with Neural Networks.

Lecture 15: Applications of Self-Organizing Neural Networks.
.Application of Self-Organizing Neural Networks to Blind Source Separation.
.Application of Self-Organizing Neural Networks to Blind Features Extraction


back to program content