{"id":21913374,"url":"https://github.com/vilasmaciel/elearning-analytics-kata","last_synced_at":"2025-10-20T04:07:29.734Z","repository":{"id":91240107,"uuid":"189366168","full_name":"vilasmaciel/elearning-analytics-kata","owner":"vilasmaciel","description":"Simple kata to practice the Strategy Pattern","archived":false,"fork":false,"pushed_at":"2020-10-13T13:33:42.000Z","size":6,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T08:48:19.466Z","etag":null,"topics":["coding-dojo","java","kata","patterns","strategy-pattern"],"latest_commit_sha":null,"homepage":"","language":"Java","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/vilasmaciel.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}},"created_at":"2019-05-30T07:22:42.000Z","updated_at":"2019-05-30T12:17:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"36c00f16-401d-4ad3-addf-23ad80c75106","html_url":"https://github.com/vilasmaciel/elearning-analytics-kata","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vilasmaciel/elearning-analytics-kata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilasmaciel%2Felearning-analytics-kata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilasmaciel%2Felearning-analytics-kata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilasmaciel%2Felearning-analytics-kata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilasmaciel%2Felearning-analytics-kata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vilasmaciel","download_url":"https://codeload.github.com/vilasmaciel/elearning-analytics-kata/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vilasmaciel%2Felearning-analytics-kata/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267505099,"owners_count":24098346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["coding-dojo","java","kata","patterns","strategy-pattern"],"created_at":"2024-11-28T18:16:41.692Z","updated_at":"2025-10-20T04:07:24.687Z","avatar_url":"https://github.com/vilasmaciel.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eLearning Analytics Kata\n\nEn un sistema de analítica de datos educativos utilizamos las interacciones de los alumnos con\nlos contenidos digitales para obtener información de valor de cara al profesor.\n\nUno de los datos que solemos necesitar son los tiempos que transcurren entre interacciones, con el \nfin de obtener patrones de comportamiento. A estos tiempos le llamamos _Tiempos de Interación_ (TI) y se obtienen\nrestando los tiemstamps de cada interacción.\n\nEn este ejercicio disponemos de la clase _Attempt_, la cual contiene los datos relativos a un intento\nde un ejercicio, esta clase contiene todos los timestamps obtenidos de las interacciones \ngeneradas por el alumno.\n\nNuestro cliente nos ha ido pedido las siguientes funcionalidades:\n\n\n#### Fase 1\nAl principio del proyecto nos solicita que implementemos un servicio que devuelva\nun array con todos los TI para un intento, es decir, si tenemos tres interacciones:\n\n```$xslt\n[\"1559166393444\", \"1559166393644\" ,\"1559166393664\"]\n```\n\nla respuesta de este servicio será: \n\n```$xslt\n[\"200\", \"20\"]\n```\n\n#### Fase 2\nPasado un tiempo, el cliente descubre que los TI muy pequeños no \nrepresentan información de valor, por este motivo solicita que se eliminen todos los timestamps \ndel array que tengan una diferencia con el anterior de menos de 20 milisegundos, es decir, que produzcan\nun TI menor de 20 milisegundos. Le gustaría seguir teniendo el modo antiguo disponible, \npor lo que debemos parametrizar el servicio para indicarle que tipo de procesamiento queremos aplicar.\n\n```$xslt\n[\"1559166393444\", \"1559166393644\" ,\"1559166393664\", \"1559166393844\"]\n```\n\nel servicio tendría que eliminar el 3º elemento, y la respuesta sería: \n\n```$xslt\n[\"200\", \"200\"]\n```\n\n#### Fase 3\n\nTras poner en producción el sistema, los datos revelan que existen casos donde se pruducen tiempos\nexcesivamente grandes, los cuales son producidos por un mal uso de la plataforma, como dejar la sesión \nconectada de un día para otro. Estos tiempos ensucian los datos y deben ser eliminados, pero para hacerlo\nsolicitan que sean eliminados aquellos que se alejen en un 90% de la mediana de los tiempos. Este modo debe\nrealizar también la eliminación de los TI que se produce en la fase 2. De nuevo, quieren\ntener disponible la posibilidad de llamar a los dos modos anteriores de cálculo de TI.\n\n```$xslt\n[\"200\", \"1200\", \"155\", \"300\", \"540\"]\n```\n\nLa respuesta del servicio debería ser:\n\n```$xslt\n[\"200\", \"155\", \"300\", \"540\"]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilasmaciel%2Felearning-analytics-kata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvilasmaciel%2Felearning-analytics-kata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilasmaciel%2Felearning-analytics-kata/lists"}