Introduction to Computer Science

Transistor

The fundamental building block of modern electronic devices. Used to amplify and switch electronic signals.

CPU

Hardware within a computer that carries out the instructions of a computer program. Central Processing Unit.

ALU

A digital circuit that performs integer arithmetic and logical operations. The Arithmetic and Logic Unit is a fundamental building block of the central processing unit.

Ripple Carry Adder

The part of the arithmetic and logic unit that does addition.

Register

A small amount of storage available as part of a digital processor.

Control Unit

A component of a computer's central processing unit which directs operation of the processor. It controls communication and co-ordination between input/output devices. It reads and interprets instructions and determines the sequence for processing the dat

Clock rate

The frequency at which a central processing unit is running. After each clock pulse, the signal lines inside the CPU need time to settle to their new state. That is, every signal line must finish transitioning from 0 to 1, or from 1 to 0. If the next cloc

Main Memory or primary memory

The only memory directly accessible to the central processing unit. The processor reads instructions stored there and executes them. Any data actively operated on is also stored there.

Instruction Cycle

The basic operation cycle of a computer. It is the process by which a computer retrieves a program instruction from its memory, determines what actions the instruction requires, and carries out those actions. This cycle is repeated continuously by the cen

Software

Any set of machine-readable instructions that directs a computer's processor to perform specific operations.

Hardware

The collection of physical elements that constitutes a computer system.

Operating System

A collection of software that manages computer hardware resources and provides common services for computer programs, and may also provide a graphical user interface (Windows, Icons, Menus, Pointer). Examples include Microsoft Windows, Linux, MacOS, Andro

Algorithm

A step-by-step procedure for calculations, data processing, and automated reasoning expressed as list of well-defined instructions for calculating an output from an input. Conceptual process for solving a problem, independent of any particular language. E

Program

A sequence of instructions, written to perform a specified task with a computer. An implementation of an Algorithm.

Data Type

A classification of data that determines the possible values, the operations that can be done and the way values of that type can be stored.

float

A primitive data type representing an approximation of a real number in a way that can support a wide range of values. Stored in 32 bits.

char

A primitive data type representing a single character in the alphabet stored in 8 bits.

int

A primitive data type representing a finite subset of integer numbers stored in 32 bits.

String

An composite data type consisting of multiple char basic data elements. Used to represent textual information.

bool

A primitive data type that can hold only two possible values (true or false). Used with logical operators and in conditional constructs to control the order of execution within a program.

Primitive Data Types

Data types provided by a programming language as a basic building blocks. Operations on these data constructs are the fastest possible.

Composite Data Types

Data types constructed in a program using a combination of other data types. In Java "Classes" are used to define the rules and operations of composite data types.

Object or Instance

Memory set aside to store data consistent with the rules of a class.

Array

A composite data type consisting of a fixed size collection of some other data elements. It is permissible for the other data type to be either Primitive or Composite data.

List

A composite data type consisting of a flexible sized collection of some other composite data elements.

bit

The most basic unit of information in computing and digital communications. A bit can have only one of two values. The most common representation of these values are 0 and 1.

byte

A unit of digital information in computing and telecommunications that consists of eight bits.

Assembly Language

A low-level programming language in which there is generally a one-to-one correspondence between the language and machine code instructions.

Machine Language

A set of instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, such as a load, a jump, or an ALU operation on a unit of data in a CPU register or memory. Every program directly executed by

Compiler

A computer program that transforms source code written in a high level programming language into machine language. The purpose of the compiler is to create an executable program.

High Level Language

A programming language with strong abstraction from the details of the computer making the process of developing a program simpler and more understandable relative to a lower-level language.

Object Oriented Programming

A programming methodology that focuses on bundling data and instructions that operate on that data.

Advantages of Object Oriented Programming

Faster program development through reuse of tested modules.
Maintainability, as bugs can often be traced quickly to a particular module.
Facilitates teamwork as distinct modules may be assigned to different team members.

Disadvantages of Object Oriented Programming

Not all problems lend themselves easily to a modular solution.
Complex frameworks often require significant overhead and large amounts of code even for relatively simple tasks.
As programmers become less aware of underlying details they often create overl

Analog

Continuous. Examples include voltage, temperature, pressure, height... For any two different analog values there exists another value between them. Any method used to copy an analog signal will result in some degradation of the signal.

Digital

Discrete. Examples include the number of people in a room, a switch that is either on or off, a statement that is true or false, the day of the week. It is possible to have two different digital values without any possible value between them. It is possib

Arithmetic Operator

+ Addition, - Subtraction, * Multiplication, / Division.
Unlike in mathematics there is no implicit multiplication in Java. Two numeric values typed adjacent to each other without any operator between them will result in an error message.

Assignment

Storing a value in a memory location. An assignment statement has a variable on the left and an expression on the right between them is a single =
The result of evaluating the expression on the right is stored in the memory location referred to by the var

Relational Operator

> greater than, < less than, >= greater or equal, <= less or equal, == equal. Evaluates to true or false. The expressions to the left and right must related appropriately make comparison reasonable, for example (5>3) is true, but (5>"apple") can't be eval

Boolean Operator

&& and, || or, ! not. Evaluates to true or false. The expressions to the left and right must also evaluate to true or false.

Binary Operator

An operator that takes two operands. Examples include the arithmetic operators, relational operators, and boolean operators with the exception of negation.

Operator Precedence

In a complex expression when two operators share an operand the operator with the higher precedence goes first. From math class we are familiar with the rule that multiplication comes before addition. In most cases it is enough to know that parenthesis tr

Delimiter

The characters used to separate words in a language. In most cases it is sufficient to put a "space" between items. Sometimes other characters are used like "coma" or "period". Sometimes like in the case of "5+3" the separation is implicit. There are thre

Recursion

A function, method, or procedure calls itself.

Identifier

A sequence of characters in a program declared to identify a memory location to store data, or instructions to be executed. In object oriented programming an identifier may also indicate a data type defined by a class. The characters of an identifier may

Naming Convention

Followed by nearly all programmers in industry, but not enforced by the compiler. In Java if an identifier is the name of a class it should start with a capital letter. If it names a variable or method then it starts with a lowercase letter. If it names a

Indentation

Followed by nearly all programmers in industry, but not enforced by compiler. Indentation is used to keep track of nesting level of brackets. Good indentation can greatly improve the readability of code.

Identifier Scope

The part of a computer program where the identifier, a name that refers to some entity in the program, can be used to find the referred entity.

Identifier Lifespan

The period of time between allocation and deallocation of the memory to which an identifier referrs.