Friday, November 30, 2012

INTRODUCTION TO JAVA

JAVA programming Language

* Developed at Sun Microsystems in 1991
*  James Gosling, initially named “OAK”
* Formally announced java in 1995
* Object oriented and cant write procedural programs
* Functions are called methods
* Unit of a program is the class from which objects are created
* Automatic garbage collection
* Single inheritance only
* Each class contains data and methods which are used to manipulate the data
* Programs are small and portable
* Multithreaded which allows several operations to be executed concurrently
* A rich set of classes and methods are available in java class libraries
* Platform Independent
* Case sensitive

Java program development

* Edit – use any editor
* Compile – use command „javac‟   if your program compiles correctly, will create a file with extension .class
* Execute – use the command „java‟
Java language keywords 
* Keywords are special reserved words in java that you cannot use as identifiers for classes, methods or variables. They have meaning to the compiler, it uses them to understand what your source code is trying to do.

   First java Program

 class FirstPro  
                 {    
                            public static void main(String args[])    
                                     {   
                                         System.out.println("Hello World!“);    
                                       }  
                   } 

Java Source files

* All java source files must end with the extension „.java‟ 
* Generally contain at most one top level public class definition 
* If a public class is present, the class name should match the file name 

 Top level elements appears in a file 

* If these are present then they must appear in the following order.
* Package declarations 
* Import statements 
* Class definitions 

 Identifiers 

* An identifier is a word used by a programmer to name a variable, method class or label.
* Keywords may not be used as an identifier 
* Must begin with a letter, a dollar sign($) or an underscore( _ ). 
* Subsequent character may be letters, digits, _ or $. 
* Cannot include white spaces.   ref: Note

Declaring Variables


* Type identifier;

Type identifier=initial value;

Primitive Data Types

Type                           Bits                                          Range 
boolean                         1                                          true, false
char                              16                                        0 to 65,535 
byte                               8                                        -128 to +127 
short                             16                                       -32,768 to +32,767 
int                                 32                                           -232 to +232-1 
long                              64                                         -264 to +264-1 
float                               32                                      -3.4E+38 to +3.4E+38 (approx) 
double                           64                                      -1.8E+308 to +1.8E+308 (approx) 
* int grade; // an integer to hold a grade, no initial value 
*  int grade = 0; // an integer to hold a grade with initial value 0
* char answer; // an answer to something – one character 
* String name; // a string to hold a name
* String name = "Gumboot"; // as above, with an initial value
* boolean finished; // to hold "true" if finished
* boolean finished = false; // as above, but with an initial value

Declarations and Assignments

Declarations   

int grade;
char answer; 
String name; 

Assignments 

grade = 70; 
answer = 'a'; 
name = "alan turing";


Default Values

Data Type                                                            Default Value (for fields) 
byte                                                                              0 
short                                                                             0 
int                                                                                 0 
long                                                                              0L 
float                                                                              0.0f 
double                                                                          0.0d 
char                                                                             '\u0000' 
String (or any object)                                                  null 
boolean                                                                        false

Comments

* Single line comments begin with //  
* Multiline comments begin with /* and end with */ 

Sunday, November 25, 2012

COMPUTER PROGRAMMING C++ BASIC

Computer Programming

 It means to develop or write computer programs to perform different types of activities in a computer system using computer languages.
 Programming can be classified into two types: systems programming and   (application) programming. 
 System programming is handled by computer engineers or system programmers to develop system programs such as operating systems, language translators, etc. 
(Application) programming is handled by ordinary computer programmers to develop application software such as payroll system, stock control system, etc. 
Computability
 The possibility of programming a task by a machine is called computability. 
Complexity
 Complexity is the measuring term of quantity of resources used for many alternative algorithms.  Knowledge of complexity helps to find the best algorithm.   Average cases and worst cases can also be identified.
Correctness
 A program should produce the required result for all possible inputs and it is called correctness.
Structured programming 
Programming that produces programs with clean flow, clear design, and a degree of modularity (or hierarchical structure) is called structured programming. 
 The three basic constructs in structured programming are sequence (ordered set of statements), selection (conditional branch), and iteration (repetition).
  There is no GOTO statement to jump to any place in the program.
Modular programming
 An approach to programming in which the program is broken into several independently compiled modules is called modular programming.  
It facilitates group programming efforts.
 Modular programming is a precursor (ancestor) of object oriented programming.
Object-oriented programming (OOP)
 It is a programming paradigm in which a program is viewed as a collection of discrete objects that are self contained collection of data structures and routines that interacts with other objects.
Top-down programming
 An approach to programming that implements a program in top-down fashion is referred to as top- down programming. 
Typically this is done by writing a main body which calls to several major routines (implemented as stubs).
 Each routine is then coded, calling other, lower-level routines (also done initially as stubs).
  Here, stub is a placeholder for a routine to be written later.
Bottom-up programming
 It is a programming technique in which lower-level functions are developed and tested first.
  higher-level functions are then built using the lower- level functions.
Programming Language 
It is any artificial language that can be used to define a sequence of instructions that can ultimately be processed and executed by the computer.  
 A program called, language translator, translates statements written in one programming language into their machine language.
Levels/Generations of Languages
 Languages are generally divided into five levels/generations.
1. Machine language 
2. Assembly language 
3. High-level languages 
4. Very high-level languages 
5. And Natural languages 
Machine language
 * Programs that are written in 1’s and 0’s are in the actual machine language.
 * Machine code consists of binary coded instructions and data intermixed.
 * All programs in other languages must be translated into machine language before  their execution.
* Each type of computer has its own unique machine language.
 * Machine language is very difficult to write programs and to detect and correct program errors.
* A thorough knowledge of computer hardware is required for machine language programming.
 * Here, programmers cannot concentrate on data processing problems, because more attention should be paid for the architecture of the computer system.  
* Machine language programs are not portable among different types of computers.
* However, machine language programs can be executed much faster and maximum usage of resources (e.g. memory) can be obtained.
Assembly language
* It is the direct symbolic representation of a machine language.
* Assembly languages include IBM BAL(Basic Assembly Language for IBM) and VAX Macro (For Digital Equipment Corporation, Macro 11,  Macro 32,  Macro 64 ).
* Assembly languages use English-like mnemonic codes to represent the operations:  A for add, C for compare, MP for multiply,  STO for storing information in memory, and so on.
* Assembly language specifies registers with meaningful codes, such as AX, BX, etc., instead of binary numbers. 
* Furthermore, it permits the use of names,  perhaps RATE or TOTAL for memory locations, instead of the actual binary memory address.
* As with machine language, each type of computer has its own unique assembly language.
 * Therefore, both machine and assembly languages are considered as machine oriented or low-level computer languages. 
*Assembly language is easy to write programs and to detect and correct program errors compared to machine language programs. 
* As source program should be translated into machine language, more time is required for execution.
* The part of the machine language or assembly language instructions that specifies the operation or function to be carried out is called opcode.

High-level languages
* To overcome problems of low-level languages, high- level languages were developed. 
* As standard words of those languages are closer to human language (English).
 * It is much easier to write programs and to detect and correct errors. 
* As high-level languages are machine independent, programs are portable, less hardware knowledge is required, and more attention can be paid for data processing requirements.
 *Here, a lesser number of instructions are required.
* Due to the compilation process more time is needed to execute the program.
 *Here, computer resources cannot be used fully.
  * FORTRAN (Formula translator), ALGOL (Algorithmic Language), COBOL (Common business oriented language), RPG (Report program generator), BASIC (Beginners all purpose symbolic instruction code), Pascal, C, C++, Java, and Visual Basic, are some of the examples for high-level language. 
*For any given high-level language, there are usually a number of translators available, each of which translates a program in that language to the machine language for a specific type of computer
Very high-level languages
* Very high-level languages are often known as 4GLs (fourth-generation languages).
 * Languages belonging to the first three generations are procedural languages, consisting of instructions that describe the step-by-step procedure to solve the problem.
 *4GLs are non procedural languages, in which the programmer specifies the desired results, and the language develops the solution.
* Query languages, such as SQL (Structured query language), are variations on 4GLs and are used to retrieve information from databases.
Natural language
*The natural language (sometimes considered to be 5GLs) translates human instructions into codes the computer can execute.
 * If it does not understand the user’s request, it politely asks for further explanation.
* For example, INTELLECT, a natural language, would use a statement like, “What are the average exam scores in C++?”.
Comparison among different levels of programming languages
Language Translators
*All the source programs should be converted into their machine language before the execution process.
* Language translators are used for this process. 
*There are three types of language translators: Assemblers, Compilers, and Interpreters. 
Assembler
* It is a language translator which translates source programs written in assembly language into their object programs. 
Compiler
* It translates/compiles the entire program written in a high-level language into its object program considering the program as a single unit.
* After the compilation process the source program is no more required as the object program is available.
 *A compiler is able to look at the whole of a program and to work out the best way of translating.
 * This is some times called optimization and is one of the reasons why a compiler can produce efficient code.
 * Once all errors have been corrected, the program will run faster.
 * However errors are more difficult to find during compilation because they are not reported until the end of the process and a single error can generate additional error messages making it harder to locate the error. 
* When the program is in testing mode, there is no benefit to have a stored executable program since this will have to be rebuilt each time.
Interpreter
* It is a language translator which converts high-level language statements into equivalent machine language statements one at a time as the program is executed.
 *It does not generate an object program as a separate unit.
* Here, each statement is checked for syntax,  then converted into machine code, and then executed.
* The presence of the source program is required for the execution of the program and it should be interpreted each time.
  * Here, In the case of repetition, some program statements may be translated many times.
 * Executing an interpreted program is slower than executing a compiled program since each statement has to be converted to binary each time even if it has been converted previously. 
* With an interpreted language there is always the danger that a syntax error may exist in a section of code that has not been tested. 
* However, there is no lengthy compile and link cycle.
* If the program encounters an error, the interpretations stops and an error message is displayed so the user can correct it.
 * Therefore, interpreters are comfortable for beginners because small programs can be written and tested very quickly. 
Integrated development environment (IDE)
* Most current languages come in a comprehensive package called an integrated development environment (IDE) that includes language aware editor, project build capability (compiler and linker), debugger, and other programming tools. 
* Other programming tools include diagramming packages, code generators,  libraries of reusable objects and program code, and prototyping tools. 
Some Commonly Used High-Level Languages
*FORTRAN (Formula translator) was developed by IBM and introduced in 1954. It was the first high-level language. It is very good at representing complex mathematical formulas.  
*ALGOL (Algorithmic Language) was the first structured procedural programming language developed in late 1950s.  
* COBOL (Common business oriented language) is a verbose (wordy), English-like compiled programming language developed between 1959 and 1961 and still in widespread use, especially in business applications typically run on mainframes. It is very good for processing large, complex data files and for producing well-formatted business reports.  
* RPG (Report program generator) was developed by IBM in 1965 to allow rapid creation of reports from data stored in the computer files.  
* BASIC (Beginners all purpose symbolic instruction code) was originally developed by Dartmouth College professors John Kemeny and Thomas Kurtz in 1965 to teach programming to their students.
* Pascal was designed between 1967 and 1971 by Niklaus Wirth. It is a compiled, structured language built upon ALGOL, simplifies syntax while adding data types and structures such as sub ranges, enumerated data types, files, records, and sets.  
* C was created in 1972. One of the C’s primary advantages is its portability. There are C compilers for almost every combination of computer and operating system available today. 
* C++ is an object-oriented version of C, developed in the early 1980s.
* Java is a network-friendly object-oriented programming language derived from C++ that permits a piece of software to run directly on many different platforms.
 * Java programs are not compiled directly into machine language, but into an intermediate language called bytecode.
* This bytecode is then executed by a universal platform, called the JVM (Java Virtual Machine), which sits atop a computers regular platform. 
* The JVM interprets (translates) compiled Java code into instructions that the platform underneath can understand.
* Java provides high level of security to the user and the network.
* Java uses Unicode coding system, which allows displaying all character sets in a uniform manner.
* Web pages can include Java mini programs, called applets, which run on a Java platform included in the user’s Web browser. 
* Visual Basic (VB) was introduced by Microsoft in 1987 as its first visual development tool. 
*It allows the programmer to easily create complex user interfaces containing standard Windows features, such as buttons, dialog boxes, scroll bars, and menus.
 * VB enables the user to control program execution.
 * This type of program is referred to as being event-driven. 
*The ability to create user-friendly event-driven programs with attractive Windows-like interfaces quickly has resulted in VB becoming one of the most popular programming languages.
  * VB can also be thoroughly integrated with Microsoft Office to customize programs.
* Perl (Practical Extraction and Report Language) is an interpreted language, based on C and several UNIX utilities.
 * Perl has powerful string handling features for extracting information from text files. 
* Perl can assemble a string and send it to the shell as a command; hence, it is often used for system administration tasks. 
* A program in Perl is known as a script.
Classification of Currently Available Languages according to The Programming Style 
1 Procedural/Imperative Languages:   These consist of explicit instructions that describe the step-by-step procedure to solve the problem.   These are formed from collection of basic commands (assignments, input, output, etc) and control structures (selection, iteration, etc.).   E.g.: C, Pascal, FORTRAN, Assembly, etc.
 2 Non procedural languages:   These are a programming languages that do not follow the procedural paradigm (pattern) of executing statements, subroutine calls, and control structures sequentially but instead describes a set of facts and relationships and then is queried for specific results.
 3 Functional Languages:   These are based on lambda-calculus, which concerns the application of functions to their arguments.   Functional Language programs consist of collections of function definitions and their applications.   E.g.: LISP (LISt Processing), etc.
4 Logic Programming Languages:   Here, programs consists of collections of statements within a particular logic, such as predicate logic.   E.g.: Prolog (Programming logic), etc.
 5 Object Oriented Language:   Here, programs consist of objects that interact with each other.   E.g.: SIMULA (Simulation Language), Smalltalk, Eiffel, etc..   The object-oriented language that currently dominates the market is C++.   It supports both object-oriented programming and non-object-oriented programming. 
Java, the language threatening C++ dominance, is a pure object-oriented language; that is, it is impossible to write a non-object-oriented program.   The latest version of Java is J2EE (Java2 Enterprise Edition).   A relatively new language, C# (“cee-sharp”) is Microsoft’s answer to Java.   It has most of the same advantages over C++ as does Java, but it is designed to work within Microsoft’s .NET environment. 
The .NET environment is designed for building, deploying (organizing), and running Web-based applications.   Many people referred to prior versions of Visual Basic as ‘object-oriented’, because VB programs used ‘objects’ such as command buttons, scroll bars, and others. However, it wasn’t until the current version, VB.NET, that Visual Basic supported the concepts of inheritance and polymorphism, thus meeting the criteria for a true object-oriented language.
6 Declarative Language:   These are collections of declarations.   Many functional and Logic languages are also declarative.   Here, you describe a pattern to be matched without writing the code to match the pattern.  
 7 Scripting Languages:   Scripting languages are designed to perform special or limited tasks, sometimes associated with a particular application or function.   E.g.: Perl (Practical extraction report language), etc. 
 8 Parallel Languages:   These are collections of processes that communicate with each other.   E.g.: C*, Ada, etc.. 

Stages of Computer Programming 
1         Analyzing and defining the problem
 *In some organizations, programmers receive asset of specifications from system analysts. 
* In others, the programmers meet directly with users to analyze the problem and determine the user’s needs.
* In either case, the task of problem definition involves determining the input and output.  
             *  Finally, you produce a written agreement that specifies, in detail, the input data, the required output, and the processing required converting the input into the output.  
  2  Program design  (or planning the solution)
 * The next step is to design an algorithm, a detailed, step-by-step solution to the problem.
* An algorithm must have some characteristics:
* must be precise (unambiguous); 
*must be effective;
* must have a finite number of instructions; 
* execution must always terminate. 
* There are number of design tools that a programmer can use to develop the algorithm: 
*flowchart
* pseudo code
* decision trees
 *decision tables
 *structure diagrams  .   
* After completing the algorithm design, the programmer should perform a process, called desk- checking or dry-run, to verify that it produces the desired result.
 *This involves sitting down with a pencil and paper and ‘playing computer’ by carrying out each step of the algorithm in the indicated sequence.  
   Program coding 
* Program coding means conversion of the algorithm into a set of instructions written in a computer programming language. 
* This program is keyed into the computer by using a text editor, a program that is similar to a word processor. 
Program testing and debugging
 * The following diagram illustrates the steps in preparing a program for execution.
*During these steps computer programs should be checked for program errors.
*The original program written in a computer programming language is called as source program.
 * Initially, this source program is translated into its machine language form (called object program) by the language translator (compiler).
 *If the source program violates the grammatical rules of that programming language, it cannot be converted into its machine language and these types of errors can be described as syntax errors, compile time errors, or diagnostic errors.
* As data cannot be processed without some utility programs, object programs should be linked with them to produce an executable program (load module).
 * This job is done by another system program called a linkage editor (linker).
* When required utility programs are not available or when utility programs cannot be linked with the object program properly, an executable program cannot be produced. These errors are described as link errors
* When the executable program cannot be executed, such errors can be described as run-time errors or execution-time errors.
* When an executable program is executed and if it produces undesirable results it is due to some errors in the program logic or algorithm.
 * Such errors are described as logical errors. 
* Programmers call these errors  to as bugs, and the process of locating and correcting them is referred to as debugging the program.
* If syntax, link or run-time errors are available computer can detect those errors, but the logical error should be detected by computer programmers.
  * During program testing, different types of test data (both valid and invalid) should be used as input data.


 Program implementation
* If program testing provides satisfactory results, the executable program can be used to handle data processing activities of the organization in the real environment.
* This is called program implementation.
  Program maintenance and update
* Program maintenance means to make simple corrective actions in order to run the computer program to meet data processing requirements of the organization. 
* Generally software maintenance agreements can be signed  with outsourcing or in-house maintenance personnel can be used for program maintenance.
 *Program updating means making structured changes to the existing programs or introducing a new set of programs to meet new data processing requirements of the organization.
Program documentation
* Program documentation means to keep or record information related to all the activities of the computer programming. 
*Although documentation appears as the last step in the programming process, it is actually performed throughout the entire process.
 * Documentation consists of materials generated during each step.
*E.g.: problem analysis report, algorithm, program listing, test reports, maintenance and update information, user manuals and training materials.
The Characteristics of a Good Computer Program
1. Reliability: The program should provide correct results at all times and should be free from errors.  
2. Maintainability: The existing program should be able to change or modify to meet new requirements.  
3. Portability: The program should be able to transfer to a different computer system.  
4. Readability: The program must be readable and understandable with the help of documentation.  
5. Performance: The program should handle the task more quickly and efficiently.  
6. Storage saving: The program should be written with the least number of instructions. 

Wednesday, November 21, 2012

MULTIMEDIA 1


What is Multimedia?
• An interactive combination of two or more media elements (multimedia building block), such as text, graphics, audio, animation and video integrated using a computer.
Multimedia
• Multimedia is any combination of text, graphics, sound, animation and video that  is delivered by computer
• A multimedia project development requires creative, technical, organizational, and business skills.
 • When you allow the user to control what and when these elements are delivered, it is interactive multimedia
What is multimedia System?
• A system that supports more than a single type of media
Multimedia Building Blocks
Digital environment
USER
Why multimedia?
–Ease of use –Immersive (virtual reality) experience –interaction and better retention –Better understanding –Cost effectiveness –More fun = Greater efficiency
Retention - Capacity or power of retaining  or An ability to recall or recognize what has been learned or experienced.
Integration
• The integration of simulation tools with multimedia elements makes it possible to express in a richer way the knowledge we are trying to provide, and gives the audience a better comprehension of the problem, as explanations by means of video, images, texts, etc.
Integration
• Integrating Multimedia and Hypermedia into Teaching and Learning
 • well-integrated multi-media can only improve the usability and stickiness of your site
stickiness- the property of sticking to a surface
Interactive
• Key feature of multimedia
• User determines what content is delivered, when it is delivered and how
Hypermedia HTML
• HyperMedia: not constrained to be text-based, can include other media, e.g., graphics, images, and especially the continuous media - sound and video. – The World Wide Web (WWW) – is an example of a hypermedia application.
 • Multimedia means that computer information can be represented through audio, graphics, images, video, and animation in addition to traditional media.
 • A hypertext(links) system: meant to be read nonlinearly, by following links that point to other parts of the document, or to other documents.
Hypertext is nonlinear
HTML(Hyper Text Markup Language)
• HTML: a language for publishing Hypermedia on the World Wide Web 
1. HTML uses ASCII, it is portable to all different (possibly binary incompatible) computer hardware. 
2. The next generation of HTML is XHTML - a reformulation of HTML using XML.
 • HTML uses tags to describe document elements
HTML(Hyper Text Markup Language)
• A very simple HTML page is as follows:
 <HTML>
 <HEAD> 
<TITLE> A sample web page. </TITLE>
 <META NAME = "Author" CONTENT = "Cranky Professor"> 
</HEAD> 
<BODY>
 <P> We can put any text we like here, since this is a paragraph element. </P>
 </BODY> 
</HTML> 
• Naturally, HTML has more complex structures and can be mixed in with other standards.
Multimedia Authoring
• creation of multimedia productions, sometimes called “movies" or “presentations". –we are interested in interactive applications. –we also look at still-image editors such as Adobe Photoshop, and simple video editors such as Adobe Premiere.
Multimedia Authoring
• Adobe/Macromedia Flash: allows users to create interactive movies by using the score metaphor, i.e., a timeline arranged in parallel event sequences.
• Adobe/Macromedia Director: uses a movie metaphor to create interactive presentations - very powerful and includes a built-in scripting language
• Lingo, that allows creation of complex interactive movies.
• Adobe/Macromedia Authorware: a mature, well- supported authoring product  creating interactive programs that can integrate a range of multimedia content, particularly e-learning applications.
Delivering  Multimedia
• Compact disc Inexpensive, easy mass produce and distribute 
• Online Web pages, product advertisement, demos

WHO USES ADOBE DIRECTOR?
Multimedia authors
 • Easily create and publish interactive CD-ROM discs, and rich Internet applications (RIAs). Realize the greatest return on your creativity with cross-platform authoring and playback. Game developers
• Develop engaging experiences with state-of-the- art audio capabilities, native 2D/3D rendering, and enhanced built-in technology. eLearning application authors
 • Engage learners by adding new dimensions to your training and simulation applications.

Data Representation And Organization Sample Questions

Add caption