You are on page 1of 8

Question 2: (a) Why do you need Computer Software? What are the software trends in the present time?

What are the advantages and disadvantages of using Open Source Software? Make a list of at least three useful Open Source Software that are used in Software development. List the basic features of each of these software. Answer:
Software is the easiest way for users to interact with the hardware of a system. With modern day computers, it would be impossible to accomplish anything without software. The best you could accomplish without software would be clocks (analog and basic digital) and things like that. Software is what allows complicated computations. Software Trends: Software are available in different trends now a days commonly there are two trends of software. First is paid type software or known as shareware and second is open source software known as freeware. Advantage #1 - Stability If you have used other operating systems, once you have made the switch to Linux, you will notice that Linux has an edge over Windows here. I can remember rebooting Windows many times over the years, because an application crashed, and I couldn't continue working. Linux can crash also, but it is much harder to do. If an application crashes in Linux, it will usually not harm the kernel or other processes. Advantage #2 - Free Software Most software can be obtained without cost for Linux. For example, one thing that has kept people from Linux is the lack of office software. That has changed with Open Office, and now you can edit documents and presentations from the popular Microsoft software. The conversion isn't 100% perfect, but it has worked remarkably well in allowing me to correspond and use documents that people send me via e-mail or the web. Advantage #3 - Runs on old hardware If you have an old 386 or 486 laying around collecting dust, you can use this to run Linux. I remember running Linux just fine on a Pentium 100 with a 1 GB disk drive, and 16 MB of memory. One use of an old machine like that could be a file server. Just go to your computer store, buy a large hard disk (as long as your old stuff can support it), and you can make a great storage server. With all the digital pictures and movies around today, this could be a great use for Linux. Look into using Samba, a server application for Linux that allows you to make your machine share the disk as a Windows share. Advantage #4 - Security Linux has the advantage of the code being in the public domain. This can be a double-edged sword; while you can look at the code, and developers can fix holes rapidly, it also means hackers can find bad code. I have been very impressed with the security of Linux, and the programs that run on it. I think having the code out in the open, and the ability to fix things yourself if necessary is a big plus. Who likes to work blind? With some distributions, on installation the computer will ask you what levels of security you

would like for your system. You can be very trusting, or you can be paranoid. Linux gives you this flexiblity. Disadvantage #1 - Learning curve I won't lie to you; Linux is going to take some time to learn. I know that our society likes to be instantly gratified. Learning Linux is definitely worth your time, but to really master it, you will need to spend some good time in front of your machine tinkering with things. Don't expect to be an expert after reading something like "Linux for Dummies". If you are contemplating this for your company, you will need to budget some money for training and learning time. Disadvantage #2 - Equivalent programs While I gave the example before of an office suite of programs that is working well, there are still applications that do not exist in Linux. Thankfully, this list has become much more narrow in recent months. You will want to think carefully when you switch to Linux about what programs you currently use, and if they have Linux support for them. It may not make sense for you to switch if you are going to spend tons of time converting databases and application data. Disadvantage #3 - More technical ability needed You will want to make sure that you train someone in Linux really well. Alternately, you could hire someone who has experience with Linux. A good Linux administrator needs to be on hand as you start to migrate your systems over. This is a disadvantage financially, at least in the beginning. You may find over time, however, that you only need a temporary administrator to handle the routine tasks. Disadvantage #4 - Not all hardware compatible Some of the latest and greatest hardware that is being produced is not compatible with Linux. At least, not yet. The people that contribute program code and drivers to the Linux kernel are great at including support fairly quickly. Until that time, not everything you buy for hardware in your system may work. I've had to rely on third-party drivers and other means to make hardware like a new Ethernet card work. Eventually, the support will be built in. One thing you can do is before your purchase, ask if the hardware vendor has support for Linux. Some manufacturers do write their own Linux drivers and distribute them with your purchase, making it very easy to integrate with your existing system.

1. Orange
Orange is a component-based data mining and machine learning software suite, featuring friendly yet powerful and flexible visual programmingfront-end for explorative data analysis and visualization, and Python bindings and libraries for scripting.

2. Rapid Miner RapidMiner, formerly YALE (Yet Another Learning Environment), is an environment for machine learning, data mining, text mining, predictive analytics, and business analytics. It is used for research, education, training, rapid prototyping, application development, and industrial applications. In a poll by KDnuggets, a data-mining newspaper, RapidMiner ranked second in data mining/analytic tools used for real projects in 2009[1] and was first in 2010.

3. Weka The Weka workbench[1] contains a collection of visualization tools and algorithms for data analysis and predictive modeling, together with graphical user interfaces for easy access to this functionality. The original non-Java version of Weka was a TCL/TK front-end to (mostly third-party) modeling algorithms implemented in other programming languages, plus data preprocessing utilities in C, and a Makefilebased system for running machine learning experiments.

b) What are the problems that can be caused by a Computer Virus? How can you protect you system from Computer Virus? Answer:
A computer virus is a small software program that spreads from one computer to another computer and that interferes with computer operation. A computer virus may corrupt or delete data on a computer, use an e-mail program to spread the virus to other computers, or even delete everything on the hard disk. Computer viruses are most easily spread by attachments in e-mail messages or by instant messaging messages. Therefore, you must never open an e-mail attachment unless you know who sent the message or unless you are expecting the e-mail attachment. Computer viruses can be disguised as attachments of funny images, greeting cards, or audio and video files. Computer viruses also spread by using downloads on the Internet. Computer viruses can be hidden in pirated software or in other files or programs that you may download. We can protect our computer from our virus using an Anti-Virus program e.g. Kaspersky Anti-Virus.

c) Why do you need an Operating system for a Computer System? Compare and contrast the following Operating systems: 5 a. Batch Operating System versus Multi-programming Operating system b. Network Operating System versus Distributed Operating System
Answer: The Operating System provides abstractions for other programs to work with, like files and disks. Without an operating system, you would have to access all of the hardware at a very low level implement your own file system, etc. The operating system handles the menial jobs so that other programs can concentrate on something useful. a. Batch Operating System: Batch operating system is the operating system which analyzes your i/p and groups them into batchs .That is data in each batch is of similar characteristics.And then it performs operation on each individual batch.

Multiprogramming Operating System: The mismatch between the speeds of input / output device and CPU leaves some resources of the computer system under utilized. However , if the computer system is working in the multiprogramming mode, better utilization of the available equipment can be realized multi programming refers to keeping several programs in different parts of the main memory are the same time as shown in figure 1.8 and executing them concurrently by the CPU. b. Difference between Network and Distributed operating system. Distributed operating system is one where all of computers that are connected can share in tasks that need to be done. So you could have one or more programs that you are using that are actually running on someone else's computer. This way your computer is not bogged down by trying to do everything itself. A network operating system is used to describe a set up where computers are connected and can share some resources either with each other, or a central server. They generally don't openly share all of the workload, although the server can and does provide many services for the other computers on the network.

d) Make a list of three operating systems (please include only one operating system for one Software Company). List the important features of these operating systems. Answer:
Windows The Windows operating system is pretty versatile, and can be installed on PCs having variable amounts of resources. There are versions of Windows that can be installed on PCs having as little resource as 233 MHz processor and 64 MB RAM. On the other hand, the later versions can require as high resources as Pentium 4 processors with 512 MB RAM. Thus Windows users get good choices for their operating systems, based on the system resources they have. However, Windows operating system cannot be installed in Macintosh computers. However, an even greater benefit of Windows users is the user-friendliness of the operating system. The graphical user interface is surprisingly easy to work with, and many complicated tasks on Windows can be performed with a few clicks of a mouse only. Even a layman who has never used computers can learn how to use Windows in relatively short time interval. Windows has the highest user base, and correspondingly, most software vendors develop software packages, tools and utilities based on this operating system. So, whatever task users may need to perform, chances are that they will find multiple tools or utilities to assist them in the task. Linux Linux users have the benefit of having low resource requirements as well. Linux can be installed on a PC just having the bare minimum resources. In fact, Linux is so versatile that almost any type of computer and console can probably support it, except Macintosh computers, which come preloaded with Mac OS X. However, the real problem with Linux mostly lies in its lack of user-friendliness. While Linux does have a good graphical user interface, users still have to use the command line to perform many tasks. Command lines only accept textual commands that must be typed by hand, and are often too complicated for novice users.

Mac Macintosh computers come preloaded with the Mac OS X, and this OS can only be installed on the Mac. These computers are considerably more expensive than other PCs. Even an entry level Mac can cost almost twice the amount required to assemble a Windows PC. Price is a major setback, and so is the hardware support of this OS. Mac OS X can only work on computers built specifically for the operating system. No other type of computer can run a Mac OS X. These are basically the compatibility issues regarding the three major operating systems that are used around the world these days. Each has pros and cons, and the choice is ultimately dependent on the users preference.

e) Explain the following in the context of Programming Languages with the help of an example: 4 a. Statements b. Assignment Operation c. Hierarchy of Operators d. Arrays e. Functions f. Subroutines
Answer: a. Statements: Statement is a part of your program that can be executed. In other words every statement in your program alone or in combination specifies an action to performed by your program. C provides variety of statements to help you attain any function with maximum flexibility and efficency. One of the reason for popularity of C is because of the extreme power provided to programmer in C due to it rich and diverse set of statements define in C. For becoming a top notch programmer you must have clear understanding of the C statments and the situations where staments in C are applicable. b. Assignment Operation: In the C++ programming language, the assignment operator, '=', is the operator used for assignment. Like most other operators in C++, it can be overloaded. The copy assignment operator, often just called the "assignment operator", is a special case of assignment operator where the source (right-hand side) and destination (left-hand side) are of the same class type. It is one of the special member functions, which means that a default version of it is generated automatically by the compiler if the programmer does not declare one. The default version performs a memberwise copy, where each member is copied by its own copy assignment operator (which may also be programmer-declared or compiler-generated). c. Hierarchy of operators:

Operator () [] . -> ++ --

Description Parentheses (function call) (see Note 1) Brackets (array subscript) Member selection via object name Member selection via pointer

Associativity left-to-right

Postfix increment/decrement (see Note 2) ++ -- Prefix increment/decrement + Unary plus/minus ! ~ Logical negation/bitwise complement (type) Cast (change type) * Dereference & Address sizeof Determine size in bytes * / % Multiplication/division/modulus + Addition/subtraction << >> Bitwise shift left, Bitwise shift right < <= Relational less than/less than or equal to > >= Relational greater than/greater than or equal to == != Relational is equal to/is not equal to & Bitwise AND ^ Bitwise exclusive OR | Bitwise inclusive OR && Logical AND || Logical OR ?: Ternary conditional = Assignment += -= Addition/subtraction assignment *= /= Multiplication/division assignment %= &= Modulus/bitwise AND assignment ^= |= Bitwise exclusive/inclusive OR assignment <<= >>= Bitwise shift left/right assignment , Comma (separate expressions)
d. Arrays:

right-to-left

left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right right-to-left right-to-left

left-to-right

An array in C Programing Language can be defined as number of memory locations, each of which can store the same data type and which can be references through the same variable name. An array is a collective name given to a group of similar quantities. These similar quantities could be percentage marks of 100 students, number of chairs in home, or salaries of 300 employees or ages of 25 students. e. Functions: A function is a block of code that has a name and it has a property that it is reusable i.e. it can be executed from as many different points in a C Program as required. f. Subroutines: A subroutine (also called procedure, function, routine, method, or subprogram) is a portion of code within a larger program that performs a specific task and is relatively independent of the remaining code.

f) Compare and contrast the functions of a Compiler and Interpreter.

Answer: Compiler 1 : one that compiles 2 : a computer program that translates an entire set of instructions written in a higher-level symbolic language (as C) into machine language before the instructions can be executed spends a lot of time analyzing and processing the program the resulting executable is some form of machine- specific binary code the computer hardware interprets (executes) the resulting code program execution is fast

Interpreter 1: one that interprets: as a: one who translates orally for parties conversing in different languages b: one who explains or expounds 2 a: a machine that prints on punch cards the symbols recorded in them by perforations b: a computer program that executes each of a set of high-level instructions before going to the next instruction relatively little time is spent analyzing and processing the program the resulting code is some sort of intermediate code the resulting code is interpreted by another program program execution is relatively slow

g) List at least five features of the following application software. Also give names of at least 2-3 popular software that are used for that application. 3 a. Project Management Software b. Spreadsheet c. Database Management System
a. Project Management Software i. Project dashboard ii. Project planner iii. Time tracking iv. Expense Tracking v. Online Storage vi. E.g. 24sevenoffice b. Spreadsheet i. Formulae ii. Charts iii. Formatting iv. Cell locking v. Integration of images and web vi. E.g. MS Excel c. Database Management software i. Table ii. Form iii. Report iv. Macro v. Data Access page vi. E.g. MS Access Check twice the assignments because to err is to human..Visit www.deargeek.net for more solved assignments. Thanks.