Wednesday, December 11, 2013

Display Data as ListView in Android

here we have a string jSon values in in productList arrayList labeled as TAG_PID,TAG_NAME and we are going to display our data as list view
but actually it's View of many activities that activities only have two values here one is TAG_PID,TAG_NAME here so here i'm calling list_item layout for store data one by one
AroundMe.this a name of this class

public void run() {
                    /**
                     * Updating parsed JSON data into ListView
                     * */
                    ListAdapter adapter = new SimpleAdapter(
                            AroundMe.this, productsList,
                            R.layout.list_item, new String[] {
                            TAG_PID,TAG_NAME},
                            new int[] {R.id.pid, R.id.name });
                    // updating listview
                    setListAdapter(adapter);

                }

Wednesday, November 6, 2013

Create Option Menu in Android Application

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"/>
</menu>



enter a label for your option in
android:title="@string/action_settings
==============================================================

and type this coding in your layout java page
// this for create a menu in the layout
public boolean onCreateOptionsMenu(Menu menu) {

=============================================================

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.page, menu);
        return true;
    }

  //to catch the click option from the menu to identify which option selected 
// import MenuItem Library also
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
       
        case R.id.action_settings:

//if action_setting id is chosen it will cal newproductactivity class
            Intent i = new Intent(getApplicationContext(), NewProductActivity.class);
            startActivity(i);
            return true;


        default:
            return super.onOptionsItemSelected(item);


        }
    }


===================================================
now we have one option in option menu
 import MenuItem Library also

Call Another Activity From one Activity in Android Development

to Open new activity or page
here is the android code to open new activity from one another activity





package com.one.click;//Package name
//libraries want to import
import android.R.string;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainScreenActivity extends Activity{

//Declare a button
Button btnNewProduct;

//declare a layout which is want to open when this class called
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_screen);//here is the place to enter layout name

// Buttons assign the id of the buton in our layout
btnNewProduct = (Button) findViewById(R.id.btnCreateProduct);


// here is the place show when click btnNewProduct buton which class want to open btnNewProduct.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {
// Launching create new product activity
Intent i = new Intent(getApplicationContext(), NewProductActivity.class);
startActivity(i);

}
});
}

Monday, October 14, 2013

Homologous chromosome

Homologous chromosomes (also called homologs or homologues) are chromosome pairs of approximately the same length, centromere position, and staining pattern, with genes for the same characteristics at corresponding loci. One homologous chromosome is inherited from the organism's mother; the other from the organism's father.[1] They are usually not identical, but carry the same type of information. When mitosis occurs, however, the daughter chromosomes carry exactly the same nucleotide sequence, assuming there are no errors during replication.


In diploid (2n) organisms, the genome is composed of pairs of homologous chromosomes. One chromosome of each homologous pair comes from the mother (called a maternal chromosome) and one comes from the father (paternal chromosome). Homologous chromosomes are involved in the process of meiosis in which they cross over.
Homologous chromosomes are similar but not identical. Each carries the same genes in the same order, but the alleles for each trait may not be the same. In garden peas, for example, the gene for pod colour on the maternal chromosome might be the yellow allele; the gene on the homologous paternal chromosome might be the green allele.
Chromosomes are made of two sister-chromatids, and the chromatids are attached by centromeres

Wednesday, September 11, 2013

What I learned From Presentation

Presentation is the practice of showing and explaining the content of a topic to an audience or learner. Presentations come in nearly as many forms as there are life situations. In the business world, there are sales presentations, informational and motivational presentations, first encounters, interviews, briefings, status reports, image-building, and training sessions.


in this order we must learn how to do a attractive and   meaningful presentation so university environment is the good place to develop our presentation skill and other skills .academic year will give lots and lots of opportunities to us to develop our skills we want to use it.opportunities are always with us we want to find out it.

we did our 1st individual academic presentation in our E-Technology subject about various topics related with E-Technology

we well prepared for the presentation on that day my topic is intellectual property rights that was an very impotent topic because of we are computer science students so we want to know about copyright violation

Before i do my presentation i afraid to do that because i don't have a experience to do that at that time but i believed i can do this presentation well . before i start the presentation i think 20 minuets  time is lot to me and my presentation  but while I'm present i think time is not enough to do a this type of presentation but the content of the presentation is easy to understand but area is wide.








Assembly Language

.386                ; Tells MASM to use Intel 80386 instruction set.
.MODEL FLAT ; Flat memory model
option casemap:none ; Treat labels as case-sensitive

.CONST ; Constant data segment

.STACK 100h ; (default is 1-kilobyte stack)

.DATA ; Begin initialized data segment

.CODE ; Begin code segment
_main PROC ; Beginning of code

ret

_main ENDP
END _main ; Marks the end of the module and sets the program entry point label


Assembly and C Code Compared

Some simple high-level language instructions can be expressed by a single assembly instruction:

Assembly Code C Language Code
---------------- ---------------------------------
inc result ++result; // Increment value
mov size, 1024 size = 1024; // Assign value
and var, 128 var &= 128; // Apply AND bitmask
add value, 10 value += 10; // Addition

 

More Assembly and C Code

Most high-level language instructions need more than one assembly instruction:

Assembly Code C Language Code
---------------- ---------------------------------
mov AX, value size = value; // Assign variable
mov size, AX

mov AX, sum sum += x + y + z; // Arithmetic computation
add AX, x
add AX, y
add AX, z
mov sum, AX


Assembly vs. Machine Language

Assembly Language uses mnemonics, digital numbers, comments, etc.
Machine Language instructions are just a sequences of 1s and 0s.

Readability of assembly language instructions is much better than the machine language instructions:
    Assembly Language   Machine Language (in Hex)
----------------- --------------------------
inc result FF060A00
mov size, 45 C7060C002D00
and var, 128 80260E0080
add value, 10 83060F000A
 

Controlling Program Flow

Just as in high-level language, you want to control program flow.

The JMP instruction transfers control unconditionally to another instruction.

JMP corresponds to goto statements in high-level languages:
        ; Handle one case
label1: .
.
.
jmp done

; Handle second case
label2: .
.
.
jmp done
.
.
done:
 

Conditional Jumps

Conditional jump is taken only if the condition is met.

Condition testing is separated from branching.

Flag register is used to convey the condition test result.

For example:
                cmp    ax, bx
je done
.
.
done:
 

General-Purpose Registers


  • The EAX, EDX, ECX, EBX, EBP, EDI, and ESI registers are 32-bit general-purpose registers, used for temporary data storage and memory access.
  • The AX, DX, CX, BX, BP, DI, and SI registers are 16-bit equivalents of the above, they represent the low-order 16 bits of 32-bit registers.
  • The AH, DH, CH, and BH registers represent the high-order 8 bits of the corresponding registers.

Similarly, AL, DL, CL, and BL represent the low-order 8 bits of the registers.
 


16-bit general-purpose registers

 

 

 

 

 

 

 

 

Since the processor accesses registers more quickly than it accesses memory, you can make your programs run faster by keeping the most-frequently used data in registers. 

Typical Uses of General-Purpose Registers

Register Size Typical Uses
EAX 32-bit Accumulator for operands and results
EBX 32-bit Base pointer to data in the data segment
ECX 32-bit Counter for loop operations
EDX 32-bit Data pointer and I/O pointer
EBP 32-bit Frame Pointer - useful for stack frames
ESP 32-bit Stack Pointer - hardcoded into PUSH and POP operations
ESI 32-bit Source Index - required for some array operations
EDI 32-bit Destination Index - required for some array operations
EIP 32-bit Instruction Pointer
EFLAGS 32-bit Result Flags - hardcoded into conditional operations

 

 x86 Registers

Four 32-bit registers can be used as
  • Four 32-bit registers EAX, EBX, ECX, EDX.
  • Four 16-bit registers AX, BX, CX, DX.
  • Eight 8-bit register AH, AL, BH, BL, CH, CL, DH, DL.

Some registers have special use...
  • ...ECX for count in LOOP and REPeatable instructions
  x86 registers
 

  x86 Registers, Cont

  • Two index registers ESI (source index) and EDI (destination index) can be used as
    • 16-bit or 32-bit registers
    • Also in string processing instructions
    • In addition, ESI and EDI can be used as general-purpose data registers
     
  • Two pointer registers ESP (stack pointer) and EBP (base pointer)
    • 16-bit or 32-bit registers
    • Used exclusively to maintain the stack.
     
  •  

 
Index and pointer x86 registers


  x86 Control Registers

EIP Program counter (Instruction Pointer)

EFLAGS is set of bit flags:
  • Status flags record status information about the result of the last arithmetic/logical instruction.
  • Direction flag stores forward/backward direction for data copying.
  • System flags store
    • IF interrupt-enable mode
    • TF Trap flag used in single-step debugging.

MOV, Data Transfer Instructions

The MOV instruction copies the source operand to the destination operand without affecting the source.

Five types of operand combinations are allowed with MOV:
    Instruction type             Example
-------------------------- ------------------
mov register, register mov DX, CX
mov register, immediate mov BL, 100
mov register, memory mov EBX, [count]
mov memory, register mov [count], ESI
mov memory, immediate mov [count], 23

Note: the above operand combinations are valid for all instructions that require two operands.
 

Ambiguous MOVes: PTR and OFFSET

For the following data definitions
    .DATA
table1 DW 20 DUP (?)
status DB 7 DUP (0)
.CODE
mov EBX, table1 ; "instruction operands must be the same size"
mov ESI, status ; "instruction operands must be the same size"
mov [EBX], 100 ; "invalid instruction operands"
mov [ESI], 100 ; "invalid instruction operands"

The above MOV instructions are ambiguous.

Not clear whether the assembler should use byte or word equivalent of 100.

Better:
        mov    EBX, OFFSET table1
mov ESI, OFFSET status
mov WORD PTR [EBX], 100
mov BYTE PTR [ESI], 100

INC and DEC Arithmetic Instructions

Format:
    inc destination
dec destination

Semantics:
    destination = destination +/- 1

The destination can be 8-bit, 16-bit, or 32-bit operand, in memory or in register.

No immediate operand is allowed.

Examples:
    inc    BX       ; BX = BX + 1
dec [value] ; value = value - 1

  ADD Arithmetic Instruction

Format:
    add  destination, source

Semantics:
    destination = (destination) + (source)

Examples:
    add    ebx,eax
add [value], 10h

ADD vs. INC

Note that
    inc    eax
is better than
    add    eax, 1

INC takes less space.

Both INC and ADD execute at about the same speed.

SUB Arithmetic Instruction

Format:
    sub     destination, source

Semantics:
    destination = (destination) - (source)

Examples:
    sub     ebx, eax
sub [value], 10h

SUB vs. DEC

Note that
    dec     eax
is better than
    sub     eax, 1

DEC takes less space.

Both execute at about the same speed.

CMP instruction

Format:
    cmp  destination, source

Semantics:
    (destination) - (source)

The destination and source are not altered.

Useful to test relationship such as < > or = between the two operands.

Used in conjunction with conditional jump instructions for decision making purposes.

Examples:
        cmp ebx, eax
je done ; jump if equal
..
done:
..

 Unconditional Jumps

Format:
    jmp  label

Semantics:
  • Execution is transferred to the instruction identified by the label.
  • Infinite loop example:
            mov    eax, 1
    inc_again:
    inc eax
    jmp inc_again
    mov ebx, eax ; this will never execute...

Conditional Jumps

Format:
    jcondition  label

Semantics:
  • Execution is transferred to the instruction identified by label only if condition is met.
  • Testing for carriage return example:
            ; Assume that AL contains input character.
    cmp al, 0dh ; 0dh = ASCII carriage return
    je CR_received
    inc cl
    ..
    CR_received:

Conditional Jumps, Cont

Some conditional jump instructions treat operands of the CMP instruction as signed numbers:
    je     jump if equal
jg jump if greater
jl jump if less
jge jump if greater or equal
jle jump if less or equal
jne jump if not equal
 

Conditional Jumps, Cont


Some conditional jump instructions can also test values of the individual CPU flags:
    jz     jump if zero      (ZF = 1)
jnz jump if not zero (ZF = 0)
jc jump if carry (CF = 1)
jnc jump if not carry (CF = 0)

jz is synonymous for je
jnz is synonymous for jne
 

 LOOP Instruction


Format:
    loop  target

Semantics:
  • Decrements ECX and jumps to target, if  ECX > 0
  • ECX should be loaded with a loop count value before loop begins.


  • Loop 50 times example:
        mov    ecx, 50
    repeat:
    ; loop body:
    ..
    loop repeat
    ..
  • Equivalent to:
        mov    ecx, 50
    repeat:
    ; loop body:
    ..
    dec ecx
    jnz repeat
    ..
  • Surprisingly,
        dec   ecx
    jnz repeat
  • executes faster than
        loop  repeat

 

  Logical Instructions


Format:
    and  destination, source
or destination, source
xor destination, source
not destination

Semantics:
  • Perform the standard bitwise logical operations.
  • Result goes to the destination.

TEST is a non-destructive AND instruction:
    test  destination, source

TEST performs logical AND but the result is not stored in destination (similar to CMP instruction.)
 

Logical Instructions, Cont.


Example of testing the value in AL for odd/even number:
        test  al, 01h  ; test the least significant bit
je even_number
odd_number:
; process odd number
..
jmp next
even_number:
; process even number
..
next:
 

Shift Instructions

Shift left format:
        shl  destination, count
shl destination, cl

Shift right format:
        shr  destination, count 
shr destination, cl
where count is an immediate value.

Semantics:
  • Performs left/right bit-shift of destination by the value in count or CL register.
  • CL register contents is not altered.
 


  SHL and SHR Shift Instructions

Bit shifted out goes into the carry flag CF.

Zero bit is shifted in at the other end:




  SHL Instruction




  SHR Instruction
 

Shift Instructions Examples


Count is an immediate value:
    shl    eax, 5

Specification of count greater than 31 is not allowed.

If greater, only the least significant 5 bits are actually used.

CL version of shift is useful if shift count is known at run time,
  • e.g. when the shift count is a parameter in a procedure call.
 

Only CL register can be used.

Shift count value should be loaded into CL:
    mov    cl, 5
shl ax, cl
 

Rotate Instructions


Two types of rotate instructions:
  1. Rotate without carry:
    • ROL (ROtate Left)
    • ROR (ROtate Right)
  2. Rotate with carry:
    • RCL (Rotate through Carry Left)
    • RCR (Rotate through Carry Right)

Rotate instruction operand is similar to shift instructions and supports two versions:
  • Immediate count value
  • Count value is in CL register
 

ROL and ROR, Rotate Without Carry


  ROL Instruction




  ROR Instruction
 


RCL and RCR, Rotate With Carry


  RCL Instruction




  RCR Instruction
 


  EQU directive


EQU directive eliminates hardcoding:
    NUM_OF_STUDENTS  EQU   90
..
mov ecx, NUM_OF_STUDENTS

No reassignment is allowed.

Only numeric constants are allowed.

Defining constants has two main advantages:
  1. Improves program readability
  2. Helps in software maintenance.
        mov    ecx, 90 ; HARDCODING is less readable and harder to maintain

Multiple occurrences can be changed from a single place

The convention is to use all UPPER-CASE LETTERS for names of constants.
 

EQU Directive Syntax


    name   EQU  expression


Assigns the result of expression to name.

The expression is evaluated at assembly time.

More examples:
    NUM_OF_ROWS   EQU   50

NUM_OF_COLS EQU 10

ARRAY_SIZE EQU NUM_OF_ROWS * NUM_OF_COLS

Thursday, August 15, 2013

How to Write a Software Project Proposal

  Writing a Software Project Proposal

Software engineering proposal is a document that a software developer submits to a business customer for acceptance. The proposal describes the problem to be solved and explains the resulting benefits to the customer.
What is Important in a Software Proposal
The key for a great proposal is to invent a great idea.
There is no “official template” for writing software proposals.
To sum up: Content is the key. Form is irrelevant.
Keep in mind that this is a proposal only, so you do not know that it will be accepted as such. Therefore, you do not want to waste time on formalities by following some formal descriptions/formats/templates.
The key is to diagnose the problem and propose a treatment, so to convince the customer to accept your proposal.
The customer wants to know first that you know what you are proposing to do.
They are not interested in idiosyncrasies of software engineering or programming. They assume you know that.
Only if you receive the customer’s approval, will come the issue of knowing how to do it.
The most important thing about a software engineering proposal is that the proposal is about the problem domainnot about programming. The proposal should clearly describe the motivation for the proposed work and the proposed solution along with its expected business value. The proposal should not contain any technical jargon. There are three key components of a software engineering proposal:
DIAGNOSE PROBLEM   ==>   PRESCRIBE TREATMENT   ==>   DESCRIBE PLAN OF WORK
How To Write a Software Engineering Proposal
To write a software engineering proposal, follow these steps:

  1. Problem diagnosis: describe the problem domain, describe clearly what kind of issues exist in the current practice that you would like to address.
    Be as specific as you can and provide as many details and examples as possible.
    Describe the problem domain and the problem that you’re planning to solve. People usually make a mistake of describing at a very high level the problem, too generic, and then make a huge leap and dive deep into the tiny detail of their own solution. You must make effort to bridge this gap incrementally. Start with a brief description of high-level context (few sentences or a paragraph), then describe some specific issues that you’re interested in, then provide more specific details about the sub-issues that your work will tackle.
    The best approach is to observe personally the current practice, so that you know what you are talking about. Another useful approach is to interview “domain experts,” people who are working in your target domain and who will be your potential customers. Expert opinion carries greater weight/credibility to your statements and analyses than a naive guess.
    Think of yourself as a journalist, interviewing your potential users and documenting their opinion about current problems they are facing and suggestions on how to address those problems.

  2. Proposed treatment: describe how you propose to address the diagnosed problems.
    What specific interventions will you introduce?
    What kind of metrics will you use to evaluate your success in solving the targeted problems?
    How will you know that you achieved your objective?
    Discuss the business value of your proposed solution. What will your customer and users gain from your proposed system that they are lacking now?
    Be as specific as possible in describing the envisioned benefits of your proposed solution. Provide example scenarios of how your proposed system will be used and explain how this solution is better than the current practice.

  3. Plan of work: make a convincing case that you know how to achieve the proposed goal. Step-by-step, go in details about what needs to be accomplished, how long it will take, and how it relates to other parts (independent vs. builds upon another part). You cannot know all the details yet, because you haven’t even started, but your plan should outline the main steps so that it is clear that you have a plan. Do not just copy a generic plan from a textbook, because that looks lame.
    Describe your team. What are the strengths and expertise of each team member? Explain why your team size is adequate to tackle the problem, and why the problem size requires your team and not fewer people.
    Keep in mind that this is only an initial plan so that you can give your customer a preliminary estimate of costs and expected completion date. You will need to adjust both of these estimates as you progress, but hopefully not by much.
    State how you will know that you succeeded. How will you measure the success of your system in addressing the customer’s problem that you diagnosed?
Your proposal must be written in lay language, plain English, and you should avoid any engineering terminology (unless your problem domain is an engineering process, i.e., you will develop software to improve an engineering process).
The proposal should accurately describe the user experience, though in lay language rather than using software engineering jargon. The proposal is about the user experience of the proposed system, so this must be as accurate as possible. Otherwise, the decision to accept or reject the proposal will be based on inadequate information. On the other hand, the proposal should avoid discussing the implementation details of the system (how it will be done). It is useful, though, to include what is necessary to accomplish the proposed goal, such as access to certain data (e.g., financial reports, traffic reports, etc., depending on the problem domain), other resources (e.g., sensors, devices, equipment), or expertise (e.g., statistician, security expert). It helps to know whether such resources are available and at what cost.

Why Writing a Software Proposal is Difficult
It is not that writing itself is difficult. What is difficult is learning about your problem domain, how things are done now, how your proposed system will change that. Even if you’re familiar with the domain, it takes time to think new solutions. For example, you may be using a parking garage every day, or even working as a garage operator, but it takes a great deal of time to figure out how to propose a smart parking system.
One may argue that it is to be expected at an initial stage that your proposal will be sketchy on details. Writing a detailed project proposal requires time.

That is why you should avoid wasting time on formalities and focus on what matters. Which is, diagnosing the problem and proposing a treatment. But you cannot diagnose a problem unless you have a deep understanding of your problem domain. You cannot tell your customer how you will improve their work unless you know very well how they are doing their work now!
This is where the problem arises. You may be excited about writing new programs, but you are not excited about learning biology or finance or restaurant functioning. But you cannot diagnose a problem and propose a treatment unless you know your problem domain. You must know how your customer does their business now and how your proposed system will affect your customer’s work. It is important that you are excited about developing something you feel is valuable and important.
A key quality of a great software engineer is that he or she is willing (scratch that, excited) to learn new problem domains.
A great software engineer will learn medicine if he or she is to develop a medical software system; he or she will learn sociology if he or she is to develop a social networking system (popup quiz: what’s Dunbar's numberand why Path limits your social network to 150 friends?); the engineer will go observe how restaurant personnel do their work if he or she is to develop a software system to help run a restaurant; etc.
Software Project Must Include Programming
When deciding about the project, the most important thing to keep in mind is that the software product you will develop should require lot of programming. This is a design rather than a programming course. However, in order to learn good design, the process must include actual implementation of the design. Therefore, the project must include programming.
For example, creating a data-bank and processing this data is a programming task. If your system just allows the user to set or modify values of different database records, that is not data processing. Examples of programming (data processing) include, data-bank re-organization, keyword-based search and retrieval, filtering and summarization of the data-bank, selecting a small group of users for notification, etc. However, just saying: The system will provide search facilities, may mean that you are using SQL database calls and doing no programming at all. And, programming is done in a programming language, such as C, C++, Java, or C#.
Note: Designing web pages passive web pages which contain only HTML is not programming.Therefore, your project can include web page design, but that is not enough.
On the other hand, designing active webpages using AJAX, Flash, etc., is programming and is perfectly acceptable for the class project.
Focus more on automatic data processing: not what user can manually do, but what system does automatically to save the user’s effort. For example, suppose you are designing a system for online purchasing of airline tickets. You could incorporate the following data processing features:
  • When user queries for the available flights, sort the results by price or some other attribute before displaying them;
  • Allow pending reservation requests for a price below a certain threshold, or in case another passenger cancels a completely booked flight;
  • Design a feature for marketing to the users based on their travel history;
  • If the flight gets delayed or cancelled, the system should automatically send notification to the passengers;
Strive to reduce the user’s manual interaction with the system and increase the system “smarts”! Let the system do the work for the user! Nobody is impressed with a system where the user has to invest hard work to get even simple tasks accomplished. Make every effort to reduce the number of clicks and keystrokes necessary for task completion.
Keep in mind that the key purpose of this course is that you learn how to do modular design of software and how to document the design using symbolic representations, i.e., UML diagrams. Thus, you should avoid flashy user interfaces and proprietary software. These will definitely not contribute positively to your grade, and may have negative effects. Limit your software to the tools commonly and freely available on the Web.

Choice of the Topic
The proposed topic can be almost anything; however, it is advisable to come up with something novel and innovative to keep you interested in its realization, and because innovativeness tends to make impression on the reviewers.
You could get an idea for interesting service(s) by exploring these web-sites:
Your project may or may not be Web based, but it must include programming.The process of casting out the right-size project for a given period of performance can be very frustrating. You cannot ever know what you’ll encounter while working on it. I believe that it’s better to start more ambitious and later scale down, if necessary. Start with an initial idea of desirable services and discuss as much details as possible with your partners to figure out whether or not you as a team can develop it in the given time frame. Of course, you’ll have chance to adjust your goals during the semester, as you learn more details about your target product.

3.   Working from an Existing Proposal

If you like one of the project ideas described here, your main task for the proposal is to describe how different will be your project from the projects that were done by past students in this course.
Borrowing From Past Projects
You may borrow ideas and implementation from past projects as much as you like. It is fine that you borrow 100% from a past project, take everything and then build on top of it! In fact, this approach would be preferred instead of seeing you reinvent the wheel.
However, what is important is that you contribute new value! For example, you can implement better some features/functions from an existing project; your implementation may be faster, or easier to use. Or, you may add novel features / extensions to an existing project.

4.   Proposal Format, Submission, and Feedback




Proposal Format


Each proposal should contain the following:
  1. Project title, Group number
  2. URL of your project’s web-site (for free web hosting, see here)
  3. Team profile:
    1. Individual qualifications and strengths (such as: programming, design, presentation, documentation, management and organization)
      Note: It is expected that every team member shall be involved in all project activities; this only indicates individual strengths, not their sole responsibilities
    2. Name of the elected team leader, if any (having a team leader is optional)
      The team leader should act as facilitator, to organize group meetings and generally keep track of project activities
  4. Proposed project description:
    Regardless of whether you are proposing a completely new project or building on one of the example software projects, your project description must provide detailed explanation of your proposed project,
    You may also describe typical customers for your proposed system and mention if you already have a customer or someone interested in your proposed project.
  5. Product ownership:
    Split your team into pairs of students (a team of 6 students will have 3 pairs), and each pair should list what specifically they will contribute to the end product:
    1. Functionality: which functions, if any, you will contribute, such as customer registration, data capture and storage, data processing to extract statistical parameters, etc.
    2. Qualitative property, if any, that you will contribute, such as tune up the system performance to achieve response time under x seconds, or develop and evaluate an easy-to-use user interface for this-and-this specific functional feature, or ensure confidentiatlity of a specific set of data, etc.
    Product ownership is critical to demonstrate that each team member will play a clearly defined role in the proposed project.
Proposals that are missing any of the above sections will be returned without review.
Proposal Submission
Because the project is a team work, each team submits a single document for the entire team. Email a PDF document of your proposal to both the instructor and the TA on or before the due date given here.
Submission deadline: 5:00 p.m. on the due date.
Here is a PDF writer you can use from Windows. Macs automatically convert postscript to PDF by clicking on the file icon. There are UNIX utilities that convert postscript to PDF for Linux users; make sure you include all fonts in the created PDF.
In case of novel project proposals (not based on the projects described in the class lecture notes), email immediately the breakdown of the individual contributions to the proposal.
Feedback
We will provide written feedback only for novel project proposals via email in case we feel the proposal should be revised. No feedback will be provided for proposals based on the projects described in the class lecture notes. The only two reasons for revision could be:
  • Project does not appear to include programming
  • Project does not appear to be sufficiently ambitious

The students are encouraged to be ambitious in the first iteration of the project. You will have chance to revise your project objectives at the end of the first iteration, 

Sunday, February 10, 2013

MergeSort

import java.util.*;

public class mergesort
{
    static int a;
    static int[] arry;
    static int[] temp;
    public static void main(String [] args)
    {
        mergesort mrg=new mergesort();
        mrg.readarray();
        mrg.mergesort(0,a-1);
        print(a);
    }
   

    public void readarray()
    {
        Scanner scn=new Scanner(System.in);
        System.out.println("Please enter your length of your Array list");
        this.a=scn.nextInt();
        arry=new int[a];
        for(int i=0;i<a;i++)
        {
            System.out.println("please enter your "+(i+1)+" element");
            arry[i]=scn.nextInt();
        }
    }
   
    void mergesort(int low,int high)
    {
        if(low<high)
        {
        int mid=(low+high)/2;
            mergesort(low,mid);
            mergesort(mid+1,high);
            merge(low,mid,high);
        }
   
    }
   
    void merge(int low,int mid,int high)
    {
        int i=low,j=low,k=mid+1,l;
        temp=new int[a];
        while((i<=mid)&&(j<=high))
        {
            if(arry[i]<=arry[k])
            {
                temp[j]=arry[i];
                i++;
            }
            else
            {
                    temp[j]=arry[k];
            }
            j++;
        }
        if(k<=high) for(l=j;l<=high;l++)
                    {
                        temp[j]=arry[l];
                        j++;
                    }
            else
            {
                for(l=i;l<=mid;i++)
                {
                    temp[j]=arry[i];
                    j++;
                }
            }
           
        for(int p=low;p<=high;p++)
        {
            arry[p]=temp[p];
        }
    }
   
    void print(int high)
    {
        for(int i=0;i<=high-1;i++)
        {
        System.out.print(arry[i]+" ");
        }
    }
   
}