{"id":20365060,"url":"https://github.com/h3ar7b3a7/furtherbacktotheroots","last_synced_at":"2025-06-15T23:03:55.342Z","repository":{"id":136744427,"uuid":"556000987","full_name":"H3AR7B3A7/FurtherBackToTheRoots","owner":"H3AR7B3A7","description":"Small applications made while studying C in Harvards cs50 course. An introduction to several concepts of computer programming.","archived":false,"fork":false,"pushed_at":"2022-10-27T13:46:14.000Z","size":172,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-25T17:54:16.526Z","etag":null,"topics":["c","data-structures","memory-management"],"latest_commit_sha":null,"homepage":"","language":"C","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/H3AR7B3A7.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":"2022-10-22T20:53:54.000Z","updated_at":"2023-02-08T15:12:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"e7e3c642-b44e-4bc7-a499-2060c1d250f4","html_url":"https://github.com/H3AR7B3A7/FurtherBackToTheRoots","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H3AR7B3A7%2FFurtherBackToTheRoots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H3AR7B3A7%2FFurtherBackToTheRoots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H3AR7B3A7%2FFurtherBackToTheRoots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/H3AR7B3A7%2FFurtherBackToTheRoots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/H3AR7B3A7","download_url":"https://codeload.github.com/H3AR7B3A7/FurtherBackToTheRoots/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241904719,"owners_count":20040021,"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","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":["c","data-structures","memory-management"],"created_at":"2024-11-15T00:15:23.610Z","updated_at":"2025-03-04T18:46:45.145Z","avatar_url":"https://github.com/H3AR7B3A7.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CS50 (part 1)\n\nCollection of small applications following along with [Harvard CS50](https://www.youtube.com/watch?v=8mAITcNt710).\n\n## Intro\n\n[Scratch](https://scratch.mit.edu/)\n\n## Install Make\n\n### Linux\n\n\u003e sudo apt install make\n\n### Windows\n\n\u003e choco install make\n\n## Create EXE\n\n\u003e make hello\n\n## Run EXE\n\n\u003e ./hello\n\n## Install Library\n\n### Linux\n\nTo install the cs50 library on linux or mac check out the [docs](https://cs50.readthedocs.io/libraries/cs50/c/).\n\n- Add repository to sources\n\n  \u003e curl -s https://packagecloud.io/install/repositories/cs50/repo/script.deb.sh | sudo bash\n\n- Install the library\n\n  \u003e sudo apt install libcs50\n\n- Add variables to `.bashrc` or `.zshrc`\n\n  ```bash\n  export CC=\"clang\"\n  export CFLAGS=\"-fsanitize=signed-integer-overflow -fsanitize=undefined -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow\"\n  export LDLIBS=\"-lcrypt -lcs50 -lm\"\n  ```\n\n  \u003e source ~/.bashrc\n\n  or\n\n  \u003e source ~/.zshrc\n\n- Install clang (the compiler)\n\n  \u003e sudo apt install clang\n\n- Use\n\n  \u003e make hello\n\n  or\n\n  \u003e clang -o hello hello.c -lcs50\n\n### Windows\n\nFor Windows however we will need to:\n\n- Install [MinGW](https://www.mingw-w64.org/downloads/#mingw-builds) and extract the mingw64 folder\n- Add a path to the bin folder in `mingw` to our environment variables\n- Download [libcs50](https://github.com/cs50/libcs50/releases)\n- Add the cs50.c \u0026 cs50.h files to our project folder\n- Include the cs50.h with quotes instead of angle brackets\n- compile using gcc, including the cs50.c file\n- Use\n\n  \u003e gcc -o hello hello.c cs50.c\n\n## Compilation\n\n- Preprocessing\n  Replacing the preprocessing directives with the prototypes in the header files.\n- Compiling\n  Compile the code to assembly\n- Assemble\n  Assemble the code to binary\n- Linking\n  Combining all different files (ex: name.c, cs50.c, and the files that make stdio)\n\n## Debugging\n\n- Add the C/C++ plugins to VLC\n- Run the debugger using the play button, generating the `tasks.json`\n- Edit the tasks.json to include links to the used libraries\n- Run the debugger again\n\n_Or just talk it through with a rubber duck._\n\n## Types\n\n- bool (1 byte)\n- char (1 byte)\n- int (4 bytes)\n- float (4 bytes)\n- long (8 bytes)\n- double (8 bytes)\n- string (? bytes)\n- ...\n\n## Complexity\n\n- O(n²)\n- O(n log n)\n- O(n)\n- O(log n)\n- O(1)\n\n_The best case scenario is similarly described by Ω. If O and Ω are the same, we can use θ._\n\n## Valgrind Memory Check\n\n- Install\n\n  \u003e sudo apt install valgrind\n\n- Use\n\n  \u003e valgrind ./programname\n\n## Data Structures\n\n- Array\n- Linked List\n- Tree\n- Hash Table\n- Trie\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh3ar7b3a7%2Ffurtherbacktotheroots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh3ar7b3a7%2Ffurtherbacktotheroots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh3ar7b3a7%2Ffurtherbacktotheroots/lists"}