Programming technologies
Course: Network and internet technologies
Structural unit: Faculty of information Technology
            Title
        
        
            Programming technologies
        
    
            Code
        
        
            ОК 12
        
    
            Module type 
        
        
            Обов’язкова дисципліна для ОП
        
    
            Educational cycle
        
        
            First
        
    
            Year of study when the component is delivered
        
        
            2024/2025
        
    
            Semester/trimester when the component is delivered
        
        
            5 Semester
        
    
            Number of ECTS credits allocated
        
        
            5
        
    
            Learning outcomes
        
        
            To be able to apply knowledge in the field of informatics and modern information technologies, computer and microprocessor technology and programming, software tools for solving specialized tasks and practical problems in the field of professional activity.
To be able to administer telecommunication systems, communication and telecommunication networks.
To know the means of automating the design and technical operation of telecommunications and radio equipment.
To be able to explain and reproduce the principles of construction and functioning of hardware and software complexes of control and maintenance systems and their application in information and telecommunication networks, telecommunication and radio engineering systems.
        
    
            Form of study
        
        
            Full-time form
        
    
            Prerequisites and co-requisites
        
        
            Knowledge of the complexity theory of algorithms, principles of designing and implementing algorithms, basics of combinatorics, theoretical foundations of statistics, principles of designing and functioning of computer networks, basic principles of software development based on client-server technology, basics of website development.
Possess elementary skills in designing algorithms for solving applied problems, implementing algorithms in any programming language, designing and implementing of web pages, working with operating systems of the Windows family and the Unix family and configuring applications in them, designing the organization's computer network.
        
    
            Course content
        
        
            This subject devotes the study of the main supporting technologies used in the development and deployment of software products. The subject integrates previously acquired theoretical knowledge and practical skills, forming a holistic view of the process of creating, implementing and deploying software products, ensuring the quality of software products according to current international standards, providing continuous integration of delivery/deployment of a software product, deploying a software product into the cloud. The subject allows to comprehensively present the technological processes of software products’ development and implementation, to acquire skills in the application of related technologies that are widely used in the software development process. The main focus is on learning and gaining practical skills in version control systems using (Git as an example), unit testing development using the JUnit/unittest library, Jenkins/Git Actions continuous integration tool configuration, using Docker for application containerization and cloud environments like Heroku, AWS for application deployment.
        
    
            Recommended or required reading and other learning resources/tools
        
        
            1. Duvall P. et al. Continuous Integration: Improving Software Quality and Reducing Risk / Paul Duvall, Stephen M. Matyas III and Andrew Glover. – Addison-Wesley Professional; 1 edition (June 29, 2007). – 320p.
2. Laster B. Jenkins 2: Up and Running: Evolve Your Deployment Pipeline for Next Generation Automation 1st Edition. – O'Reilly Media; 1 edition (May 31, 2018). – 606р.
3. Laster B. Professional Git. – Wrox; 1 edition (December 12, 2016) – 480р.
4. Loeliger J. Version Control with Git. Powerful tools and techniques for collaborative software development. – O'Reilly Media; Second edition (August 27, 2012). – 456 р.
5. Pathania N. Learning Continuous Integration with Jenkins Second Edition. – Packt Publishing Ltd. – 354р.
6. Silverman R. E. Git Pocket Guide: A Working Introduction,  O'Reilly Media; 1 edition (August 2, 2013). – 234р.
        
    
            Planned learning activities and teaching methods
        
        
            Lectures, laboratory work, practical activities, independent work
        
    
            Assessment methods and criteria
        
        
            The subject integrates various types of work, including independent work. The student has to assert laboratory work and practical task by completing an individual task during class and demonstrating the result to the teacher. For such topics as version control systems and the development of unit tests, the assertion takes place during team activity. The grade for the work depends on the correctness of the individual task. To monitor students' independent work and motivate their cognitive activity throughout the semester, a current blitz survey or mini tests (current control) is conducted at each lecture and laboratory lesson, during which students' answers are evaluated with appropriate points depending on the difficulty of the question. During the semester, after completing the study of the relevant topics (content parts), a control test or a written task is conducted. 
        
    
            Language of instruction
        
        
            Ukrainian
        
    Lecturers
This discipline is taught by the following teachers
Departments
The following departments are involved in teaching the above discipline