{"id":27165956,"url":"https://github.com/viktorsvertoka/goit-cs-hw-04","last_synced_at":"2026-02-10T06:32:47.621Z","repository":{"id":209187674,"uuid":"723115631","full_name":"ViktorSvertoka/goit-cs-hw-04","owner":"ViktorSvertoka","description":"Home task for Computer Systems and Their Fundamentals course💾","archived":false,"fork":false,"pushed_at":"2024-11-19T19:36:31.000Z","size":1533,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-21T14:56:10.994Z","etag":null,"topics":["goit","goit-cs-hw-04","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ViktorSvertoka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-24T18:17:02.000Z","updated_at":"2024-11-22T20:11:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"865e4aa5-bbd4-4461-8010-660b7561fb46","html_url":"https://github.com/ViktorSvertoka/goit-cs-hw-04","commit_stats":null,"previous_names":["viktorsvertoka/react-test","viktorsvertoka/hw-3","viktorsvertoka/goit-cs-hw-04"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ViktorSvertoka/goit-cs-hw-04","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViktorSvertoka%2Fgoit-cs-hw-04","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViktorSvertoka%2Fgoit-cs-hw-04/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViktorSvertoka%2Fgoit-cs-hw-04/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViktorSvertoka%2Fgoit-cs-hw-04/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ViktorSvertoka","download_url":"https://codeload.github.com/ViktorSvertoka/goit-cs-hw-04/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViktorSvertoka%2Fgoit-cs-hw-04/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29292095,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T03:42:42.660Z","status":"ssl_error","status_checked_at":"2026-02-10T03:42:41.897Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["goit","goit-cs-hw-04","python"],"created_at":"2025-04-09T03:37:18.987Z","updated_at":"2026-02-10T06:32:47.584Z","avatar_url":"https://github.com/ViktorSvertoka.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Домашнє завдання до модуля “Конкурентність та паралелізм”\n\nПривіт 😉\n\nСьогодні в рамках домашнього завдання ви застосуєте концепції багатопроцесорного та багатопотокового програмування для розробки ефективної програми паралельного пошуку заданих ключових слів у текстових файлах.\n\nУ процесі виконання ви:\n\n- навчитеся працювати з файлами в контексті багатопотокового та багатопроцесорного програмування;\n- зрозумієте, як розподіл завдань на потоки або процеси впливає на продуктивність і ефективність обробки даних.\n\nЦе завдання не лише поглибить розуміння багатопотокового та багатопроцесорного програмування, дозволить порівняти ефективність обох підходів, але й надасть практичні навички використання цих концепцій для оптимального розподілу завдань і використання ресурсів у програмах.\n\n### Підготовка та завантаження домашнього завдання\n\n1. Створіть публічний репозиторій `goit-cs-hw-04`.\n\n2. Виконайте завдання та відправте його у свій репозиторій.\n\n3. Завантажте робочі файли на свій комп’ютер та прикріпіть їх у LMS у форматі `zip`. Назва архіву повинна бути у форматі `ДЗ4_ПІБ`.\n\n4. Прикріпіть посилання на репозиторій `goit-cs-hw-04` та відправте на перевірку.\n\n### Формат оцінювання\n\n- Оцінка від 0 до 100.\n\n\u003e [!NOTE]\n\u003e\n\u003e 👉🏻 Якщо є помилки або недоліки виконання, кількість балів за кожне завдання зменшується пропорційно до наявних помилок на розсуд ментора.\n\n\u003e [!TIP]\n\u003e\n\u003e 💡 Відправляйте ДЗ на перевірку, коли зроблено все можливе, оскільки кількість спроб здачі завдання впливає на отриманий бал!\n\u003e За кожну наступну спробу після другої (тобто з третьої) максимальна можлива кількість балів зменшується на 5.\n\u003e Критерії оцінювання робіт у магістратурі GoIt Neoversity\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e ☝🏻 УВАГА!!\n\u003e У вас є можливість обрати підхід до виконання та можливого доопрацювання домашнього завдання:\n\u003e\n\u003e 1. задовольнитися першою отриманою оцінкою (звісно ж, якщо вона вище прохідного бала),\n\u003e 2. намагатися отримати вищий бал шляхом можливого послідуючого доопрацювання роботи у відповідності з фідбеком ментора.\n\u003e\n\u003e Обраний підхід до виконання ДЗ необхідно зазначити у полі для здачі до прикріпленого завдання. За відсутності коментаря ментор дотримується першого підходу й виставляє отриману оцінку.\n\n### Формат здачі\n\n- Прикріплені файли репозиторію у форматі `zip` з назвою ДЗ4_ПІБ.\n- Посилання на репозиторій.\n\n## Технiчний опис завдання\n\nРозробіть програму, яка паралельно обробляє та аналізує текстові файли для пошуку визначених ключових слів. Створіть дві версії програми: одну — з використанням модуля `threading` для багатопотокового програмування, та іншу — з використанням модуля `multiprocessing` для багатопроцесорного програмування.\n\n### Покрокова інструкція\n\n1. Реалізація багатопотокового підходу до обробки файлів (використовуючи `threading`):\n\n- Розділіть список файлів між різними потоками.\n- Кожен потік має шукати задані ключові слова у своєму наборі файлів.\n- Зберіть і виведіть результати пошуку з усіх потоків.\n\n2. Реалізація багатопроцесорного підходу до обробки файлів (використовуючи `multiprocessing`):\n\n- Розділіть список файлів між різними процесами.\n- Кожен процес має обробляти свою частину файлів, шукаючи ключові слова.\n- Використайте механізм обміну даними (наприклад, через `Queue`) для збору та виведення результатів пошуку.\n\n### Критерії прийняття\n\n- Реалізовано багатопотоковий та багатопроцесорний підходи до обробки файлів.\n- Забезпечено розподілення файлів між потоками/процесами.\n- Код вимірює та виводить час виконання для кожної з версій.\n- Забезпечено обробку помилок і винятків, особливо при роботі з файловою системою.\n- Обидві версії програми повертають словник, де ключ — це пошукове слово, а значення — список шляхів файлів, де це слово знайдено.\n\n\u003e [!WARNING]\n\u003e\n\u003e Критерії прийняття домашнього завдання є обов’язковою умовою оцінювання домашнього завдання ментором. Якщо якийсь з критеріїв не виконано, ДЗ відправляється ментором на доопрацювання без оцінювання.\n\u003e Якщо вам “тільки уточнити”😉 або ви “застопорилися” на якомусь з етапів виконання— звертайтеся до ментора у Slack\n\n### Результат виконаного завдання № 1\n\n![Results](./print_screens/01_print_screen.png)\n\n### Результат виконаного завдання № 2\n\n![Results](./print_screens/02_print_screen.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviktorsvertoka%2Fgoit-cs-hw-04","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviktorsvertoka%2Fgoit-cs-hw-04","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviktorsvertoka%2Fgoit-cs-hw-04/lists"}