WHAT ARE DATA STRUCTURES? WHAT ARE ALGORITHMS?
REVIEW OF JAVA AND OOP
ENCAPSULATION, INHERITANCE, POLYMORPHISM
In computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently. Different kinds of data structures are suited to different kinds of applications and some are highly specialized to certain tasks. For example, B-trees are particularly well-suited for implementation of databases, while compiler implementations usually use hash tables to look up identifiers. Data structures are used in almost every program or software system. Specific data structures are essential ingredients of many efficient algorithms and make possible the management of huge amounts of data, such as large databases and internet indexing services. Some formal design methods and programming languages emphasize data structures, rather than algorithms, as the key organizing factor in software design.
Objects interact with one another by performing actions (called methods). You as a programmer need to design these actions by giving instruction for how action is carried out. The hardest part of designing these actions is not figuring out how to express your solution in JAVA (or whatever programming language you are using). The hardest part is coming up with a plan or strategy that would allow an object to predict the direction of the stock market on a daily basis, then you could sell this strategy for a huge amount of money. On the other hand, the programmer who writes the java method who implements this strategy, while well paid, would not get nearly the same amount of money as you get for designing the basic strategy. Of course money paid is not necessary an indication of difficulty, but in this case it does pretty much indicate the difference in difficulty. In less dramatic settings, such as completing a basic programming assignment or designing a method for balancing your check book, the same rule applies. The hard part is coming up with the strategy for the solution. This strategy is often express as something called an algorithm.
Algorithm is a set of instructions for solving problem. To qualify as an algorithm, the instructions must be expressed so completely and precisely that somebody could follow the instruction without having to fill in any details or make details that are not fully specified in the instructions.
Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to byte code (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is a general-purpose, concurrent (not conflict), class-based, object-oriented language that is specifically designed to have as few implementation dependencies (reliance) as possible. It is intended to let application developers "write once, run anywhere". Java is currently one of the most popular programming languages in use, and is widely used from application software to web applications
A Java Virtual Machine (JVM) enables a set of computer software programs and data structures to use a virtual machine model for the execution of other computer programs and scripts. The model used by a JVM accepts a form of computer intermediate language commonly referred to as Java byte code. This language conceptually represents the instruction set of a stack-oriented, capability architecture. Sun Microsystems claims there are over 4.5 billion JVM-enabled devices.
OBJECT-ORIENTED PROGRAMMING (OOP) LANGUAGE
3 MAIN DESIGN PRINCIPLES OF OOP
Encapsulation sounds like...