Application Programming Interface (API) | a software interface that defines how to interact with a given program |
hacker | someone who modifies software, often adapting it for a purpose other than which it was intended; in mainstream usage someone who uses computer technology maliciously |
distributed computing | a field of computer science that studies computer systems that are distributed across a network |
operating system | the collection of system software that runs a computer and manages its resources, such as Windows, OS X or Linux |
protocol | a formal description of how two computers should communicate, including the format of the messages and the action taken when a message is received or an event occurs |
standard | a document that defines a technical specification for how hardware or software should operate |
peer-to-peer software | a distributed system in which clients interact directly with each other, through a centralized server |
software engineering | a field of computer science that studies the process by which software is created, with the goal of discovering processes that result in higher quality software, or software that is easier to create and maintain. |
agile model | a software development model that emphasizes an incremental development cycle, in which requirements and software evolve over series of iterations via collaborations with the customer |
mythical man-month | a "law" of software engineering based on a book by Fred Brooks, stating that "adding manpower to a late software project makes it later" |
beta | the point in the software release cycle when a product is feature complete but not yet fully tested; modern practices often include the frequent release of beta-quality software that is incrementally improved through customer service |
Von Neumann architecture | a computer that includes a CPU, RAM, secondary storage, and input/output devices |
fetch-execute cycle | the process that the CPU uses to fetch an instruction, execute it, and then repeat for the duration of the program |
Moore's Law | a long-term trend in which the number of transistors that can be inexpensively placed in circuit doubles every two years; essentially doubles the speed of the CPU, the capacity of memory chips, and the number of pixels in a digital camera every few years |
human-computer interaction | the study of the interface between humans and computers, combining the fields of computer science, linguistics, social sciences, and psychology |
non-computable | a problem for which it is impossible to construct an algorithm that always provides the correct answer |
Turing Machine | a theoretical device developed by Alan Turing that can simulate the logic of any computer algorithm |
Church-Turing Thesis | the conjecture that everything computable can be computed by a Turing Machine |