Saturday, December 10, 2011

SAD assessment 1

Name: Patrick Duane Valle                                          
Course/Year: BSCS III

Assessment 1

            In the chapter 1, we discuss the information system analyst or simply system analyst. The system analyst has an important role in developing the company operation and future outcome of what the company in the future we be. System analyst can come from anyone but anyone can’t be a system analyst.

            In order to be a good and effective system analyst, you need to have the skill and characteristic. This two are the important field you need explore and discover so that you will stand among other system analyst. The skill can be inborn but then it can also be earn by practicing. Character is the quality or attribute of the person toward his/her work. To be a good system analyst, you need to have an effective character intended in the field of information system.

            A good system analyst must not limit his/her knowledge toward his/her profession. You need to explore and learn the surrounding and habit of an information system with respect to the people behind it. Don’t be a selfish for the information that you have and you need to share your knowledge to improve the value, characteristic and skill of other. We need to understand that this generation has a fast development when it comes to the technicality of the system. We need to update and improve our knowledge every time. You need to erase the contentment in knowledge and information and we need to go beyond from our limit because limit stop us to improve and if there is no improvement then their will be no innovation and success. In innovation, selfishness hold us and because this characteristic of a person pull everybody down. We need to push other people toward there limitation and for that, we will not be a good system analyst but we can also be a good person in the eyes of other. The relation of being unselfishness toward a good system analyst is that if you are the type of unselfish one, you will share your knowledge to your co-worker to improve there performance. For that, you can also get something from them not only knowledge but also sympathy. You will get there support and as a result, their will be a smooth and calm in your surroundings.

            You need to respect and enhance your characteristic as a professional. To respect other is also respecting you as a system analyst. You need to hear and respect the opinion of your boss or your co worker and for that, you will be effective in your field and they will respect you not only for your decision and opinion but also they will respect you as who you are regardless of your possession. Respect is one aspect that you need to develop and you can’t earn respect to other if you’re a dishonest person. Honesty is very crucial especially to you as a human being and an employee. If you are a dishonest person, no one will respect you and if that’s happened, you will never be a good system analyst because you can’t convince them the reputation and the integrity of your work. Reputation is very important and we need to take good care of it as possible. You also need to cooperate to the work and task that have given to you and to your co worker. A good characteristic of a system analyst never rely on the other or just your self but their will always be teamwork like the teamwork of the employee or your boss and you. This will never be done if you have a good communication skill. You need to distance yourself to the person with a low value of reputation so that you can preserve you integrity.

            The performance toward your work and the output of your work must satisfy the client. The unsatisfied client will cause your integrity as a system analyst will degrade and you need to find a way to prevent this from happening. You need a characteristic that focus to the target person and you need to provide for what they want to happen. You need to dedicate yourself to your work to have a good result. You need also to see the possible effect as a result of your work to prevent some unexpected misunderstanding. You need to see the people involve and the reaction that affect your work.

            Competence makes you to the top and to have in the top is not that easy. You need to make yourself as low as possible because you need to understand that there are much better than you outside. In every work you will make and every system that you analyze, you need to do your best. The characteristic of being constant to your work is one characteristic that need the system analyst to have. Constancy in every aspect of your work will not just make you to the top but you will also be an effective system analyst. You need to think always that you have the responsibility and you need to shoulder the task with all your heart. Responsibility will come to the person who is really dedicated to there work and this will always be included in the characteristic of an analyst. You need to think that a system analyst have a big responsibility to be handle and before you become a good system analyst, you need to understand it first. The system analyst has too much risk to handle and for that, you need to be a strong man inside and out, physically and emotionally. The person who doesn’t know what is her/his responsibility will always be a bad system analyst. You need to stand always about your decision making and if you wont, you will not stand strong and not effective not only an analyst but in your entire life as a person, as employee and as a member of the society.

            Responsibility will always be the key as a good analyst in the long run. The potential of the work of an analyst will be evaluated in the future as a result and risk that he/she have done. No matter what negative or positive the result is, the analyst need to be ready and take almost all the responsibility because of the plans and recommendation she/he have done. If the result is positive, we have the task to give some credit to the system analyst because they are the one who make it somehow succeed or overcome the problem and give the solution. If the result is negative then the system analyst must be responsible to face the consequence. The analyst will not always be evaluated just by there performance but they also need to include the way the analyst show there responsible act. If they are responsible enough, the error and the possible problem will reduce because the analyst will think for the better of the company and he/she will do all the things he/she can do because of the responsibility that he/she willingly accepted.

            A good system analyst must value money with respect to the quality of work. When you are hired as a system analyst, you must value the money of the company and you need use it practically to minimize the cost and maximize the productivity of the system result. The money is very important in the company to support the company and in order to continue the operation. The money plays an important rule in the company and the analyst must watch it and analyze it carefully so that it will not be wasted and result to nothing. Analyst must not into greed but it must always be into the good of other especially the people around the company. If you will think always about the money for your self, you are never be an effective analyst. You analyze system not for the money you can get but you analyze because you want to help. To touch the lives of other people is greater that to have money in our pocket and spend it in the unpractical way. Analyst must also not limit their service because of the money. Although money is important in your work but sometimes, we need to go beyond it and value the service than money. The negative side of money is it limits the limitation and capacity of the people to work. Analyst must overcome it in order to have a good output and satisfy the client.

            To be observant to your surrounding is an additional edge because an observant man will make you stand and you will never loose to your track. Being observant will result to the possible solution that you will encounter during the analysation phase of your work. I can say that this characteristic is one of the most important characteristic that the analyst need to have. This will make you aware of what is happening in your surrounding and you can act fast make a suitable move.

            In the field of system analysation, a curious mind is the key to solve the unpredictable problem. If you are curious, you will always wondering around and you there will be a formulation of problem. If there is a problem, you will find something of formulate something to address the problem in your mind. In that way of thinking, you will be an effective analyst because you will find problem because of your curiosity. If the analyst is not curious, he/she will have the difficulty in finding the possible simply because they are not curious. This is critical in part of analysation because this will provide the result of your action in the future and this will determine if your work is effective or not.

            The analyst must set boundaries in his/her work and other things outside his/her work. This will insure the quality of your work because you know your limitation and boundary as a person and as employee. If you will always think about the work and you will never mixed your personal interest, I’m pretty much sure that this will make you one of the best. Even thou this is sometimes hard but you can use to it if you will always practice it and practice will make you immune to this matter. This is like a student teacher relationship and because of boundaries you set, there will always be professional quality.

            Priority in your work as an analyst will help you to get read all of the problem and task that is given to you and this will organize you as a person and analyst. To know your priority is also to know your responsibility. This will help the analyst to manage the task and to be effective to his work. You can classify your task and responsibility by giving them a low and high priority. This kind of characteristic is helpful to the analyst because it will make them more practical in terms of decision making. Priority is not always about your life but it can be also apply in your work as analyst. Like for example, you have given a task and you need to decide something and in this case, you will have to take a risk. You need to consider the priority of what is and not important. Priority is helpful in the critical phase of analyzing a system and because of this, the power of making decision will be more accurate and will generate less error in your analysis. The important things that the analyst must remember always that the higher the priority of a task or the system is, the more attention and focus are needed.

            Critical thinking for me is one of the hardest characteristic of a system analyzer can have. Critical thinking is the ability of a person to think critically and have a deep way of thinking. Analyst must on of this because to be an analyst, you need to be a critical thinker which means that you need to think higher than your limitation to think. It will always go beyond the peoples way of thinking and this will always lead you at the front of success in the field of system analysis. If you are a critical thinker, you will always notice even the smallest matter in the system and this is very helpful to your client. If you are an analyst, even the smallest percentage of problem must be discover because in system analysis , there is no room for error and you need to be accurate all the time. Error will make the system fall and for that, you need to prevent and develop a possible solution for the possible problem and the only way to do that is to think critically. Analyst must put into his/her mind that being an analyst has a critical role in the system and in order to have a good system, we must have an analyst that possess a mind that think critically. This way of thinking can be develop base on the mistake and everyday experience. I do believe that to acquire a good thinking skill, you must fail many times before you can perfectly perform a perfect task.

In every step the analyst must have, they need to be accurate always. Accuracy in the field of system analysis is the characteristic of a person to pinpoint the specific problem and specific solution. They must always be accurate because if they have luck of accuracy in analyzing the system, the percentage of error and problem that can occur during the execution is high and this will not make you an effective system analyst. In the field of information system, you need to understand its nature in order to develop the characteristic of being accurate every time.

Not all the time you need to follow rules and there is always room for go beyond the rules. You need to consider sometimes the thing which is not in the rule book. We human are not machine and for that and the things that separate us human compare to the machine is that machines don’t have emotion but we do. We need to have the characteristic of being considerate sometimes and need to balance things. This is not hard to do because you don’t need experience for it and you don’t need to study it. If you will act as a human being and not a machine, you can have this characteristic. The analyst must have this kind of characteristic to balance all the situation because in the field of analyst, we need to have to minimize the possible problem in every field of our system. You need emotion if you’re an analyst because your not always analyzing the system but you are also analyzing the behavior of the people. We need to know that the system is not the one who causes the problem but the people are. The system is just an implementation of what the people want and the system failed sometimes because of the instruction that the system analyst told the system what to do. This is because he/she didn’t consider the situation and always follow the rules. If the analyst doesn’t have the courage to go beyond the rules, they will just bounded by it and limit there capacity as an analyst.

Another characteristic of a system analyst must have is that he/she must have a risk control. In every decisions , there are always have prose and consequence. The task of system analyst is to maximize the prose and minimize the consequence and if he/she will have that characteristic, I can say that he/she can be a good system analyst. Analyst must not always have the risk although you can’t prevent to have a risk sometimes but risking is a chance of having a good or bad result. We can be successful slowly but surely by not having a risk to fail or to success. Information system is not always about gamble but it is all about accuracy. Too much risk is the common reason of the system to blow up and fail. There must be a balance of risk and accuracy that the analyst must have in his/her characteristic so that the system can serve its purpose.

To some it up, to be a system analyst is not easy and not all people can be a good system analyst. You need to consider everything in order to be an effective analyst and lots of experience is required. Practice is one of the key to be a system analyst. Characters are very important and play a critical role to the analyst. System analyst not always deals with the skills but characters. Skill is an edge but characters will lead you to the top of being a good system analyst.

             

Thursday, December 8, 2011

SAD journal: Yesterdays Trip

         About 3:00pm yesterday, we conduct a research for the possible company to adopt for our Major project in SAD. Its a bad day for us because that day, the rain didn't stop falling and its very muddy and stick outside. By the way, our first company proposal was being rejected so we need to find another. Back to the story....we are walking toward the Pag-ibig funds but my eyes caught the attention of frame2go(a business site) I saw some signboards telling about system and process. We decided to pass by but suddenly, their to busy entertaining our problem. We kept walking and pass the UCPB bank. We try to have a conversation to the employee inside but we realize that they have a strict policy and decided to leave. Then we pass another company called Digital Interface and we really like the company because the personnel in charge is very entertaining about our concern . We get their company web site for the company profile and said goodbye. Lastly, we arrive and Pag-Ibig fund and same as Digital Interface, we talk and get their company profile.

       Today, The Pag-Fund and the other company from one of my group is being approve by our subject facilitator and suddenly we expect that the digital interface will be approve but we were wrong .toink...well that's life. 
      Before i end this statement, i want to include the good and worst thing  that happens in the whole 10 hour in school. The worst thing is, i arrive in school at pass 8 o'clock am then suddenly i just found out that we don't have a class. That's the worst thing to happens to the person that love to sleep and wake up late. The good things that happens in my day are the visit of Maja Salvador in school and the two company that we propose was being approve. Thanks God.^^ 

SAD journal: Report

           Yesterday is a tiring day for me but then, its somehow my time is not wasted. During our lecture from our subject Structure analysis and design(SAD), i learned something new and something useful. There are three groups who present there topic and we are having fun listening ,discussing  and asking for the opinions of other. I learn something new about the Information system, system development and analyst as a project manager.

        Information system plays a big roll in the companies life. This will handle worst and best operation of the company. One company must be knowledgeable about what his/her system is all about and is the system is fit in the company's operation. Developing a system is not easy and we need to have the system analyst. The system analyst will have the prose and consequences because he/she will be handling the crucial part in the company. She/he will determine the future of company if it will rise or fall from the business track. 

       System analyst is one of the hardest task to do in the company. For me, anyone can be a good system analyst and we can be it but we need to have a trial and error first before we can be called as a good system analyst. System analyst is not about how good you are in coding but also, how good you are in finding problems and have a plenty of possible solution. 


Thursday, November 24, 2011

Fresh Update

     Its been a long time since I update this blog because of my SAD and CS RESEARCH  subjects. My head is turning upside down because of the requirements that i need to comply in this twosubject. paper works, paper works,  paper works, research , research and research. I think, this will be my life with in this whole semester. I really need to put some extra extra effort in order for me to pass this subject. Well, this is all for now, i really need to the PAPER works.WRAAAAR ^^ 

Thursday, February 10, 2011

Assignment number 3: Sorting algorithm

Insertion Algorithm

            Insertion algorithm is a kind of sorting algorithm where the sorting is made one at a time starting from the left most part of an array. This kind of algorithm is very useful if you have only few data to be sorted. The advantage of this algorithm is it’s easy to implement and very efficient when you have a small data. It is very user friendly in the beginner sides. One of the disadvantages in insertion algorithm comes when the array is sorted from highest to lowest because when you sorted it from lowest to highest form, it will make the value of your array shifted in every data inside before it stops. For example, you have array with a value of 5 4 3 2 1. Before the array become 1 5 4 3 2, 5 will be compare to 4 then 4 will be the new data to be compare. Next, the 4 will be compared to 3 and so on until it will be 1 2 3 4 5.

Example code for Insertion:

By:” Nikolai Bezroukov, 1996 “

#include <stdio.h>
#include <stdlib.h>

typedef int 
itemtype;     // type of item to be sorted 
int 
total_comp=0; 
int 
total_moves=0;

void 
insertSort(
itemtype *a, // array to be sorted 
int n  // size of the array; note that (n-1) is the upper index of the array
) 
{
    
itemtype t;
    
int i, j;

   
/* Outer "boundary definition" loop */
    for 
(i = 1; i < n; i++) {
         if 
( a[i-1]<=a[i] ) { total_comp++; continue;}

        
t = a[i]; total_moves++;

        
/* inner loop: elements shifted down until insertion point found  */
        for 
(j = i-1; j >= 0; j--) {
        
     total_comp++;
             if 
( a[j] <= t ) { break; }    
           
  a[j+1] = a[j]; total_moves++;
        
}
        
/* insert */
        
a[j+1] = t; total_moves++;
    
}

}

Example Flow:


Selection Sort

            Selection sort is another sorting algorithm that is known by its simple structure and a few advantage compare to the complex sorting algorithm like quick sort. The Algorithm for this is first, you need to find the smallest value in your array. Next, swap the smallest value in your array to the beginning of your array. Next is to find the second smallest value and repeat the process all over again until the array will be sorted. Note that in every successful swapping, the iteration will be added with one until it will rich at the end of file.

Example code:

void selectionSort(int arr[], int n) {
      int i, j, minIndex, tmp;    
      for (i = 0; i < n - 1; i++) {
            minIndex = i;
            for (j = i + 1; j < n; j++)
                  if (arr[j] < arr[minIndex])
                        minIndex = j;
            if (minIndex != i) {
                  tmp = arr[i];
                  arr[i] = arr[minIndex];
                  arr[minIndex] = tmp;
            }
      }
}



Bubble Sort
            Bubble sort is a sorting algorithm that is very easy to understand but the implementation or the algorithm is not that good. The original name of this is “sorting by exchange” came from articles 1962 ACM Sorting conference .This algorithm performs (n) times of its algorithm just to sort them all and it’s not a good practice in programming. For example, you have an inputs 4 2 1 5 3. You need to have a variable x and variable y. x is equal to index zero and the y is equals to 1. Compare the two and if data y is greater than x, we need to swap the value then x and y plus one. Repeat the process until it reaches the end of an array. Repeat this process over and over again to get the sorted array.

Example code.

#include <stdio.h>
#include <iostream.h>

void bubbleSort(int *array,int length)//Bubble sort function
{
    int i,j;
    for(i=0;i<10;i++)
    {
        for(j=0;j<i;j++)
        {
            if(array[i]>array[j])
            {
                int temp=array[i]; //swap
                array[i]=array[j];
                array[j]=temp;
            }

        }

    }

}

void printElements(int *array,int length) //print array elements
{
    int i=0;
    for(i=0;i<10;i++)
    cout<<array[i]<<endl;
}


void main()
{
    int a[]={9,6,5,23,2,6,2,7,1,8};   // array to sort
    bubbleSort(a,10);                 //call to bubble sort 
    printElements(a,10);               // print elements
}

Example Flow:

5 1 4 2 3
1 5 4 2 3
1 4 5 2 3
1 4 2 5 3
1 4 2 3 5
Next

1 4 2 3 5
1 2 4 3 5
1 2 3 4 5

Sometimes, the step will be repeated at (n) number of time where n=length of an array.

Shell Sort

            Shell sort is a sorting algorithm invented by Donald shell in 1959. Shell sort is a fast sorting algorithm and not bad but not that good for sorting large files. For me, shell sort is not a pure sorting algorithm but it’s only enhancing the speed of when you sort your file. It will not be effective if you will not use other sorting algorithm. The Algorithm of this is first you need to arrange your data from 1 column to N column. Sort your data from lowest to highest using another algorithm by rows. Arrange it again to make it one column and then divide it but this time, the column must be less than N column. If you are satisfied, you can sort it now by column  with a simple sorting algorithm but if your not satisfied. You can still repeat the process.

Example Code:

void shellsort (int[] a, int n)
{
    int i, j, k, h, v;
    int[] cols = {1391376, 463792, 198768, 86961, 33936, 13776, 4592,
                    1968, 861, 336, 112, 48, 21, 7, 3, 1}
    for (k=0; k<16; k++)
    {
        h=cols[k];
        for (i=h; i<n; i++)
        {
            v=a[i];
            j=i;
            while (j>=h && a[j-h]>v)
            {
                a[j]=a[j-h];
                j=j-h;
            }
            a[j]=v;
        }
    }
}

Example Flow :

 23 1 78 33 28 8 11 98 66 56 12 54 3 9 75 12 26 24 88

Arrange it in N column (where N is a programmer dependent)

23
1
78
33
28
8
11
98
66
56
12
54
3
9
75
12
26
24
88


Sort the data by column

8
1
3
9
28
12
11
24
33
56
12
26
78
66
75
23
54
98
88


Merge them all and make it one row and one column

8 1 3 9 28 12 11 24 33 56 12 26 78 66 75 23 54 98 88

Arrange it again in column less than n.

8
1
3
9
28
12
11
24
33
56
12
26
78
66
75
23
54
98
88



If you are satisfied with this, you can now perform a sorting algorithm to sort it by column and there you have it.

References:



Wednesday, February 2, 2011

assignment number 2

EMPERICAL ANALYSIS

As what i have search about the Empirical Analysis , I can only find samples of it but no specific meaning. Then I decide that just read the example given. Ive notice that Empirical Analysis is like an experiment or sometimes, it is a result of an observation and I think I'm right because according to Sir. W Hamilton [1913 Webster] -"the term empirical means simply what belongs to or is the product of experience or observation. ". Base on my reading, Empirical Analysis is all about what you have realize or learned base from your experiment or observation. Its like making a theory that you need to prove the you are right and for that, you need to experiment , observe, analyze and apply. When making Empirical Analysis, just expect that the new idea will be created and the new knowledge will be earned.

            ANALYSIS OF ALGORITHM

            We all know that Algorithm Analysis is the one who study about algorithm and according to what I've read , Analysis algorithm is a computer field that deals about the algorithm and understand the complexity of an algorithm. According to the article and base from my own understanding about that reading, we need to know how to analyze the algorithm so that we will know how much source is needed when it is executed. Algorithm will compute and estimate the shortest way in solving a specific problem and if you have a good algorithm, you can solve problem quickly but we need to remember always that in algorithm, we need to have the aspect of correctness and fast execution.
Sometimes algorithm failed when it comes to large input.

          One article that catches my attention is about the student  of Charles E. Leiserson. He taped the whole discussion and posted it in the need but unfortunately I don't have my headphone. He wrote there the important highlight about the lecture. C harles is one of the most popular author about algorithm. He started at  the state and theoretical study of algorithm.  He emphasize that in algorithm, performance is not always important. we need also to consider 

modularity,
correctness,
maintainability,
security,
functionality,
robustness,
user-friendliness,
programmer's time,
simplicity,
extensibility,
reliability, and
scalability.

And I really agree with his statement. For me, the Analysis of Algorithm is one of the most important components in building a better programmer because algorithm will define the quality of your work and the quality of your learning and somehow, am a little bit more interested about the topic and I want to know more.

            BIG-O NOTATION

Base on my reading, big o notation give information to the use by comparing two algorithms. It tells us about what will happen if we do some arrangement about our algorithm. It well tells us about the speed of execution that will result to the slower or higher speed of an algorithm run time.

According to my source, big o notations have functions.

1. O(1)-constant time
   -it requires a fixed number of steps and ignores the length like the push and pop in the link list.
2. O(n)-linear time
  -unlike O (1), O (n) requires a number of steps like traversing the link list until end.
3. O(n^2) - quadratic time
 -This is referring to the proportion of the size of n operator like the 2 dimensional arrays.
4. O(log n) - logarithmic time
-inserting or removing a binary node or searching fir a specific node.
5. O(n log n) - "n log n " time
-sorting algorithm and faster than O(log n).
6. O(a^n) (a > 1) - exponential time
-recursion algorithm like Fibonacci

Implementation

Suppose we have this code fragment

{
{Your statement......}                                                   O (1)

           
            for (;;)//loop statement
            {
                        {Statement}                                         O (n)
                        {Perform another loop}                        O (n^2)
            }

The execution time of this is 1+n+n^2=n2;