Posts

Showing posts with the label Indexed

Tree Data Structures and Priority Queues

Image
Tree Data Structures Tree is a collection of nodes. If the collection is empty the tree is empty otherwise it contains a distinct node called root (r) and zero or more sub-trees whose roots are directly connected to the node r by edges. The root of each tree is called child of r, and r the parent. Any node without a child is called leaf. We can also call the tree as a connected graph without a cycle. So there is a path from one node to any other nodes in the tree. The main concern with this data structure is due to the running time of most of the operation require O(logn). We can represent tree as an array or linked list. Some of the definitions Level h of a full tree has d^(h-1) nodes. The first h levels of a full tree have 1 + d + d^2 + …………………….. d^(h-1) = (d^h -1)/(d-1) Binary Search Trees BST has at most two children for each parent. In BST a key at each vertex must be greater than all the keys held by its left descendents and smaller or equal than all the keys held by its r

General Software Features and Trends

Image
General Software Features and Trends Introduction Nowadays software projects are becoming more and more complex — in size, sophistication, and technologies used. Most software products are used by a huge number of people, not only that, this software support different national languages and comes in different sizes and shapes — desktop, standard, professional, Enterprise Resource Planning (ERP) packages, and so on. Almost all application software products (like word processors, and ERP packages) support more than one hardware and/or software platform. For example, we have web browsers for the PC and Mac; we have database management systems that run on VMS, UNIX, Windows NT, Linux, and so on. The competition and the advancements in technology are driving software vendors to include additional functionality and new features to their products— just to stay in business. Information Technology is revolutionizing the way we live and work. Digital technology has given mankind the ability to

NP-Completeness | Tractable and Intractable Problems | Polynomial time reduction | DAA

Image
  NP-Completeness Most of the problems considered up to now can be solved by algorithms in worst-case polynomial time. There are many problems and it is not necessary that all the problems have an apparent solution. This concept, somehow, can be applied to solving the problem using computers. The computer can solve: some problems in a limited time e.g. sorting, some problems require an unmanageable amount of time e.g. Hamiltonian cycles, and some problems cannot be solved e.g. I-lasting Problem. In this section, we concentrate on the specific class of problems called NP-complete problems (will be defined later). Tractable and Intractable Problems We call problems as tractable or easy if the problem can be solved using polynomial-time algorithms. The problems that cannot be solved in polynomial time but require a super polynomial-time algorithm are called intractable or hard problems. There are many problems for which no algorithm with running time better than exponential time is kn

Scope Variables and Return Statement in Python | Python Theory

Scope of Variables All variables in a program may not be accessible at all locations in that program. This depends on where you have declared a variable. The scope of a variable determines the portion of the program where you can access a particular identifier. There are two basic scopes of variables in Python − Global variables Local variables Global vs. Local variables Variables that are defined inside a function body has a local scope, and those defined outside have a global scope. This means that local variables can be accessed only inside the function in which they are declared, whereas global variables can be accessed throughout the program body by all functions. When you call a function, the variables declared inside it are brought into scope. Following is a simple example − total = 0; # This is global variable. # Function definition is here      def sum( arg1, arg2 ): # Add both the parameters and return them."      total = arg1 + arg2; # Here total

Digital Signatures and Digital Certificate | Computer Network

Digital signatures A digital signature or digital signature scheme is a mathematical scheme for demonstrating the authenticity of a digital message or document. A valid digital signature gives a recipient reason to believe that the message was created by a known sender such that they cannot deny sending it (authentication and non-repudiation) and that the message was not altered in transit (integrity). Digital signatures are commonly used for software distribution, financial transactions, and in other cases where it is important to detect forgery or tampering. A digital signature (NOT a digital certificate) is an electronic signature that can be used to authenticate the identity of the sender of a message or the signer of a document, and possibly to ensure that the original content of the message or document that has been sent is unchanged. Digital signatures are easily transportable, cannot be imitated by someone else, and can be automatically time-stamped. The ability to ensur

Network Security | Computer Network

NETWORK SECURITY Network security consists of the provisions and policies adopted by a network administrator to prevent and monitor unauthorized access, misuse, modification, or denial of a computer network and network-accessible resources. Network security involves the authorization of access to data in a network, which is controlled by the network administrator. Users choose or are assigned an ID and password or other authenticating information that allows them access to information and programs within their authority. Network security concerns: Secrecy Secrecy has to do with keeping information out of the hands of unauthorized users. This is what usually comes to mind when people think about network security. Authentication Authentication deals with determining whom you are talking to before revealing sensitive information or entering into a business deal. Non-repudiation and Integrity Control Non-repudiation deals related with signatures. Assurance that a m

History Of HTML | Web Technology

HISTORY OF HTML In 1980, physicist Tim-Berners-Lee, a contractor at CERN proposed internet-based hypertext system. It was formally defined by Internet Engineering Task Force (IETF). After the development of Html, IETF created an Html working group. The HTML working group developed Html 2.0 in 1995. The combined work of the World Wide Web Consortium (W3C) and Web Hypertext Application Technology Working Group (WHATWG) released a greater number of advanced Html versions Html 3.2 in 1997, Html 4.0 in 1997, Html 4.01 in 1999 After a long interval, Html released a new version called Html5 in 2014. Html5 enhances the web pages to a new world. In 2016 Html 5.1 version was released by W3C. Now let's have a brief history of versions of HTML that we have till now. HTML 1.0 HTML 1.0 was the first release of HTML to the world. Not many people were involved in website creation at the time, and the language was very limiting. There really wasn’t much you could do with it b

Computer-Aided Software Engineering (CASE) Tools | SAD

Image
Computer-Aided Software Engineering (CASE) Tools Computer-aided systems engineering (CASE) tools are the software programs that help the development team do their jobs more efficiently and more effectively. These tools support the drawing and analysis of system models. Some CASE tools also provide prototyping and code generation capabilities. Some examples are: Oracle’s Designer 2000, Rational’s Rose, Platinum’s Erwin, Popkin’s System Architect 001, and Visible System’s Visible Analyst. At the center of any CASE tool’s architecture is a developer’s database called a CASE repository. CASE repository is a system developer’s database where developers can store system models, detailed description and specification, and other products of system development. It is also called dictionary or encyclopedia. Around the CASE repository is a collection of tools or facilities for creating system models and documentation. These facilities generally include: Diagramming tools –These tool

Different Approaches to Improve Information Systems Development | SAD

Image
Different Approaches to Improving Information Systems Development Several different approaches have been developed in the continuous effort to improve the systems analysis and design process. The two important approaches are prototyping and joint application development (JAD). Prototyping Prototyping is a form of rapid application development (RAD). Prototyping is a rapid, iterative, and incremental process of systems development in which requirements are converted to a working system that is continually revised through close work between the development team and the users. We can build a prototype with any computer language or development tool, but special prototyping tools have been developed to simply the process. A prototype can be developed with some fourth-generation language (4GL), with the query and screen and report design tools of a database management system, and with tools called computer-aided software engineering (CASE) tools. Prototyping In prototyping

System Development Life Cycle (SDLC) | SAD

Image
Developing Information Systems and System Development Life Cycle (SDLC) Most organizations use a standard set of steps, called a systems development methodology to develop and support their information systems. It is a standard process followed in an organization to conduct all the steps necessary to analyze, design, implement, and maintain information systems. And systems development life cycle (SDLC) is the traditional methodology used to develop, maintain, and replace information systems. It includes different phases as shown in the figure below. This representation of SDLC is sometimes referred to as the waterfall model or classic life cycle.   Fig: The systems development life cycle The first phase is called planning. In this phase, someone identifies the need for a new or enhanced system. These needs are then analyzed, prioritized, and arranged into a plan for the IS department. Here, a potential information systems project is explained and an argument for continui

Preparing Career as a Systems Analyst | SAD

System analysts are the key individuals in the information system development process. To succeed as a system analyst, you will need to develop the following skills. Working Knowledge of Information Technology : This is a technical skill. The analyst must be aware of both existing and emerging information technology. Such knowledge can be acquired through college courses, seminars, and training programs. Computer Programming Experience and Expertise : This is also a technical skill needed by systems analysts. Most system analysts need to be proficient in one or more high-level programming languages. General Knowledge of Business Processes and Terminology : Most of the systems today are business-related and the systems analysts must be able to communicate with business experts to gain an understanding of their problems and needs. So, this skill is a must. To develop this skill, the system analyst should have knowledge about the courses like accounting, finance, business law and et

Information System Stakeholders, Vendors and Consultants | SAD

Information System Stakeholders, Vendors, and Consultants Information System Stakeholders A stakeholder is any person who has an interest in an existing or proposed information system. She/he may be technical or non-technical and internal or external workers. Stakeholders are also called information workers. An information worker involves in creating, collecting, processing, distributing, and using information. There are six groups of stakeholders and each group has a different role in the same information system. But in practice, any individual person may play more than one role. For example, a system analyst may also work as a system designer. The six groups are: system owners, system users, system designers, system builders, system analysts and project managers, and information technology vendors and consultants. System owners System owners are the information system’s sponsors and chief advocates. They are usually responsible for funding the project of development, op

Information System and Its Types | System Analysis and Design (SAD)

What is an Information System? In the simplest sense, a system that provides information to people in an organization is called an information system (IS). Information systems in organizations capture and manage data to produce useful information that supports an organization and its employees, customers, suppliers, and partners. So, many organizations consider information systems to be an essential one. Information systems produce information by using data about significant people, places, and things from within the organization and/or from the external environment to make decisions, control operations, analyze problems, and create new products or services. Information is the data shaped into a meaningful form. Data, on the other hand, are the collection of raw facts representing events occurring in organizations or the environment before they have been organized and arranged into a form that people can understand and use. The three activities to produce information in an i

What is System? | SAD

Image
What is a System? A system is a collection of components (subsystems) that work together to realize some objective. For example, the library system contains librarians, books, and periodicals as components to provide knowledge for its members. Basic System Module

Approximation Algorithms | DAA

Image
Approximation Algorithms An approximate algorithm is a way of dealing with NP—completeness for optimization problem. This technique does not guarantee the best solution. The goal of an approximation algorithm is to come as close as possible to the optimum value in a reasonable amount of time which is at most polynomial time. If we are dealing with optimization problem {maximization or minimization} with feasible solution having positive cost then it is worthy to look at approximate algorithm for near optimal solution. Vertex Cover Problem A vertex cover of an undirected graph G =(V.E) is a subset V‘ I V such that for all edges (u.v) EE either usV’ or vsV’ or u and v 2 V’. The problem here is to find the vertex cover of minimum size in a given graph G. Optimal vertex—cover is the optimization version of an NP—complete problem but it is not too hard to find a vertex-cover that is near optimal. Algorithm ApproxVertexCover {G} { C ={ } ; E’ = E while E' is not empty do