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
2021/2022
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


Faculty of information Technology

Departments

The following departments are involved in teaching the above discipline

Faculty of information Technology