{"id":2382,"date":"2016-01-20T14:41:17","date_gmt":"2016-01-20T12:41:17","guid":{"rendered":"http:\/\/blue.pri.ee\/ttu\/?page_id=2382"},"modified":"2026-03-22T22:58:10","modified_gmt":"2026-03-22T20:58:10","slug":"homework-i","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/","title":{"rendered":"Homework I"},"content":{"rendered":"<div class=\"su-tabs su-tabs-style-default su-tabs-mobile-stack\" data-active=\"1\" data-scroll-offset=\"0\" data-anchor-in-url=\"yes\"><div class=\"su-tabs-nav\"><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Requirements<\/span><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Variant generator<\/span><\/div><div class=\"su-tabs-panes\"><div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Requirements\">\n<p>For homework I, you have to write a program based on the set requirements and document the results. The focus of this homework is in the correct use of files and structures alongside with common practices such as dividing code and command line arguments. Some variants will include use of enums.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Requirements_for_the_program\" >Requirements for the program<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Requirements_for_the_standards_and_environment\" >Requirements for the standards and environment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#General_requirements_for_the_solution\" >General requirements for the solution<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Input_data_file_requirements\" >Input data file requirements<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Documentation_template\" >Documentation template<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Documentation_requirements\" >Documentation requirements<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Extra_task_for_bonus_points\" >Extra task for bonus points<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Deadlines\" >Deadlines<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Submitting\" >Submitting<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Result_and_feedback\" >Result and feedback<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blue.pri.ee\/ttu\/programming-ii\/homework-i\/#Fixing_your_homework\" >Fixing your homework<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Requirements_for_the_program\"><\/span>Requirements for the program<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The code must adhere to all of the best practices introduced during Programming 1 and the first weeks of Programming 2.<\/p>\n<p>Your solution can include topics that have not been covered, as long as they are used correctly and well documented. You need to provide motivation why those concepts were used so that it clear, that you have mastered those topics.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Requirements_for_the_standards_and_environment\"><\/span>Requirements for the standards and environment<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>The program must be written in the C programming language. You are permitted to use the C90 and C99 standards. Using newer standards (C11, C17, C23) is permitted, if it provides additional value. This must be explained in the report.<\/p>\n<p>In addition to the standard C libraries, you are allowed to use C POSIX and GNU C libraries and extensions. Use of any other third party libraries must be agreed upon separately.<\/p>\n<p>Your program will be compiled and tested in a Linux environment, equivalent to the one in the lab computers (OpenSUSE SLED-15 SP5, using GCC-12) or with the latest Ubuntu version (Ubuntu Linux 25.10, using GCC-15 or later). Compatibility with Windows or MacOS is not required.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"General_requirements_for_the_solution\"><\/span><strong>General requirements for the solution<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>The source code has to be divided into more than one file. Exact number of files is and the division left to the author of the solution.\n<ul>\n<li>At minimum, a source and a header file must be presented<\/li>\n<li>If multiple .c files are used, a Makefile must be provided to compile the solution<\/li>\n<\/ul>\n<\/li>\n<li>The program must accept the name of the input data file as a command line argument\n<ul>\n<li>The behavior, when the argument with the name of the file is not provided or the file could not be opened, is up to the developer. Chosen behavior must be documented!<\/li>\n<\/ul>\n<\/li>\n<li>The result of the program must be shown both on the screen and saved in an output file\n<ul>\n<li>The output file will only contain the results of the program<\/li>\n<li>The results of the program must also be presented on the screen. You are allowed to be more verbose in your terminal output, include interim results\u00a0 and additional relevant information, confirmations, prompts for input etc.<\/li>\n<li>The output needs to be clear and understandable<\/li>\n<li>The name of the output file is left to the developer<\/li>\n<\/ul>\n<\/li>\n<li>The program must work with data files where the length of the file is not predefined. Adding or removing some lines from the data file should not cause any issues\n<ul>\n<li>Defining the maximum number of lines the program can handle is allowed. If there are more entries in the data file, reading them is not necessary.<\/li>\n<li>There is no need for dynamic memory allocation -we will cover that in the next homework. You are still allowed to use it, if you handle it properly (only allocating for what you need, checking the allocation, freeing the memory etc).<\/li>\n<\/ul>\n<\/li>\n<li>The data is read from the input file and stored in a <span class=\"lang:c highlight:0 decode:true crayon-inline \">struct<\/span>\u00a0 array. The task description may also require use of nested structures. You are free to add additional members and nested structures to the solution. You can also add additional structs, if it makes sense for the solution.<\/li>\n<li>The program must provide a reasonable user experience (UX)\n<ul>\n<li>The program must notify the user of any errors encountered in a clear manner. The message must be precise and helpful to the user to solve the issue. All error messages must be written to the <span class=\"lang:c highlight:0 decode:true crayon-inline \">stderr<\/span>\u00a0 standard stream.<\/li>\n<li>When user input is expected, the prompt must be clear to the user. If the input needs to be in a specific format, you must provide the user with the expected format. If applicable, add an example of how the input should be written.<\/li>\n<li>If the program contains searching, filtering or grouping features and there are no matches the set criteria, it must be written explicitly to the user.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Input_data_file_requirements\"><\/span>Input data file requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>The data file <strong>must<\/strong> only contain fields described in your task variant (nothing extra, none skipped)<\/li>\n<li>Data model for the input file is <strong>created<\/strong> by the author of the solution based on their capabilities and knowledge. This includes data field delimiters, order of data fields, data field contents,\u00a0 complexity,\u00a0 etc. The chosen data model and the decisions for it are <strong>documented<\/strong> by the author in the document provided alongside the program.<\/li>\n<li>The data records will be created by the author of the solution and submitted with the solution. The data file must contain at least 10 entries. If the author of the work presents multiple data files for demonstrating different scenarios, the length requirement only applies to one of the data files.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Documentation_template\"><\/span>Documentation template<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Use the same templates as you used in Programming 1, Homework 1 (<a href=\"https:\/\/blue.pri.ee\/ttu\/programming-i\/homework-i\/#Report\">https:\/\/blue.pri.ee\/ttu\/programming-i\/homework-i\/<\/a>) and adjust it to fit the requirements of this homework.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Documentation_requirements\"><\/span>Documentation requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The expected length of the main written content is 3 &#8211; 6 A4 pages long, excluding any figures.<\/p>\n<p><strong>Focus on structured documentation!\u00a0<\/strong> Avoid story-telling (except summary).<\/p>\n<ul>\n<li>Title page<\/li>\n<li>Declaration of originality<\/li>\n<li>List of abbreviations and terms (if needed)<\/li>\n<li>Table of contents<\/li>\n<li>List of figures<\/li>\n<li>List of tables<\/li>\n<li>The task description (variant)<\/li>\n<li>Detailed description of the solution (<strong>no walls of text!<\/strong>)\n<ul>\n<li>A brief description of what the program does<\/li>\n<li>Program workflow &#8211; In what order are things done? (Do <strong>not<\/strong> go into details! Half a page maximum!)<\/li>\n<li>Project structure &#8211; names of files, short description. If code is divided into directories, explain the division.<br \/>\nRecommended: show output of <span class=\"lang:c highlight:0 decode:true crayon-inline \">tree<\/span>\u00a0 application<\/li>\n<li>Document the structures\n<ul>\n<li>Purpose of the structure<\/li>\n<li>Details (member name, data type, description, example value), formatted as a table<\/li>\n<\/ul>\n<\/li>\n<li>Document the enumerations (if applicable)\n<ul>\n<li>Name, description and possible values of the <span class=\"lang:c highlight:0 decode:true crayon-inline \">enum<\/span><\/li>\n<\/ul>\n<\/li>\n<li>Special situation \/ error handling\n<ul>\n<li>Description of issue<\/li>\n<li>What&#8217;s the status of it &#8211; did you solve it, work around it, is it still present in the code<\/li>\n<li>If it was mitigated, how did you mitigate it<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Data file structure\n<ul>\n<li>Structure of one record (data field order, separators between fields, separators between records)<\/li>\n<li>Data fields &#8211; name, data type, example of a value, meaning of data (semantics), any limitations (e.g. length, value range, illegal values)<\/li>\n<li>Present a single data record from the file as an example.<\/li>\n<\/ul>\n<\/li>\n<li>How-to guide for using your program. Describe all options that can be used regarding command line arguments.<\/li>\n<li>Extra task (if applicable)<\/li>\n<li>Summary\n<ul>\n<li>Write a few sentences about your approach to the task and progression during it<\/li>\n<li>Write a few sentences about the task itself and the complexity of it<\/li>\n<li>If possible, give an estimate on the workload<\/li>\n<li>Would you recommend using this task in the future? Would you change anything about it and if so, what?<\/li>\n<li>Additional comments, emotions, thoughts<\/li>\n<\/ul>\n<\/li>\n<li>References (can be omitted if not present)\n<ul>\n<li>Use IEEE style for references<br \/>\nEnglish official reference: <strong><a href=\"https:\/\/journals.ieeeauthorcenter.ieee.org\/wp-content\/uploads\/sites\/7\/IEEE_Reference_Guide.pdf\">https:\/\/journals.ieeeauthorcenter.ieee.org\/wp-content\/uploads\/sites\/7\/IEEE_Reference_Guide.pdf<\/a><br \/>\n<\/strong>Reference help by TalTech (in Estonian): <strong><a href=\"https:\/\/haldus.taltech.ee\/sites\/default\/files\/2024-05\/IEEE_stiilis_viitamine_2024%20%281%29.pdf\">https:\/\/haldus.taltech.ee\/sites\/default\/files\/2024-05\/IEEE_stiilis_viitamine_2024%20%281%29.pdf<\/a><\/strong><\/li>\n<li>Everything that wasn\u2019t covered within the subject and that you didn\u2019t create on your own.<\/li>\n<li>This includes help from a friend or a colleague:\u00a0<strong><a href=\"https:\/\/libraryguides.vu.edu.au\/ieeereferencing\/personalcommunication\">https:\/\/libraryguides.vu.edu.au\/ieeereferencing\/personalcommunication<\/a><\/strong><\/li>\n<li>Use of AI tools must be referenced (i.e. ChatGPT, Gemini, &#8230;)<\/li>\n<li>All references must be precise.\u00a0<em>References such as stackoverflow.com or google.com are meaningless. It must be directly to the page where you got the information from.<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Screen capture(s) of the program\n<ul>\n<li>Screenshots can be added as an appendix or embedded within the write up of the solution \u2013 in this case you can extend the length by the amount of pictures<\/li>\n<li>The screenshots should show both normal operation and operation in various error situations<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Extra_task_for_bonus_points\"><\/span>Extra task for bonus points<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>It is possible to earn up to 15 bonus points from the task. In order to get any points, you must include the added features to the report. It is possible to obtain partial bonus points if not all requirements are met.<\/p>\n<p>To get bonus points, the following requirements must also be met in addition to the base requirements<\/p>\n<ul>\n<li>Comprehensive support for command line arguments\n<ul>\n<li>It must be possible to use the program without command line arguments, using default values.<\/li>\n<li>Must support use of a different input file name<\/li>\n<li>Must support use of a different output file name<\/li>\n<li>Must support disabling printing on the screen<\/li>\n<li>Must support disabling writing the output to the file<\/li>\n<li>You must figure out a reasonable way to allow for the use of these options &#8211; this includes allowing for multiple options to be used at the same time.<\/li>\n<li>You can write the handling of command line arguments manually or use\u00a0<span class=\"lang:c highlight:0 decode:true crayon-inline \">unistd.h<\/span>\u00a0 or <span class=\"lang:c highlight:0 decode:true crayon-inline \">argp.h<\/span>\u00a0 libraries for parsing.<\/li>\n<\/ul>\n<\/li>\n<li>The program must hold the default values in a separate configuration file, provided with the solution. During the execution of the program, the settings are to be kept in a separate <span class=\"lang:c highlight:0 decode:true crayon-inline \">struct<\/span>\u00a0 dedicated for settings. This struct is allowed to be a global variable.\n<ul>\n<li>At minimum, the configuration file needs to hold the name of the input and output files and output settings (output to the terminal enabled, output to the file enabled). Additional settings are allowed to support the application better.<\/li>\n<li>The configuration file must be written in a way, that if the order of the settings changes, it will still be correctly processed.<\/li>\n<li>The values in the settings file are used when no command line arguments are provided<\/li>\n<li>If any of the values are passed using command line arguments, they will be used in place of the value in the settings file (e.g. if the name of the input file is provided, it will be used for the input, but all other settings are taken from the settings file). The values in the settings file must not be overwritten.<\/li>\n<\/ul>\n<\/li>\n<li>You must add a level 1 heading to the documentation called \u201cExtra task\u201d.\n<ul>\n<li>Describe the added features<\/li>\n<li>Describe the process on how you approached supporting the command line arguments<\/li>\n<li>Explain the reasoning how you created the settings file and made it work even if the order of the values changes.<\/li>\n<li>Write a specification of the options supported by the specification file.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Deadlines\"><\/span>Deadlines<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"color: #ff0000;\"><strong>A complete homework must be submitted no later than 15.03.2026 23:59:59 (local time)<\/strong><\/span><\/p>\n<p>Each day passed the homework deadline will deduct 1 point from the final homework score. The late penalty is capped at 30 points.<\/p>\n<p>If we have questions about the submitted homework or are not sure about the original author of this work, we will grade this with 0p. In this case, the work must be defended.<\/p>\n<p>If it becomes necessary, we will enforce the rules and guidelines of [<a href=\"https:\/\/haldus.taltech.ee\/sites\/default\/files\/2020-10\/Terviktekst_IT-teaduskonna%20%C3%B5ppuri%20akad%20tavade%20rikkumise%20ja%20v%C3%A4%C3%A4ritu%20k%C3%A4itumise%20menetlemise%20kord_ENG.pdf\">Procedure for processing a student\u2019s violation of academic practices and contemptible behavior in the School of Information Technologies<\/a>]\n<p data-select-like-a-boss=\"1\"><span style=\"color: #ff0000;\"><strong>We will only accept Your homework until the lockdown date (check introduction slides). Past that, submitting your homework will not be possible.<\/strong><\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Submitting\"><\/span>Submitting<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The homework needs to be submitted in the Moodle course under Homework 1.<\/p>\n<p><strong>Files required:<\/strong><\/p>\n<ol>\n<li>Documentation (pdf)<\/li>\n<li>All of the code files (.c and .h) to compile the program. If multiple files are used, a Makefile is also required.<\/li>\n<li>Data files required to run the program<\/li>\n<\/ol>\n<p>Naming schema: HW1_lastname[_filename]\n<p>Naming schema only applies to files directly uploaded to Moodle. It does not apply to files stored in the archive. Even if uploaded as an archive, the PDF file must be uploaded separately!<\/p>\n<p>Example (separate files):<\/p>\n<p style=\"padding-left: 30px;\">HW1_Tiib.c<br \/>\nHW1_Tiib.h<br \/>\nHW1_Tiib_data.txt<br \/>\nHW1_Tiib_report.pdf<\/p>\n<p>Example (project as an archive):<\/p>\n<p>Example:<\/p>\n<p style=\"padding-left: 30px;\">HW1_Tiib_project.zip<br \/>\nHW1_Tiib_report.pdf<\/p>\n<p><strong>NB! If you changed the names of the files before uploading, make sure your solution still compiles and works with the new names!<\/strong><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Result_and_feedback\"><\/span>Result and feedback<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>After your work has been checked and graded, you will see the result and feedback on Moodle (visible from your gradebook only!). If everything was well done, feedback may be absent.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Fixing_your_homework\"><\/span><span id=\"Fixing_your_homework\" class=\"ez-toc-section\"><\/span>Fixing your homework<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>You are allowed to fix and improve your homework score until the date of homework lockdown. All fixed submissions are subject to defense.<\/p>\n<p>To fix your homework, first go through your feedback. Then contact your teacher and agree upon the process of how this homework can be fixed.<\/p>\n<p>NB! If fixing the homework changes more than half of the original homework, it is considered as submitting a completely new homework, from which minus points can be deducted from depending on the time of submission.<\/p>\n<\/div>\n<div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Variant generator\">\n\n<!-- iframe plugin v.6.0 wordpress.org\/plugins\/iframe\/ -->\n<iframe loading=\"lazy\" src=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0584\/kodutoo1\/pr2_hw1_en.html\" width=\"100%\" height=\"700\" scrolling=\"yes\" class=\"iframe-class\" frameborder=\"0\"><\/iframe>\n\n<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":2340,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width.php","meta":{"footnotes":""},"class_list":["post-2382","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/2382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/comments?post=2382"}],"version-history":[{"count":23,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/2382\/revisions"}],"predecessor-version":[{"id":11321,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/2382\/revisions\/11321"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/2340"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=2382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}