{"id":5125,"date":"2020-08-17T17:50:26","date_gmt":"2020-08-17T15:50:26","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?p=5125"},"modified":"2025-09-01T21:57:36","modified_gmt":"2025-09-01T19:57:36","slug":"1-lab-hello-world","status":"publish","type":"post","link":"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/","title":{"rendered":"PR1EN1: Hello world"},"content":{"rendered":"<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\/labs\/1-lab-hello-world\/#Lab_materials\" >Lab materials<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Tasks\" >Tasks<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Task_1_W01-1_Parity_check_base_task\" >Task 1 [W01-1]: Parity check (base task)<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Requirements\" >Requirements<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Task_background\" >Task background<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Pseudo_code\" >Pseudo code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Algorithm\" >Algorithm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#How_to_solve_the_task\" >How to solve the task<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Testing\" >Testing<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Extra_task_W01-2_Division_by_3_and_5\" >Extra task [W01-2]: Division by 3 and 5<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Requirements-2\" >Requirements<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Background\" >Background<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Testing-2\" >Testing<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#After_this_class_you_should\" >After this class, you should<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/#Additional_content\" >Additional content<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Lab_materials\"><\/span><strong>Lab materials<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Slides: <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/slaidid-en\/00_Introduction.pdf\"><strong>Introduction<\/strong><\/a><\/li>\n<li>Slides: <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/slaidid-en\/01_hello.pdf\"><strong>Hello<\/strong><\/a><\/li>\n<li>Commented version of the example code: <a href=\"https:\/\/blue.pri.ee\/ttu\/programming-i\/samples\/hello-c-2025\/\">hello.c<\/a><\/li>\n<li>Slides: <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/slaidid-en\/01_conditionals.pdf\"><strong>Condi<\/strong><strong>t<\/strong><strong>ionals<\/strong><\/a><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Tasks\"><\/span>Tasks<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Most likely everything in this lab is completely new to you. Because of this, most of the lab we&#8217;ll be working together &#8211; lecturer shows things in front and you&#8217;ll follow along on your computer.<\/p>\n<p>In the end of the lab, you&#8217;ll have one base task to complete and defend. Faster ones will also be able to complete and defend the extra task.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Task_1_W01-1_Parity_check_base_task\"><\/span>Task 1 [W01-1]: Parity check (base task)<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<h5><span class=\"ez-toc-section\" id=\"Requirements\"><\/span><strong>Requirements<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>User is asked for and must be able to enter an integer<\/li>\n<li>Program must prints the entered number<\/li>\n<li>Program must print if the entered integer was odd or even<\/li>\n<\/ul>\n<p>NB! In addition to functional requirements, the program\u00a0 must also follow the style requirements. Most common errors are related to indentation (number of spaces from the left before the code), missing spaces surrounding operators (e.g. space before and after equal sign) and lack of empty lines to indicate different logical parts of the program.<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Task_background\"><\/span>Task background<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Modulo division is widely used as a means of creating a checksum. E.g. it can be used to validate your Estonian ID code or bank card number.<\/p>\n<p>In this task we are doing modulo 2 division &#8211; i.e. dividing the number by 2 and taking the remainder. This allows us to check if the number is odd or even. Parity check is one of the simplest ways to do error checking in data transfers &#8211; e.g. if the amount of bits in a data packet with the value &#8216;1&#8217; is odd or even? This can be used to check if there was a data transmission error (though as said before, this will only catch extremely simple errors).<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Pseudo_code\"><\/span>Pseudo code<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Pseudo code is one way of describing algorithms. It uses similar structure to a program, but does not adhere to language specific rules such as syntax requirements. This means pseudo code is typically human readable without knowledge of programming.<\/p>\n<pre class=\"toolbar:2 nums:false lang:default highlight:0 decode:true\">The user will enter an integer\r\nIf the entered number is even:\r\n    Print: \u201eThe entered number is even\u201c\r\nElse:\r\n    Print: \u201eThe entered number is odd\u201c\r\nEnd of program\r\n<\/pre>\n<h5><span class=\"ez-toc-section\" id=\"Algorithm\"><\/span>Algorithm<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>The task is modeled together in a class, to show you some of the techniques around formatting the diagram &#8211; e.g. how to create a conditional statement, using right angles when creating control flows etc. For the sake of completeness of the task specification, we have also given one of the two possible forms of this algorithm in this page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10368\" title=\"\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/09\/w1_parity.png\" alt=\"\" width=\"385\" height=\"330\" \/><\/p>\n<h5><span class=\"ez-toc-section\" id=\"How_to_solve_the_task\"><\/span>How to solve the task<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>When solving the task, follow both the algorithm and the code snippets provided on the slides. This task resembles a lego that needs to be assembled correctly.<\/p>\n<ol>\n<li>Start by creating a new file. Save it in a subdirectory for Programming course on your P drive using a\u00a0\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">.c<\/span>\u00a0 file extension- e.g. <span class=\"lang:c highlight:0 decode:true crayon-inline\">paritycheck.c<\/span> .<\/li>\n<li>Now write the template code from the last slide into your code file. We will be showing you this on the projector as well. Note that we have left a mistake in the template! You should immediately notice it if you try to compile the program at its current state. Fix the mistake before proceeding to work on the task. If necessary, look in your <span class=\"lang:c highlight:0 decode:true crayon-inline\">hello.c<\/span>\u00a0 program for a similar line &#8211; you should find a solution and explanation in the comment of your code.<\/li>\n<li>The next piece of the puzzle is the code structure for a conditional statement. Find how to find the conditional if\/else statement from the slides and write the structure into your program. Don&#8217;t copy code &#8211; writing helps with your muscle memory. Make sure to pay attention to the indentation of the code and the space following the\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">if<\/span> keyword. Poorly formatted code will not pass the defense.<\/li>\n<li>Third piece of the puzzle is the condition itself (goes within the parenthesis for the\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">if<\/span>\u00a0 statement. Just as a reminder, the task is to check if an entered number is odd or even. Examples of conditions are provided on the slides. After creating the conditional statements, try to compile and make sure there are no errors!<\/li>\n<li>The last piece of the puzzle is the contents for the code blocks so that the result would be printed correctly. For this you need to write two calls to the\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">printf()<\/span>\u00a0 function. They should look something similar to the following code statement:\n<pre class=\"toolbar:2 lang:c decode:true\">printf(\"The number &lt;.........&gt; is an &lt;........&gt; number\\n\");<\/pre>\n<p><strong>Notice<\/strong>, that we left in two blanks. One of them needs to contain the number entered by the user. The second one whether it was an odd or an even number.<\/li>\n<\/ol>\n<h5><span class=\"ez-toc-section\" id=\"Testing\"><\/span>Testing<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>This program has two possible outcomes &#8211; the number is either even or odd. To test your program, you need to run the program twice, covering both of these tests.<\/p>\n<p><strong>Test 1:<\/strong> even number<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:default highlight:0 decode:true\" title=\"Sample 1: even integer test\">Please enter an integer:\r\n2\r\nThe number 2 is an even number.<\/pre>\n<p><strong>Test 2:<\/strong> odd number<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:default highlight:0 decode:true\" title=\"Sample 2: odd integer test\">Please enter an integer:\r\n19\r\nThe number 19 is an odd number.<\/pre>\n<p><strong>Everything worked as intended? Good, you are almost done!<\/strong><\/p>\n<p>Remember that the code has to be readable and maintainable. To achieve this, all programmers must adhere to coding style. Compare the look of your code to previous programs and examples from this class. Pay attention to<\/p>\n<ul>\n<li>Use of spaces (before and after mathematical operators, after the <span class=\"lang:c highlight:0 decode:true crayon-inline \">if<\/span>\u00a0 keyword<\/li>\n<li>Indentation &#8211; how many spaces must be left empty from the left of the text document on each line. Indentation by 1 is typically considered to be 1 tab or 4 spaces. <strong>The statements inside of a code block (indicated by the curly braces) always increase indentation by 1.<\/strong> This means that the code in the main function should be indented one (e.g. asking for input, reading input, return statement), but the printing of the result should be indented once more, because they are inside of another (nested) code block.<\/li>\n<li>Use empty lines to visually separate different parts of code (before <span class=\"lang:c highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 function, before the <span class=\"lang:c highlight:0 decode:true crayon-inline \">if<\/span>\u00a0 statement, before the <span class=\"lang:c highlight:0 decode:true crayon-inline \">return<\/span>\u00a0statement)<\/li>\n<\/ul>\n<p><strong>Code both functional and readable? Now let us know that you want to defend your task!<\/strong><\/p>\n<h4><span class=\"ez-toc-section\" id=\"Extra_task_W01-2_Division_by_3_and_5\"><\/span><strong>Extra task [W01-2]: Division by 3 and 5<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Before solving this task, solve the base task! You should first defend the base task and then the extra task.<\/p>\n<p>Read on how to use logical operators: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/coding-guides\/conditional-statements\/#Logical_operators\">https:\/\/blue.pri.ee\/ttu\/coding-guides\/conditional-statements\/#Logical_operators<\/a><\/strong><\/p>\n<h5><span class=\"ez-toc-section\" id=\"Requirements-2\"><\/span><strong>Requirements<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>User is asked for and must be able to enter an integer<\/li>\n<li>Program must print whether the entered number is divisible by 3, divisible by 5, divisible by both or neither of them.<\/li>\n<li>The program must find the multiples and remainders by dividing the number by both 3 and 5. All four results must be printed regardless of the divisibility.<\/li>\n<li>Calculations (e.g. divisions) can only be done once. If you need to use the result multiple times in your code, store it in a variable.<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Background\"><\/span><strong>Background<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>The task is based on a classical interview question used for recruiting software developers. This is a modified version of the FizzBuzz task.<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Testing-2\"><\/span>Testing<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Based on the divisibility checks, you have 4 possible outcomes that must all be tested.<\/p>\n<p><strong>Test 1:<\/strong> Number is divisible by both 3 and 5<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\" title=\"Sample 1: divisible by both\">Enter a number to check: 15\r\nDivisible by both 3 and 5.\r\nBy dividing 15 with 3, we get 5 multiples of 3 and a remainder of 0.\r\nBy dividing 15 with 5, we get 3 multiples of 5 and a remainder of 0.<\/pre>\n<p><strong>Test 2:<\/strong> Number is divisible by 3 only<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true \" title=\"Sample 2: divisible by 3 only\">Enter a number to check: 27\r\nDivisible by 3 only.\r\nBy dividing 27 with 3, we get 9 multiples of 3 and a remainder of 0.\r\nBy dividing 27 with 5, we get 5 multiples of 5 and a remainder of 2.<\/pre>\n<p>Figure the last 2 tests out on your own and make sure it works in all cases!<\/p>\n<h3><span class=\"ez-toc-section\" id=\"After_this_class_you_should\"><\/span><strong>After this class, you should<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Understand the requirements for this subject, including how to get a grade<\/li>\n<li>Be able to log into Linux on the class computer<\/li>\n<li>Know the main software we use in this class<\/li>\n<li>Know your way around the environments &#8211; where to find what<\/li>\n<li>Know what is the C programming language, how does the program structure look like and how to write a basic program.<\/li>\n<li>Know the structure of a C program and be able to write, compile and execute a simple program.<\/li>\n<li>Understand the basics of the following programming concepts.\n<ul>\n<li>\u00a0#include statements<\/li>\n<li>why is main() function special<\/li>\n<li>declaring variables, data types<\/li>\n<li>print statements for basic text, changing line, printing the contents of a single or multiple variables with text and integer data types.<\/li>\n<li>reading a value from keyboard and storing it in a variable (scanf statement)<\/li>\n<li>basic math operations and how they are written<\/li>\n<li>if\/else statement (conditional statement)<\/li>\n<li>Understand integer division and modulo division<\/li>\n<\/ul>\n<\/li>\n<li>Understand what an algorithm is<\/li>\n<li>Understand what is UML and why it is used. Understanding the basic elements (start, end, action statement, fork, join) in the design. Being able to create a basic diagram in UML.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Additional_content\"><\/span><strong>Additional content<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Use of AI in university, including study regulations<br \/>\n<strong><a href=\"https:\/\/taltech.ee\/en\/study-regulations-and-documents\">https:\/\/taltech.ee\/en\/study-regulations-and-documents<\/a><\/strong><\/li>\n<li>Why it&#8217;s so important that the algorithms are written in a way that everyone understands them the same way.<br \/>\nYoutube: Exact Instructions Challenge &#8211; THIS is why my kids hate me. | Josh Darnit<br \/>\n<strong><a href=\"https:\/\/www.youtube.com\/watch?v=cDA3_5982h8\">https:\/\/www.youtube.com\/watch?v=cDA3_5982h8<\/a><\/strong><\/li>\n<li>Things I Wish I Knew When I Was Learning to Code<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=TvDFJpGnQZo\"><strong>https:\/\/www.youtube.com\/watch?v=TvDFJpGnQZo<\/strong><\/a><\/li>\n<li>\u201cC\u201d Programming Language: Brian Kernighan \u2013 Computerphile<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=de2Hsvxaf8M\"><strong>https:\/\/www.youtube.com\/watch?v=de2Hsvxaf8M<\/strong><\/a><\/li>\n<li>Programming languages popularity index<br \/>\n<a href=\"https:\/\/www.tiobe.com\/tiobe-index\/\"><strong>https:\/\/www.tiobe.com\/tiobe-index\/<\/strong><\/a><\/li>\n<li>C vs Python 3 performance comparisons<br \/>\n<a href=\"https:\/\/benchmarksgame-team.pages.debian.net\/benchmarksgame\/fastest\/python3-gcc.html\"><strong>https:\/\/benchmarksgame-team.pages.debian.net\/benchmarksgame\/fastest\/python3-gcc.html<\/strong><\/a><\/li>\n<li>C is the greenest programming language<br \/>\n<a href=\"https:\/\/hackaday.com\/2021\/11\/18\/c-is-the-greenest-programming-language\/\"><strong>https:\/\/hackaday.com\/2021\/11\/18\/c-is-the-greenest-programming-language\/<\/strong><\/a><\/li>\n<li>printf documentation<br \/>\n<a href=\"http:\/\/cplusplus.com\/reference\/cstdio\/printf\/\"><strong>http:\/\/cplusplus.com\/reference\/cstdio\/printf\/<\/strong><\/a><\/li>\n<li>scanf documentation<br \/>\n<a href=\"http:\/\/cplusplus.com\/reference\/cstdio\/scanf\/\"><strong>http:\/\/cplusplus.com\/reference\/cstdio\/scanf\/<\/strong><\/a><\/li>\n<li>UML standard documentation<br \/>\n<a href=\"https:\/\/www.omg.org\/spec\/UML\/2.5.1\/PDF\"><strong>https:\/\/www.omg.org\/spec\/UML\/2.5.1\/PDF<\/strong><\/a><\/li>\n<li>Data types in C<br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/C_data_types\"><strong>https:\/\/en.wikipedia.org\/wiki\/C_data_types<\/strong><\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Lab materials Slides: Introduction Slides: Hello Commented version of the example code: hello.c Slides: Conditionals Tasks Most likely everything in this lab is completely new to you. Because of this, most of the lab we&#8217;ll be working together &#8211; lecturer shows things in front and you&#8217;ll follow along on your computer. In the end of &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/labs\/1-lab-hello-world\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">PR1EN1: Hello world<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[75,77],"tags":[],"class_list":["post-5125","post","type-post","status-publish","format-standard","hentry","category-labs","category-pr1_en"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/post"}],"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=5125"}],"version-history":[{"count":15,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5125\/revisions"}],"predecessor-version":[{"id":10490,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5125\/revisions\/10490"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=5125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/categories?post=5125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/tags?post=5125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}