System Programming in Infocommunications

Major: Telecommunications and Radio Engineering
Code of subject: 7.172.00.M.011
Credits: 5.00
Department: Telecommunication
Lecturer: DSc. in enineering, Prof. Demydov I.V.
Semester: 2 семестр
Mode of study: денна
Мета вивчення дисципліни: The purpose of teaching the discipline is to prepare students for the development and support of software complexes based on telecommunication equipment, in particular, server system platforms and scalable service information communication solutions with a distributed architecture.
Завдання: The study of an educational discipline involves the formation of competencies in students of education: integral - the ability to solve complex specialized tasks and practical problems during professional activities in the field of telecommunications, radio electronics and electronic engineering or in the learning process, which involves the application of theories and methods of designing telecommunications software platforms and is characterized by the complexity and uncertainty of conditions. general competences: - acquisition of a flexible way of thinking, which makes it possible to understand and solve problems and tasks, while maintaining a critical attitude to established scientific concepts; - the ability to work independently and in a team, the ability to communicate with colleagues on issues of the industry regarding scientific achievements, both at the general level and at the level of specialists; - knowledge and understanding of the subject area and understanding of the profession; - skills in using information and communication technologies, implementing computer programs and using existing ones; - the ability to evaluate and maintain the quality of the work performed; professional (special) competences: - knowledge of the theory and methods of designing modern radio engineering systems; - knowledge of theories and methods of designing modern telecommunication systems and networks; - the ability to work with technical literature and search for the necessary technical information.
Learning outcomes: Knowledge of protocols and methods of building information communication networks in an amount sufficient for carrying out professional activities; Knowledge of software platforms and their application technologies for the development of specialized software for information communication networks; Knowledge of the basics of information security of telecommunication systems; Knowledge of the basics of information communication system programming to the extent sufficient for the development and support of specialized software systems; Ability to work in a team and present the results of one's activities.
Required prior and related subjects: Previous academic disciplines: Programming (by professional direction), part 1 (bachelor's degree); Programming (by professional direction), part 2 (bachelor's degree); Telecommunications Software (Bachelor); Software platform development technologies. Associated and following academic disciplines: Design of telecommunication systems and networks; Internet of things and ubiquitous computing.
Summary of the subject: Information communication system programming (or information communication systems programming) is a type of programming that consists in the development of programs that interact with system software (operating system, network platform) or hardware of a service network system. The main difference between system programming and application programming is that application software is intended for end users (e.g., word processors, graphics editors), while system programming results in programs that serve the hardware of network platforms or the operating system (e.g., client-server interfaces). It should be noted that "ordinary" application programs can use in their work code fragments characteristic of system programs, and vice versa; therefore, there is no clear boundary between application and system programming. Modern distributed information communication networks are a set of independent computers that are presented to their users as a single unified system. Two points are conditioned in this definition. The first refers to the hardware: all machines are autonomous, but united by some end-to-end network - a network platform. The second concerns software: users think they are dealing with a single system (a service network system). Each individual system programming paradigm is characterized by the presence of programming methods and a connection with the life cycle model. Common to different programming paradigms are the general principles of designing a software product. You can choose one or another programming paradigm from the point of view of ease of application for tasks and the production of a specific software product in the field of information communications.
Опис: 1. Concept of system programming of information communication platforms. General characteristics of programming languages. System programming paradigms. Declarativeness. Pseudo-parallel software platforms (Cisco IOS, Microsoft Windows .NET). Parallelized software platforms (multi-core environments C#, Erlang). Distributed information communication software platforms. The functional paradigm of the Erlang language. 2. Erlang parallel system programming language and modern system programming paradigms. Ideology of parallel programming. Distributed computing. 3. Erlang language. Syntax. Basic designs. Templates. The Erlang language. Polymorphism. Code efficiency. 4. Parallel processes and mechanisms of asynchronous information exchange. Basic software templates. 5. Erlang multicore parallelization toolkit. 6. Client-server template models. An example of a simple distributed client-server system. Distributed network systems in Erlang. 7. Standardized libraries of the Open Telecommunications Platform (Erlang OTP). Supervisory hierarchy of the software platform. 8. Processing of TCP Sockets, UDP messages. Approaches and technologies of intersystem interaction. DBMS platform Mnesia. 9. Characteristics of C#/ Parallel C# programming languages. 10. Characteristics of pseudo-parallel system programming. Features of Cisco IOS. Concepts of Microsoft .NET, NET API: Windows platforms, ASP.NET. UTS and COM. Concepts of object-oriented programming. Sun Microsystems Java Beans component model. Softswitch Infocommunications Platform: Parlay API/Parlay X Architecture.
Assessment methods and criteria: During their studies, students perform laboratory practice, which contains dozens of various practical-oriented tasks, the solution of which requires significant theoretical training in accordance with this program. Evaluation of the results of laboratory work is provided as the main form of current control. Blitz testing during lectures and laboratory sessions is also planned. Evaluating the results of an individual research task by defending them allows to motivate students with the aim of better learning and obtaining additional points. Semester examination control is carried out in writing on the basis of a developed set of examination tickets, which is approved at the appropriate meeting of the department.
Критерії оцінювання результатів навчання: • written reports on laboratory work, streaming blitz testing, evaluation of individual research tasks (defense) (40%); • final control (60% verification event, exam), written-oral form (60%)
Recommended books: 1. Cesarini, F. and Thompson, S. (2009) Erlang programming. Sebastopol, CA: O’Reilly. 2. Armstrong J. Programming Erlang. Software for a Concurrent World. Dallas, TX: The Pragmatic Bookshelf, 2007. – 519 pp.: illustrated. 3. Freeman, A. (2010) Pro .NET 4 parallel programming in C#. Berkeley, CA: Apress. 4. Neward T. Server-Based Java Programming. Grinwich: Manning, 2013. – 556 pp. 5. Sommerville, I. (2004) Software engineering. Boston: Pearson/Addison-Wesley. 6. Booch, G. (2007) Object-oriented analysis and design with applications. Reading, MA: Addison-Wesley. 7. Royce, W. (2010) Software project management: A unified framework. New Jersey: Pearson. 8. The Unified Software Development process (2012). New Jersey: Pearson Education (US). 9. Kent Beck: Extreme Programming Explained: Embrace Change, Addison–Wesley. First edition, 1999. Second edition, with Cynthia Andres, 2004. 10. E. Yourdon. Modern Structured Analysis. Prentice Hall, 1988. 11. T. DeMarco. Structured Analysis and System Specification. A Yourdon Book, Yourdon Inc., NY, 1979. 12. C. Sarson, T. Gane. Structured Systems Analysis. Englewood Cliffs, NJ.: Prentice-Hall, 1979. 13. Clarke, E.M. (2018) Model checking. Cambridge, MA: The MIT Press. 14. Vasudevan, S.K. et al. (2017) Software engineering. Oxford: Alpha Science International Ltd. 15. Bass, L., Clements, P. and Kazman, R. (2022) Software architecture in practice. Boston: Addison-Wesley. 16. Booch, G., Jacobson, I. and Rumbaugh, J. (2005) UML: The Unified Modeling Language User Guide: Thoroughly updated - the ultimative tutorial to the UML from the original designers. Upper Saddle River, NJ: Addison-Wesley. 17. Sanders, W.B. and Cumaranatunge, C. (2008) ActionScript 3.0 Design Patterns: Object Oriented Programming Techniques. Sebastopol: O’Reilly Media, Inc. 18. M. Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997. 19. Fowler, M. (2003) Patterns of enterprise application architecture. Boston: Addison-Wesley. 20. Landry, J.B. (1986) Software development technology. Arlington, Va. (1300 North 17th Street, Suite 300, Arlington 22209): ADAPSO. 21. Hilborn, E.H. (1965) Handbook of Engineering Psychology. Cambridge, Mass,: Tad. 22. Tanenbaum, A.S. and Steen, M.V. (2017) Distributed systems principles and paradigms. Upper Sddle River: Prentice-hall. 23. G. Alonso, F. Casati, H. Kuno, V. Machiraju. Web Services. Concepts, Architectures and Applications. Springer-Verlag, 2004. 24. Rubinger, A.L., Monson-Haefel, R. and Burke, B. (2010) Enterprise javabeans. Farnham: O’Reilly. 25. Enterprise JavaBeans Specification, version 2.1. 26. Доступно за посиланням http://java.sun.com/products/ejb/docs.html. 27. Сайт проекту NetBeans http://www.netbeans.org/.