{"id":3625,"date":"2018-01-09T13:05:17","date_gmt":"2018-01-09T11:05:17","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?page_id=3625"},"modified":"2026-01-24T22:55:13","modified_gmt":"2026-01-24T20:55:13","slug":"links","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/resources\/links\/","title":{"rendered":"Links"},"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\/resources\/links\/#Tools_suitable_for_coding\" >Tools suitable for coding<\/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\/resources\/links\/#Code_analysis_tools\" >Code analysis tools<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/resources\/links\/#Tools_suitable_for_modelling\" >Tools\u00a0suitable for modelling<\/a><\/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\/resources\/links\/#Virtualization\" >Virtualization<\/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\/resources\/links\/#List_of_challenges_tasks_to_solve_by_programming\" >List of challenges (tasks to solve by programming)<\/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\/resources\/links\/#Additional_reading\" >Additional reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Tools_suitable_for_coding\"><\/span>Tools suitable for coding<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a title=\"http:\/\/www.geany.org\/\" href=\"http:\/\/www.geany.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Geany<\/a>\u00a0 (<em data-select-like-a-boss=\"1\">recommended, used in class)<\/em><\/li>\n<li><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Visual studio code<\/a> <em>(Good text editor, needs configuration, extensions and GCC installed separately, recommended)<\/em><\/li>\n<li><a href=\"https:\/\/vscodium.com\">VSCodium<\/a> <em>(Same as VS code, but without big brother on your shoulder)<\/em><\/li>\n<li><a href=\"https:\/\/www.kdevelop.org\">KDevelop<\/a> <em>(a powerful IDE started in the Linux world)<\/em><\/li>\n<li><a href=\"https:\/\/www.jetbrains.com\/clion\/\">CLion<\/a> (<em>Professional IDE for C\/C++<\/em>)<\/li>\n<li><a href=\"https:\/\/www.sublimetext.com\/\">Sublime Text<\/a><\/li>\n<li><a href=\"https:\/\/atom.io\/\">Atom<\/a><\/li>\n<li><a title=\"http:\/\/www.codeblocks.org\/\" href=\"http:\/\/www.codeblocks.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Code::Blocks<\/a><\/li>\n<li><a href=\"https:\/\/notepad-plus-plus.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Notepad++<\/a><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Code_analysis_tools\"><\/span>Code analysis tools<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/cppcheck.sourceforge.io\">cppcheck<\/a> &#8211; Linter, configured as default in Geany, performs static analysis on code.<\/li>\n<li><a href=\"https:\/\/clang.llvm.org\/extra\/clang-tidy\/\">clang-tidy<\/a> &#8211; Linter, performs static analysis on code.<\/li>\n<li><a href=\"https:\/\/pythontutor.com\/c.html\">https:\/\/pythontutor.com\/c.html<\/a> &#8211; Web based code visualizer and debugger<\/li>\n<li><strong><a href=\"https:\/\/cdecl.org\">C gibberish to English<\/a> &#8211;\u00a0 <\/strong>Translates various language constructs to readable English<\/li>\n<\/ul>\n<h3 data-select-like-a-boss=\"1\"><span class=\"ez-toc-section\" id=\"Tools_suitable_for_modelling\"><\/span>Tools\u00a0suitable for modelling<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"http:\/\/www.visual-paradigm.com\/download\/community.jsp\">Visual Paradigm\u00a0Community Edition<\/a> (<em>used in class, community license free by providing an e-mail address).<\/em><\/li>\n<li><a href=\"https:\/\/online.visual-paradigm.com\/drive\/\">Visual Paradigm Online<\/a> (web based)<\/li>\n<li>ArgoUML \u00a0[<a href=\"https:\/\/blue.pri.ee\/ttu\/files\/ArgoUML-0.34-setup.exe\">Windows setup<\/a>]<\/li>\n<\/ul>\n<div class=\"su-spoiler su-spoiler-style-fancy su-spoiler-icon-chevron su-spoiler-closed\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-spoiler-title\" tabindex=\"0\" role=\"button\"><span class=\"su-spoiler-icon\"><\/span>Open me to get the guide for Linux<\/div><div class=\"su-spoiler-content su-u-clearfix su-u-trim\"><em><br \/>\n<\/em>1. Open the terminal on your desktop (right click, &#8220;Open terminal&#8221;). If you wish to put ArgoUML in a different folder, open it there.<br \/>\n2. Write the following commands. First we will update our knowledge of software, then we will update all the software that is out of date. Then we will install Java JDK and download and unpack ArgoUML. Lastly, we will remove the archive that we downloaded and don&#8217;t need any more. Only the unpacked files will remain. <strong>This process needs to be done only once.<\/strong><\/p>\n<pre class=\"lang:c highlight:0 decode:true\">sudo apt update\r\nsudo apt upgrade\r\nsudo apt install openjdk-14-jre-headless\r\nwget blue.pri.ee\/ttu\/files\/argo.zip\r\nunzip argo.zip\r\nrm argo.zip<\/pre>\n<p>3. Now lets run ArgoUML. First we go to the right folder and then run it.<\/p>\n<pre class=\"lang:c highlight:0 decode:true\">cd ArgoUML\r\njava -jar argouml.jar<\/pre>\n<p>NB! If you are already in the right folder or open the terminal from the ArgoUML folder, you don&#8217;t need to write the first line. cd command is used to change directory where the command prompt is currently at.<br \/>\nArgoUML will work until you either close it\u00a0<strong>or until you close the terminal window you opened it from!<\/strong><em><\/div><\/div><\/em><\/p>\n<ul>\n<li><a href=\"https:\/\/astah.net\/products\/free-student-license\/\">Astah<\/a> (student license available with uni-id e-mail)<\/li>\n<li><a href=\"http:\/\/staruml.io\/\">StarUML<\/a><\/li>\n<li>Microsoft Visio (requires license, freely available for IT faculty students through Azure)<\/li>\n<li><a href=\"http:\/\/draw.io\/\">draw.io<\/a> (web based)<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Virtualization\"><\/span>Virtualization<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.virtualbox.org\/\">Virtualbox<\/a><\/li>\n<li data-select-like-a-boss=\"1\"><a href=\"https:\/\/www.vmware.com\/products\/desktop-hypervisor\/workstation-and-fusion\">VMware Workstation Pro and Player Pro<\/a><\/li>\n<li data-select-like-a-boss=\"1\"><a href=\"https:\/\/learn.microsoft.com\/en-us\/virtualization\/\">Hyper-V<\/a> on Windows 10\/11 (Pro, Edu, Ent)<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"List_of_challenges_tasks_to_solve_by_programming\"><\/span>List of challenges (tasks to solve by programming)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>NB! Some of these may have changed from free to partially or fully paid over time. Websites are not regularly validated for their policies.<\/p>\n<ul>\n<li><a href=\"https:\/\/projecteuler.net\">https:\/\/projecteuler.net<\/a><\/li>\n<li><a href=\"https:\/\/adventofcode.com\">https:\/\/adventofcode.com<\/a><\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/dailyprogrammer\/\">https:\/\/www.reddit.com\/r\/dailyprogrammer\/<\/a><\/li>\n<li><a href=\"https:\/\/www.codewars.com\">https:\/\/www.codewars.com<\/a><\/li>\n<li><a href=\"https:\/\/cses.fi\/problemset\/\">https:\/\/cses.fi\/problemset\/<\/a><\/li>\n<li><a href=\"https:\/\/exercism.org\">https:\/\/exercism.org<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"https:\/\/leetcode.com\">https:\/\/leetcode.com<\/a><\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/learnprogramming\/comments\/eelexn\/list_of_programming_challenge_websites\/\">https:\/\/www.reddit.com\/r\/learnprogramming\/comments\/eelexn\/list_of_programming_challenge_websites\/<\/a><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Additional_reading\"><\/span>Additional reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>NB! The links here are given to help understand and read further into the topics covered during\u00a0the course. The material however is not curated by us and therefore\u00a0it might not be fully or at all in conjunction with the course contents and the coding style used in the course.<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/beej.us\/guide\/bgc\/\">Beej&#8217;s Guide to C programming<\/a><\/strong><\/li>\n<li><a href=\"https:\/\/devdocs.io\/c\/\">C programming reference (devdocs.io)<\/a><\/li>\n<li><a title=\"http:\/\/www.cplusplus.com\/reference\/clibrary\/\" href=\"http:\/\/www.cplusplus.com\/reference\/clibrary\/\" target=\"_blank\" rel=\"noopener noreferrer\">C\/C++ reference guide \/ library (cplusplus.com)<\/a><\/li>\n<li><a title=\"https:\/\/buckysroom.org\/videos.php?cat=14\" href=\"https:\/\/www.youtube.com\/playlist?list=PL6gx4Cwl9DGAKIXv8Yr6nhGJ9Vlcjyymq\" target=\"_blank\" rel=\"noopener noreferrer\" data-select-like-a-boss=\"1\">TheNewBoston C video tutorials<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/playlist?list=PL6gx4Cwl9DGCkg2uj3PxUWhMDuTw3VKjM\">TheNewBoston Linux video tutorials<\/a><\/li>\n<li><a title=\"http:\/\/www.cprogramming.com\/tutorial\/c-tutorial.html\" href=\"http:\/\/www.cprogramming.com\/tutorial\/c-tutorial.html\" target=\"_blank\" rel=\"noopener noreferrer\">C Tutorial<\/a><\/li>\n<li><a href=\"https:\/\/it.taltech.ee\/\">TT\u00dc IT juhendid (it.taltech.ee)<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Tools suitable for coding Geany\u00a0 (recommended, used in class) Visual studio code (Good text editor, needs configuration, extensions and GCC installed separately, recommended) VSCodium (Same as VS code, but without big brother on your shoulder) KDevelop (a powerful IDE started in the Linux world) CLion (Professional IDE for C\/C++) Sublime Text Atom Code::Blocks Notepad++ Code &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/resources\/links\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Links<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1439,"menu_order":8,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width.php","meta":{"footnotes":""},"class_list":["post-3625","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/3625","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=3625"}],"version-history":[{"count":11,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/3625\/revisions"}],"predecessor-version":[{"id":11125,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/3625\/revisions\/11125"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/1439"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=3625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}