Glossary
Glossary¶
Tip
We will build a glossary as the semester goes on. When you encounter a term you do not know, create an issue to ask for help, or contribute a PR after you find the answer.
- add (new files in a repository)¶
the step that stages/prepares files to be committed to a repository from a local branch
- bitwise operator¶
an operation that happens on a bit string (sequence of 1s and 0s). They are typically faster than operations on whole integers.
- git¶
a version control tool; it’s a fully open source and always free tool, that can be hosted by anyone or used without a host, locally only.
- GitHub¶
a hosting service for git repositories
- Git Plumbing commands¶
low level git commands that allow the user to access the inner workings of git.
- Git Workflow¶
a recipe or recommendation for how to use Git to accomplish work in a consistent and productive manner
- git init name_of_repo¶
used to create a git repo in a directory (which can then be uploaded to github or another online directory
- push (changes to a repository)¶
to put whatever you were working on from your local machine onto a remote copy of the repository in a version control system.
- pull (changes from a repository)¶
download changes from a remote repository and update the local repository with these changes.
- repository¶
a project folder with tracking information in it in the form of a .git file
- shell¶
a command line interface; allows for access to an operating system
- terminal¶
a program that makes shell visible for us and allows for interactions with it
- ROM (Read-Only Memory)¶
Memory that only gets read by the CPU and is used for instructions
- directory¶
a collection of files typically created for organizational purposes
- .gitignore¶
a file in a git repo that will not add the files that are included in this .gitignore file. Used to prevent files from being unnecessarily committed.
- templating¶
templating is the idea of changing the input or output of a system. For instance, the Jupyter book, instead of outputting the markdown files as markdown files, displays them as HTML pages (with the contents of the markdown file).
- ssh keygen¶
allows computers to safely connect to networks (such as when we used an ssh key to clone our github repos)
- hashing¶
putting an input through a function and getting a different output for every input (the output is called a hash; used in hash tables and when git hashes commits).
- hash function¶
the actual function that does the hashing of the input (a key, an object, etc.)
- SHA 1¶
the hashing function that git uses to hash its functions (found to have very serious collisions (two different inputs have same hashes), so a lot of software is switching to SHA 256)
- git objects¶
something (a file, directory) that is used in git; has a hash associated with it
- tree objects¶
type of git object in git that helps store multiple files with their hashes (similar to directories in a file system)
- HEAD¶
the branch that is currently being checked out (think of the current branch)
- merge¶
putting two branches together so that you can access files in another branch that are not available in yours
- Compiled Code¶
code that is put through a compiler to turn it into lower level assemlby language before it is executed. must be compiled and re-executed everytime you make a change.
- interpreted code¶
code that is directly executed from a high level language. more expensive computationally because it cannot be optimized and therefore can be slower.
- Linker¶
a program that links together the object files and libraries to output an executable file.
- integreated development environment¶
also known as an IDE, puts together all of the tools a developer would need to produce code (source code editor, debugger, ability to run code) into one application so that everything can be done in one place. can also have extra features such as showing your file tree and connecting to git and/or github.
- bitwise operator¶
an operation that happens on a bit string (sequence of 1s and 0s). They are typically faster than operations on whole integers.
- floating point number¶
the concept that the decimal can move within the number (ex. scientific notation; you move the decimal based on the exponent on the 10). can represent more numbers than a fixed point number.
- fixed point number¶
the concept that the decimal point does not move in the number (the example in the notes where if we split up a bit in the middle and one half was for the decimal and the other half was for the whole number. Cannot represent as many numbers as a floating point number.
- Threading¶
Threading is when a process spreads its computational cost across multiple cores in order to increase the speed in which a process completes or allow a process to accomplish multiple different tasks at one time.
- Locking¶
Locking is used when there is a resource accessed by multiple threads. Locking allows the access to that recourse to be controlled so that different threads do not overlap. It enforces mutual exclusion.