Introduction to Computer Science and Engineering

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sodales ligula vel sapien vehicula finibus. Curabitur consequat massa lorem, non blandit augue convallis nec. Suspendisse malesuada vehicula libero.

img

Corona

img

for

BE First year

Introduction to Computer Science and Engineering

(CS-111)

According to CBCS Scheme

Corona publication

Any brand names and product names mentioned in this book are subject to trademark, brand or patent protection and are trademarks or registered trademarks of their respective holders. The use of brand names, product names, common names, trade names, product descriptions etc. even without a particular marking in this work is in no way to be construed to mean that such names may be regarded as unrestricted in respect of trademark and brand protection legislation and could thus be used by anyone.

First edition with New CBCS Scheme Syllabus

Publisher : Corona Publication, India

Website : http://www.coronapublication.com

Note:  This book has been published for the first year engineering students of RGPV, Bhopal and other Indian Universities, the material provided by the author (s) is original. Every effort is made to ensure accuracy of material. In publishing of this book all the precautions regarding its content and data have been taken care of, but, even then. Neither the author nor the publisher of the book hold any responsibility for any mistakes that, may have inadvertently crept in and not responsible for any controversy.

CS111 INTRODUCTION TO COMPUTER SCIENCE & ENGINEERING

CS111 INTRODUCTION TO COMPUTER SCIENCE & ENGINEERING 2-0-0

COURSE OBJECTIVE:

To Introduce:

  • Course Structure & Scope of the branch
  • The basic concepts in Computer Science & Engineering
  • The different styles of programming
  • Types & important features of programming languages

COURSE CONTENT:

CBCS Guidance/ Counselling / Advices, Complete course structure/scheme, Continuous Evaluation System. Relevance & Importance of each subject, Specialization Flow Diagram, Pre-requisite Flow Diagram, Scope of the Branch and Future Avenues.
Review of Computer Engineering Fundamentals: Definition, Evolution, Classification, Number System, Organization i.e. CPU, register, Bus Architecture, Instruction Set, Memory & Storage Systems, I/O Devices & Application Software.
Computer Science & Engineering Application in: Data Processing, Information Systems, Communication, Interworking, World Wide Web, e-Business, Bio-Informatics, Health Care, Remote Sensing & GIS, Meteorology and Climatology, Computer Gaming, Multimedia and Animation etc, Defence.
Introduction to flowchart, Algorithm, Categories of Programming Languages, Program design, What are data structures, Introduction to Programming, Security Threats: Viruses, Worms, Malware, Trojans, Spyware, and anti-spyware software, firewall, internet fraud.
Overview and idea about good computer magazines, Major Computer Science & Engineering Journals, Case Studies/ Success Stories of Computer Engineers, Professional Societies and associations, Computing Ethics & Good Practices.

COURSE OUTCOMES

After successful completion of course, students will be able to:

  • Know course structure & scope of the branch.
  • Know the basic concepts in Computer Science & Engineering.
  • Compare different styles of programming languages.
  • Will start writing algorithm for problems.



UNIT - 1

CBCS, COURSE STRUCTURE AND SCOPE OF THE BRANCH

1.1 INTRODUCTION

University Grants Commission has come up with the Choice Based Credit System (CBCS) program in which the students have a choice to choose from the prescribed courses, which are referred as core, elective or minor or soft skill courses and they can learn at their own pace and the entire assessment is graded-based on a credit system. The basic idea is to look into the needs of the students so as to keep up-to-date with development of higher education in India and abroad. CBCS aims to redefine the curriculum keeping pace with the liberalization and globalization in education. CBCS allows students an easy mode of mobility to various educational institutions spread across the world along with the facility of transfer of credits earned by students.

1.1.1 FEATURES OF CBCS

  • This is a uniform CBCS for all central and state and other recognized universities
  • There are three main courses: Core, Elective and Foundation.
  • There are also non-credit courses available which will be assessed as ‘Satisfactory’ or “Unsatisfactory’. This is not included in the computation of SGPA/CGPA.
  • All the three main courses will be evaluated and accessed to provide for an effective and balanced result.

1.1.2 ADVANTAGES OF CBCS

  • The CBCS offers a ‘cafeteria’ approach in which the students can choose courses of their own choice.
  • The credit system allows a student to study what he prefers in his own sequence as per his interests.
  • They can learn at their own pace.
  • They can opt for additional courses and can achieve more than the required credits.
  • They can also opt for an interdisciplinary approach to learning.
  • Inter college/university migration within the country and outside becomes easy with the transfer of Credits. This means that it will be easier for foreign universities to come and offer courses in India.
  • Can opt for one part of the course in one institute and the other part in another institute. This will help in making a clear choice between good and bad colleges/ institutes.
  • The students have more scope to enhance their skills and more scope of taking up projects and assignments, vocational training, including entrepreneurship.
  • The system improves the job opportunities of students.
  • The system will help in enabling potential employers assess the performance of students on a scientific scale.

1.2 CBCS GUIDENCE

The University Grants Commission (UGC) has framed guidelines for adoption of Choice-Based Credit System (CBCS) for all undergraduate and postgraduate level degree, diploma and certificate programmes under the credit system awarded by Central, State and Deemed to be Universities. The details of the guidelines are available at http://www.ugc.ac.in/pdfnews/9555132_Guidelines.pdf . The CBCS will enable students to take courses of their choice, learn at their own pace, undergo additional courses and acquire more than the required credits, and adopt an interdisciplinary approach to learning. The CBCS guidelines also provide for standardized Letter Grades, corresponding Grade Points, uniform method for calculation of Semester Grade Point Average (SGPA) and Cumulative Grade Point Average (CGPA) and a consolidated Transcript Format to indicate a student’s performance in each semester. The grading system is considered to be better than the conventional marks system and hence it has been followed in the top institutions in India and abroad. Adoption of grading system will facilitate seamless mobility of students across the institutions within and across countries and also enable employers to assess the performance of students.

The UGC has circulated these guidelines to the Vice-Chancellors of all universities and requested them to introduce this system from the academic year 2015-16. The details of adoption of the guidelines are not centrally maintained in the UGC. The UGC has indicated in the guidelines that it is desirable that Higher Educational Institutions move to CBCS and implement the grading system.

1.3 COUNSELLING AND ADVICE

Choosing your career is perhaps the most important decision you take in your life. The right choice, based on not just “scope” and what everyone else is doing, but on one’s own interest, inclination, aptitude and potential, can give a head start in this competitive world, and take you on the fast-track to success.
If there was a “best” career that everyone would aim for, then very soon its scope would drastically come down, because there will be too many people qualifying in that field. In fact this is what happened in the late nineties to IT and in the past few years to BT (biotechnology). Both are very challenging and promising fields. But whenever too many people rush towards them, the demand obviously comes down.
Keep in mind that when you choose a career and qualify in it, you will be working for almost fifty years in your chosen profession. Have a vision, don’t be carried away by which field the highest paid jobs are currently being offered in. In your working life, many times the “scope” of the career will go up and down. But if you choose wisely, and for the right reasons, you will continue to do well even when there is a recession in that field.
If you have finished your 10th, you are already on the crossroads where you have to start taking the most important decisions of your life. If you are coming close to the 10th standard, it is time to start narrowing down right now. If you are even further ahead academically, this is your last chance to steer towards your final goal. Introspect deeply.

Your career decisions should be based on the following factors:

  • Your interest (what you actually want to do for the rest of your life, what you will enjoy doing).
  • Your love for particular subjects, since they lay the foundation of the work you are going to be doing.
  • The lifestyle that you prefer, your personality characteristics, your extra-curricular interests.
  • Your aptitude – i.e. your potential to develop the skills required in any particular career.

1.4 COMPLETE COURSE STRUCTURE AND SCHEME

1.4.1 COURSE STRUCTURE

The course structure is designed in such a way to let the students understand the importance of the branch, scope of the branch and also the basic important concepts of the subject to help them understand that where the branch has its applications and how it is used practically. The objective of the course structure is as follows-

  • Course Structure & Scope of the branch
  • The basic concepts in Computer Science & Engineering
  • The different styles of programming
  • Types & important features of programming languages

The conclusions that the students will be able to learn at the end of the course structure is given below-

  • Know course structure & scope of the branch
  • Know the basic concepts in Computer Science & Engineering
  • Compare different styles of programming languages
  • Will start writing algorithm for problems

1.4.2 COURSE SCHEME

This new course scheme has a total of 8 subjects in the starting semester. But all these subjects do not have theory exams. 5 of these subjects have theory as well as practical exams and 3 subjects will only going to have practical exams. The total in the new scheme is of 1000 marks for the whole semester, including both theory and practical marks. The total of theory marks of the 5 subjects is 500 and for practical's of all the 8 subjects, the total is 500 marks.

1.5 CONTINUOUS EVALUATION SYSTEM

CCE refers Continuous & Comprehensive Evaluation, a system of school based assessment that covers all the aspects of a student’s development. It was designed to reduce the student stress related to board exams, and to introduce a uniform and comprehensive pattern for student evaluation across the country. It emphasizes on two broad objectives: (a) Continuity in Evaluation and (b) Assessment of broad based learning. Clearly, it attempts to shift emphasis from ‘testing’ to ‘holistic learning’ with an aim of creating young adults, possessing appropriate skills and desirable qualities in addition to academic excellence.

1.5.1 OBJECTIVES OF CCE

  • Encourage development of cognitive skills and de-emphasize rote learning.
  • Make the entire education process a student-centric activity.
  • Help develop cognitive, psychomotor and interpersonal skills.
  • Make holistic evaluation an integral part of entire education process.
  • Improve student's accomplishments through regular diagnostics and remedial instructions.
  • Use evaluation to control quality and maintain desired performance.
  • Take decisions about the learner, learning process and learning environment by determining social utility, desirability & effectiveness of the program

1.6 REVIEW OF COMPUTER ENGINEERING FUNDAMENTALS DEFINATION

Computer engineering refers to the study that integrates electronic engineering with computer sciences to design and develop computer systems and other technological devices. Computer engineering professionals have expertise in a variety of diverse areas such as software design, electronic engineering and integrating software and hardware. Computer engineering allows professionals to engage in a number of areas such as analyzing and designing anything from simple microprocessors to highly featured circuits, software design, and operating system development. Computer engineering is not limited to operating computer systems but is aimed at creating a broad way to design more comprehensive technological solutions.

The term computer engineering is often confused with computer science, but these two terms are different. Computer scientists are responsible for electrical and software manufacturing, while computer engineers are trained to design software and perform and integrate that software with hardware components. Computer engineering also includes the engineers who write firmware specifically for embedded microcontrollers, design and develop analog sensors, design very-large-scale integration chips, and create schemes for mixed- and single-circuit boards. The engineering field of computer sciences also contributes to robotic research that requires digital systems to monitor electrical components like motors and sensors.

1.6.1 EVOLUTION

It has always been difficult for students to remember the dates and years. Evolution of computers and the branch computer engineering also has a lot of such dates to be remembered by students. So, for the ease of students, we are providing a timeline, which will make it easy for you to learn and remember the years. It will shortly define what have had done and in what year. The timeline goes as follows-

1801: In France, Joseph Marie Jacquard invents a loom that uses punched wooden cards to automatically weave fabric designs. Early computers would use similar punch cards.

1822: English mathematician Charles Babbage conceives of a steam-driven calculating machine that would be able to compute tables of numbers. The project, funded by the English government, is a failure. More than a century later, however, the world’s first computer was actually built.

1890: Herman Hollerith designs a punch card system to calculate the 1880 census, accomplishing the task in just three years and saving the government $5 million. He establishes a company that would ultimately become IBM.

1936: Alan Turing presents the notion of a universal machine, later called the Turing machine, capable of computing anything that is computable. The central concept of the modern computer was based on his ideas.

1937: J.V. Atanasoff, a professor of physics and mathematics at Iowa State University, attempts to build the first computer without gears, cams, belts or shafts.

1941: Atanasoff and his graduate student, Clifford Berry, design a computer that can solve 29 equations simultaneously. This marks the first time a computer is able to store information on its main memory.

1943-1944: Two University of Pennsylvania professors, John Mauchly and J. Presper Eckert, build the Electronic Numerical Integrator and Calculator (ENIAC). Considered the grandfather of digital computers, it fills a 20-foot by 40-foot room and has 18,000 vacuum tubes.

1946: Mauchly and Presper leave the University of Pennsylvania and receive funding from the Census Bureau to build the UNIVAC, the first commercial computer for business and government applications.

1947: William Shockley, John Bardeen and Walter Brattain of Bell Laboratories invent the transistor. They discovered how to make an electric switch with solid materials and no need for a vacuum.

1953: Grace Hopper develops the first computer language, which eventually becomes known as COBOL. Thomas Johnson Watson Jr., son of IBM CEO Thomas Johnson Watson Sr., conceives the IBM 701 EDPM to help the United Nations keep tabs on Korea during the war.

1954: The FORTRAN programming language is born.

1958: Jack Kilby and Robert Noyce unveil the integrated circuit, known as the computer chip. Kilby was awarded the Nobel Prize in Physics in 2000 for his work.

1964: Douglas Engelbart shows a prototype of the modern computer, with a mouse and a graphical user interface (GUI). This marks the evolution of the computer from a specialized machine for scientists and mathematicians to technology that is more accessible to the general public.

1969: A group of developers at Bell Labs produce UNIX, an operating system that addressed compatibility issues. Written in the C programming language, UNIX was portable across multiple platforms and became the operating system of choice among mainframes at large companies and government entities. Due to the slow nature of the system, it never quite gained traction among home PC users.

1970: The newly formed Intel unveils the Intel 1103, the first Dynamic Access Memory (DRAM) chip.

1971: Alan Shugart leads a team of IBM engineers who invent the “floppy disk,” allowing data to be shared among computers.

1973: Robert Metcalfe, a member of the research staff for Xerox, develops Ethernet for connecting multiple computers and other hardware.

1974-1977: A number of personal computers hit the market, including Scelbi & Mark-8 Altair, IBM 5100, RadioShack’s TRS-80 —affectionately known as the “Trash 80” — and the Commodore PET.

1975: The January issue of Popular Electronics magazine features the Altair 8080, described as the "world's first minicomputer kit to rival commercial models." Two "computer geeks," Paul Allen and Bill Gates, offer to write software for the Altair, using the new BASIC language. On April 4, after the success of this first endeavor, the two childhood friends form their own software company, Microsoft.

1976: TSteve Jobs and Steve Wozniak start Apple Computers on April Fool’s Day and roll out the Apple I, the first computer with a single-circuit board.

1977: Radio Shack's initial production run of the TRS-80 was just 3,000. It sold like crazy. For the first time, non-geeks could write programs and make a computer do what they wished.

1977: Jobs and Wozniak incorporate Apple and show the Apple II at the first West Coast Computer Faire. It offers color graphics and incorporates an audio cassette drive for storage.

1978: Accountants rejoice at the introduction of VisiCalc, the first computerized spreadsheet program.

1979: Word processing becomes a reality as MicroPro International releases WordStar.

1981: The first IBM personal computer, code-named “Acorn,” is introduced. It uses Microsoft’s MS-DOS operating system. It has an Intel chip, two floppy disks and an optional color monitor. Sears & Roebuck and Computerland sell the machines, marking the first time a computer is available through outside distributors. It also popularizes the term PC.

1983: Apple’s Lisa is the first personal computer with a GUI. It also features a drop-down menu and icons. It flops but eventually evolves into the Macintosh. The Gavilan SC is the first portable computer with the familiar flip form factor and the first to be marketed as a “laptop.”

1985: Microsoft announces Windows, its response to Apple’s GUI. Commodore unveils the Amiga 1000, which features advanced audio and video capabilities.

1985: The first dot-com domain name is registered on March 15, years before the World Wide Web would mark the formal beginning ofInternet history. The Symbolics Computer Company, a small Massachusetts computer manufacturer, registers Symbolics.com. More than two years later, only 100 dot-coms had been registered.

1986: Compaq brings the Deskpro 386 to market. Its 32-bit architecture provides as speed comparable to mainframes.

1990: Tim Berners-Lee, a researcher at CERN, the high-energy physics laboratory in Geneva, develops HyperText Markup Language (HTML), giving rise to the World Wide Web.

1993: The Pentium microprocessor advances the use of graphics and music on PCs.

1994: PCs become gaming machines as "Command & Conquer," "Alone in the Dark 2," "Theme Park," "Magic Carpet," "Descent" and "Little Big Adventure" are among the games to hit the market.

1996: Sergey Brin and Larry Page develop the Google search engine at Stanford University.

1997: Microsoft invests $150 million in Apple, which was struggling at the time, ending Apple’s court case against Microsoft in which it alleged that Microsoft copied the “look and feel” of its operating system.

1999: The term Wi-Fi becomes part of the computing language and users begin connecting to the Internet without wires.

2001: Apple unveils the Mac OS X operating system, which provides protected memory architecture and pre-emptive multi-tasking, among other benefits. Not to be outdone, Microsoft rolls out Windows XP, which has a significantly redesigned GUI.

2003: The first 64-bit processor, AMD’s Athlon 64, becomes available to the consumer market.

2004: Mozilla’s Firefox 1.0 challenges Microsoft’s Internet Explorer, the dominant Web browsers. Facebook, a social networking site, launches.

2005: YouTube, a video sharing service, is founded. Google acquires Android, a Linux-based mobile phone operating system.

2006: Apple introduces the MacBook Pro, its first Intel-based, dual-core mobile computer, as well as an Intel-based iMac. Nintendo’s Wii game console hits the market.

2007: The iPhone brings many computer functions to the smartphone.

2009: Microsoft launches Windows 7, which offers the ability to pin applications to the taskbar and advances in touch and handwriting recognition, among other features.

2010: Apple unveils the iPad, changing the way consumers view media and jumpstarting the dormant tablet computer segment.

2011: Google releases the Chromebook, a laptop that runs the Google Chrome OS.

2012: Facebook gains 1 billion users on October 4.

2015: Apple releases the Apple Watch. Microsoft releases Windows 10.


1.6.2 CLASSIFICATION

Computers can be classified into multiple categories, depending upon different basis of classification. They are so many things a computer system has, that could made it different from other computer systems. The classification of computers are done on the following basis-

  • On the basis on OPERATING PRINCIPLES.
  • On the basis of APPLICATION.
  • On the basis of SIZE AND CAPACITY.
  • On the basis of NUMBER OF MICROPROCESERS USED.
  • On the basis of NUMBER OF USERS.

ON THE BASIS OF OPERATING SYSTEM

Here operating system means the environment and the basis of construction and they way of working that a computer system has. Classification under this category is-

Digital Computers – Digital computers are the computers that use only digital form of data.

Analog Computers – Analog computers uses analog type of data to get executed.

Hybrid Computers – – Hybrid computers are the mixtures of digital and analog computers.

ON THE BASIS OF APPLICATIONS

On the basis of applications means that whether the computer is for general purpose use or for some particular special application.

Special Purpose Computers – These are the computers that are especially designed for some particular task and cannot be used as a general computer.

General Purpose Computer – – It is a computer system that we generally use, for multiple applications.

ON THE BASIS OF SIZE AND CAPACITY

This classification of computers is due to the size of the computer system. Here size does not mean the physical size, but it defines its capacity.

Microcomputers – These are the personal computers that we use on the daily basis. Desktops and portable computers are the microcomputers. Portable computers could be laptops, Notebooks, Palmtops, Tablets, etc.

Minicomputer – These are the computers which are medium in size, and more powerful than microcomputers.

Mainframe Computers – These are the computers which have high storage capacity and have very high speed of processing.

Supercomputer – These are the computers which have extremely large capacity of storing data and have a computing speed which is many times faster than other computers.

ON THE BASIS OF NUMBER OF MICROPROCESSERS USED

Sequential Computers – These are the computers where only one microprocessor is used.

Parallel Computers – – These are the computers where multiple microprocessors are used in parallel.

ON THE BASIS OF NUMBER OF USERS

Single User – Only one user can use the resource at one time.

Multi User – A single computer is shared by multiple users at any time.

Network – A number of interconnected autonomous computers shared by a number of users at any time.

1.7 NUMBER SYSTEM

When we type some letters or words, the computer translates them in numbers as computers can understand only numbers. A computer can understand positional number system where there are only a few symbols called digits and these symbols represent different values depending on the position they occupy in the number. As being a computer science engineering student, you must know about the following number systems-

1.7.1 BINARY NUMBER SYSTEM

  • Uses two digits, 0 and 1
  • Also called base 2 number system
  • Each position in a binary number represents a 0 power of the base (2). Example 2o
  • Last position in a binary number represents a x power of the base (2). Example 2x where x represents the last position - 1

1.7.2 DECIMAL NUMBER SYSTEM

  • Uses ten digits, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • Also called base 10 number system
  • Each position in a binary number represents a 0 power of the base (10). Example 10o
  • Last position in a binary number represents a x power of the base (10). Example 10x where x represents the last position - 1

1.7.3 OCTAL NUMBER SYSTEM

  • Uses eight digits, 0, 1, 2, 3, 4, 5, 6, 7
  • Also called base 8 number system
  • Each position in a binary number represents a 0 power of the base (8). Example 8o
  • Last position in a binary number represents a x power of the base (8). Example 8x where x represents the last position - 1

1.7.4 HEXADECIMAL NUMBER SYSTEM

  • Uses ten digits and six letters, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
  • Letters represent numbers starting from 10. A = 10, B = 11, C = 12, D = 13, E = 14, F = 15
  • Also called base 16 number system
  • Each position in a binary number represents a 0 power of the base (16). Example 16o
  • Last position in a binary number represents a x power of the base (16). Example 16x where x represents the last position - 1

1.8 ORGANIZATION

1.8.1 CPU

CPU is central processing unit. It is the most important part of a computer system. It is like the heart of computer machine. A computer cannot be formed without a CPU. A CPU has ALU within itself along with Control Unit, Internal bus and registers. ALU stands for Arithmetic and Logic Unit. An ALU has, Status flags, shifters, complementers, Arithmetic and Boolean logic. The number of registers are not same for every CPU, it varies in different systems. Control Unit is something that coordinates all the operations between I/O devices, memory and ALU. The storage, processing of data between these devices is controlled by the control unit. Most modern CPUs are microprocessors, meaning they are contained on a single integrated circuit (IC) chip. An IC that contains a CPU may also contain memory, peripheral interfaces, and other components of a computer; such integrated devices are variously called

microcontrollers or systems on a chip (SoC). Some computers employ a multi-core processor, which is a single chip containing two or more CPUs called "cores"; in that context, single chips are sometimes referred to as "sockets". Array processors or vector processors have multiple processors that operate in parallel, with no unit considered central.

1.8.2 REGISTER

In a computer, a register is one of a small set of data holding places that are part of a computer processor . A register may hold a computer instruction , a storage address, or any kind of data. A register must be large enough to hold an instruction. It is a special, high speed storage area within the CPU. All data must be represented in a register before it can be processed. For example, if two numbers are to be multiplied, both numbers must be in registers, and the result is also placed in a register. (The register can contain the address of a memory location where data is stored rather than the actual data itself.) The number of registers that a CPU has and the size of each (number of bits) help determine the power and speed of a CPU. For example a 32-bit CPU is one in which each register is 32 bits wide. Therefore, each CPU instruction can manipulate 32 bits of data. Usually, the movement of data in and out of registers is completely transparent to users, and even to programmers. Only assembly language programs can manipulate registers. In high-level languages, the compiler is responsible for translating high-level operations into low-level operations that access registers.

1.8.3 BUS ARCHITECTURE

In a computer system, the bus means something that takes data and control information from one place to another. It is similar with what a bus does normally. As we all have travelled in a bus for at least once in our life, we know that a bus takes us from one destination to another, and that two destinations are possible to have in one city, or in different cities, or different states etc. Similarly, a bus in a computer system takes data and control information from one side to the other parts of the system, where it is required. Now as we know till know that all our process, data, gets executed in the processor, so we need all the data, all the instructions, required input/output devices to be sent to the processor all together. Now instructions can be stored in registers, data can be stored either in primary memory, secondary memory, registers, cache memory etc. So we need to collect all this to one place from where the processor can access them and give us the output as soon as possible.

Now the system bus has three different types of links within it, one is for the transmission of data and another is for the transmission of control information, and the third one for the transmission of address. These three types of information is not carried by the single link. The data bus takes data from one part of the computer system to another part. The control bus takes control information from one device to another device. The address bus is for sending addresses form one part to the other part of the computer system.

img

1.8.4 INSTRUCTION SET

Instruction set is a set of instructions that our system is going to be perform on some particular data. Let us understand it by an example – Say we have to add two values that are already stored in our computer system. Now for this addition process to take place, firstly, our computer should know that on which two values the operation has to be performed? This information is carried to the system by the instruction set. Now after getting the values on which the operation has to be performed, the system needs to know that what operation he has to perform in between the given values? Now this is again carried by the instruction set.

values? Now this is again carried by the instruction set. So, an instruction set contains the operations to be performed, the operands on which the operation has to be performed, and the mode by which the system has to reach the operands stored in the system memory. Instruction set has its particular format for this, in which the three fields are there, which defines all these things which are required by the system to perform a task. The instruction format and the explanation of the fields are as follows-

img

The format of an instruction is usually depicted in a rectangular box symbolizing the bits of the instruction as they appear in memory words or in a control register. The bits of the instruction are divided into groups called Fields. The most common fields found in instruction format are –

  • 1). An operation code (Op – code) field that specifies the operation to be performed.
  • 2). An address field that designates a memory address or a processor register.
  • 3). A mode field that specifies the way the operands or the effective address is determined.

Some other fields are sometimes employed under certain circumstances.

1.8.5 MEMORY AND STORAGE SYSTEM

Before moving towards the main concept of memory and storage system, firstly I would like you people to answer some very basic questions regarding the topic and the questions are as follows-

  • 1).What is memory?
  • 2).What is storage?
  • 3).Is there any difference between the two terms “MEMORY” & “STORAGE”?

Most of you people will say the same definition for both the memory and storage and also going to say that there is no difference between the terms. But they are two different terms. Although they are very much closer in meaning and also are related to each other very closely, and that’s what makes most of the people confuse and let them use these two terms as synonyms to each other. So, now firstly understand the meaning of these two terms-
Memory (DRAM) is a component in your computer that allows for short-term data access. Since your system's moment-to-moment operations are performed using short-term data access — loading applications, browsing the Web or editing a spreadsheet — the speed and amount of memory installed plays a critical role in your system's performance.
Storage (whether in the form of a hard drive or SSD) is the component in your computer that allows for long-term data access. It's the component that accesses and stores your files, applications and operating system.
Together, memory and storage work in tandem with your system's processor to access and use data.
Now after completing this first step of understanding the basics, let’s move on and study the main topic of memory and storage system. There are two kinds of computer memory - primary and secondary. Primary memory is accessible directly by the processing unit. RAM is an example of primary memory. As soon as the computer is switched off the contents of the primary memory is lost. You can store and retrieve data much faster with primary memory compared to secondary memory. Secondary memory such as floppy disks, magnetic disk, etc., is located outside the computer. Primary memory is more expensive than secondary memory. Because of this the size of primary memory is less than that of secondary memory.

Computer memory is used to store two things:

  • i). Instructions to execute a program.
  • ii). Data.

When the computer is doing any job, the data that have to be processed are stored in the primary memory. This data may come from an input device like keyboard or from a secondary storage device like a floppy disk.

The following terms related to memory of a computer are discussed below :

Random Access Memory (RAM)

The primary storage is referred to as random access memory (RAM) because it is possible to randomly select and use any location of the memory directly store and retrieve data . It takes same time to any address of the memory as the first address. It is also called read/write memory.
The storage of data and instructions inside the primary storage is temporary . It disappears from RAM as soon as the power to the computer is switched off. The memories, which loose their content on failure of power supply, are known as volatile memories. So now we can say that RAM is volatile memory.

Read Only Memory (ROM)

There is another memory in computer, which is called Read Only Memory (ROM). It is the ICs inside the PC that form the ROM. The storage of program and data in the ROM is permanent . The ROM stores some standard processing programs supplied by the manufacturers to operate the personal computer.
The ROM can only be read by the CPU but it cannot be changed. The basic input/output program is stored in the ROM that examines and initializes various equipment attached to the PC when the switch is made ON. The memories, which do not loose their content on failure of power supply, are known as non-volatile memories. ROM is non-volatile memory. Cache Memory
The speed of CPU is extremely high compared to the access time of main memory. Therefore the performance of CPU decreases due to the slow speed of main memory. To decrease the mismatch in operating speed, a small memory chip is attached between CPU and Main memory whose access time is very close to the processing speed of CPU. It is called CACHE memory. CACHE memories are accessed much faster than conventional RAM. It is used to store programs or data currently being executed or temporary data frequently used by the CPU. It is also very expensive to have bigger size of cache memory and its size is normally kept small.

Registers

The CPU processes data and instructions with high speed, there is also movement of data between various units of computer. It is necessary to transfer the processed data with high speed. So the computer uses a number of special memory units called registers. They are not part of the main memory but they store data or information temporarily and pass it on as directed by the control unit.

img

1.8.6 I/O DEVICES

Alternatively referred to as an IO device, an input/output device is any hardware used by a human operator or other systems to communicate with a computer. As the name suggests, input/output devices are capable of sending data to a computer and receiving data from a computer. IO devices are very much important in the computer systems as it is the only way by which the different systems can communicate. If there is no IO device available then we cannot enter any data into the system, and let if somehow we have some data in the system, then we will not be able to see that as an output. In the last topic we have learnt about memory being an important part of the computer system but even this important system is useless if we do not have anything like input or output devices, which can enter and save the data in that memory.
Input devices are those device by the help of which we can enter our data to the computer system. Our requests are also being provided to the system by input devices. As we input some data or request something to be performed by the computer system, we give input. Our commands to perform a particular task is also an input. There are many input devices are there to let us provide input, for ex- keyboard, mouse, touchpad, scanner, joystick etc.
Output devices are those devices by which we are able to see our output. We can get the output as a softcopy or as a hardcopy, if we want the output to be seen on the computer screen only, then it is a softcopy, but if we are taking the printout of something then it will be considered as a hardcopy. As we enter some data to the system then definitely we are expecting something out of it, and that something is the result want we desire for. This result is known as our output. Now output devices may include your computer screen, printer etc. A brief description of some of the I/O devices are given below-

1). Keyboard The keyboard is a primary input device. It includes different keys and each key send a different signal to the CPU. Most of the keys are useful for entering texts and numbers. Typing, also called as keyboarding is the ability to enter text and numbers. A standard keyboard includes about 100 keys. Now a days, keyboards are available in many different styles. For all these models, the special purpose keys are same; the variation is in size, shape, feel and color.

2). Mouse In early 1980’s, the personal computer includes only the keyboard as the input device. Now a days, every new PC includes an additional input pointing device called “mouse”. By moving this device around on a flat surface, we can control the mouse pointer. The mouse pointer moves in relation to the mouse’s movements. It can be used to select text, access menu, interact with programs, files or data that appears on the screen.

3). Trackball A trackball works like an upside – down mouse as a pointing device. Two – button and three – button trackball models are available. Also right handed and left handed models are available. Trackball contains an exposed ball that can be rolled with an index finger or thumb to move the pointer around the screen. A trackball needs less space than a mouse as it is not necessary to move the whole device. The trackballs are mostly used on small work surfaces where sufficient space for mouse is not available.

4). Trackpads The trackpad is also called as touchpad. It is a stationary pointing device. It uses a small touch sensitive surface. As you move a finger across this surface, the pointer moves on the computer screen. This surface is very small, so the required movement of the finger to move the pointer is very less. So the use of trackpad find less tiring to use as compare to mouse or trackball. Due to small size, they are usefull in notebook computers. Some notebook computer models use built in trackpads.

5).Touch Screens When you place a finger tip directly on the computer screen, touch screen accepts input. Generally, this method is used to make a choice from a menu. In most touch screen computers the sensors are used on the screen’s surface to detect the touch of a finger. The touch screens need dirt free environment. The applications where intuitive interface is an important factor use touch screens.

6).Joystick A joystick is a personal computer input device consisting of a handheld stick that pivots about one end and transmits its angle in 2D or 3D to a computer. It has a small, vertical lever called the stick mounted on the base and used to steer the screen cursor around. Most joysticks are 2D, having two axes of movement but 3D joysticks do exist.

7).Light Pen A light pen is a pointing device shaped like a pen acts as computer input device. The tip of the right pen consists a light sensitive element which, when placed against the screen, detects the light from the screen enabling the computer to identify the location of the pen on the screen. Light pens have the advantage of drawing directly on to the screen. It allows the user to point to display objects, or draw on the screen, in a similar way to touch screen but with greater positional accuracy. An light pen can work with a CRT based monitor, but not with LCD screens, projectors or other display devices.

8)Data Glove The data glove used to grasp a virtual object. It is constructed with a series of sensors that detect hand and finger motions. Each sensor is a short length of fiber optic cable, with a LED at one end and a phototransistor at the other end. The surface of a cable is roughened in the area where it is to be sensitive to bending. When the cable is flexed, some of the LED’s light is lost, so less light is received by the phototransistor. The input from the glove can be used to position or manipulate objects in a virtual scene. Thus by wearing the data glove, a user can grasp, move and rotate objects and then release them.

9)Scanner The scanner is a device, which can be used to store drawing, graphs, photos or text available in printed form for computer processing. The scanners used the optical scanning mechanism to scan the information. The scanner records the gradation of gray scales or color and store them in the array. Finally, it stores the image information in a specific file format such as JPEG, GIF, TIFF, BMP and so on. Once the image is scanned, it can be processed or we can apply transformations to rotate, scale, or crop the image using image processing software such as photo – shop or photo – paint. Scanners are available in variety or sizes and capabilities.


1.8.7 APPLICATION SOFTWARE

Software are divided into two types – System software and Application software. System software are the ones which are required by the system and used by the system. The software that are used by the users are known as application software. Application software is designed for some particular task or some related tasks. Application software is a program or group of programs designed for end users. These programs are divided into two classes: system software and application software. While system software consists of low-level programs that interact with computers at a basic level, application software resides above system software and includes database programs, word processors, spreadsheets, etc. Application software may be grouped along with system software or published alone. Application software utilizes the capacities of a computer directly for a dedicated task. It is able to manipulate text, numbers and graphics. It can be in the form of software focused on a certain single task like word processing, spreadsheets or playing of audio and video files. Here we look at the application software types along with some examples of the software of each type.

1.8.7.1 Different Types of Application Software

  • 1).Word Processing Software This software enables users to create and edit documents. The most popular examples of this type of software are MS-Word, WordPad and Notepad among other text editors.
  • 2). Database Software Database is a structured collection of data. A computer database relies on database software to organize data and enable database users to perform database operations. Database software allows users to store and retrieve data from databases. Examples are Oracle, MSAccess, etc.
  • 3). Spreadsheet Software Excel, Lotus 1-2-3 and Apple Numbers are some examples of spreadsheet software. These software allow users to perform calculations using spreadsheets. They simulate paper worksheets by displaying multiple cells that make a grid.
  • 4). Multimedia Software They allow users to create and play audio and video files. They are capable of playing media files. Audio converters, audio players, burners, video encoders and decoders are some forms of multimedia software. Examples of this type include Real Player and Media Player.
  • 5). Presentation Software The software that is used to display information in the form of a slide show is known as presentation software. This type of software includes three functions, namely, editing that allows insertion and formatting of text, methods to include graphics in the text and a functionality of executing slide shows. Microsoft PowerPoint is the best example of presentation software.
  • 6). Enterprise Software It deals with the needs of organizational processes and data flow. Customer relationship management or the financial processes in an organization are carried out with the help of enterprise software.
  • 7). Information Worker Software Individual projects within a department and with individual needs of creation and management of information are handled by information worker software. Documentation tools, resource management tools and personal management systems fall under this category of application software.
  • 8). Educational Software It has the capabilities of running tests and tracking progress. It also has the capabilities of a collaborative software. It is often used in teaching and self-learning. Dictionaries like Britannica and Encarta, mathematical software like MATLAB and others like Google Earth and NASA World Wind are some of the well-known names in this category.
  • 9). Simulation Software Used to simulate physical or abstract systems, simulation software finds applications in both, research and entertainment. Flight simulators and scientific simulators are examples of simulation software.
  • 10). Content Access Software It is used to access content without editing. Common examples of content access software are web browsers and media players.
  • 11). Application Suites An application suite is an important type of application software. It consists of a group of applications combined to perform related functions. OpenOffice and Microsoft Office are the best examples of this type of application software. These application suites, as you know, come as bundles of applications like word processors, spreadsheets, presentation software, etc. Applications in the suite can work together or operate on each other's files.
  • IMPORTANT QUESTIONS

  • Q.1 What is CBCS? Mention its features and advantages.
  • Q.2 What is the course structure of the subject?
  • Q.3 Define objectives of CCE.
  • Q.4 Short note on evolution of computers.
  • Q.5 Explain classification of computers.
  • Q.6 Define (i) Decimal Number System (ii) Hexadecimal Number System
  • Q.7 Explain (i) Bus Architecture (ii) Instruction Set
  • Q.8 Explain computer memory. Differentiate between memory and storage.
  • Q.9 Define any five input devices.
  • Q.10 What is application software? Explain types of application software.

UNIT - 2

Introduction to Programming, Data Structure & Security Threats

2.1 FLOWCHART

A flow chart is a pictorial representation that uses symbols to show the operations and decisions to be followed by a computer in solving a problem. With the help of a flowchart, a programmer can quickly show a series of alternative approaches to a problem. A group of designer can than examine the flowchart and determine which solution best suits their needs. There are some particular symbols that are used in flowcharts to represent various events in it. These symbols are given below-

2.1.1 FLOWCHART SYMBOLS

The Terminal Symbol – It is used to indicate a point at which the flow chart begins or ends. All flow charts must have START and STOP terminal symbols.

Input / Output Symbol –

It is used to represent the logical positioning of input and output operations.

Processing Symbol –

This symbol represents some operations on data.

Decision Symbol –

The two main components of a decision symbol are :

  • 1). A question that defines the logical operation.
  • 2). The result of the decision (Yes, No).

YES and NO are the only two answers possible and therefore there are two exits from the decision symbol in most of the cases. These two exits are known as conditional branches of the decision.

Flow Symbol –

A flow symbol is an arrow that shows the flow of program logic in a flow chart.

Connector Symbol –

It is used to indicate a junction at which the flow chart comes from a part of the flow chart.

Predefined Process –

In order to reduce complexity, sometimes a group of instructions are detailed elsewhere and not detailed in the flowchart itself. Such group of instructions is given a name that can be referred to in the symbol called predefined process.

Printed Output –

If the output of a program is to be printed instead of being displayed on the screen we can use this output symbol for this purpose.

2.2 ALGORITHM

Computer programming can be more precisely defined as a sequence of steps required for solving a problem with the help of a computer. The set of rules that define how a particular problem can be solved in finite sequence of steps is known as Algorithm. An algorithm written in a computer language is called as a program.

The desirable features of an algorithm are-

  • 1).Each step of the algorithm should be simple.
  • 2). It should be unambiguous in the sense that the logic should be clear.
  • 3). It should be effective i.e; it must lead to a unique solution of the problem.
  • 4). It must end in a finite number of steps.
  • 5). It should be as effective as possible.

2.2.1 Five Basic Characteristics:

Input –

This part of algorithm reads the data by accepting the input of the given problem.

Process –

This part of algorithm does the required computations with the help of simple steps.

Finiteness –

The algorithm must come to an end after a finite number of steps.

Effectiveness –

Every step of the algorithm must be accurate and precise. It should also be executable within a definite period of time on the target machine.

Output – It must produce the desired output.

2.2.2 How to develop an Algorithm?

The following steps can be suggested for developing an algorithm:

  • 1). Understand the problem
  • 2). Identify the output of the problem.
  • 3). Design a logic or process that will produce the required output from the given inputs.
  • 4). Identify the inputs required by the problem to achieve the desired outputs.
  • 5). Test the algorithm for a given set of input data.
  • 6). Repeat steps 1 to 5 till the algorithm produces the desired results.

2.2.3 Advantages of Algorithm:

  • 1). It is simple to understand step by step solution of the problem.
  • 2). It is easy to debug i.e; errors can be easily pointed out.
  • 3). It is independent of programming languages.
  • 4). It is compatible to computers in the sense that each step of algorithm can be easily into its equivalent in high level language.

2.3 CATEGORIES OF PROGRAMMING LANGUAGES

There are many categories of programming languages. But on a basic level, we would define programming languages as structured programming languages and object oriented programming language. These two are the main categories in which the programming languages are divided.

2.3.1 Structured Programming –

A structured program is built by breaking down the program’s primary purpose into smaller pieces that then become functions within the program. Each function can have its own data and logic. Information is passed between functions using parameters and functions can have local data that cannot be accessed outside the functions scope. By isolating processes within functions, a structured program minimizes the chances that one procedure will affect another.

Structured programming ruled the roost for almost two decades. In procedural language, the whole emphasis is on doing things. Subdivision of a program into functions continued this emphasis. Functions do things just as single program statements do. What they do may be more complex, but the emphasis is still on doing. Data is given a second class status in the procedural paradigm even though data is the reason for program’s existence. In a structured program, data types are processed in many functions, and when changes occurs in data types, modifications must be made at every location that acts on those data types within the program. This is a frustrating and time consuming task for large sized programs.

Another problem for structured programming is that its primary components – functions and data structures – don’t model the real world very well.

2.3.2 Object Oriented Programming –

The object oriented programming paradigm expresses computer programs in ways that model how people perceive the world. Because programmers are people, it is only natural that our approach to the work of the world reflects our view of the world itself. The object oriented paradigm is built on the foundation laid by the structural programming concepts and data abstraction. Data abstraction does for data what functional abstraction does for operations. With data abstraction, data structures can be used without having to be concerned about the exact details of implementation.

The fundamental change in OOP is that a program is designed around the data being operated upon rather than upon the operations themselves. This is to be expected once we appreciate that the very purpose of the programs to be manipulate data. The basic idea behind object oriented language is to combine into a single unit, both, the data and the functions that operate on the data. Such a unit is called an object.

An object’s functions, called member functions in C++, typically provide the only way to access its data. If you want to create a data item in an object, you call a member function in the object. It will read the item and return the value to you. You can’t access the data directly. The data is hidden, so it is safe from accidental alteration. Data and its functions are encapsulated into a single entity. If you want to modify the data in an object, you know exactly what functions interact with it: the member functions in the object. No other functions can access the data. This simplifies writing, debugging, and maintaining the program.

2.4 PROGRAM DESIGN

In this topic we are going to understand how we can design a program? Before start writing a program, we first need to understand that what we have to implement? How we can implement it? How many variables are needed in the program? What should be the complexity level of the program? Who is going to use our program? And so on. And answering all these questions is basically what we call in short as designing a program.

While designing a program, initially we need to know the problem, without understanding the problem correctly, we will never be able to make a program that is going to solve the problem. So, understanding of the problem is must. After that, we have to design the flow chart of the program. By designing the flowchart, we can get the exact flow of the data and this is going to help us while writing the program. Simple steps to be followed while designing a program are as given below –

  • 1). Determine the problem – First step is to understand the problem, so that we can design the right solution to the problem.
  • 2). Determine the user – Second step is to understand that who is going to use the program that we are designing. This is also an important step because if the end user is computer literate than we can add some complex features, otherwise we have to be very simple while designing the program.
  • 3). Make flowchart – By making flowchart, the designing of the program becomes easy. It tells us about the flow of the data, which makes it easy for us to design the program.
  • 4). Design Algorithm – Designing the algorithm tells us about the number of variables, data types of the variables required, I/O devices needed (if required), and so on.
  • 5). Write the program – After having all the above mentioned things, we have the ability to write the program.
  • 6). Compile and test – After writing the program, compile it to know that if it has any error(s) or not? If you’ll find one, then correct it as soon as possible.

2.5 WHAT ARE DATA STRUCTURES?

As the name implies, it is a structure that contains data. Basically is the way how the data is stored. It is a format in which the data is stored and managed. There are different types of data structures designed, and there design belongs to specific purposes so that data can be easily accessed and can be worked on easily. Data structures are designed to organize data in a specific way. Data structures provide a means to manage large amount of data efficiently for uses such as large databases and internet indexing services. Data structures can be used to organize the storage and retrieval of information stored in both main memory and secondary memory. Data structures are generally based on the ability of a computer to fetch and store data at any place in its memory, specified by a pointer – a bit string, representing a memory address.

There are numerous types of data structures as given below-

2.5.1 Array –

It is also known as list. It is a number of elements in a specific order. In arrays the elements are all of same type. Elements are accessed using an index, that indicates to specific element that is required.

An array variable a, say, is declared by

int [ ] a;

This declares a to be a variable capable of storing a reference to an array of integers.

Before using the variable a, it must be initialized.

a = new int [20];

This instruction shows that there are space for 20 variables of integer type in this array. The above two instructions can be combined to one single instruction as follows-

int [ ] a = new int [20];

Now to enter some value at a particular place can be instructed as-

a [2] = 173;

This shows the 3rd element in the array is 173. You people must be getting confused because I have written a[2] above and now I am saying that it is element 3rd, well this is because in arrays the counting starts from 0, in the following manner –

a[0] a[1] a[2]………………a[19].

2.5.2 Linked List –

It is a special type of array or list, which is linked to each other. As in case of array, we have seen that we have to define the number of elements at the declaration time. But what if the number of elements increases? What is we do not have an idea of the number of elements in the starting? What if we want to add an element in between two already existing elements? All these questions can be answered using linked list. It is a list that has multiple nodes, and one node is linked to another node thus forming a list. Each node here has two parts, one is the data part, where the data is stored, and the another one is link part, which has the link to the other node. Thus, according to our need, the number of nodes can be increased or decreased, and the element can also be added in between the two already present elements.

2.5.3 Stack –

Stack is an ordered list. In stack there is only one open end from where both the insertion and deletion takes place. The other end of the stack is closed. You can suppose it like a glass. A glass has only one end open, both the input of something and output takes place from the same end. Now the end which is open is called as TOP in terms of stack.

Now suppose we have to put 5 small balls b1, b2, b3, b4, and b5 into a glass. Now first we put inside b1, than b2, than b3, than b4, and in the end the b5. Now the time comes for the deletion to take place, so for the deletion the ball on top will be removed first, and the ball on top is the same that we inserted last, which is b5. So we remove b5, and then b4, b3, b2, and the last one is b1. From this example we get one thing very clear that in stacks the element entering last into the stack will be removed first. The order of elements entering the stack is exactly opposite to the order of elements deleting from the stack. The concept used in stack is known as LIFO – Last In First Out.

2.5.4 Queue –

As its name implies queue is a line or a row of elements. In this type of data structure, the data is arranged in a row one after the other. Let us understand it with a real time example – you must have seen the queue waiting beside a window for movie tickets or for reservations in daily life, which is the concept behind the queue data structure. Unlike the stack, the queue follows the FIFO concept and not LIFO. FIFO means First In First Out. As in a queue of people, the person who has entered the queue first, will be the one who will get served first and exits first. On the similar basis, in the queue of data elements the element that has entered the first leaves the first and the one that entered the last leaves the last. In queue terminology, there are two variables that maintains a queue and they are – front and rear.

When the queue is empty, the value of both front and rear is equal to -1.

Front = -1

Rear = -1

If there is only one element in the queue, then the value of front and rear will change from -1 to 0.

Front = 0

Rear = 0

Now as we add or insert elements in the queue, the value of rear keep on increasing up to the maximum length of the queue.

Front = 0

Rear = 2

The value of front changes when we remove or delete any element.

Front = 1

Rear = 2

2.6 INTRODUCTION TO PROGRAMMING

The term programming means to write codes for some particular project. A program is a set of instructions. These instructions are also known as codes. Writing these instructions or code is basically what programming is. Now the question that arises is why do we write code? The language that we use is very much difficult for the computer to understand. Our language is called high level language and the language that computer understands is called low level language. So we have to write such instructions that can be easy for the computer to understand to perform the task we want. So for a particular task to be done by the computer we write code or instructions for that task, and combine all related tasks in code, thus forming a program with multiple instruction set, which can do related work. Now the code written by us passes through two main blocks – compiler and interpreter. Some language uses compiler and some uses interpreter. Some programming languages like Perl, Lisp, Smalltalk, Python, Ruby, uses interpreters and some others like C, C++, Java, PHP, uses compilers.

To write a program, firstly we should know that the set of instructions that we going to write in the program is developed under a function. Some notations are also required to take inputs or to print outputs. So some of the basic programming terms are as follows –

Variable –

Variable is a alphabet that can take the value of input and can also take the value of output. It is also possible to set a fixed value for a variable. It can be considered as a name given to a location in memory, where the data is stored. This data can also be called as constant.

Constant –

A constant is a quantity that cannot change. There are two types of constants.

Identifier –

It can include any alphabet from A – Z or from a – z or from 0 – 9. The first character must be an alphabet. It can have only 8 characters.

Keyword –

It is a word, which already has a defined meaning in a language. All keywords must be written in lower case. Ex – break, case, continue, default, do, else, float, for, go to, if, return, size of, static, struct, switch, union, void, while, etc.

2.7 SECURITY THREATS

As we all know that security means protection from any kind of harms and threat means the way by which the harms can be done. So the security threat term, means a danger or a harm that might be possible to exploit the security or protection and can cause harm. With respect to computers, the harm that any threat can create is to the data of the computer system. In computers, the data is everything. Computer will become useless without this data. So the threats that are possible to damage the security and harm the data is basically known as security threats.

2.7.1 VIRUSES –

A virus is a piece of program code that can infect programs by modifying them. The virus attaches itself to program or file so it can spread from computer, infecting as it travels. It is malicious software that attaches itself to other software.

2.7.1.1 Phases of Viruses

During its lifecycle, virus goes through these phases –

Dormant Phase –

The virus will eventually be activated by some event, such as a date, the presence of another program or file, or the capacity of the disk exceeding some limit.

Propagation Phase –

The virus places an identical copy of itself into another programs or into certain system areas on the disk. Each infected program will now contain a clone of the virus, which will itself enter a propagation phase.

Triggering Phase –

The virus is activated to perform the function for which it was intended.

Execution Phase –

The function is performed. The function may be harmless, such as a message on a screen, or damaging, such as the destruction of programs and data files.

2.7.1.2 Types of Viruses

Parasitic Virus –

A parasitic virus attaches itself to executable files and replicates, when the infected program is executed, by finding other executable files to infect.

Memory –

Resident Virus – Lodges in main memory as a part of the resident system program. From that point on, the virus infects every program that executes.

Boot Sector Virus –

Infects a master boot record or boot record and spreads when the system is booted from the disk containing the virus.

Stealth Virus –

A form of virus explicitly designed to hide itself from detection by antivirus software.

Polymorphic Virus –

A virus that mutates with every infection, making detection by the signature of the virus impossible.

Metamorphic Virus –

A metamorphic virus rewrites itself completely at each iteration, increasing the difficulty of detection. Metamorphic viruses may change their behavior as well as their appearance.

2.7.2 WORMS –

Worms are the malicious software that does not need any program to propagate. It is a stand – alone application. Unlike viruses, it does not need any software of program to replicate itself. It is a program that replicates itself by installing copies of itself on other machines across a network. An e – mail virus has some of the characteristics of a worm because it propagates itself from system to system.

Network worm programs use network connections to spread from system to system. To replicate itself, a network worm uses some sort of network vehicle, example includes the following –

  • Electronic mail facility
  • Remote execution capability
  • Remote login capability

A network worm exhibits same characteristics as a computer virus a dormant phase, a propagation phase, a triggering phase and an execution phase.

The propagation phase generally performs the following functions –

  • Search for other systems to infect by examining host tables or similar repositories of remote system addresses.
  • Establish a connection with the remote system.
  • Copy itself to the remote system and cause the copy to be run.

2.7.2.1 State of Worm Technology

Worm technology includes –

  • Multiplatform – Newer worms are not limited to windows machines but can attack a variety of platforms.
  • Multiexploit – New worms penetrates the system in a variety of ways, using exploits against web servers, browsers, e – mail, file sharing.
  • Ultrafast spreading
  • Polymorphic
  • Metamorphic
  • Transport vehicles
  • Zero – day exploit

2.7.3 MALWARE –

Malicious programs are also known as Malware. Malware is a software that is intentionally added or inserted in a system for a harmful purpose. Malware can be dived into two categories : those that need a host program and those that are independent. Viruses, logic bombs and backdoors needs a host program and cannot exist independently. Self contained programs that can be scheduled and run by the operating system. Worms and zombie programs are examples. Following table shows the two categories or malware and the threats under them.

2.7.4 TROJANS –

Trojans are also known as Trojan Horse. Trojan horse is a program of command procedure containing hidden code that, when invoked, performs some unwanted or harmfull functions. For example, to gain access to the files of another user on a shared system, a user could create a Trojan horse program that, when executed, changed the invoking user’s file permissions so that the files are readable by any user. Trojan horses can make copies of themselves. One of the earliest Trojan horses was the version of the game animal. When this game was played, it created an extra copy of itself. These copies spread, taking up much room. The program was modified to delete one copy of the earlier version and create two copies of the modified program. Another common motivation for the Trojan horse is data destruction. The program appears to be performing a useful function, but it may also be quietly deleting the user’s files.

2.8 SPYWARE

It is a technology that aids in gathering information about a person or organization without their knowledge. It is also called as spybot or tracking software. On internet, it is a programming that is put in someone’s computer secretly to gather information about the user and relay it to advertisers or other interested parties. Spyware can get in a computer as a software virus or as the result of installing a new program. Spyware is mostly classified into four types: system monitors, Trojans, adware, and tracking cookies. Spyware is mostly used for the purpose of tracking and storing internet users’ movements on the web and serving up pop – up ads to internet users.

Whenever spyware is used for malicious purposes, its presence is typically hidden from the user and can be difficult to detect. Some spyware, such as keyloggers, may be installed by the owner of a shared, corporate, or public computer intentionally in order to monitor uses. The spyware not only monitors the use’s computing but can also collect almost any type of data, including personal information like internet surfing habits, user logins and bank or credit account details. Some spyware can even change the computer settings, which may led to slow internet connection speeds, un – authorized changes in browser settings or changes in software settings.

2.8 ANTI – SPYWARE SOFTWARE

Due to the emergence of spyware, a new industry has sprung up dealing with anti spyware software. Running anti – spyware software has become a widely recognized element of computer security practices. Some of these anti – spyware software are as follows –

  • Windows defender
  • Spybot Search & Destroy
  • Ad – Aware
  • Malwarebytes’ Anti – Malware
  • Spyware Blaster
  • Anti – Malware suites
  • SuperAntiSpyware
  • IObit Malware Fighter
  • Trend Micro HijackThis
  • YAC
  • Combifix
  • Bazooka Adware and Spyware Scanner
  • Norton 360
  • AntiLogger
  • RKill
  • WinPatrol
  • Trend Micro Internet Security

2.9 FIREWALLS

Information systems in an organization have changed very rapidly over the years from centralized data processing, LANs, WANs and internet connectivity. The internet connectivity is essential for the organization if not secured from the intrusions. Intrusions or intruder means unauthorized access or user.

A firewall is inserted between firewall and LAN for security purpose. The firewall protects the LAN from internet based attacks and also provides security and audits. A firewall may be hardware or a software program running on a secure host computer. A firewall is placed at junction or gateway between the two networks. A firewall must have at least two interfaces one for the network it is intended to protect and other for the network it is exposed to. A firewall placed between a private or corporate network and a public network (internet). The term firewall comes from the fact that by segmenting a network into different physical sub networks, they limit the damage that could spread from one subnet to other just like fire doors or firewalls.

2.9.1 Capabilities of Firewall

A firewall examines all traffic routed between the two networks to see if it meets the certain criteria. If it does, it is routed between the networks, otherwise it is stopped. A firewall filters both inbound and outbound traffic. It can also manage public access to private networked resources such as host applications. It can be used to log all attempts to enter the private network and trigger alarms when hostile or unauthorized entry is attempted. Firewalls can filter packets based on their source and destination addresses and port numbers. This is known as address filtering. Firewalls can also filter specific types of network called protocol filtering because the decision to forward or reject the traffic is dependent upon the protocol used. For example, HTTP, FTP, Telnet. Firewalls can also filter traffic by packet attribute or state.

2.9.2 Limitations of Firewall

A firewall cannot prevent individual users with modems from dialing into or out of the network, by passing the firewall altogether. Employee misconduct or carelessness cannot be controlled by firewalls. Policies involving the use and misuse of passwords and user accounts must be strictly enforced. These are management issues that should be raised during the planning of any security policy but that cannot be solved with firewalls alone.

2.10 INTERNET FRAUD

Internet fraud simply means doing fraud by the help of internet. Many people these days are using internet to do fraud by making common man victims for this. Whenever a person or an organization is using internet services to defraud victims or to take advantage of them, then this type of fraud is called as internet fraud. Some very common ways of making people victims are sending them e-mails, asking personal information or asking bank account or transaction card details, let people ask to purchase some item and then after receiving the money they are not delivering it to them, asking people to register with them and earn huge amount of money by doing work from home, etc. Some ways of doing frauds are as follows –

Purchase Fraud –

Purchase fraud occurs when a criminal approaches a merchant and proposes a business transaction, and then uses fraudulent means to pay for it, using such as a stolen or fake credit card. As a result, merchants do not get paid for the sale.

Credit card is the most common means to do criminal activities these days over internet. While doing any transaction, if our credentials are obtained by any malicious person, then they can use this information to make further transactions or can withdraw money from the account.

Work – From – Home Scheme –

Many people often use the internet to advertise work from home and earn thousands of dollars in a month. These schemes typically require the people to pay some registration fees and then not delivering any work for home to them, or in some cases will provide some work to be done at home but then after the work gets finish they do not pay a single penny.

Money Transfer Frauds –

These consists of an offer of employment transferring money to a foreign company. The prospective victim receives an email for this.

Dating Fraud –

With dating fraud, often the fraudulent develops a relationship with their victim through the online dating website and convinces the victim to send money to them. They can request the money for the one time only or can do this with the same victim multiple times.

Charity Fraud –

The fraudulent poses as a charitable organization soliciting donations to help the victims of a natural disaster, regional conflict, charity for AIDS victims or charity for cancer patients, etc.

IMPORTANT QUESTIONS

  • Q.1 What is flowchart?
  • Q.2 What is algorithm? Explain characteristics of algorithm.
  • Q.3 List advantages of algorithm. Also define the procedure to develop an algorithm.
  • Q.4 What are the categories of programming languages?
  • Q.5. Explain the steps to design a program.
  • Q.6 What is data structure? Explain linked list and array.
  • Q.7 Explain (i) Queue (ii) Stack
  • Q.8 What do you mean by programming?
  • Q.9 Explain (i) Worms (ii) Malware (iii) Trojans.
  • Q.10 Define virus and its lifecycle.
  • Q.11 What are spyware and anti – spyware?
  • Q.12 What are firewalls? What are its limitations?
  • Q.13 What is internet fraud and how is it done?

UNIT – 3

COMPUTER SCIENCE AND ENGINEERING APPLICATIONS

3.1 INTRODUCTION

In this chapter, we are going to introduce you to the applications where we are using computer science engineering. There are huge a lot of such applications, where we are using computer engineering these days. Actually there is no field left, where we are not having computers any more. So, as each field is having computer, then obviously that will be our application of CS engineering. Some of the major applications are being described here –

3.2 APPLICATION IN DATA PROCESSING

Data Processing is the manipulation of data by a computer system. As we have already discussed that the computer understands the machine language and the language used by us is high level language, so we need to convert our language to the machine codes so that a system could respond to it. This conversion of raw data to machine language is also a kind of data processing. We also know about the concept of data being travelling from memory to CPU and back to memory from CPU many times in the computer system. This type of travelling of data either from CPU or from memory to the memory, CPU or to any output device is also known as data processing. The formatting of the output, or the transformation of the output from one form to another is also a part of data processing. Any use of computers to perform defined operations on data can be included under data processing. In the commercial world, data processing refers to the processing of data required to run organizations and businesses.

3.3 APPLICATION IN INFORMATION SYSTEMS

An information system, also known as IS, is a organized system for the collection, organization, storage and communication of information. Information system is a network that people and organizations use to collect, filter, create, process and distribute data. Any specific information system aims to support operations, management and decision making. Computers are the huge part of information systems. Some of the examples are as follows – computers are into accounting, scheduling, monitoring, databases, etc, where it saves time and money, and also a easy way to organize data.

3.4 APPLICATION IN COMMUNICATIONS

Computers have a very important role in communication. Communication has a huge number of applications regarding computer science engineering. Many services like cellular telephone services are not possible without computers. Just think for a while that we do not have computers in communications, than we will not have any mobile phone services, as these services are provided to us by the computer science engineering only. It is not the only computer science application under communication, there are many more applications of CS in communication, for example- network telephone services, cellular telephone services, radio broadcasting, TV broadcasting, audio-visual conferencing, video-on demand, etc.

3.5 APPLICATION IN E – BUSINESS

E – Business or E-Commerce or Electronics Commerce is a methodology of modern business, which addresses the need of business organizations, vendors and customers to reduce cost and improve the quality of goods and services while increasing the speed of delivery. E-commerce refers to the paperless exchange of business information using the following ways:

  • 1). Electronic Data Exchange (EDI)
  • 2). Electronic Mail (e-mail)
  • 3). Electronic Bulletin Boards
  • 4). Electronic Fund Transfer (EFT)
  • 5). Other Network-based technologies

3.6 APPLICATION IN WORLD WIDE WEB,

WWW is completely based on computers only. If there are no computers than there will be no existence of World Wide Web.WWW stands for World Wide Web. It is an information space. It is an open environment, where the documents and other resources are specified by the URLs. All these resources can be used by the help of internet. The WWW is simply and commonly known as Web. The www is the primary tool that everyone uses to interact to the internet. Web pages are text documents, which are formatted by HTML and can have images, audios, videos, etc. When more than one page have the common theme or we can say have the same domain name, or sometimes if have both, then it is called as website. To view a web page, we can either type the URL on the web browser or can follow the hyperlinks to that page. Using a browser for viewing the web pages or to move from one web page to another by hyperlinks is known as browsing or web surfing or net surfing or navigating the web.

3.7 APPLICATION IN MULTIMEDIA AND ANIMATION

Multimedia is a content that uses the combinations of different types of data forms like- text, images, audio, video, animation, etc. Multimedia is neither a hardware nor a software, it is actually a field, which belongs to computer controlled mixture of text, still and moving images (video), graphics, animations, drawings, audio etc, where all the information from these media, can be presented, saved, transferred, and processed in digital format. Multimedia refers to content that uses a combination of different content forms. This contrasts with media that use only rudimentary computer displays such as text-only or traditional forms of printed or hand-produced material. Multimedia includes a combination of text, audio, still images, animation, video, or interactivity content forms. Multimedia is usually recorded and played, displayed, or accessed by information content processing devices, such as computerized and electronic devices, but can also be part of a live performance. Multimedia devices are electronic media devices used to store and experience multimedia content. Multimedia is distinguished from mixed media in fine art; by including audio, for example, it has a broader scope. The term "rich media" is synonymous for interactive multimedia. Hypermedia can be considered one particular multimedia application.

The computer science has covered the whole multimedia through its applications. From compressing a video to converting an image to another format, from playing online games to watching online movies, from downloading your favorite song to sending funny images to your friends, these all are the computer science applications in multimedia. Animation is also an application of computer science within multimedia. Animated components are common within both Web and desktop multimedia applications. Animations can also include interactive effects, allowing users to engage with the animation action using their mouse and keyboard. The most common tool for creating animations on the Web is Adobe Flash, which also facilitates desktop applications. Using Flash, developers can author FLV files, exporting them as SWF movies for deployment to users. Flash also uses Action Script code to achieve animated and interactive effects.

3.8 APPLICATION IN HEALTH CARE

Computers are everywhere. Doctors use computers to record progress notes. Nurses use computers to transmit orders to other departments and in patient care. Pharmacists use computer to order medication and view a patient profile. For the most part, All Health Care workers use computers. Computers are used in following ways in Health Care –

Accounting – Saves time and money.

Scheduling – Appointments.

Monitoring – Blood Pressure, Heartbeat.

Databases – In maintain records.

Confidentiality – Confidentiality to patient’s information.

DNA – computers used to analyze DNA.

ECG – Computer provides a print out of electrical activity of patient’s heart.

Echocardiogram – Computer directs sound waves into the heart, the converts the reflection of the waves into an image of the heart. It is used to reveal heart problems.

CT Scan – Known as computerized tomography. It is a computerized body scanner. It shows cross section views. Allows us to see bone and body tissues. Helps us find tumors.

MRI – Known as magnetic resonance imaging. It is a body scanner that uses nuclear magnets, instead of x-rays. Can see tumors, blood moving through veins.

Ultrasonography – Uses high frequency sound waves. Body parts are viewed on a computer screen and printed on photo paper.

Telemedicine – Includes remote monitoring devices and videoconferencing. Used to connect specialists to patients in remote locations.

Bioinformatics – Is explained in the next topic.

3.9 APPLICATION IN BIOINFORMATICS

Bioinformatics is an interdisciplinary field that develops methods and software tools for understanding biological data. It has become an important part of many areas of biology. The use of computers to store, retrieve, analyze or predict the composition or the structure of biomolecules. Biomolecules include your genetic material, nucleic acids, and the product of your genes : proteins. Bioinformatics can collect information without having to do the experiment . This could make it easier to design drugs because we can make a reasonable prediction of the structure with the computer. It is a term coined for the new field that merges biology, computer science and information technology to manage and analyze data, with the ultimate goal of understanding and modeling living systems. IBM is working on a supercomputer called Blue Gene which may decipher some of the mystery behind how proteins work.

3.10 APPLICATION IN COMPUTER GAMING

All your computer games, video games, online games, mobile games etc are the applications of computer science & engineering. There are many universities developing special courses in computer gaming so that these students can work on developing game infrastructures. Developing hardware and software infrastructure is very much required so as to develop the future of interactive games and large scale simulations, massively multiplayer online games and simulation networks, game engines and tools, instant games, wireless and mobile games.

3.11 APPLICATION IN REMOTE SENSING & GIS

For remote sensing data analysis, a time sharing computer network offers several potentially significant advantages over dispersed, unconnected computer facilities. In order to evaluate the merits of such a computer network, the Laboratory for Applications of Remote Sensing (LARS) at Purdue University, under the sponsorship of NASA, has established a prototype remote sensing data processing system consisting of a central computer located at LARS and terminals located at organizations concerned with remote sensing. This paper discusses the rationale for such a system and some of the details of a project designed to provide an indication as to how computer networks might be used in the future to provide data analysis facilities to geographically dispersed users of remote sensing data.

IMPORTANT QUESTIONS

  • Q.1 What is CSE application in data processing?
  • Q.2 Explain the computer science application in communication.
  • Q.3 Why computer science is required in E – business?
  • Q.4 Explain computer applications in (i) Computer Gaming (ii) Animation
  • Q.5 What is computer application in multimedia?
  • Q.6 Define the importance of computers in bioinformatics.

UNIT - 4

OVERVIEWS OF CSE MAGAZINES, JOURNALS, SOCIETIES & ETHICS

4.1 OVERVIEW AND IDEA ABOUT GOOD COMPUTER MAGAZINES

These publications appeal to a broad audience and usually include content about computer hardware and software and technology news. These magazines could also be called technology magazines because of the large amount of content about non-computer consumer electronics, such as digital audio player and mobile phones. Some the magazines that are published in India are give below-

  • 1). CODE
  • 2). Digit
  • 3). CHIP
  • 4). PC Quest

Some international magazines are-

  • 1). APC
  • 2). PC World
  • 3). Computing
  • 4). Computer Weekly
  • 5). Maximum PC
  • 6). .net

4.2 MAJOR COMPUTER SCIENCE & ENGINEERING JOURNALS

1). Computer science has altered the globe in numerous ways and exhibited impact on every aspect of human life and science. We have achieved an excellent communication by all means compare to the past centuries. Communication engineering including computer science, electronics and electrical engineering played pivotal role in this aspect. Tremendous growth in scientific knowledge, information and output in relation to these subjects aided in better technologically advanced human life.

Journal Highlights includes: Adaptive, Advanced Computing Architectures, Advanced Numerical Algorithms, Agent-Based Middleware, Artificial Intelligence Pattern/Image Recognition, Autonomic and Context Aware Computing, Bioinformatics and Computational Biology, Broadband and Intelligent Networks, Calm Technology, CDMA/GSM Communication Protocol, Radar technology, Grid Computing, Database Security, Open source Software, Data warehousing, Wireless sensors, Data structure, Ad hoc network, Robotics, Security systems

2). Journal of Computer Engineering & Information Technology

is a peer-reviewed Hybrid journal which emphasizes on major research areas of Computer Sciences and Information Technology covering novel research findings with highest standards in terms of quality and eminent editorial board. Journal expects authors and researchers to submit their articles in the areas but not limited to Information Technology, Software Testing & Hardware Technology, Mobile Computing, Wireless Sensor networks, Visual, Communication System, Robotics and Embedded systems.

Journal Highlights includes: Computer Science, Information Technology, Mobile Computing, Neural Networks, Visual communication system, Artificial Intelligence, Cloud Computing, Big Data Analysis, Data mining, E-Marketing, VLSI design and testing.

3). Journal of Information Technology and Software Engineering

is a peer reviewed, open access periodical which disseminates scientific information among the scientists and researchers in the relevant areas. The journal considers a wide range of topics in the realm of Computer Science which includes but not limited to Android Technology, Cloud, Computer Hardware, Cryptography, Development Process, Information Systems, Information Technology, Internet Communication Technology, IT Management, Project development, Real Time, Sensor Technology, Software Architecture, Software Component, Software Quality, Web Service, Wireless Technology.

Journal Highlights includes: Android Technology, Cloud, Computer Hardware, Cryptography, Development Process, Information Systems, Information Technology, Internet Communication Technology, IT Management, Project development, Real Time, Sensor Technology, Software Architecture, Software Component, Software Quality, Web Service, Wireless Technology

4). Engineering and Technology

are two inseparable terminologies with the present day’s development. Since the beginning of our journey in this planet we adopted technology and engineering to attain a better life. Rapid growth and increased need of multifaceted technical applications induces us to keep abreast about the know-how’s of various associated subjects.

Journal Highlight Includes:

Aeronautics, Civil and Architecture Engineering, Computer Science and Information Technology, Earth and Atmospheric Sciences ,Engineering Aspects Associated With Biotechnology, Engineering Physics, Industrial Production, Mathematics and Statistics, Medical Electronics, Telecommunications, Textile and Polymer Engineering.

5). Journal of Swarm Intelligence and Evolutionary Computation:

Swarm Intelligence journals are at higher echelons that enhance the intelligence and information dissemination on topics closely related to Swarm Intelligence.computational methods in synthetic biology plays a major role in this journal.

Journal Highlights includes:

Artificial intelligence, Artificial neural networks, Evolution of social network, Evolutionary algorithm, Evolutionary algorithm in datamining, Evolutionary computation, Evolutionary Optimisation, Evolutionary science, Handover, Hybrid soft computing, Knowledge modelling, Machine Learninng, Multi Objective Programming, Ontology Engineering, Swarm intelligence, Swarm Robotics.

6). International Journal of Sensor Networks and Data Communications (SNDC)

, a broad-based journal was founded on two key tenets: To publish the most exciting researches with respect to the subjects of Sensor Networks and Data Communications. Secondly, to provide a rapid turn-around time possible for reviewing and publishing and to disseminate the articles freely for research, teaching and reference purposes.

Journal Highlights includes:

Biosensor, Computer Artificial Intelligence, Data Communication, Data Mining and Analysis, Data Security, Data Storage,Distributed Sensor Networks, Electronic Engineering, Hardware Networking, Mobile Communication, Motion Sensors, Network Algorthims, Network Security,Networks Systems Technology, Optical Communication, Routing Protocol, Sensor Network Technology, Sensors and Actuators, Wireless Sensor Networks,ZIPBEE Protocol.

7). Related Journals:

International Journal of Computer Science and Network Security, Computer Network Journal, Journal of Computer Network and Communication, International Journal of Computer Networks, Computer Networks Journal, Journal of Computer Network, Network Security Journal,International Journal of Network Security, Journal of Security and Communication Network, Journal of Network and Information Security, Sensor Journal,International Journal of Sensor Networks, International Journal of Mobile Communications, International Journal of Electronics and Communication,International Journal of Communication, International Journal of Network and Communication.

4.3 SUCCESS STORIES OF COMPUTER ENGINEERS

1). RAHUL SHARMA

This success story is of four Engineers who graduated in 2000.

Their names are -

  • 1. Rahul Sharma
  • 2. Sumeet Arora
  • 3. Rajesh Aggarwal
  • 4. Vikas Jain

In school, Sharma knew he wanted to be an engineer, though he didn’t know exactly what he wanted to do. By the time he finished studying mechanical engineering in Nagpur, Maharashtra, he had decided that he didn’t want to enter the corporate world as so many classmates would.

He says, “We were all friends; me and Rajesh (Agarwal) were neighbours, and I knew Sumeet (Arora) and Vikas (Jain) from college, and when we had finished studying, it was 2000, and we thought, everything is booming, we should also start a business.”At the time, Agarwal was already in the hardware business, but since the IT boom was at its peak, the friends decided to get into the software industry.

Rahul Sharma was the son of a school principal, Sumeet Arora was the son of a brigadier. They were all middle-class boys who were suddenly driving BMWs, and life was good.

One thing they couldn't decide on was a name—they had all sorts of crazy ideas, but then they thought Micromax sounded good. They thought, this is cool. So they named the company Micromax Informatics.

To get ideas, Rahul Sharma says he goes to mobile phone stores to work as a salesman from time to time, and gets feedback from customers. That’s what led him to approach Arora with the idea of dual SIM phones which used a single baseband, so as to make the technology affordable. Micromax was the first to introduce both the 30 day battery recharge and dual SIM phones with a single baseband in India.

Micromax has, in a span of 13 years, gone from being the company that made parts for Nokia, to one selling cheap phones no one really trusted, to being the third most successful handset brand in India.

Today, Micromax has a presence in 12 countries besides India, and claims to be selling 1.75 million handsets and 70,000 tablets every month. It’s targeting Rs.2,800 crore in turnover, which would require the company to continue to gain momentum around the world.

2). NAGAVARA RAMARAO NARAYANA MURTHY

There was an intelligent boy, who appeared for IIT-JEE and cracked it with an all India rank of 17. Because of financial restraints, he couldn't go for it. He opted for electrical engineering in National Institute of Engineering, Mysore. Later on, he pursued his masters from IIT Kanpur.

  • 1) He started his career at IIM-A as chief systems programmer
  • 2) He started a company called Softronics which failed.
  • 3) He worked at Patni computer systems in Pune.
  • 4) With some of his friends,he found a software company with capital injection of 10,000 rupees provided by his wife.

Today...

  • 1) He is among the 12 greatest entrepreneurs of our time as listed by Fortune magazine
  • 2) He is called the "Father of the Indian IT sector" by Times magazine
  • 3) He is honored with Padma Vibhushan and Padma Shri.
  • This engineer is NAGAVARA RAMARAO NARAYANA MURTHY, co-founder of INFOSYS, pride of India.

3). PADMASREE WARRIOR

She.........

  • 1. Went to US with just $100 and a one way ticket
  • 2. Had no idea where 'Ithaca' was
  • 3. Wanted to pursue PhD
  • 4. Studied Chemicals but excelled in I.T &
  • 5. Is one of the Best Role Model for Women around the World

Apart from having one of the coolest names in the tech industry, Padmasree Warrior stands out among Silicon Valley's big-wigs. As one of the most influential people working in the technology industry today, it's little wonder Forbes named her as the 57th most powerful woman in the world. She studied chemicals, not computers. Received a degree in chemical engineering in Delhi, before continued her studies in New York. The young graduate thought she'd eventually go back home to teach -- it wasn't to be. Nut, she took a job at telecommunications company Motorola in 1984, and later joined Cisco in 2007. "At no point in life have I waited for the perfect job to show up... because there's no such thing." She planned to stay at Motorola 12 months -- and left 23 years later. During her two decades at Motorola, Warrior rose to the ranks of executive vice president. While there, the company was awarded the prestigious 2004 National Medal of Technology and Innovation -- the first time in the organization's history. In 2015, it's harder to keep up with new technology than ever before, says Warrior. "I've been in the tech industry for almost 20 years, but I feel right now is probably the most significant time -- not only is the pace of change so fast, but the magnitude of change is huge." Yes, she does log off -- and meditates. Just because you're leading one of the biggest computer equipment companies on the planet, doesn't mean you have to be constantly plugged-in. At the end of each day, the mother-of-one apparently turns off all her electronics and finds 20 minutes to meditate.

She's a Twitter pro. Warrior has a whopping 1.4 million Twitter followers including U.S. President Barack Obama. She gives followers an insight into her world outside of the office, posting images of her paintings, novels she's reading, and even her weekend fashion choices using the hashtag #warriorstyle. The best career advice she's ever received: "I was a manager and really thinking about taking the next step to become a director. And I was hesitating, asking myself 'Is it too much responsibility?' My husband worked, and we had a young son at home, and I wasn't sure if I was ready to commit. And my boss at the time, who was making me the offer, said: "You know, sometimes when there's a door open you just have to push through and walk in." She left Cisco Systems in July 2015, at a time when CEO John Chambers retires and SVP Chuck Robbins takes over. In her eight years at the $138 billion technology company, she has helped Cisco grow in influence through acquisitions, including six in 2014 and 10 in 2013. The innovation pro has also been busy joining the boards of file-sharing service Box and Gap. Padmasree still finds the time to mentor other women in the tech industry, stay in touch with her 1.6 million Twitter followers and follow a nightly meditation routine. A Cornell-trained engineer, she believes a STEM education informs creativity: "Increasingly it's not about knowing all the answers but asking the right questions and figuring out how to get the right answer."

4). SACHIN BANSAL & BINNY BANSAL

Sachin and Binny Bansal were different but the same. They grew up in Chandigarh, went to IIT Delhi and still didn't know each other until ending up at the same team at Amazon. There, they developed a camaraderie which led to the foundation of Flipkart. Flipkart was started with an allowance from parents, two computers and an apartment in Koramangala, Bangalore.

Their first order didn't come through for days. But they realized the potential of E-commerce in India very early on and banked on it. And from Rs.10000 a month to a billion dollar company, their journey has been one hell of a ride. I remember ordering a book from Flipkart back in 2008. What struck me was the service and speed. Plus the book was available there to my surprise. They've built their empire on the most important thing. The Customer. Their experience matters.

5). DEEPINDER GOYAL AND PANKAJ CHADDAH

Arey Zomato pe dekh na!

The above sentence epitomizes the success of Zomato. For our Non-Hindi speakers, it means 'hey, look it up on Zomato'. What Zomato does is it helps you look up restaurants in your locality. It doesn't matter if it's the corner street Dhaba or the most sumptuous restaurant of the city. It's there on Zomato. Zomato started out as foodie bay out of Deepinder Goyal's apartment. Once again both the co-founders Deepinder Goyal and Pankaj Chaddah were in the same team at Bain and Co. as consultants. There, they had the idea. The user feedbacks started coming in as positive and the site gained traction by 2009.

6). SATYA NADELLA

He attained his bachelor's degree in electrical engineering from Manipal institute of engineering and technology, India. Later he did MS in computer science from University of Wisconsin, US. Then he received MBA from University of Chicago booth school of business.

He was appointed CEO of Microsoft on 4th February, 2014.

7). SHIV NADAR

He passed out from PSG Tech Coimbatore which is one of the top 10 college under Anna University. Now he runs a college named SSN CE which is again in top 10 best colleges of Anna University. In fact SSNCE ranked No. 1 private engineering college for several years in a row. He also runs Shiv Nadar University. The best part of both these colleges is that the seats are not sold for money (read as capitation fees). Both the govt seats and management seats are filled based on merit. He also runs a school called Vidyagan in Noida, which adopts 200 poor children and provide them free food, shelter and education.

Ok, How did he become so rich to build a top quality college in Tamilnadu being a passed out from another top college? Because he is Founder and Chairman of HCL group of companies.

"He founded a product company that later became HCL, that developed Operating systems and Databases, even before Apple started developing operating systems, and Oracle started developing databases."

4.4 PROFESSIONAL SOCIETIES AND ASSOCIATIONS

An engineering society is a professional organization for engineers of various disciplines. Some are umbrella type organizations which accept many different disciplines, while others are discipline-specific. There are also many student-run engineering societies, commonly at universities or technical colleges. Some such societies of India are as follows –

  • Aeronautical Society of India (AeSI)
  • Computer Society of India (CSI)
  • The Institution of Engineers (India) (IEI)
  • Institution of Electronics and Telecommunication Engineers (IETE)
  • Indian Institute of Chemical Engineers (IIChe)
  • Indian Institution of Industrial Engineering (IIIE)
  • Society of EMC Engineers (India) (SEMCE(I))
  • Indian Society for Technical Education (ISTE)
  • Indian Science Congress Association (ISCA)

Now there are many such societies and associations are there which are specifically for computer science. Some of these professional organizations are as follows –

  • American Society for Information Science and Technology (ASIS&T)
  • Among its some 4,000 members, ASIS&T counts information specialists in computer science, linguistics, management, librarianship, engineering, law, medicine, chemistry, and education. The society is committed to finding new and better theories, techniques, and technologies to improve access to information.

  • Association for Computing Machinery (ACM)
  • Founded in 1947 as an international scientific and educational organization dedicated to advancing the art, science, engineering, and application of information technology and serves both professional and public interests.

  • Association for Women in Computing
  • The Association for Women in Computing was founded in 1978 and was one of the first professional organizations for women in computing. They have chapters worldwide, as well as individual members.

  • American Society for Engineering Education (ASEE)
  • A nonprofit member association, founded in 1893, dedicated to promoting and improving engineering and technology education.

  • Anita Borg Institute for Women and Technology
  • A nationally recognized organization that provides platforms allowing women’s voices, ideas and spirits to influence technology. The mission is to increase the impact of women on all aspects of technology, to increase the positive impact of technology on the lives of the world’s women, and to help communities, industry, education and government benefit from these increases.

  • Association of Information Technology Professionals
  • The leading, worldwide society of professionals in information technology.

  • The Computing Research Association
  • The Computing Research Association is composed of more than 200 academic departments of computer science, computer engineering, and related fields. Their mission is to strengthen research and advanced education in the computing fields, expand opportunities for women and minorities, and policy work.

  • The Institute of Electrical and Electronics Engineers Computer Society
  • With over 200 chapters worldwide, the Computer Society was formed, “to advance the theory, practice, and application of computer and information processing science and technology.” This society traces its roots back to 1971, and is also a part of the Institute of Electrical and Electronics Engineers (IEEE).

  • Institute for Operations Research and the Management Sciences (INFORMS)
  • Serves the professional and scientific needs of Operations Research and Management Sciences investigators, scientists, educators, students, and managers, as well as the institutions they serve where Operations Research (OR) and the Management Sciences (MS) are the professional disciplines that deal with the application of information technology for informed decision-making.

  • Society for Industrial and Applied Mathematics (SIAM)
  • Dedicated to advancing the application of mathematics to science and industry, to promoting mathematical research that could lead to effective new methods and techniques for science and industry, and to providing media for the exchange of information and ideas among mathematicians, engineers, and scientists. In conjunction with the AMS, they also provide career information and services to the mathematics community through the AMS-SIAM Mathematics Careers Bulletin Board which is an interactive service that informs students about non-academic career choices in the mathematical sciences.

  • USENIX, the Advanced Computing Systems Association.
  • Founded in 1975, USENIX brings together engineers, system administrators, scientists, and technicians working in computer science.

4.5 COMPUTING ETHICS AND GOOD PRACTICES

The more specific term “computer ethics” has been used, in the past, in several different ways. For example, it has been used to refer to applications of traditional Western ethics theories like utilitarianism, Kantianism, or virtue ethics, to ethical cases that significantly involve computers and computer networks. “Computer ethics” also has been used to refer to a kind of professional ethics in which computer professionals apply codes of ethics and standards of good practice within their profession. In addition, names such as “cyberethics” and “Internet ethics” have been used to refer to computer ethics issues associated with the Internet.

During the past several decades, the robust and rapidly growing field of computer and information ethics has generated university courses, research professorships, research centers, conferences, workshops, professional organizations, curriculum materials, books and journals.

In 1976, Walter Maner noticed that the ethical questions and problems considered in his Medical Ethics course at Old Dominion University often became more complicated or significantly altered when computers got involved. Sometimes the addition of computers, it seemed to Maner, actually generated wholly new ethics problems that would not have existed if computers had not been invented. He concluded that there should be a new branch of applied ethics similar to already existing fields like medical ethics and business ethics. After considering the name “information ethics”, he decided instead to call the proposed new field “computer ethics”. He defined the proposed new field as one that studies ethical problems “aggravated, transformed or created by computer technology”. He developed an experimental computer ethics course designed primarily for students in university-level computer science programs. His course was a success, and students at his university wanted him to teach it regularly. He complied with their wishes and also created, in 1978, a “starter kit” on teaching computer ethics, which he prepared for dissemination to attendees of workshops that he ran and speeches that he gave at philosophy conferences and computing science conferences in America. In 1980, Helvetia Press and the National Information and Resource Center on Teaching Philosophy published Maner’s computer ethics “starter kit” as a monograph (Maner 1980). It contained curriculum materials and pedagogical advice for university teachers. It also included a rationale for offering such a course in a university, suggested course descriptions for university catalogs, a list of course objectives, teaching tips, and discussions of topics like privacy and confidentiality, computer crime, computer decisions, technological dependence and professional codes of ethics. During the early 1980s, Maner’s Starter Kit was widely disseminated by Helvetia Press to colleges and universities in America and elsewhere. Meanwhile Maner continued to conduct workshops and teach courses in computer ethics. As a result, a number of scholars, especially philosophers and computer scientists, were introduced to computer ethics because of Maner’s trailblazing efforts.

IMPORTANT QUESTIONS

  • Q.1 Name some computer magazines.
  • Q.2 Define some computer journals?
  • Q.3 Write the success story of a computer engineer in brief.
  • Q.4 List the Indian Professional Societies.
  • Q.5 What are computing ethics?