Sub-procedures / Sub-Programs
When a problem is decomposed, you create smaller problems to solve. In programming, instead of having one function solve a whole problem, you can create smaller helper functions (sub-programs) to solve each of the smaller problems.
Identifier
Name of a variable, parameter, constant, user
Importance of sub-procedures
It helps create a modular approach to solving problems that are easier to debug and reason about.
Iteration
the process of repeating a series of instructions. (loop)
Conditional Statement
a statement that can be written in ifthen form and uses a boolean expression
Software Library
prewritten code, classes, procedures, etc that a programmer can use to add more functionality to his/her programs without having to rewrite the equivalent code.
Pre-Conditions
Assumptions that can be made and what must be true before the sub-procedure/function is called.
Post-Conditions
the effect a method has on its inputs (any unaffected/unlisted input should remain untouched), any generated exceptions, information about the return value, and effects on object state
Exceptions
an act or event that disrupts the anticipated flow of the program's execution
Concurrency
when two or more things happen at the same time. This is a term that is usually used with networking and/or multi-core processors. Different threads might make concurrent calls to websites or different processors.
Abstraction
Abstraction is the process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics.
Through the process of abstraction, a programmer hides all but the relevant data about an object in order to reduce complexity and increase efficiency.
The object or sub-program can then be called by name while preserving its functionality but hiding specific data/implementation.
Object-Oriented Programming
Programming that uses abstraction to represent real-world objects
Collection
A data structure that holds data and has methods used to iterate over that data
Object
an abstraction in code for a real-world object
Variable
a reference to a location in memory where data is stored
Constant
a variable that doesn't change
Operator
Array
In java, it is a static data structure with predetermined capacity.
Sequential Search
Searching through objects in a collection one by one, in order
Binary Search
Looking for an item in an already sorted list by eliminating large portions of the data on each comparison
Efficiency
the amount of computer resources used by a program uses
Correctness
whether a program can perform specified success criteria without errors
Reliability
whether an algorithm can consistently maintain efficiency and correctness
Flexibility
the amount of effort required to modify an algorithm for other purposes
Fundamental Computer Operations
add, compare, retrieve and store
Compound Computer Operations
the combination of fundamental operations into a more complex solution
Features of Programming Languages
Semantics: the process a language follows when executing a program's syntax
Syntax: the keywords, operators and other valid constructs that make up a programming language.
Need for Programming Languages
Low level languages: used to perform operations on hardware, e.g. assembly language
High level languages: used to give users easy-to-understand abstractions, which are then compiled into assembly language. e.g. python, java, javascript, etc.