Ruby programming

Course: Software Engineering

Structural unit: Faculty of Computer Science and Cybernetics

Title
Ruby programming
Code
ДВС.2.02
Module type
Вибіркова дисципліна для ОП
Educational cycle
Second
Year of study when the component is delivered
2023/2024
Semester/trimester when the component is delivered
5 Semester
Number of ECTS credits allocated
3
Learning outcomes
LO01. Analyze, purposefully search for and select the necessary information and reference resources and knowledge to solve professional problems, taking into account modern advances in science and technology. LO05. Know and apply relevant mathematical concepts, methods of domain, system and object-oriented analysis and mathematical modeling for software development. LO07. Know and apply in practice the fundamental concepts, paradigms and basic principles of operation of languages, tools and computing facilities of software engineering. LO10. Conduct a pre-project survey of the subject area, systematic analysis of the design object. LO13. Know and apply methods of algorithm development, software design and data and knowledge structures design.
Form of study
Distance form
Prerequisites and co-requisites
1.Knowledge: o Basic concepts of procedural and object-oriented programming. o Fundamentals of web programming. o Programming basics in languages C++, JavaScript. o Basics of designing relational databases. o Fundamentals of the SQL query language. o Basics of software testing. 2.Be able to: o Programming in procedural and object-oriented styles. o Programming in languages C++/JavaScript. o Formulating queries for relational databases in SQL. o Designing class hierarchies in C++/JavaScript. o Developing test coverage using frameworks like Google Test/Catch2/Boost Test. 3.Have skill: o Basic use of integrated development environments (IDEs) such as CLion/WebStorm/IntelliJ IDEA/Eclipse/NetBeans/Microsoft Visual Studio/Microsoft Visual Studio Code. o Basic skills in working with relational database management systems such as SQLite/MySQL/MariaDB/PostgreSQL.
Course content
The goal of the discipline is studying the basic concepts, mechanisms, and techniques of procedural, object-oriented, parallel, and web-oriented programming using the Ruby language, acquiring basic skills in designing, developing, and testing software..
Recommended or required reading and other learning resources/tools
1.H. Fulton, A. Arko: The Ruby Way, 3rd ed. // Addison-Wesley Professional, 2015. 2. L. Carlson, L. Richardson: Ruby Cookbook, 2nd ed. // O’Reilly Media, Inc., 2015. 3. M. Hartl: Ruby on Rails Tutorial: Learn Web Development with Rails. // Addison-Wesley Professional, 2017. 4. O. Fernandez: The Rails 5 Way. // Addison-Wesley Professional, 2018. 5. S. Ruby, D. Thomas, D.H. Hansson: Agile Web Development with Rails 5. // The Pragmatic Programmers, LLC, 2016. 6. P. Perrotta: Metaprogramming Ruby 2: Program Like the Ruby Pros, 2nd ed. // The Pragmatic Programmers, LLC., 2014. 7. P. Shaughnessy: Ruby Under a Microscope: An Illustrated Guide to Ruby Internals. // No Starch Press, 2014. 8. M. Seki: The dRuby Book: Distributed and Parallel Computing with Ruby. // The Pragmatic Programmers, LLC., 2012. 9. D. Thomas, C. Fowler, A. Hunt: Programming Ruby 1.9 & 2.0. // The Pragmatic Programmers, LLC, 2013..
Planned learning activities and teaching methods
Lectures, laboratory classes, independent work, tests, homework, defense of laboratory work, test.
Assessment methods and criteria
Intermediate assessment: -The maximal number of available points is 60: 1. Test work no. 1: LO 1.1- LO 1.7, LO 2.1- LO 2.5 – 15/9 points. 2. Test work no. 2: LO 1.12, LO 2.6- LO 2.10 – 15/9 points. 3. Independent work no. 1: LO 2.1-LO 2.10, LO 3.1, LO 3.2, LO 4.1, LO 4.2– 30/19 points. 4. Independent work no. 2: LO 2.1-LO 2.10, LO 3.1, LO 3.2, LO 4.1, LO 4.2– 40/24 points. Final assessment (in the form of test): - maximal number of available points is 40; - results of study to be assessed are LO 2.1- LO 2.10, LO 3.1, LO 4.1, LO 4.2; - form of test: writing.
Language of instruction
Ukrainian

Lecturers

This discipline is taught by the following teachers

Maksym M. Veres
Department of Intelligent Software Systems
Faculty of Computer Science and Cybernetics
Oleh O. Suprun
Department of Intelligent Software Systems
Faculty of Computer Science and Cybernetics