Computer Science:General terminology

  1. Electronic data interchange (EDI) (def'n)
    This is an electronic communication method that provides standards for exchanging data via any electronic means.
  2. What does S.O.L.I.D. stand for? (acronym)
    • Single Responsibility
    • Open/closed
    • Liskov substitution
    • Interface segregation
    • Dependency inversion
  3. S.O.L.I.D(def'n)
    mnemonic acronym for five design principles intended to make software designs more understandable, flexible and maintainable.
  4. Single responsibility principle (def'n)
    A design principal that states: a class should have only a single responsibility (i.e. changes to only one part of the software's specification should be able to affect the specification of the class)
  5. Open/closed principle (def'n)
    A design principal that states: software entities

    • Should be open for extension
    • But closed for modification
  6. Liskov substitution principle (def'n)
    A design principal that states: objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program
  7. Interface segregation principle (def'n)
    A design principal that states: many client-specific interfaces are better than one general-purpose interface.
  8. Dependency inversion principle (def'n)
    A software design principal that states: one should depend upon abstractions, [not] concretions.
  9. OOP (def'n)
    A programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.
  10. What does OOP stand for?(acronym)
    Object Oriented Programming (acronym)
  11. Polymorphism (in context of OOP) (def'n)
    In OOP this is programming language's ability to process objects differently depending on their data type or class. More specifically, it is the ability to redefine methods for derived classes
  12. Overriding (def'n)
    A language feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its superclasses or parent classes.
  13. Overloading (def'n)
    When two or more methods (functions) in the same class have the same name but different parameters (part of runtime polymorphism)


    (technically they can have different return types too, but having same name and only a different return type is NOT the same).
  14. Operator Overloading (def'n)
    a specific case of polymorphism:

    • Some or all operators are treated as polymorphic functions 
    • And have different behaviors depending on the types of its arguments.
  15. IS-A Relationship (def'n)
    This type of OOP relationship refers to inheritance or implementation.
  16. HAS-A Relationship (def'n)
    This type of OOP relationship that means an instance of one class contains a reference to an instance of another class or another instance of  the same class.
  17. Composition (HAS-A) (def'n)
    In this type of OOP relationship, without existence of container object, if there is no chance of existence of contained objects then container and contained objects are said to be strongly associated.

    Eg:
    If you have a house (container object) and a room (contained object) ... if you tear down the house...the room does not exist 
  18. Aggregation (HAS-A) (def'n)
    In a HAS-A relationship, without existence of container object, if there is a chance of existence of contained objects then container and contained objects are said to be loosely associated.


    Eg: A department (container object) has several professors (contained objects). Without existence of departments there is good chance for the professors to exist.
  19. Inheritance (in context of OOP) (def'n)
    In OOP this concept enables new objects to take on the properties of existing objects.
  20. Encapsulation (in context of OOP) (def'n)
    Encapsulation is used to hide the values or state of a structured data object inside a class, preventing unauthorized parties' direct access to them. Also known as data hiding.
  21. Server Oriented Architecture(SOA)
    A style of software design where services are provided to the other components by application components, through a communication protocol over a network.
  22. Representational state transfer(RESTful) (def'n)
    A way of providing interoperability between computer systems on the Internet.
  23. interoperability (def'n)
    The ability to automatically interpret the information exchanged meaningfully and accurately in order to produce useful results as defined by the end users of both systems.
  24. interoperability (in the context of health care) (def'n)
    In healthcare, this is the ability of different information technology systems and software applications to:

    • communicate
    • exchange data
    • and use the information that has been exchanged.
  25. Example of a REST API (example)
    Twitter provides a REST API which you can query to get the latest tweets, you can provide a search query (or hash tag) and it will return the results in JSON format.
  26. RESTful protocol (example)
    The World Wide Web (WWW) is an example of a distributed system that uses REST protocol architecture to provide a hypermedia (hyper text is contained in this domain) driven interface for websites.
  27. HATEOAS (Hypermedia as the Engine of Application State) (def'n)
    When a website provides information to navigate the site's REST interfaces dynamically by including hypermedia links with the responses. ... People also refer to it as a hypermedia-driven system
  28. Application Programming Interface (API) (def'n)
    This a set of subroutine definitions, protocols, and tools for building application software.

    EgThis isn’t the same as the remote server — rather it is the part of the server that receives requests and sends responses.

    See also: https://medium.freecodecamp.org/what-is-an-api-in-english-please-b880a3214a82
  29. Test Driven Development (def'n)
    This is a software development process that relies on the repetition of a very short development cycle:

    (RED)first the developer writes an (initially failing) automated test case that defines a desired improvement or new function

    (YELLOW)then produces the minimum amount of code to pass that test

    (GREEN)finally refactors the new code to acceptable standards.

    Image Upload 1
  30. C++0x ex: stdlib=C++0x (def'n)
    This was the working name for the new standard for C++, adding many language features it became C++11 in September of 2011.
  31. what does push_back(someObject) do in a std:vector example: stringVect.push_back(newString) (def'n)
    This function adds an element at the end of a standard container, such as vector, thereby increasing the container's size by one.
  32. Order of performance for Big-O Notation from worst...to best.
    • 1. O(n!) terrible
    • 2. O(2n) terrible
    • 3. O(n2) terrible
    • 4. O(n log n) bad
    • 5. O(nfair
    • 6. O(log n), O(1) excellent
  33. virtual machine (def'n)
    • An emulation of a computer system.
    • Are based on computer architectures and provide functionality of a physical computer.
    • Their implementations may involve specialized hardware, software, or a combination.
  34. bottom up algorithm (def'n)
    This is an algorithm to use in order to avoid recursion, saving the memory cost that recursion incurs when it builds up the call stack.

    This algorithm"starts from the beginning," while a recursive algorithm often "starts from the end and works backwards."
  35. memoization (def'n)
    This is an algorithmic concept that ensures that a method doesn't run for the same inputs more than once by keeping a record of the results for the given inputs
  36. CICD (def'n)
    continuous integration and either continuous delivery or continuous deployment.
  37. batch jobs (def'n)
    Jobs that can run without end user interaction, or can be scheduled to run as resources permit.
  38. describe an example of a batch job
    A program that reads a large file and generates a report is considered to be a batch job
  39. JCL or Job Control Language (def'n)
    Enables the processing of a batch job,  this tells the OS which programs are to be executed and which files will be needed by the executing programs.
  40. CORS or Cross Origin Request Service (def'n)
    This defines a way in which a browser and server can interact to determine whether it is safe to allow the cross-origin request.
Author
geschw66
ID
334740
Card Set
Computer Science:General terminology
Description
Some misc. software terms that may come up in an interview. Question: is a term and Answer: is a definition for that term or word.
Updated