## Topic outline

• Forum: 1
• Key Unit Competency: To be able to identify, use and maintain safely laptops and other portable devices.

INTRODUCTORY ACTIVITY

Apply the following scenario:
You are in computer lab with different devices on table.

Figure 1.1. Mobile devices

1. Name the devices you see on your table

2. Describe parts of each device.

3. Describe the common use and functions of these devices

1.1. PORTABLE DEVICES

Learning Activity 1.1

1) You are sited in your computer lab, observe well each device and then answer following
questions:

a. Describe the portable devices available in lab;

b. Discuss the similarities and differences between available devices;

c. Enumerate other portable devices which are not in your lab.

2) In supermarket A, a laptop costs 350,000 Rwf while in supermarket B, laptop of same
quality costs 300,000Rwf. Select where you will prefer to buy your laptop and explain
why.
1.1.1. Portable devices definition

A portable device is a device that can easily be carried. It is a small form of a
computing device that is designed to be held and used in the hands.

A portable device may also be called a handheld device or mobile device. Portable
devices are primarily battery powered devices with base computing resources in
the form of a processor, memory, storage and network access. Portable devices are
becoming an increasingly important part of personal computing as the capabilities
of devices like laptops, tablets and smartphones continue to improve.

11.2. Types of portable devices

a. Laptops

A laptop computer is a portable personal computer powered by a battery, or an
Alternating Current (A.C) cord plugged into an electrical outlet, which is also
used to charge the battery. Laptops have an attached keyboard and a touchpad,
trackball, or isometric joystick used for navigation. Sometimes, a wireless mouse
can also be used on a laptop. A wireless mouse is a computer mouse that needs no
wires to send signals from the mouse to a computer. Wireless mouse technology
predominantly uses radio frequencies (RF) to send signals from the mouse to the
computer. Like other radio technologies, this requires a transmitter and a receiver.
The mouse transmits radio signals to a receiver, which is itself connected to the
computer hardware, normally via a wire. This kind of wireless mouse is very reliable,
and capable of transmitting the mouse’s movements to the receiver from across a
room. A laptop also has a thin display screen that is attached and can be folded
flat for transport. Laptop computer is also known as Notebook computer or simply
Notebook.

The memory and storage capacity of laptop computer is almost equivalent to the PC
or desktop computer. It also has the hard disk, DVD/CD optical disk drive, different
connectors etc.
b. Smartphones

A smart phone is a handheld personal computer with a mobile operating system and an
integrated mobile broadband network connection for voice, SMS, and Internet data
communication. Most if not all smartphones also support Wireless Fidelity (Wi-Fi). Smartphones are typically pocket-sized, as opposed to tablets, which are much
larger. A smartphone is a cellular phone that performs most of the functions of a computer.

A smart phone supports all features of PDA plus mobile phone features

Smartphone characteristics/features

• Media players

• Internet access

• Global Positioning System(GPS)

• Wireless Fidelity (Wi-Fi)

• Camera

• Sensor

c. Mobile phones (cell phones)

A mobile phone or cell phone (is a long-range, electronic device used for mobile
telecommunications (mobile telephony, text messaging or data transmission) over
a cellular network. Today, this type of portable device is being dominated by smart
phone as technology improves.

d. PDAs

A Personal Digital Assistant (PDA), also known as a palmtop computer, or Personal
Data Assistant, is a mobile device that functions as a personal information manager.
Newer PDAs commonly have color screens, audio capabilities and web browsers that
enable them to be used as mobile phones (smartphones) or portable media players.
Many PDAs can access the Internet, intranets (communication within LAN) or
extranets via Wi-Fi, or Wireless Wide Area Networks. Many PDAs employ touch screen
technology.
e. Tablets

A tablet computer, or simply tablet, is a mobile computer with a large screen,
circuitry and battery in a single unit with no built in keyboard. Some tablets include
detachable keyboards have been sold since the mid-1990s. Such tablets include
Tablets are very similar to smartphones. They have an Internet connection via a
Sensors including speech recognition.

Application Activity 1.1.

6. Describe the difference between PDA and Smartphone

7. Compare a smart phone and Tablet

8. According to the comparison between laptop, Smart phone, Cell
phone, PDA and Tablet, which one is most useful? Explain why.

1.2 LAPTOP COMPUTER FUNDAMENTALS

Learning Activity 1.2.

1) In the computer lab observe laptop computers and make groups and answer the
following questions:

a) Discuss common uses of laptop computer in schools and society in general

b) Describe the external components of a laptop

c) Describe the internal components of a laptop

d) Investigate why laptop has Fn key on keyboard while desktop keyboard does not
have it

e) With your laptops connected to Internet, search for steps to be followed while
applying for National ID at www.irembo.gov.rw site

f ) In the computer lab, identify the following features of a laptop: AC power port,
ethernet port VGA port, vents, HDMI port, USB ports, camera.

g) Open a laptop and identify all its internal components 1.2.1. Common uses
The first laptops were used primarily by business people who needed to access and
enter data when they were away from the office. The use of laptops was limited due
to expense, weight, and limited capabilities compared to less expensive desktops.

Some common uses for laptops

Laptop is used in:
• Education field (example: Laptops are used by teachers in preparation of
teaching and learning materials)

• Medicine field (example: Laptops are used by doctors to keep patient records)

• Business field (Electronic commerce uses Laptops for example in marketing
and selling products or good and services.)

• Accessing online services (example: National ID application at www.irembo.
gov.rw)

• Entertainment field (example: Playing games and watching movies while
traveling)

• Communication field (example: when you send and receive an email in a
public place)

• Security field (example: Laptop can be used to fight against hackers: people
who access personal information without authorization of the owner. Notice
that accessing of personal information without permission is punishable crime).

1.2.2. Laptop features

The most significant feature of a laptop is its compact size. The design of the laptop
places the keyboard, screen, and internal components into a small portable case.
Common Characteristics/features of Laptops:

• Small and portable;

• An integrated display screen in the lid;

• An integrated keyboard in the base;

• They run on AC power or a rechargeable battery;

• Laptops support hot-swappable drives and peripherals.

1.2.3. Evolution (History) of laptops

In 1983, Gavilan SC is the first machine marketed as a “laptop”

In 1990, Intel introduces 80386SL processor which uses low power; quickly
incorporated into many laptops.

In 1991, Apple PowerBook introduces First laptop Ethernet port. Modem speeds
reach 14,400 bits/sec.

In 1996, First Pentium laptop with USB, first “three spindle” machine, with floppy
hard disk, CD-ROM.

In 1999, Laptop manufacturers use PCI slot to enable Wi-Fi connectivity. Apple
brands WiFi as AirPort, incorporates a slot into all of its laptops.

In 2005, Laptop computers outsell desktops for the first time.

In 2010, HDMI ports become common on laptops. Apple iPad was introduced.

The components of a laptop

Components may be located in different places for different models.

a. The external components of a laptop

The Laptop and the desktop computers use the same types of ports so that
peripherals can be interchangeable. Ports, connections, and drives are located on
the front, back, and sides of the laptop due to the compact design. There are status
indicators, ports, slots, connectors, bays, jacks, vents, and a keyhole on the exterior
of the laptop.

As port a laptop has an AC power port, an ethernet port, a VGA port a HDMI port, a
USB port a sound in (microphone) port and a sound out (speaker) port. Beside these
ports a laptop has a battery latch at its bottom
On the user view, which is normally visible when a laptop is being used one can see
the following components:

1) Web camera               4) Keyboard              7) Left Click button
3) Power button                6) Right Click button

Note:
• The location of the power button may depend on the mark of the laptop

• Some laptops may not have an in-buitl CD/DVD disk drive while in other types,
the CD/DVD disk drive can be located on left or right side. For those with no
such drive an external drive that can be connected to the laptop through the
USB port is often used.

• A desktop monitor can be connected to a laptop. In such cases, using the
function key can allow one to toggle the screen from the laptop to the desktop
monitor or view both at the same time.

b. The internal components of a laptop

The central circuit board (motherboard) makes up a complex electronic system. A
motherboard provides the electrical connections by which the other components of
the system communicate. It includes many components such as Central Processing
Unit (CPU), Random Access memory (RAM), etc. Laptop motherboards and other
internal components installation vary by manufacturer and are proprietary.
Internally and at the top a laptop after removing te cover there is access to the
motherboard, speakers, cooling fans, wireless card, CMOS battery and audio board
while under the bottom cover there is access to the hard drive and RAM module but
this configuration may change from laptop mark to another

Application Activity 1.2

1) Suppose that your computer laptop is not connected to Internet. If there is no
wireless connection,

a) which of the following cables can be used to have the connection?

i. VGA (Video Graphic Array) cable;

ii. Network cable;

iii. AC Power cable.

b) Describe the role of the remaining cables.

2) Choose from a laptop in the computer lab one document in PowerPoint and
project it by using the Projector of your school.

3) Connect a desktop monitor to a laptop computer and then do the following:

i. Display the contents from the laptop to both screens;

ii. Display the contents from the laptop to only desktop monitor;
Differentiate HDMI port from USB port.
Open a laptop and identify all its internal parts

1.3. Compare and contrast laptop and desktop components

Both desktop and laptop computers can perform most of the same functions.
However, these two kinds of computers are built very differently and the parts
are not interchangeable. Few components can be shared between desktops and
laptops like the expansion devices that are attached to laptop devices with USB
ports, parallel ports, and PC Cards.

Laptop components are proprietary. So you may not be able to use components
made by one laptop manufacturer to repair a laptop made by another manufacturer.
Therefore, that technicians may have to obtain certification for each laptop
manufacturer they support. The following table summarizes the specifications
between a laptop and desktop computers.
Expansion devices are attached to laptops and desktops differently. Laptops have
limited space so the expansion bays on laptops are designed to allow different
types of drives to fit into the same bay. Drives are hot-swappable and are inserted or
removed as needed.

As both desktop and laptop computers are electronic devices, they manage power.
The optimization of power management can be configured differently through the
Control Panel feature of the running operating system. This configuration of power
management can also mark the difference between a laptop and a desktop.

Application Activity 1.3

Go through the steps for power option Edit plan. To do this in Windows 10 go
through these windows: “Control panel”window, “Hardware and Sound”window,
“Power Options” window, Create a Power Plan and Edit Plan Setting. Then:

1. Set your laptop so that it can turn off the display:

ii. After 7 minutes when plugged in

3. Discuss different reasons why there is no need of large cooling devices
in a computer lab containing laptops.

4. Discuss the similarities and differences between a laptop and desktop
expansion components

5. Open a laptop and a desktop and identify the difference between their
motherboards

1.4. SMARTPHONES, PDAs, TABLETS

Learning Activity 1.4.

All companies deal with large amount of data. Using different portable devices, users
can collect and access data from the outside of the organization.

1. Identify the portable devices other than laptops that are used in your
school to allow teacher and student to access materials on Internet.

2. Discuss the common uses and features of those identified devices in
above question

The Smartphones, PDAs, tablets are new types of small personal computing devices
that have been introduced in the mid-1990s and these are referred to as handheld
computers. This type of computer is named handheld computer because it can fit in
one hand while you can operate it with the other hand. Because of its reduced size,
the screen of handheld computer is quite small.

1.4.1. Common uses and standard services of Smartphones, PDAs and
tablets

Like the laptops, these computers are used by mobile employees whose jobs require
them to move from place to place.

They are used in different fields like the following:
• Communication (example: - when you send and receive an email)

−− Voice over Internet Protocol (VoIP) – voice/video calls.

−− Instant text message ex: chatting using WhatsApp

−− Streaming music/video content

−− Communication via social networking applications)

• Entertainment (example: when you play games and watch movies while
traveling)

• Business (Electronic commerce uses these computers for example in marketing
and selling products or goods and services.)

• Education field (Smartphones, PDAs and tablets are teaching and learning
tools. They are used in performing calculations, note taking etc.)

• Smartphones, PDAs and tablets have storage which can store information like

• Smartphones, PDAs and tablets can remind you of appointments (clock, alarm
functions)

1.4.2. Common features of Smartphones, PDAs and tablets

Smartphones, PDAs, tablets have operating systems which allows them to run
multiple applications. Their Operating systems have features like contacts, email,
calendar, appointments, tasks, games, media etc.

Examples of mobile operating systems:

a. Apple’s iOS

b. Android OS

c. Windows Phone OS

d. BlackBerry OS

Apart from the operating system, tablets have in common a wi-fi, capability to have
their memories expanded, a high resolution display with touch technology and a
QUERT keyboard

Application Activity 1.4.

Using a smartphone or a tablet or IPad do the following:

2. Send an email message to one of the classmates and ask him/her to reply.

3. Search the application called “Polaris Office” in Play Store install it and
state its function?

1.4.3. Standards Service of Smartphone, PDA and Tablet

Some of the services that can be found in smartphones, PDA, and tablets include;

• Appointment calendar

• MP3 player

• Web browser

• E-mail access, in addition to text messaging

• Mini-keyboards or onscreen keyboards

• Bluetooth

• Character recognition (allowing for handwritten input)

• Synchronization of information with desktop or laptop computers

• Voice recording

• Digital camera

• Video recording

• Location tracking through GPS(Global Positioning System)

• Wi-Fi

• Microsoft Office (MS) compatible applications (Native with Pocket PC operating
systems; Palm operating systems may require third-party software)

1.5. LAPTOP AND PORTABLE DEVICES CLEANING PROCEDURES

Learning Activity 1.5

Observe the figure below and answer the followed questions

1. Discuss what would happen if a drink was spilled into the keyboard of a
laptop.

2. How can you prevent this laptop to be damaged?

3. What can you do if the laptop and water are in contact?

4. What can you consider while choosing cleaning materials and products?

5. Describe different laptop parts which can be cleaned.

6. How can you keep waste products after cleaning a laptop?

As laptops are mobile, they are used in different types of environments. Some
environments can be hazardous to a laptop. Even eating or drinking around a laptop
creates a potentially hazardous condition.

It is important to keep a laptop clean and to ensure that it is being used in the most
optimal environment possible. Proper routine cleaning is the easiest, least expensive
way to protect and to extend the life of a laptop.

It is very important to use the right products, cleaning materials and procedures
when cleaning a laptop. Always read all warning labels on the cleaning products.

Before starting to clean any part of a laptop, turn it off, disconnect all attached
devices, disconnect it from the electrical outlet and remove its battery. To remove
the battery move the battery lock to the unlocked position, hold the release lever in
the unlock position and remove the battery.

To clean laptop keyboards blow compressed air between the keys then slide a soft
cloth over the laptop keyboard in order to remove the dirt. The cleaning can be
done using compressed air whereby this air is blown into the laptop through the
vents. Use tweezers to remove any debris.

To clean LCD screens slide a soft cloth slightly moistered with water or LCD cleaner
over the laptop display. A special attention should be taken on using products
specifically designed for cleaning LCD displays.

To clean touch pads slide a soft cloth over surface of the touch pad gently with an
approved cleaner. Never use a wet cloth and use a soft cloth with only approved
cleaning solution.

Application Activity1.5

1. Clean a keyboard and a screen of a laptop in the computer lab.

2. Discuss different Laptop Keyboard, LCD screen and touchpad Cleaning
materials, products and Procedures.

END OF UNIT ASSESSMENT ACTIVITY

below:

Laptop computer

Tablet

Smartphone

2. Describe what is used for standalone and networked laptop computer.

3. Compare smartphone features and cell phone features

4. Is a Laptop hardware maintenance difficult comparing to a desktop
computer maintenance? Explain.

5. Give a clear difference between VGA and HDMI connectors.

6. Explain how you can take care your laptop.

7. Exchange a track of music from one device to another. What do you use?
Are there other.

• INTRODUCTORY ACTIVITY

In a bank, a Teller has the role of serving the clients. He/she has to organize the
banknotes of same values together and coins of same values together that he/she has
to serve to clients. When a client arrives in the bank, he/she chooses a line to join in the
front of a Teller and the line is formed according to the arrival of clients.

Mr. KARENZI wants to pay 78450 Rwf as his school fees to the bank and he must
organize banknotes and coins before deposit money to facilitate the teller to not mix
the banknotes and coins

1. Observe the above figure and describe what you see;

2. Where a new arrived client will line up?

3. Using the above figure who is going to be served first by the teller 1 or 2;

4. Discuss how KARENZI is going to organize bank notes and coins before
depositing;

5. Discuss how the teller is going to keep money deposited by Karenzi

2.1. Introduction to Data Structures

Data Structure is a way of collecting and organizing data in such a way that we
can perform operations on these data in an effective way. Data Structures is about
rendering data elements in terms of some relationship, for better organization and
storage.

Example: Library is composed of elements (books) to access a particular book
requires knowledge of the arrangement of the books.

2.1.1. Basic types of Data Structures

Anything that can store data can be called as a data structure, hence Integer,
Float, Boolean, Char etc., all are data structures. They are known as Primitive Data
Structures. And we also have some complex Data Structures, which are used to store
large and connected data and are called non primitive data structure or Abstract
Data Structure.

Example: Array, Linked List, Tree, Graph, Stack, Queue etc.
All these data structures allow us to perform different operations on data. We select
these data structures based on which type of operation is required.

2.1.2. Importance of data structures

The data structures have the following importance for programming:

• Data structures study how data are stored in a computer so that operations
can be implemented efficiently

• Data structures are especially important when there is a large amount of
information to deal with.

• Data structures are conceptual and concrete ways to organize data for efficient
storage and manipulation

2.1.3. Data Structure Operations

Beside the simple operations performed on data (unary operators, binary operators and
precedence operators) seen in Senior Four, the data appearing in our data structures are
processed by means of other operations. The following are some of the most frequently
used operations.

Traversing: Accessing each record exactly once so that certain items in the record may be
processed.

Searching: Finding the location of the record with a given key value or finding
the locations of all records which satisfy one or more conditions

• Inserting: Adding a new record to the structure.

Deleting: Removing a record from the structure.

Sorting: Arranging the records in some logical order (e.g., in numerical order
according to some NUMBER key, such as social security number or account number).

Merging: Combining the records of two different sorted lists into a single sorted list.

It is important for every Computer Science student to understand the concept of
Information and how it is organized or how it can be utilized.

If we arrange some data in appropriate sequence, then it forms a Structure and gives us
a meaning. This meaning is called information. The basic unit of information in computer
Science is a bit, binary digit. So we found two things in information: One is Data and the
other is Structure

2.2 Array of elements in data structure

LEARNING ACTIVITY 2.1.

Study the following table

1. Suggest a name for the above table?

2. How many rows and columns in the above table?

3. Identify the location of the value 95 in the above table?

Arrays hold a series of data elements, usually of the same size and data type.
Individual elements are accessed by their position in the array. The position is given
by an index, which is also called a subscript. The index usually uses a consecutive
range of integers, (as opposed to an associative array) but the index can have any
ordinal set of values

Some arrays are multi-dimensional, meaning they are indexed by a fixed number of
integers, for example by a tuple of four integers. Generally, one- and two-dimensional
arrays are the most common. Most programming languages have a built-in array
data type.

In computer programming, a group of homogeneous elements of a specific data
type is known as an array, one of the simplest data structures.

2.2.1. Arrays dimensions:

A dimension of array is a direction in which you can vary the specification of an
array›s elements. An array can be of one or many dimensions.

a. One-dimensional array.

Example: a [3]

It is an array called a with 3 elements. The elements of the array are logically
represented by the name of the array with in brackets its index or positions. For the
one dimensional array a with 3 elements, elements are written like a[0], a[1] and
a[2]. The indexes start always by 0. Graphically, it is

b. Multi-dimensional arrays
Example:

Two dimensional array ex: a[2][7]as Integer
Three dimensional array ex: a[3][2][5]as Integer

2.2.2. Two dimensional array

A Two dimensional Array is a collection of a fixed number of elements (components)
of the same type arranged in two dimensions.

The two dimensional array is also called a matrix or a table. The intersection of a
column and a row is called a cell. The numbering of rows and columns starts by 0

Example:
The array a[3][4] is an array of 3 rows and 4 columns. In matrix representation, it
looks like the following:
a[i][j] means that it is an element located at the intersection of row i and column j.
Each element is identified by its row and column

2.2.3. Two dimensional array declaration

The syntax for declaring a two-dimensional array is:
SET Array name=Array [row size][column size] of Data type

Where row size and column size are expressions yielding positive integer values,
the two expressions row size and column size specify the number of rows and the
number of columns, respectively, in the array.

Examples:

1. SET a=Array[2][7] of Integer

2. SET b=Array[4][3] of Integer

Notice that the number of elements =row size*column size

The examples above defines respectively arrays named a and b with 14 (2*7) elements
and 12 (4*3) elements. The expression marks [0] [0] will access the first element of
the matrix marks and marks [1] [6] will access the last row and last column of array a.

If the array marks if filled with the elements 80, 75, 76, 75, 55, 70, 55, 70, 65, 85, 35
and 59, we get the following table.

2.2.4. Two dimensional array initialization

When a two-dimension array has been declared, it needs to be assigned values for
its elements. This action of assigning values to array elements is called initialization.
Two-Dimensional array is initialized by specifying bracketed values for each row. For
the case of array of integers, the default values of each element is 0 while for others
the default values for other types is not known.

For the case of an array of 3 rows and 4 columns, if the name is A and the type of
elements is integer, the initialization is:

int A[3][4]={{A[0][0], A[0][1], A[0][2], A[0][3]}, /* initializers for row indexed by 0 */
{A[1][0], A[1][1], A[1][2], A[1][3]}, /* initializers for row indexed by 1*/
{A[2][0], A[2][1], A[2][2], A[2][3]} /* initializers for row indexed by 2 */
};

The nested braces, which indicate the intended row, are optional. The following
initialization is equivalent to the previous initialization.

Int A[3][4]={A[0][0], A[0][1], A[0][2], A[0][3], A[1][0], A[1][1], A[1][2], A[1][3], A[2][0],
A[2][1], A[2][2], A[2][3]};

An example of marks for 3 students in 4 courses. The array will look like this:
If the table is called marks, marks [1][3]=15; where the row position is 1 and the
column position is 3.

The expression marks [0] [0] will access the first element of the matrix marks and
marks [2] [3] will access the last row and last column.

Syntax to initializing two-dimensional arrays

The two dimensional array marks which will hold 12 elements can be initialized like:

BEGIN
SET marks=Array[3] [4] of Integer
marks[0][0]=18
marks[0][1]=16
marks[0][2]=14
marks[0][3]=19
marks[1][0]=10
marks[1][1]=20
marks[1][2]=12
marks[1][3]=15
marks[2][0]=15
marks[2][1]=17
marks[2][2]=18
marks[2][3]=16

END

APPLICATION ACTIVITY 2.1.

1. Four secondary schools in RUHANGO District are displaying the number
of students per year that they registered in 2015, 2016, 2017 and 2018.

a. How many rows and columns will be in the table that contains the
displayed data?

b. Declare an array called population to contain the needed data.

c. Initialize the array population with numbers of your choice.

2. Given below the case of array a:

a[0][0]     1      a[1][0] 54

a[0][1]     2       a[1][1] 23

a[0][2]      3       a[1][2] 11

a[0][3]     13          a[1][3] 45

a[0][4]     17          a[1][4] 31

a[0][5 ]    34          a[1][5] 65

a[0][6]     19              a[1][6] 26

a. Give the size of the above array;

b. Declare array a;

c. Initialize the above array.

2.2.5. Accessing two dimensional array elements

LEARNING ACTIVITY 2.2.

What do the following statements mean:

WRITE marks[1][2] ;
What are the meanings of the above statements

• Reading (storing) two dimensional array elements

There exist two ways of accessing the elements of an array. The elements’
values of the array can come from the input devices or from a given file so that
these elements are written into the array. The function used is READ or other
versions of it, depending on the programming languages used for programs
writing.

For example READ marks[1][2] stores a value in second row, third column
location of the array marks.

To store multiple values into array you must use a FOR loop.

Syntax:
FOR i=initial value TO upperlimit DO
FOR j=initial value TO upperlimit DO
i=i+1
j=j+1
END FOR
END FOR
Where i refers to the row position and j refers to the column position.

Initial value=lower limit

Example: Write an algorithm of a program that allows the user to enter (store) two
dimensional array elements
BEGIN
SET marks=Array [3] [8] of Integer
Use variable i as integer
Use variable j as integer
FOR i=0 TO 2 DO
FOR j=0 TO 7 DO
i=i+1
j=j+1

END FOR
END FOR
END

Writing (displaying) two dimensional array elements

To access two dimensional array elements’ values, we can also take the elements’
values of an array residing in the memory of the computer and write them in any
output device or a given file.

To write (display) elements from an array in an output device or other file, use a
WRITE function or other versions of it depending on the programming languages
used for programs writing together with the array name and location (index) of the
element. In that case the elements of a two dimensional array can be displayed by
the following syntax:

WRITE Array name [i][j]

Where i refers to the row position and j refers to the column position.

To display a single value of an array you must provide the array name and index to
write operation example:

Example for writing on screen a two dimensional array element
WRITE a[1][2], i=1 and j=2).

Example: Write an algorithm of a program that displays stored two dimensional
array marks’ elements
BEGIN
SET a=Array[3][8] of integer
Use variable i As integer
Use variable j As integer
WRITE “stored two dimensional array elements are:”
FOR i=0 to 2DO
FOR j=0 to 7DO
WRITE a[i][j]
i=i+1
j= j+1
END FOR
END FOR
END

Algorithm for reading and printing values in arrays

Example: Write an algorithm that allows the user to enter(store) two dimensional
array elements and displays those stored elements.

APPLICATION ACTIVITY 2.2.

1. Write an algorithm to do the following operations on a two dimensional
array A of size m x n.

• Declare the array A;

• Read the element ‘values into matrix of size m x n

• Output the elements’ values of matrix of size m x n on the screen;

• Calculate the sum of all elements’ values of matrix of size m x n;

• Write a programme in C++ Language where you apply the above questions

2. Write an algorithm that allows a user to input data through input device
and display the smallest element’ s value on the screen.

3. Write a programme in C++ language that implements the above
algorithm.

4. Consider a 2 by 3 array T

a. Write a declaration of T

b. How many rows does T have?

c. How many columns does T have?

d. How many elements does T have?

e. Write name of elements in second row

f. Write the name of element in third column

g. Write a single statement that sets the elements of T in row 1and column 2
to zero

h. Write a statement that inputs the values of T from keyboard

i. Write a statement that displays the elements of first row of T

2.3. ABSTRACT DATA STRUCTURE

LEARNING ACTIVITY 2.3

1. Observe and analyze the above figure

2. Explain different procedures that you can use to arrange the above books.

2.3.1. Definition of Abstract Data type in data structure.

Abstract Data structure is a mathematical model of a data structure that specifies the
type of data stored, the operations supported on them and the types of parameters
of the operations with no implementation. Each program language has its own way
to implement abstract data type.

2.3.2 Importance of abstract data type in data structures

• Data structures study how data are stored in a computer so that operations
can be implemented efficiently;

• Abstract Data structures are especially important when you have a large
amount of information;

• Conceptual and concrete ways to organize data for efficient storage and
manipulation

2.3.3. Abstract Data type Operations

The data appearing in our data structures are processed by means of certain
operations. Following are some of the most frequently used operations.

• Searching: Finding the location of the record with a given key value or finding
the locations of all records which satisfy one or more conditions;

• Sorting: Arranging the records in some logical order .

2.4. List

2.4.1. Introduction

A list is a collection of data in which each element of the list contains the location of
the next element.

In a list, each element contains two parts: data and link to the next element. The data
parts of the list hold the value information and data to be processed. The link part
of the list is used to chain the data together and contains a pointer (an address) that
identifies the next element in the list.
In the list you can do the following operations:

LIST: Creates an empty list;

INSERT: inserts an element in the list;

DELETE: deletes an element from the list;

RETRIEVE: retrieves an element from the list;

TRAVERSE: traverses the list sequentially;

EMPTY: checks the status of the list.

Example of a list:

A bank has 10 branches created one after another at different dates. The Bank
Inspector who wants to visit all of them can follow the order of their creation. He/
she will be informed only about the name and location of the first branch. When he
reaches that branch, the Branch Manager will tell him/her the address of the next
branch, and so one.

After visiting all branches, the Bank Inspector will realize that he/she has a list of the
bank branches.

Graphically, it will be represented like a list where each branch is considered as a
node containing the names of the branch and the address of the next branch.

Difference between Arrays and Lists

A list is an ordered set of data. It is often used to store objects that are to be processed
sequentially.

An array is an indexed set of variables, such as dancer [1], dancer [2], dancer [3] It is
like a set of boxes that hold things. A list is a set of items. An array is a set of variables
that each store an item.

In a list, the missing spot is filled in when something is deleted. While in an array, an
empty variable is left behind when something is deleted.Simply a list is a sequence
of data, and linked list is a sequence of data linked with each other.

This is a dynamic table/ data structure used to hold a sequence. Its characteristics
are the following:

• Items forming a sequence are not necessarily held in contiguous data location
or in the order in which they occur in the sequence.

• Each item in the list is called a node and contains an information field and a

• Information field holds actual data for list item; link field contains the address
of the next item.

• The link field in the last item indicates that there are not further items. E.g. has
a value of 0.

• Associated with the list is a pointer variable which points to the first node in
the list.

• We use linked list in linking files, for example, in a hard disk.

• It can grow or shrink in size during execution of a program.

• It can be made just as long as required

• It does not waste memory space.

Linked list is classified into three types as shown below:

Single linked list is a sequence of elements in which every element has link to its
next element in the sequence. In any single linked list, the individual element is
called as “Node”. Every “Node” contains two fields, data and next. The data field is
used to store actual value of that node and next field is used to store the address of
the next node in the sequence

In a single linked list, the address of the first node is always stored in a reference node
known as “front” (Sometimes it is also known as “head”).Always next part (reference part) of the last node  must be NULL

Creating and read an element in a NODE
BEGIN
struct node{
int info
struct node next
temp=null
current=null
Begin sub
Step 1 Read the element into x
Step 2 Create a temp node in the memory
temp =(struct node )sizeof (node)
Step 3 Assign the values in temp node as follows
temp -> info =x
temp ->next=null
End sub
END

Inserting at Specific location in the list (After a Node)
We can use the following steps to insert a new node after a node in the single linked list

• Step 1: Create a newNode with given value.

• Step 2: Check whether list is Empty (head == NULL)

• Step 3: If it is Empty then, set newNode => next = NULL and head = newNode.

• Step 4: If it is Not Empty then, define a node pointer temp and initialize with head.

• Step 5: Keep moving the temp to its next node until it reaches to the node

after which we want to insert the newNode (until temp1 => data is equal to
location, here location is the node value after which we want to insert the
newNode).

• Step 6: Every time check whether temp is reached to last node or not. If it
is reached to last node then display ‘Given node is not found in the list!!!
Insertion not possible!!!’ and termin ate the function. Otherwise move the
temp to next node.

• Step 7: Finally, Set ‘newNode => next = temp => next’ and ‘temp => next = newNode’

Deleting a Specific Node from the list

We can use the following steps to delete a specific node from a single linked list

• Step 1: Check whether list is Empty (head == NULL)

• Step 2: If it is Empty then, display ‘List is Empty!!! Deletion is not possible’ and
terminate the function.

• Step 3: If it is Not Empty then, define two Node pointers ‘temp1’ and ‘temp2’

• Step 4: Keep moving the temp1 until it reaches to the exact node to be deleted
or to the last node. And every time set ‘temp2 = temp1’ before moving the
‘temp1’ to its next node.

• Step 5: If it is reached to the last node then display ‘Given node not found in
the list! Deletion not possible!!!’ And terminate the function.

• Step 6: If it is reached to the exact node which we want to delete, then check
whether list is having only one node or not

• Step 7: If list has only one node and that is the node to be deleted, then set
head = NULL and delete temp1 (free (temp1)).

• Step 8: If list contains multiple nodes, then check whether temp1 is the first
node in the list (temp1 == head).

• Step 9: If temp1 is the first node then move the head to the next node (head =
head => next) and delete temp1.

• Step 10: If temp1 is not first node then check whether it is last node in the list
(temp1=> next == NULL).

• Step 11: If temp1 is last node then set temp2 => next = NULL and delete
temp1 (free (temp1)).

• Step 12: If temp1 is not first node and not last node then set temp2 => next =
temp1=> next and delete temp1 (free (temp1)).

We can use the following steps to display the elements of a single linked list

• Step 1: Check whether list is Empty (head == NULL)

• Step 2: If it is Empty then, display ‘List is Empty!!!’ and terminate the function.

• Step 3: If it is Not Empty then, define a Node pointer ‘temp’ and initialize with

• Step 4: Keep displaying temp=> data with an arrow (->) until temp reaches to
the last node

• Step 5: Finally display temp => data with arrow pointing to NULL (temp =>
data -> NULL).

Double linked list is a sequence of elements in which every element has links to its
previous element and next element in the sequence. So, we can traverse forward by
using next field and can traverse backward by using previous field. Every node in a
double linked list contains three fields and they are shown in the following figure

Inserting at Specific location in the list (After a Node)

We can use the following steps to insert a new node after a node in the double

• Step 1: Create a newNode with given value.

• Step 2: Check whether list is Empty (head == NULL)

• Step 3: If it is Empty then, assign NULL to newNode => previous&newNode =>

• Step 4: If it is not Empty then, define two node pointers temp1&temp2 and initialize temp1 with head.

• Step 5: Keep moving the temp1 to its next node until it reaches to the node
after which we want to insert the newNode (until temp1 => data is equal to
location, here location is the node value after which we want to insert the newNode).

• Step 6: Every time check whether temp1 is reached to the last node. If it is
reached to the last node then display ‘Given node is not found in the list!!!
Insertion not possible!!!’ and terminate the function. Otherwise move the
temp1 to next node.

• Step 7: Assign temp1 => next to temp2, newNode to temp1=> next, temp1
to newNode => previous, temp2 to newNode => next and newNode to temp2
=> previous.

Deleting a Specific Node from the list

We can use the following steps to delete a specific node from the double linked list

• Step 1: Check whether list is Empty (head == NULL)

• Step 2: If it is Empty then, display ‘List is Empty!!! Deletion is not possible’ and
terminate the function.

• Step 3: If it is not Empty, then define a Node pointer ‘temp’ and initialize with head.

• Step 4: Keep moving the temp until it reaches to the exact node to be deleted
or to the last node.

• Step 5: If it is reached to the last node, then display ‘Given node not found in
the list! Deletion not possible!!!’ and terminate the fuction.

• Step 6: If it is reached to the exact node which we want to delete, then check
whether list is having only one node or not

• Step 7: If list has only one node and that is the node which is to be deleted
then set head to NULL and delete temp (free(temp)).

• Step 8: If list contains multiple nodes, then check whether temp is the first
node in the list (temp == head).

• Step 9: If temp is the first node, then move the head to the next node (head =
delete temp.

• Step 10: If temp is not the first node, then check whether it is the last node in
the list (temp => next == NULL).

• Step 11: If temp is the last node then set temp of previous of next to NULL
(temp => previous => next = NULL) and delete temp (free(temp)).

• Step 12: If temp is not the first node and not the last node, then set temp of
previous of next to temp of next (temp => previous => next = temp => next),
temp of next of previous to temp of previous (temp => next => previous =
temp => previous) and delete temp (free(temp)).

We can use the following steps to display the elements of a double linked list

Step 1: Check whether list is Empty (head == NULL)

Step 2: If it is Empty, then display ‘List is Empty!!!’ and terminate the function.

Step 3: If it is not Empty, then define a Node pointer ‘temp’ and initialize with

Step 4: Display ‘NULL <= ‘.

Step 5: Keep displaying temp → data with an arrow (↔) until temp reaches to
the last node

• Step 6: Finally, display temp → data with arrow pointing to NULL (temp → data ---> NULL).

In circular linked list, every node points to its next node in the sequence but the last
node points to the first node in the list

Inserting at Specific location in the list (After a Node)

We can use the following steps to insert a new node after a node in the circular

• Step 1: Create a newNode with given value.

• Step 2: Check whether list is Empty (head == NULL)

• Step 3: If it is Empty then, set head = newNode and newNode → next = head.

• Step 4: If it is Not Empty then, define a node pointer temp and initialize with head.

• Step 5: Keep moving the temp to its next node until it reaches to the node
after which we want to insert the newNode (until temp1 → data is equal to
location, here location is the node value after which we want to insert the newNode).

• Step 6: Every time check whether temp is reached to the last node or not. If
it is reached to last node then display ‘Given node is not found in the list!!!
Insertion not possible!!!’ and terminate the function. Otherwise move the
temp to next node.

• Step 7: If temp is reached to the exact node after which we want to insert the
newNode then check whether it is last node (temp → next == head).

• Step 8: If temp is last node then set temp → next = newNode and newNode

• Step 8: If temp is not last node then set newNode → next = temp → next
and temp → next = newNode.

Deleting a Specific Node from the list

We can use the following steps to delete a specific node from the circular linked list...

Step 1: Check whether list is Empty (head == NULL)

Step 2: If it is Empty then, display ‘List is Empty!!! Deletion is not possible’
and terminate the function.

Step 3: If it is Not Empty then, define two Node pointers ‘temp1’ and ‘temp2

Step 4: Keep moving the temp1 until it reaches to the exact node to be deleted
or to the last node. And every time set ‘temp2 = temp1’ before moving the
‘temp1’ to its next node.

Step 5: If it is reached to the last node then display ‘Given node not found in
the list! Deletion not possible!!!’
. And terminate the function.

Step 6: If it is reached to the exact node which we want to delete, then check
whether list is having only one node (temp1 → next == head)

Step 7: If list has only one node and that is the node to be deleted then set
head = NULL and delete temp1 (free(temp1)).

Step 8: If list contains multiple nodes then check whether temp1 is the first
node in the list (temp1 == head).

Step 9: If temp1 is the first node then set temp2 = head and keep moving
temp2 to its next node until temp2 reaches to the last node. Then set head =

Step 10: If temp1 is not first node then check whether it is last node in the list

Step 11: If temp1 is last node then set temp2 → next = head and delete
temp1 (free (temp1)).

Step 12: If temp1 is not first node and not last node then set temp2 → next
= temp1 → next and delete temp1 (free (temp1)).

We can use the following steps to display the elements of a circular linked list

Step 1: Check whether list is Empty (head == NULL)

Step 2: If it is Empty, then display ‘List is Empty!!!’ and terminate the function.

Step 3: If it is Not Empty then, define a Node pointer ‘temp’ and initialize with

Step 4: Keep displaying temp → data with an arrow (--->) until temp reaches
to the last node

• Step 5: Finally display temp → data with arrow pointing to head → data.

2.5. Queue

A queue is a linear list in which data can only be inserted at one end, called the REAR,
and deleted from the other end, called the FRONT. These restrictions ensure that the
data is processed through the queue in the order in which it is received. In an other
words, a queue is a structure in which whatever goes fist comes out first (first in,
first out(FIFO) structure).

2.5.1 Types of queues

There exist two types of queues:

• Linear queue

• Circular queue

a. Linear Queue

Queue data structure is a linear data structure in which the operations
are performed based on FIFO principle. Queue Operations using Array
before we implement actual operations, first follow the below steps to create an
empty queue.

Step 1: Include all the header files which are used in the program and define
a constant ‘SIZE’ with specific value.

Step 2: Declare all the user defined functions which are used in queue
implementation.

Step 3: Create a one dimensional array with above defined SIZE (int queue[SIZE])

Step 4: Define two integer variables ‘front’ and ‘rear’ and initialize both with
‘-1’. (int front = -1, rear = -1)

• Step 5: Then implement main method by displaying menu of operations list
and make suitable function calls to perform operation selected by the user on
queue.

enQueue(value) - Inserting value into the queue

• Step 1: Check whether queue is FULL. (rear == SIZE-1)

• Step 2: If it is FULL, then display “Queue is FULL!!! Insertion is not possible!!!””
and terminate the function.

• Step 3: If it is NOT FULL, then increment rear value by one (rear++) and set
queue [rear] = value.

deQueue() - Deleting a value from the Queue

• Step 1: Check whether queue is EMPTY. (front == rear)

• Step 2: If it is EMPTY, then display “Queue is EMPTY!!! Deletion is not possible!!!”
and terminate the function.

• Step 3: If it is NOT EMPTY, then increment the front value by one (front ++).
Then display queue[front] as deleted element. Then check whether both front
and rear are equal (front == rear), if it TRUE, then set both front and rear to ‘-1’
(front = rear = -1).

display() - Displays the elements of a Queue

We can use the following steps to display the elements of a queue

Step 1: Check whether queue is EMPTY. (front == rear)

• Step 2: If it is EMPTY, then display “Queue is EMPTY!!!” and terminate the
function.

Step 3: If it is NOT EMPTY, then define an integer variable ‘I’ and set ‘i = front+1’.

Step 3: Display ‘queue[i]’ value and increment ‘I’ value by one (i++). Repeat
the same until ‘I’ value is equal to rear (i<= rear)

b. Circular Queue

Circular Queue is a linear data structure in which the operations are performed
based on FIFO (First In First Out) principle and the last position is connected back to
the first position to make a circle.

Circular Queue Operation

To implement a circular queue data structure using array, we first create it.

Step 1: Include all the header files which are used in the program and define a
constant ‘SIZE’ with specific value.

Step 2: Declare all user defined functions used in circular queue implementation.

Step 3: Create a one dimensional array with above defined SIZE (int cQueue[SIZE])

Step 4: Define two integer variables ‘front’ and ‘rear’ and initialize both with ‘-1’. (int
front = -1, rear = -1)

Step 5: Implement main method by displaying menu of operations list and make
suitable function calls to perform operation selected by the user on circular queue.

enQueue(value) - Inserting value into the Circular Queue

• Step 1: Check whether queue is FULL. ((rear == SIZE-1 && front == 0) || (front ==
rear+1))

• Step 2: If it is FULL, then display “Queue is FULL!!! Insertion is not possible!!!” and
terminate the function.

• Step 3: If it is NOT FULL, then check rear == SIZE - 1 && front != 0 if it is TRUE, then
set rear = -1.

• Step 4: Increment rear value by one (rear++), set queue[rear] = value and check
‹front == -1’ if it is TRUE, then set front = 0.

deQueue() - Deleting a value from the Circular Queue

Step 1: Check whether queue is EMPTY. (front == -1 && rear == -1)

Step 2: If it is EMPTY, then display “Queue is EMPTY!!! Deletion is not possible!!!” and
terminate the function.

• Step 3: If it is NOT EMPTY, then display queue[front] as deleted element and
increment the front value by one (front ++). Then check whether front == SIZE, if it
is TRUE, then set ‘front = 0’. Then check whether both ‘front – 1’ and rear are equal
(front -1 == rear), if it TRUE, then set both front and rear to ‘-1’ (front = rear = -1).

display () - Displays the elements of a Circular Queue

Step 1: Check whether queue is EMPTY. (front == -1)

Step 2: If it is EMPTY, then display “Queue is EMPTY!!!” and terminate the function.

Step 3: If it is NOT EMPTY, then define an integer variable ‘i’ and set ‘i = front’.

Step 4: Check whether ‘front <= rear’, if it is TRUE, then display ‘queue[i]’ value and
increment ‘I’ value by one (i++). Repeat the same until ‘i <= rear’ becomes FALSE.

Step 5: If ‘front <= rear’ is FALSE, then display ‘queue[i]’ value and increment ‘I’ value
by one (i++). Repeat the same until ‘i <= SIZE – 1’ becomes FALSE.

Step 6: Set i to 0.

Step 7: Again display ‘cQueue[i]’ value and increment i value by one (i++). Repeat
the same until ‘i <= rear’ becomes FALSE.

2.5.2 Queue operations

There are three main operations related to queues.

Enqueue: the enqueue operation inserts an items at the rear of the queue

Dequeue: the dequeue operation deletes the item at the front of the queue

Display: show elements in the array

2.6 Stack

A stack is a restricted linear list in which all additions and deletions are made at one
end, the top. If we insert a series of data items into a stack and then remove them,
the order of the data is reversed. Data input as 5, 10, 15, 20, for example would be
removed as 20, 15, 10, and 5. This reversing attribute is why stacks are known as Last
in, First out (LIFO) data structures.

We use many different types of stacks in our daily lives. We often talk of a stack of
coins, stack of books on a table and stack of plates in a kitchen. Any situation in which

we can only add or remove an object at the top is a stack. If we want to remove an
object other than the one at the top, we must first remove all objects above it. The
following charts illustrates cases of stack

A Stack is a Last in First out (LIFO) dynamic table or data structure. It has the following
characteristics:

• List of the same kind of elements;

• Addition and deletion of elements occur only at one end, called the top of the
stack;

• Computers use stacks to implement method calls;

• Stacks are also used to convert recursive algorithms into non recursive
algorithm.

2.6.1 Operations performed on stacks

The different operations performed on stacks are as follows:

Push: adds an element to the stack

Pop: removes an element from the stack

Peek: display at top element of the stack

Stack Operations using Array

Before implementing actual operations, first follow the below steps to create an
empty stack.

Step 1: Include all the header files which are used in the program and define a
constant ‘SIZE’ with specific value.

Step 2: Declare all the functions used in stack implementation.

Step 3: Create a one dimensional array with fixed size (int stack[SIZE])

Step 4: Define a integer variable ‘top’ and initialize with ‘-1’. (int top = -1)

• Step 5: In main method display menu with list of operations and make suitable
function calls to perform operation selected by the user on the stack.

push(value) - Inserting value into the stack

Step 1: Check whether stack is FULL. (top == SIZE-1)

Step 2: If it is FULL, then display “Stack is FULL!!! Insertion is not possible!!!” and
terminate the function.

Step 3: If it is NOT FULL, then increment top value by one (top++) and set stack [top]
to value (stack[top] = value).

pop() - Delete a value from the Stack

Step 1: Check whether stack is EMPTY. (top == -1)

Step 2: If it is EMPTY, then display “Stack is EMPTY!!! Deletion is not possible!!!’” and
terminate the function.

Step 3: If it is NOT EMPTY, then delete stack [top] and decrement top value by
one(top-).

Display() - Displays the elements of a Stack

Step 1: Check whether stack is EMPTY. (top == -1)

Step 2: If it is EMPTY, then display “Stack is EMPTY!!!” and terminate the function.

Step 3: If it is NOT EMPTY, then define a variable ‘I’ and initialize with top.
Display stack[i] value and decrement i value by one (i--).

• Step 3: Repeat above step until i value becomes ‘0’.

2.6.2 Stack exceptions

Adding an element to a full stack and removing an element from an empty stack
would generate errors or exceptions:

Stack overflow exception: it occurs if you try to add an item to stack or queue

Stack underflow exception: it occurs if you try to remove an item from an
empty queue or stack.

Notec 1: Stack and Queue data structures can be implement in two ways: By using
array or by using linked list.

Notice 2: When stack or Queue is implemented using array, that stack or Queue can
organize only a limited number of elements. When stack or Queue is implemented
using linked list, that stack or Queue can organize an unlimited number of elements.

2.7 Tree

In linear data structure, data is organized in sequential order and in non-linear data
structure; data is organized in random order. Tree is a very popular data structure
used in wide range of applications. A tree data structure can be defined as follows.

In a tree data structure, if we have N number of nodes then we can have a maximum

Tree data structure is a collection of data (Node) which is organized in hierarchical
structure and this is a recursive definition.

Example

2.7.1 Tree Terminology

In a tree data structure, we use the following terminology:

a. Root

In a tree data structure, the first node is called as Root Node. Every tree must have
root node..

b. Edge

In a tree data structure, the connecting link between any two nodes is called an Edge.
In a tree with ‘N’ number of nodes there will be a maximum of ‘N-1’ number of edges.

c. Parent

In a tree data structure, the node which is predecessor of any node is called a
PARENT NODE. In simple words, the node which has branch from it to any other
node is called as parent node.
d. Child

In a tree data structure, the node which is descendant of any node is called a CHILD
Node. In a tree, any parent node can have any number of child nodes. In a tree, all
the nodes except root are child nodes.

e. Siblings
In a tree data structure, nodes which belong to same Parent are called SIBLINGS.

In a tree data structure, the node which does not have a child is called a LEAF Node.
In a tree data structure, the leaf nodes are also called a External Nodes or Terminal
node.

g. Internal Nods

In a tree data structure, the node which has at least one child is called INTERNAL Node.
In a tree data structure, nodes other than leaf nodes are called Internal Nodes. The
root node is also said to be Internal Node if the tree has more than one node. Internal
nodes are also called as ‹Non-Terminal’ nodes.

h. Degree

In a tree data structure, the total number of children of a node is called as DEGREE of
that Node. In simple words, the Degree of a node is total number of children it has. The
highest degree of a node among all the nodes in a tree is called as ‹Degree of Tree’

i. Level

In a tree data structure, the root node is said to be at Level 0 and the children of root
node are at Level 1 and the children of the nodes which are at Level 1 will be at Level
2 and so on... In simple words, in a tree each step from top to bottom is called as a
Level and the Level count starts with ‘0’ and incremented by one at each level (Step).

j. Height

In a tree data structure, the total number of edges from leaf node to a particular
node in the longest path is called as HEIGHT of that Node. In a tree, height of the root
node is said to be height of the tree. In a tree, height of all leaf nodes is ‘0’.

Figure 2.25.: Height representation

k. Depth
In a tree data structure, the total number of edges from root node to a particular
node is called DEPTH of that Node. In a tree, the total number of edges from root node
to a leaf node in the longest path is said to be Depth of the tree. In a tree, depth of
the root node is ‘0’.

l. Path

In a tree data structure, the sequence of Nodes and Edges from one node to another
node is called as PATH between those two Nodes. Length of a Path is total number of
nodes in that path. In below example the path A - B - E - J has length 4.

m. Sub Tree

In a tree data structure, each child from a node forms a sub tree recursively. Every
child node will form a sub-tree on its parent node.

2.7.2 Binary Tree Representations

A binary tree data structure is represented using two methods. Those methods are
as follows:

• Linked List of Binary Tree representation

• Array Representation
Let T be a Binary Tree. There are two ways of representing T in the memory as follow

a. Linked List of Binary Tree representation

Consider a Binary Tree T. T will be maintained in memory by means of a linked list
representation, which uses three parallel arrays; INFO, LEFT, and RIGHT pointer
variable ROOT as follows. In Binary Tree, each node N of T will correspond to a
location k such that:

1. LEFT [k] contains the location of the left child of node N.

2. INFO [k] contains the data at the node N.

3. RIGHT [k] contains the location of right child of node N.
• Representation of a node:

In this representation of binary tree, root will contain the location of the root R of T.
If any one of the sub tree is empty, then the corresponding pointer will contain the
null value if the tree T itself is empty, the ROOT will contain the null value.

Example

Consider the binary tree T in the figure of Binary Tree

Linked Representation of the Binary Tree

b. Array Representation of Binary Tree
Let us consider that we have a tree T. let our tree T is a binary tree that us complete binary
tree. Then there is an efficient way of representing T in the memory called the sequential
representation or array representation of T. This representation uses only a linear array
TREE as follows:

1. The root N of T is stored in TREE [1].

2. If a node occupies TREE [k] then its left child is stored in TREE [2 * k] and its
right child is stored into TREE [2 * k + 1].

For Example:
Consider the following Tree:

Its sequential representation is as follow:

2.7.3 Binary Tree Traversals

When we wanted to display a binary tree, we need to follow some order in which all
the nodes of that binary tree must be displayed. In any binary tree displaying order
of nodes depends on the traversal method.

Displaying (or) visiting order of nodes in a binary tree is called as Binary Tree
Traversal.

There are three types of binary tree traversals.

• In - Order Traversal

• Pre - Order Traversal

• Post - Order Traversal

Traversal is a process to visit all the nodes of a tree and may print their values too.
Because, all nodes are connected via edges (links) we always start from the root
(head) node. That is, we cannot randomly access a node in a tree.

Generally, we traverse a tree to search or locate a given item or key in the tree or to
print all the values it contains.

a. In-order Traversal

In this traversal method, the left sub tree is visited first, then the root and later the
right sub-tree. We should always remember that every node may represent a sub
tree itself.

If a binary tree is traversed in-order, the output will produce sorted key values in an
ascending order.

We start from A, and following in-order traversal, we move to its left subtree B. B is
also traversed in-order. The process goes on until all the nodes are visited. The output
of inorder traversal of this tree will be −

D → B → E → A → F → C → G

Algorithm:

Until all nodes are traversed −

Step 1 − Recursively traverse left subtree.

Step 2 − Visit root node.

Step 3 − Recursively traverse right subtree.

b. Pre-order Traversal

In this traversal method, the root node is visited first, then the left subtree and finally
the right subtree.

We start from A, and following pre-order traversal, we first visit A itself and then
move to its left subtree B. B is also traversed pre-order. The process goes on until all the
nodes are visited. The output of pre-order traversal of this tree will be −

A → B → D → E → C → F → G

Algorithm:

Until all nodes are traversed −

Step 1 − Visit root node.

Step 2 − Recursively traverse left subtree.

Step 3 − Recursively traverse right subtree.

c. Post-order Traversal

In this traversal method, the root node is visited last, hence the name. First we
traverse the left sub tree, then the right sub tree and finally the root node.

We start from A, and following Post-order traversal, we first visit the left sub tree B. B is also
traversed post-order. The process goes on until all the nodes are visited. The output of
post-order traversal of this tree will be −
D → E → B → F → G → C → A

Algorithm:

Until all nodes are traversed −

Step 1 − Recursively traverse left subtree.

Step 2 − Recursively traverse right subtree.

Step 3 − Visit root node.

Binary Search tree exhibits a special behavior. A node’s left child must have a value
less than its parent’s value and the node’s right child must have a value greater than
its parent value.

2.7.4. Basic Operations on binary tree

A Binary Search Tree (BST) is a tree in which all the nodes follow the below-mentioned
properties

• The left sub-tree of a node has a key less than or equal to its parent node’s key.

• The right sub-tree of a node has a key greater than to its parent node’s key.

Thus, BST divides all its sub-trees into two segments; the left sub-tree and the right

sub-tree and can be defined as
left_subtree (keys) ≤ node (key) ≤ right_subtree (keys)

Representation

BST is a collection of nodes arranged in a way where they maintain BST properties.
Each node has a key and an associated value. While searching, the desired key is
compared to the keys in BST and if found, the associated value is retrieved.
Following is a pictorial representation of BST

• Key Unit Competency:
To be able to explain principles, standards and purposes of computer network

In the school computer labs, choose a classmate and send him/her an email that
has “Computer Network “as the email subject and the email body contains names of

1. List all possible elements that make this communication possible

2. What devices are used to facilitate sending email successfully?

3. Discuss what made possible the sending and receiving of emails

4. Do you like using email?

5. How do you value the factor of sending and receiving an email

6. Describe what you see in the photo below?

3.1. Fundamental of computer Networ

3.1.1. Computer Network Definition

ACTIVITY 3.1

Observe computers in the computer lab and answer the following question?

1. Describe what you see?

2. What are transmission media used to connect computers in the
computer labs?

3. Are all devices connected?

A computer network is a system of interconnected computers for the purpose of
sharing data and resources.

Computers on a network are called nodes. Nodes can include hosts such as personal
computers, phones, servers as well as networking hardware. Two devices are
networked together when one device is able to exchange information with the
other device. The computer can be connected to another in the two ways.

Wired network: Computers are connected using cable media. Most commonly
Ethernet Cable, coaxial cable and optic fiber.

Wireless network: Computers are connected using wireless media. Radio waves are
used in wireless mode.

3.1.2 Properties of Computer Network

• Easy Sharing of Resources: Computers are able to share various resources
easily over a network. Shared resources can be Internet, files, printer, storage
and others.

Performance: It is achieved by measuring the speed of data transmission
with number of network users, connectivity used and the software used. The
commonly measured qualities in the network performance are Bandwidth
and Latency.

Reliability: It means that computer network provides assurance of the
delivery of data to the intended recipient.

Scalability: The possibility of adding new computer without affecting the
network performance.

Security: computer network must be secured for the benefit of the user and
data protection. The security is achieved by protecting data from unauthorized
access.

Quality of Service (QoS): Quality of Service refers to the mechanism that
manage congested network traffic.

Fault tolerant: A fault tolerant network limits the impact of hardware or
software failure and recovers quickly when a failure occurs

APPLICATION ACTIVITY 3.2

1. Investigate what happen when a shared resource is disconnected from
the computer network?

2. Imagine other areas where computer network is used?

The common advantages of computer network

Activity 3.2

2. In class of senior 5 MPC, Computer Science Teacher decides to share notes
for students to use on our school network. The mathematics teacher decides
to print notes of 100 pages and distributes to each member of senior 5 MPC
class.

i. Evaluate the cost impact for both teachers

ii. Both teachers, whom save money in giving notes.

The common advantages of computer network

1. Enhanced communication and availability of information: It allows access
to a vast amount of useful information.

Applications.

2. Allow resource sharing: Fewer resources are needed when an organization
uses a computer network.
Example: only one printer is needed instead of buying a printer for each office.

3. File sharing made easy: computer network allows people to share files, which
helps to save more time and effort.
Example: A teacher can share homework to all students through school
network

4. Improve storage capacity: since you are going to share information, files and
resources to other people, you have to ensure that all data and content are
properly stored in the system.

5. Cost efficiency: on computer network, you can share software license installed
on the server and can then be used by various workstations.

6. Security of information and resources: users cannot see other users' files
unlike on stand-alone machines.

7. Backup of data is easy as all the data is stored on the file server.

The common disadvantages of computer networking

1. Lack of independence: people rely on computer network and when the
system is down, people get stack. Most of organizations depend on the
computer networks.

2. Security issues: huge number of people use a computer network to get and
share their files and resources, a certain user’s security would be always at
risk. Viruses can spread to other computers throughout a computer network.
There is a danger of hacking, particularly with wide area networks. Security
procedures are needed to prevent such abuse, Examples: The use of Antivirus
and firewall.

3. Lack of robustness: computer network’s main server breaks down, the entire
system would become useless

APPLICATION ACTIVITY 3.2

1. Investigate what happen when a shared resource is disconnected from
the computer network?

2. Imagine other areas where computer network is used?

3.1.4 Types of computer networks

Activity 3.3

With two or more Bluetooth enabled devices available in the classroom:

1. Turn on the Bluetooth feature on both devices

2. Share and receive files such images and documents between the
devices

3. Turn off Bluetooth feature in the two devices.

A computer network is classified basing on the size of the area covered, the number
of users connected and the number & types of services available.

The followings are type of computer networks:

1. Personal Area Network (PAN)

A personal area network (PAN) is a network that connects devices, such as mice,
keyboards, printers, Smartphone, and tablets within the range of an individual
person. PAN has connectivity range up to 10 meters. PAN may include wireless
computer keyboard and mouse, Bluetooth enabled headphones, wireless printers
and TV remotes. All of these devices are dedicated to a single host and are most
often connected with Bluetooth technology.

Bluetooth is a wireless technology that enables devices to communicate over short
distances. A Bluetooth device can connect up to seven other Bluetooth devices.

2. Local Area Network (LAN)

Traditionally, a LAN is defined as a network that covers a small geographical area.
However, the distinguishing characteristic for LANs today is that they are typically
owned by an individual, such as in a home or small business, or wholly managed
by an IT department, such as in a school or corporation. This individual or group
enforces the security and access control policies of the network. LAN uses Ethernet
IEEE 802.3 as its standard.

A Wireless LAN (WLAN) is a LAN that uses radio waves to transmit data between
wireless devices. In a traditional LAN, devices are connected together using copper
cabling. In some environments, installing copper cabling might not be practical,
desirable, or even possible. In these situations, wireless devices are used to transmit
and receive data using radio waves. As with LANs, on a WLAN, you can share resources,
such as files, printers, and Internet access. WLAN uses Ethernet IEEE 802.11 as its
standard.

3. Metropolitan Area Network (MAN)

A metropolitan area network (MAN) is a network that spans across a large organization
like campus or a city. The network consists of various buildings interconnected
through wireless or fiber optic backbones.

A backbone is the part of the computer network infrastructure that interconnects
different LAN networks and provides a path for exchange of data between these
different networks

The communication links and equipment are typically owned by a network service
provider who sells the service to the users. A MAN can acts as a high-speed network
to enable sharing of regional resources.

4. Wide Area Network (WAN)

A WAN connects multiple networks that are in geographically separated locations.

The distinguishing characteristic of a WAN is that it is owned by a service provider.
Individuals and organizations contract for WAN services. WAN network provides
connectivity to MANs and LANs. The most common example of a WAN is the
Internetwork or Internet in short. The Internet is a large WAN that is composed of
millions of interconnected networks.

Example: Kigali and Nairobi networks are connected through the Internet

APPLICATION ACTIVITY 3.3

1. Discuss the role ISP services for LANs?

2. Do an observation in the school computer lab and categorize the

3. Using clear examples, Distinguish Personal Area Network and Local Area
Network?

4. Using an arrow match the following in Group A with their
corresponding in Group B

Group A                                               Group B
a. Radio waves                                     1. Qualities of Computer network
Performance

b. Millions of interconnected network    2. Disadvantages of Computer network

c. Sharing resources                             3. Wireless

d. Hacking attacks                                 4. WAN

e. Bandwidth and Latency                     5. Advantages of Computer network

3.2 Computer Network Concept and Technology

ACTIVITY 3.4

You are browsing a website on the internet while the speed is okay and suddenly you
find that the page is loading slowly. Investigate the reason behind slowness?

3.2.1 Network metrics

Network metrics are defined as standards of measurement by which efficiency,
performance, progress, or quality of a plan, process can be assessed. Network metric
are used by a router to make routing decisions.

When data is sent over a computer network, it is broken up into small chunks called
packets. Each packet contains source and destination address information. Packets
are sent across a network one bit at a time.

a. Bandwidth

Bandwidth is the amount of data that can be transmitted in a fixed amount of time.
Bandwidth is measured in the number of bits that can be sent every second.
The following are examples of bandwidth measurements:

• b/s - bits per second

• kb/s - kilobits per second

• Mb/s - megabits per second

• Gb/s - gigabits per second

b. Latency
Latency is the time between requesting data and receiving data. More simply put,
the time it takes to establish a connection between your computer and the server
hosting the website you requested. The important thing to take away here is that
latency is not speed. Data is delayed by network devices and cable length. Network
devices add latency when processing and forwarding data.

c. Throughput:
Throughput is the actual rate at which information is transferred. It measures the
amount of completed work against time consumed and may be used to measure
the performance of a processor, memory and/or network communications.

d. Error rate:
Error rate is the number of corrupted bits expressed as percentage or fraction of the
total sent.
e. Jitter:
Jitter is variation in packet delay at the receiver of information. For measuring the
capacity of all of these metrics above, we focus on capacity of message and this one
change into different form depending on the network devices where this message
is located.

3.2.2 Data Transmission model

The term transmission mode is used to define the direction of signal flow between
two linked devices. The data that is transmitted over the network can flow using one
of three modes: simplex, half-duplex and full-duplex.

1. Simplex: it is a single one-way transmission. In a simplex transmission
mode, the communication between sender and receiver occurs only in one
direction. That means only the sender can transmit data, and receiver can
receive that data. The receiver cannot transmit any information back to the
sender.

The keyboard to monitor transmission is an example of simplex transmission
mode. Other examples are communication between a computer and a
printer, listening to the radio and the signal that is sent from a TV station to

2. Half-Duplex: data flows in one direction at a time. In half-duplex, the
channel of communications allows alternating transmission in two
directions, but not in both directions simultaneously. An Example of Halfduplex
is the Talkie- Walkie used by the police.

3. Full-Duplex: data flows in both directions at the same time. In a full duplex
transmission mode, the communication between sender and receiver can
simultaneously at the same time.

A telephone conversation is an example of full-duplex communication. Both people
can talk and be heard at the same time.

APPLICATION ACTIVITY 3.4

1. Examine 2 reasons that cause latency in computer network.

4. Categorize following devices according to their transmission modes

a. TV

c. Walkie -Talkie

d. Phone

e. Computer

3.2.3. Internetwork (Internet, Intranet, Extranet)

ACTIVITY 3.5

Using computer network, an organization’s employees can access data when
they are inside the organization buildingand when they are physically outside.
Investigate technologies that can be used to allow employees inside and outside
to access organization’s data.

A network of networks is called an internetwork, or simply the Internet. The Internet,
extranets, and intranets all rely on Transport Control Protocol / Internet Protocol
(TCP/IP). However, they are different in terms of the levels of access they allow to
various users inside and outside the organization and the size of the network.

1. An Intranet is a private computer network that uses Internet Protocol to
securely share any part of an organization’s information or operational
systems within that organization. Only users inside the organization are
only allowed to access it.

2. An Extranet is a private network that uses Internet protocols, network

connectivity. An extranet can be viewed as part of a company’s intranet
that is extended to users outside the company, the connectivity is made
possible by the Internet.

3. The Internet is a global system of interconnected computer networks that
use the standard Internet Protocol suite (TCP/IP) to serve billions of users
worldwide.

The difference between the Internet and Extranets is that while the extranet allows
everyone to access all network resources.

APPLICATION ACTIVITY 3.5

General supply Ltd. sell various services online and offline. It has various partners such
as suppliers, sellers, buyers and clients in different Districts of Rwanda. Each partner
wants to access the General supply data from its servers located at the main office in
Ruhango District.

Examine in details the appropriate technology for each user to access the General
supply Ltd. data to avoid the user location problem

3.3 Local Area Networks (LANs)

ACTIVITY 3.6

By definition, computer network is said to be a group of computers connected together
and share resources. Using your school environment, observe followings:

1. The range covered by your school network?

2. The number of users on your school network?

3. Resources shared on your school network?

3.3.1 Definition

Local Area Networks (LANs) are networks usually confined to a geographic area, such
as a single building or a college campus. LANs can be small, linking as few as three
computers, but often link hundreds of computers used by thousands of people.

3.3.2 LAN Categories

1. Peer-to-Peer Network

A peer-to-peer (P2P) network is created when two or more computers are connected
and share resources without going through a separate server computer. In a peerto-
peer network, there is no hierarchy among the computers, nor are there any
dedicated servers.

Each device on the network, also called a client, has equivalent capabilities and
responsibilities. A user is responsible for its own resources and can decide which
data and devices to be shared with other computers. Because individual users are
responsible for the resources on their own computers, the network has no central
point of control and no central administration. Peer-to-peer networks work best in
environments with ten or fewer computers.

Advantages of peer to peer network are as follows:

• The main advantage of peer to peer network is that it is easier to set up

• In peer-to-peer networks all nodes are act as server as well as client therefore
no need of dedicated server

• The peer to peer network is less expensive

• Peer to peer network is easier to set up and use this means that you can spend
less time in the configuration and implementation of peer to peer network.

Disadvantages of peer to peer network

• A computer can be accessed anytime

• Network security has to be applied to each computer separately

• Backup has to be performed on each computer separately

• No centralized server is available to manage and control the access of data.

2. Client-Server Network

In a client-server network, the client requests information or services from the server
and the server provides the requested information or service to the client. Servers
on a client-server network commonly perform some of the processing work for
client machines.

In a client-server network, resources are controlled by a centralized network
resources.

Note: In a home or small business, a single server can run multiple types of server
software, it may be necessary for one computer to act as a file server, a web server,
and an email server. A client computer can also run multiple types of client software.
There must be client software for every service required. With multiple client software
installed, a client can connect to multiple servers at the same time.

• Centralization of control: Access, resources and integrity of the data are
controlled by the dedicated server so that a program or unauthorized client
cannot damage the system.

• Scalability: You can increase the capacity of clients and servers separately.
Any element can be increased (or enhanced) at any time, you can add new
nodes to the network (clients or servers).

• Easy maintenance: Distribute the roles and responsibilities to several
standalone computers, you can replace, repair, upgrade, or even move a server,
while customers will not be affected by that change (or minimally affect).

• There is a reliance on the central server, if it fails, no work can be done

• A network manager is required and this costs money

• The server costs money, as does the network operating system

• Servers are powerful, thus expensive

• Lots of network traffic.

Advantages of Client Server Networks over Peer to Peer Networks

Centralization: Unlike Peer to Peer, where there is no central administration,
Client Server Networks have a centralized control.

Proper Management : All the files are stored at the same place. Therefore,
management of files becomes easy and it is easier to find files.

Back-up and Recovery possible: As all the data is stored on server it is easy to
make a back-up of it. Also, in case of some break-down if data is lost, it can be
recovered easily and efficiently. While in peer to peer network, we have to take
back-up at every workstation.

easily by just upgrading the server. Also new resources and systems can be
added by making necessary changes in server.

Accessibility: From various platforms in the network, server can be accessed
remotely.

Security: Rules defining security and access rights can be defined at the time of
set-up of server.

Disadvantages of client server network over the Peer to peer network

• Congestion in Network: Too many requests from the clients may lead to
congestion, which rarely takes place in Peer to Peer network. Overload can
lead to breaking-down of servers. In peer-to-peer, the total bandwidth of the
network increases as the number of peers increase.

• Client-Server network is not as robust as a Peer to Peer network and if the
server fails, the whole network goes down.

• Cost: It is very expensive to install and manage client server network.

APPLICATION ACTIVITY 3.6

Respond the following questions by True or False and justify your answer

• Peer to Peer network is only implemented by computers which run same
operating system.

• In Server-Client network, Server respond to service only requested by the
Client.

• Limit number of hosts in the Peer to Peer network are 10 computers.

• Client requests only the service available on the server in Server-Client
network.

• Peer to Peer network is more secure than Server-Client network.

• There is a dedicated computer in Peer to Peer network.

• In Client- Server network, both client and server must run the same Operating
System.

3.4. Physical Components

ACTIVITY 3.7

In the computer lab observe devices that are directly participating in the
network. Examine the role of each device you have identified.

3.4.1. Definition of network device

A network host or a node is a computer or any other device that is directly connected
to a computer network. A network host may offer information resources, services,
and applications to users.

i. Network Interface Card (NIC)

Network Interface card is a component that allows the computer to communicate
across a network. This component is frequently built into the motherboard of today’s
computers, but it can also be a separate card for use in a PCI slot.

Network Interface cards can be either wired or wireless. However, some cards do
support both wireless and wired networking

APPLICATION ACTIVITIES 3.7

NIC Card installation in a desktop computer:

Step 1: Shut down your Computer and disconnect it from the power source

Step 2: Remove the case cover. Then remove the cover of the available slot.

Step 3: Install NIC in proper slot and secure it

Step4: Replace the case cover.

Note: A wireless NIC has an antenna connected to the back of the card or attached
with a cable so that it can be positioned for the best signal reception. You must
connect and position the antenna.

Media Access Control Address (MAC address) of a device is a unique identifier
assigned to network interfaces for communications at the data link layer of a
network segment. MAC address is a physical address of Network Interface Card. In
Example of a MAC address: 00:0a:95:9d:68:16.

iii. Modem

A modem is a hardware device that enables a computer to send and receive data
over a telephone line or a cable or satellite connection. Modem is used to transmit
digital information via analog systems. The word “modem” is derived from the term
“Modulator - Demodulator.”

The essential functions of a modem are:

• Modulate: an analog carrier signal to carry digital information, it means to
convert the analog signal to digital signal.

• Demodulate: a similar signal so as to decode the digital information from
the analog carrier signal and it means to convert the same signal back to the
analog signal then transmitted through telephone line.

They are two types of modems:

Internal modem which are circuit boards that plug into a computer’s motherboard and
external modems which are discrete units housed in a separate case. Typically, an external
modem is connected to the telephone line and the computer via cables or USB.

APPLICATION ACTIVITY 3.8

Step1: Click the Run button in the windows 10 Start Menu

Step 2: Type cmd in the Open prompt of the Run menu and click OK to launch a
command prompt window

Step 3: Type ipconfig /all at the command prompt to check the network card
settings.

iv. RJ 45 Connector and Port

A registered jack (RJ) is a standardized physical network interface for connecting
telecommunications or data equipment. The physical connectors that registered
jacks use are mainly of the modular connector and 50-pin miniature ribbon connectortypes

The RJ45 port is the network port on a computer. This socket has many names. It is
also known as the Ethernet port, the network adapter, the network jack or the RJ45jack.

3.5. Network Devices

ACTIVITY 3.8

Observe the connection between network devices that make your school network.

1. Examine how computers are connected together in order to exchange
data?

2. Investigate how data / message is forwarded from the Computer A (as
source) to Computer B (as destination)?

3. The equipment used to connect devices within a LAN has evolved from
hub to bridge to switch. Contrast both devices?

3.5.1 Hub

A hub is a network hardware device for connecting multiple devices together and
making them act as a single network segment.

Definition:A network segment is a portion of a computer network that is separated from
the rest of the network by a network device.

Hub receives message on one port and then send it out to all other ports, this means
that when hub receives message, the received message is regenerated or duplicated
and sent to all computers connected to the hub, each computer on the network
receives the message, if it is not the destination message is destroyed, if it is the

Note: Hubs are used less often today because of the effectiveness and low cost of
switch. Hub do not segment network traffic. When one device sends traffic, the hub
floods that traffic to all other devices connected to hub. The devices are sharing the
bandwidth.

3.5.2 Switches

Switch filters and segments network traffic by sending messages only to the device to
which it is sent. This means that when a switch receives a message do not duplicated
it, it sends it directly to the destination computer. This provides higher dedicated
bandwidth to each device on the network.

A switch maintains a switching table, the switching table contains a list of all MAC
addresses of computers on the network and a list of switch port which are used to
reach a computer with a given MAC address.
When message arrives that is destined for a particular MAC address, the switch uses
the switching table to determine which port to use to reach the MAC address. Then message is forwarded to the destination.

3.5.3 Bridge

A network bridge is a computer networking device that creates a single aggregate
network from multiple communication networks or network segments. This function
is called network bridging

Bridges keep a record of all the devices on each segment. A bridge can then filter
network traffic between LAN segments. This helps reduce the amount of traffic
between devices

3.5.4 Access point

The Access Point is connected to a switch using UTP cable, therefore it can provide
network host, only the wireless access point is connected to the network with
The range (radius of coverage) for Access Point indoors is 98.4 ft (30 m) and too
much greater distances outdoors depending on the technology used.

APPLICATION ACTIVITY 3.9

1. Justify why outdoor range is better that indoor range?

2. Discuss how a switch perform micro-segmentation?

3. Analysis why Switch is much preferred than a HUB

4. Examine the difference between Access Point and Bridge?

5. Identify the purpose of switching table in the switch?

6. Using the internet search for the diagram representation of hubs,
switches and bridges in a network

3.6 Network Transmission Medium

ACTIVITY 3.9

Draw a computer network of 10 computers
This is the physical mean of communication between network computers.
Data transmission media are the physical materials used to transmit data between
computers. Packet of data can be transmitted on network as electrical signals
in electric wire, light signal in fiber optic cables or as electromagnetic waves
through space.
There are two main types of data communication media used in network:

1. Bounded or Guided media: which transmit signals by sending electricity
or light over a cable wire. Common examples of bounded media are
twisted cables, Coaxial cables and fiber optic cables.

2. Unbounded media: which transmit data through the air, radio waves,
layer or infrared signal and satellite based microwaves, etc.

3.6.1 Guided transmission media

A wide variety of networking cables are Coaxial, Fiber optic and twisted-pair
cables which use electrical signals over copper to transmit data while Fiber-optic
cables use light signals to transmit data. These cables differ in bandwidth, size, and
cost.

It is used by both cable television companies and satellite communication systems
and it carries data in the form of electrical signals. There are several types of coaxial
cable:

• Thicknet or 10BASE5 - used in networks and operated at 10 Mb/s with a
maximum length of 1640.4 ft. (500 m.)

Thinnet 10BASE2 - used in networks and operated at 10 Mb/s with a maximum
length of 607 ft. (185 m.)

b. Twisted-pair copper cabling

Twisted-pair is a type of copper cabling used for telephone communications and
most Ethernet networks. The pair is twisted to provide protection against crosstalk,
which is the noise generated by adjacent pairs of wires in the cable.
The use of this cable is limited by two factors:

a. Attenuation: the strength of signal reduces as the distance increases i.e the
cables loose signals strength when they exceed their maximum length stated
in network specification.

b. Crosstalk: this refers to interference generated by cables when they are too
close to each other. Signals from one line get mixed with signals from another.

3.6.2. Types of twisted pair cables

There are two types of twisted pair cables: unshielded and shielded cables

a. Unshielded twisted-pair (UTP)

Unshielded twisted-pair (UTP) cabling is the most common variety of twisted-pair
cabling.

UTP cable consists of four pairs of color-coded wires that are twisted together and
then encased in a flexible plastic sheath that protects from minor physical damage.
The twisting of wires helps protect against crosstalk. However, UTP does not protect
against electromagnetic interference (EMI) or radio frequency interference (RFI).
EMI and RFI can be caused by a variety of sources including electric motors and
fluorescent lights.

There are two different wiring schemes called T568A and T568B. Using the T568A
and T568B wiring schemes, two types of cables can be created: a straight-through
cable and a crossover cable.

1. A straight-through cable is the most common cable type. It maps a wire
to the same pins on both ends of the cable. The order of connections (the
pin out) for each color is the exact same on both ends.

Two devices directly connected and using different pins for Transmit and Receive
are known as unlike devices. They require a straight-through cable to exchange
data. For example, connecting a PC to a switch requires a straight-through cable.

2. A crossover cable uses both wiring schemes. T568A on one end of the
cable and T568B on the other end of the same cable.
Devices that are directly connected and use the same pins for transmit and receive,
are known as like devices. They require the use of a crossover cable to exchange
data. For example, connecting a PC to another PC requires a crossover cable.

Note: The most used cable standards are below:

• 100Base-TX: known as Fast Ethernet, it uses category 5, 5E, or 6 UTP cable and
it wires u to 100 meters long.

• 1000Base-T means that the speed of the network is up to 1000
Mbps, baseband signaling is sed, T stands for twisted-pair as UTP cable used

b. Shielded twisted-pair (STP)

The STP type similar to UTP cable except that there is a metal foil or braided metal-
mesh cover that encases each pair of insulated wires. The extra covering in shielded
twisted pair wiring protect the transmission line from electromagnetic interference
( EMI) leaking into or out of cable. However this can make cables quite bulky
and harder to install.
The basic difference between UTP and STP is that UTP is a cable with wires that are twisted
together to reduce noise and crosstalk. On other hand, STP is a twisted pair cable confined
in foil or mesh shield that guards the cable against electromagnetic interference.

APPLICATION ACTIVITY 3.10

Requirements:

1. Unshielded twisted pair (UTP) patch cable

2. Modular connector (8P8C plug, aka RJ45)

3. Crimping tool

4. Cable tester (optional, but recommended

Step 1: Strip the cable jacket about 1.5 inch down from the end.

Step 2: Spread the four pairs of twisted wire apart.

Step 3: Untwist the wire pairs and neatly align them in the T568B orientation.

Step 4: Cut the wires as straight as possible, about 0.5 inch above the end of the jacket.

Step 5: Carefully insert the wires all the way into the modular connector, making sure
that each wire passes through the appropriate guides inside the connector.

Step 5: Carefully insert the wires all the way into the modular connector, making sure
that each wire passes through the appropriate guides inside the connector.

Step 6: Push the connector inside the crimping tool and squeeze the crimper all the
way down.

Step 7: Repeat steps 1-6 for the other end of the cable.

Step 8: To make sure you›ve successfully terminated each end of the cable, use a cable
tester to test each pin.

APPLICATION ACTIVITY 3.11

Step 1: Open the Network and Sharing Center:

Step 2: Select the Control Panel from the Start menu.

Step 3: Select Open Network and Sharing Center and click Network and Sharing Center

3.6.3 Fiber optic cables

An optical fiber cable, also known as a fiber optic cable, is an assembly similar to an
electrical cable, but containing one or more optical fibers that are used to carry light
signals

a. Since they transmit light rather than electronic signal, the problem of electrical
interference is eliminated , therefore they are not affected by radio interference
or cross talk

b. They have become the standard for connecting networks between buildings due
to their immunity the effects of moisture and lighting.

c. Fiber optic can transmit signal over much longer distance than coaxial cable and
twisted cables

d. They can carry information at high rate speed between

e. The distance can be up to 2000 meters without repeater

f. Security: it is difficult to tap into optical fiber line. If this is happen it will be
noticed immediately.

g. Low transmission loss

h. Data can be transmitted digitally

i. They are more resistant to adverse weather conditions.

3.6.4 Unguided transmission media

Unguided media transport electromagnetic waves without using a physical
conductor. This type of communication is often referred to as wireless communication.
The mediums used in wireless communications are air, vacuum and even water. Air
is the most commonly used medium.

a. Wireless Transmission

waves, microwaves, infrared

waves, they are propagated in all directions. This means that the sending and
receiving antennas do not have to be aligned. The omnidirectional characteristics
of radio waves make them useful for multicasting, in which there is one sender but
many receivers. Our FM radio stations, cordless phones and televisions are examples
of multicasting.

2. Infrared

Infrared is used in devices such as the mouse, wireless keyboard and printers. Some
manufacturers provide a special port called the IrDA port that allows a wireless
keyboard to communicate with a PC.

Infrared signals have frequencies between 300 GHz to 400 THz. They are used for
short-range communication. Infrared signals have high frequencies and cannot
penetrate walls. Due to its short-range communication system, the use of an infrared
communication system in one room will not be affected by the use of another system
in the next room. This is why using an infrared TV remote control in our home will
not interfere with the use of our neighbor’s infrared TV remote control.

• Infrared signals cannot be used for long distance communication.

• Infrared waves can not be used outside of a building because sun’s rays contain
infrared waves that can interfere with communication.

3. Bluetooth

Bluetooth technology is designed to serve as a new way of connecting devices.
Bluetooth technology has an advantage of being low investment and low energy
consumption demanding.

The difference between Bluetooth and infrared is that Bluetooth allows communication
when there is a barrier or a wall.

4. Wi-Fi (Wireless Fidelity)

Wi-Fi (Wireless Fidelity) is a standard that certifies that wireless devices in Wireless
LAN to work together. It supports IEEE802.11b Ethernet standard.

Wi-Fi uses radio signals to transmit high speed data over the wireless network, the
Access Point is used to connect devices and it acts as the central device for Wireless
LAN. Wireless devices can be: smartphones, PDAs, IPad, laptop and notebook.

APPLICATION ACTIVITY 3.11
General steps to connect to a WI-FI network near you
The following steps run through the general steps that anyone needs to take to get
connected to the internet via WI-FI. (Do this exercise and discover the corresponding
windows for every step. What is the meaning of different icons forms that a wireless
network take?)

Step 1: Locate yourself in a property or public space that has a wireless router.

Step 2: Make sure that the device you›re going to use is:

• Capable of connecting to the internet and

• Capable of connecting to WI-FI.

Step 3: Find out the name of the WI-FI network that the router in your location is
transmitting.

Step 4: Once you know the name of the WI-FI network, use your chosen device to find
it.

The fingerprint and addressed letters are ways of identifying and addressing a person.
A person's fingerprints usually do not change. They provide a way to physically identify
people. The mailing address of a person can change, as it relates to where the person

An IP address is an address used in order to uniquely identify a device on a computer
network.

IP Versions

There are two versions of IP addressknown as IP version 4 and IP version 6

a. IP version 4

IP version 4 is the common used IP address,

• An IP address is simply a series of 32 binary bits. Because it is difficult for human
to read a binary IP address, the 32 bits are grouped into fout-8-bits bytes called
octets.

• When a computer is configured with an IP address it is entered as doted decimal
number such as 192.168.1.5

• When a host receives an IP address , it looks at all 32 bits as they are received by
the NIC

• Each octet is made up with 8 bits an each bit has a value. The four groups of 8 bits
have same set of value.

• Parts of the IP address
The logical 32 bits IP address is made up two parts which are network part or network

a.2 Classes of IP version 4

There are five classes of available IP ranges: Class A, Class B, Class C, Class D and Class
E, while only A, B, and C are commonly used classes D and E are reserved.
Here is a listing of these addresses:

Class A

In class A the first bit of the first byte is always 0

0xxxxxxx where x stand for any value (either o or 1)

Minimum: 00000000
Maximum: 01111111

The valid range in class A =

The range of IPs 127.x.x.x is reserved for the loopback or localhost, for example,

all hosts on the local network.
The first byte in class A represent Network address while the three remaining
represent the host address thus class A=Network. Host-Host-Host

Class B

In class B the first bit of first byte is always 1 and the second bit of first byte is always
0

10xxxxxx

Minimum: 10000000=128
Maximum: 10111111=191

Valid range[ 128-191]

The two first byte in class B represent Network address while the two remaining
represent the host address thus class B=Network-Network-Host-Host

Class C

The first bit of first byte is always 1, the second bit of first byte is always 1 and the
third bit of first byte is always 0 i.e 1100000

Minimum: 11000000= 192
Maximum: 11101111= 223
Valid range: 192-223
The three first bytes in class C represent Network address while the last byte remaining
represent the host address thus class C=Network. Network -Network -Host

A subnet mask help to know which portion of the address identifies the network
and which portion of the address identifies the host. Class A, B, and C networks have

Class A: 255.0.0.0

Class B: 255.255.0.0

Class C: 255.255.255.0

Devices that are attached to a network have two addresses that are similar to a
person’s fingerprints and a person’s mailing address. These two types of addresses
hard coded onto the network interface card (NIC) by the manufacturer and it does
not change. The IP address is assigned to a host to the network and may change.

b. Internet Protocol Version 6 (IPv6)

IPv6 (Internet Protocol Version 6) also called IPng (Internet Protocol next generation)
is the newest version of the Internet Protocol reviewed to replace the current version
of IPv4. IPv6 is designed to allow the Internet to grow steadily, both in terms of the
number of hosts connected and the total amount of data traffic transmitted.

IPv6 shows a 128-bit address in eight 16-bitblocks separated by colons

Example: 3ffe:1900:4545:3:200:f8ff:fe21:67cf.

FE80:0000:0000:0000:0202:B3FF:FE1E:8329

b.1 Features of IPv6

• Supports source and destination addresses that are 128 bits (16 bytes) long.

• No more NAT (Network Address Translation)

• Auto-configuration

• No more private address collisions. Requires IPSec support to provide two
security headers which can be used separately

• Uses Flow Label field to identify packet flow for Quality of Service handling by
router.

• Allows the host to send fragments packets but not routers.

• Does not require manual configuration or DHCP.

• Moves optional data to IPv6 extension headers.

• Uses Multicast Neighbor Solicitation messages to resolve IP addresses to linklayer

• Uses Multicast Listener Discovery (MLD) messages to manage membership in
local subnet groups.

determine the IP address of the best default gateway

Why there is no different classes in IP v6?

In IPv4 we have class A, B, C,D and E. In IPv6 we have only global prefix and interface
id

IP v6 has three types of addresses, which can be categorized by type and scope:

Unicast addresses: a packet is delivered to one interface.

Multicast addresses: a packet is delivered to multiple interfaces.

Anycast addresses:a packet is delivered to the nearest of multiple interfaces (in
terms of routing distance).

3.7.2. IP address assignment1. Static IP assignment

The manual configuration of a host in a network, allows to assign the static IP address
and the following information has to be specified:

IP address - identifies the computer on the network

Subnet mask - is used to identify the network on which the computer is
connected

Default gateway - identifies the device that the computer uses to access the
Internet or another network

Optional values - such as the preferred Domain Name System (DNS) server

Note that host on the same network should have the same Network ID

APPLICATION ACTIVITY 3.12

Go through all these steps to assign to your computer a static IP address

STEP 1: Go to Network Connections.

STEP 2: Go to the network connection your computer is currently using, then
select Properties.

STEP 3: Go to Internet Protocol Version 4 (IPv4) from the list and click the Properties
button
STEP 4: Choose Use the following IP address option

NOTE: When assigning a static IP address, make sure to set a value that will not
conflict with others on your network. You may refer to your router documentation
for the range of IP address that it assigns to its devices.

STEP 5: Next to the IP address field, enter the IP address value you want to assign
to the computer.

NOTE: If the DHCP range of your router is from say 192.168.1.100-200, you can use
any range from 192.168.1.2-99 for example.

STEP 6: In the Subnet mask field, enter “255.255.255.0.”

STEP 7: In the Default gateway field, enter the IP address of your router or gateway
device.

NOTE: Usually, the default gateway address for most routers is 192.168.1.1. Again,
you may refer to your device documentation to determine the correct IP address

STEP 8: For the Preferred DNS server and Alternate DNS server fields, you can take
a look for the exact DNS values that your router is getting from your ISP, which can
be usually found by accessing your router’s configuration page.

STEP 9: Click OK on all windows to save your changes.

3. Dynamic IP configuration

A DHCP (Dynamic Host Configuration Protocol) server automatically assigns IP
address to host. It simplifies the addressing process. DHCP server can automatically
assign to a host an IP addres, Subnet mask, Default gateway and Optional values,
such as a DNS server address

APPLICATION ACTIVITY 3.13

Go through all the steps to assign an IP address using DHCP

Step 1: Go to network connections

Step 2: Select “View network connections”.

Step 3: Locate the “Network connection” you want to view

Step 4: After locating connection, right –click on it and select “Properties”

Step 5: Double-click “Internet Protocol Version (TCP/IPv4)”

Step 6: Select the followings:

• Obtain an IP address automatically

• Obtain DNS server addresses automatically
• OK

Step 7: Select “OK” and restart your computer.

3.7.3 Some common protocols

A protocol is defined a set of rules and procedures that control communication
between computers or other network devices on a network.

a. Internet control message protocol (ICMP)

Internet Control Message Protocol (ICMP) is used by devices on a network to send
control and error messages to computers and servers. There are several different
uses for ICMP, such as announcing network errors, announcing network congestion,
and troubleshooting.

b. HTTP (Hypertext Transfer Protocol)

e.g. http://www.reb.rw/
http:stands for hypertext transfer protocol used to connect computer to the server.
It provides a standard web browser to communicate with a server FTP (File Transfer
Protocol)

This protocol allows you to transfer files between two computers on internet.

c. TCP and UDP

Transmission Control Protocol and User Datagram Protocolare most common
transport layer both protocols that manage the communication of multiple
applications. The difference between the two are the specification function that
each protocol implements.

d. SMTP (Simple mail Transfer protocol)

The SMTP stands for Simple mail Transfer protocol is a TCP/IP used in sending and
receiving e-mails. However, since it is limited in its ability to queue message at the
receiving end, it is used with one of two other protocols POP or IMAP that let users to
save messages in server mailbox and download them from the server once needed.

e. POP (Post Office Protocol)

Post Office Protocol is a protocol designed to allow single user computer to retrieve
electronic mail from a POP server via TCP/IP.

3.7.4 Commands used to verify computer connection on a network

3.7.4.1 Ping

The command Ping is commonly used to test connections between computers.
Ping is a simple but highly useful command-line utility used to determine whether a

3.7.4.2 ipconfig

The ipconfig command is used to find out your current local IP address, default
gateway, TCP/IP settings and more.

All Ipconfig commands explained:

i. ipconfig/all: it displays all current IP information for all adapters.

ii. ipconfig /release: Used to release current IP information and obtain a
new IP Address from the DHCP server.

iii. ipconfig /renew: it is used to renew IP Address if you have it set to

3.8. Data and device sharing

ACTIVITY 3.10(b)

1. Share a folder with your classmate on your school computer network

2. Identify how resource are shared on computer network

3.8.1 Workgroup

A workgroup is a collection of computers and servers on a LAN that are designed
to communicate and exchange data with one another. Each individual workstation
controls its user accounts, security information, and access to data and resources.

APPLICATION ACTIVITY 3.14

Go through the steps below in order to create a WorkGroup

Step 1: Open the Start menu, do a search for HomeGroup and press Enter.

Step 2: Click Create a HomeGroup.

Step 3: Click Next.

Step 4: Choose what to share on the network. By default Windows sets Pictures, Videos,
Music, and Printers & Devices as Shared. However, the Documents folder is marked as
not shared.

Note: The sharing options you choose will only apply to devices connecting with
different accounts. If you sign-in with the same user account on another computer,
you will have access to all files regardless of what you chose to share.

Step 5: Once you've decided what content to share, click Next.

Step 6: The wizard will complete the setup, and you'll be presented with a HomeGroup
password, which is needed to allow other computers to access files and printers. Write

APPLICATION ACTIVITY 3.15

Go through these steps to add computers to a HomeGroup

Step 1: Open the Start menu, do a search for HomeGroup and press Enter.

Note: If you don't see the Join now button, there is something wrong, make sure
you're connected to the network and restart your computer.

Step 3: Click Next.

Step 4: Select the content you want to share on the network by using the drop
down menu for each folder and click Next.

Note: If you're signed into another computer, but you're using your Microsoft
Account, then you won't be prompted to enter a password.

Step 6: Click Finish to complete the task.

3.8.2 Network Resource Sharing

First determine which resources will be shared over the network and the type of
permissions users will have to the resources. Any device which is connected to a
host /node is called a Network Peripheral in other word network peripheral is any
device that is indirectly connected to the network. Examples of network peripheral
are: printer, scanner

APPLICATION ACTIVITY 3.16

Go through the steps below to add new folders to shared HomeGroup libraries

Step 1: Use the Windows key + E keyboard shortcut to open File Explorer.

Step 2: On the left pane, expand your computer’s libraries on HomeGroup.

Step 3: Right-click Documents.

Step 4: Click Properties.

Step 6: Select the folder you want to share and click Include folder.

Step 7: Click Apply.

Step 8: Click OK.

Application activity 3.17

Go through these steps to add new folder via Windows network share to your
HomeGroup

Step 1: Right-click the folder you want to share.

Step 2: Select Share with and click the Homegroup (view) option.
Users can access the newly shared folder by:

Step 3: Using the Windows key + E keyboard shortcut to open File Explorer.

Step 4: Clicking Network on the left pane.

Step 5: Double-clicking the computer name with shared content, and browsing the
folder location.

By default, every HomeGroup folder shared on the network are set with read only
permissions. It has to be this way to prevent accidental deletions and modification to

3.9. Network Topology

ACTIVITY 3.11

Draw a Peer-to-peer network and assign each host an IP address. Network must have 1
switch, 8 computers, one printer which has NIC card and a printer.

The network topology describes the configuration of network, the physical and
logical arrangement of nodes that form a network. Network topologies are classified
as physical, logical and signals topologies.

Physical topology describes the mapping of network nodes and physical connection
between them. Signal topology describes the paths which signals take while they
pass over network that mapping of the paths taken by data as they travel over
network. A logical topology is the way data signals pass from one device to another.

There exist different types of network topologies which are Bus topology, Ring
topology, Star topology, Mesh topology, Tree topology and Hybrid topology,

3.9.1 BUS Topology

Bus topology is a network type in which every computer and network device is
connected to single cable. When it has exactly two endpoints, then it is called Linear
Bus topology.

It is the most used and employed in LAN architecture. All devices are connected to a
central cable, called the bus or backbone. This topology is relatively inexpensive and
easy to install for small networks.

Features of Bus Topology

1. It transmits data only in one direction.

2. Every device is connected to a single cable

3.9.2 RING Topology

It is called ring topology because it forms a ring as each computer is connected to
another computer, with the last one connected to the first. Exactly two neighbors
for each device. In a Ring topology each device is connected directly to two other
devices, one on either side of it, to form a closed loop. This topology is relatively
expensive and difficult to install, but it offers high bandwidth and can span large
distances

A ring topology is a computer network configuration in which computer connections
create a circular data path. Each networked computer is connected to two others
like points on a circle.

In a ring network, data travel from one device to the next until they reach their
destination. Most ring topologies allow data to travel only in one direction called
a unidirectional ring network. Others permit data to move in both directions called bidirectional.

3.9.3 STAR Topology

In this type of topology all the computers are connected to a single hub or a switch
through a cable. This hub or switch acts as the central device and all others nodes
are connected to the central device.

So, in a Star topology all devices are connected directly to a central computer or
server. Such networks are relatively easy to install and manage

Features of Star Topology

1. Every node has its own dedicated connection to the hub.

2. Hub acts as a repeater for data flow.

3. Can be used with twisted pair or coaxial cable.

3.9.4 MESH Topology

• It is a point-to-point connection to other nodes or devices. All the network
nodes are connected to each other. A Mesh topology can be either a full mesh
or a partial mesh. In the former, each computer is connected directly to each
of the others.

Types of Mesh Topology

1. Partial Mesh Topology: In this topology some of the systems are connected
in the same fashion as mesh topology but some devices are only connected to
two or three devices.

2. Full Mesh Topology: all devices are connected to each other which is very
expensive but provides the best redundancy as a failure of a single does not
affect the network connectivity.

Features of Mesh Topology

1. Fully connected.

2. Robust.

3. Not flexible.

3.9.5 Tree Topology

It has a root node and all other nodes are connected to it forming a hierarchy. It is
also called hierarchical topology. It should at least have three levels of hierarchy.

Features of Tree Topology

1. Ideal if workstations are located in groups.

2. Used in Wide Area Network.

3.9.6 Hybrid Topology

Hybrid, as the name suggests, is mixture of two different things. Similarly in this
type of topology that integrate two or more different topologies to form a resultant
topology which has good points (as well as weaknesses) of all the constituent
basic topologies rather than having characteristics of one specific topology. This
combination of topologies is done according to the requirements of the organization.

For example, if there exists a ring topology in one office department while there is a bus
topology in another department, connecting these two will result in hybrid topology.
However, connecting two similar topologies cannot be termed as Hybrid topology.

Notice that the cost of technology, network devices, and transmission mediums to
be used in the computer network has to be considered while choosing the network
topology to use.

APPLICATION ACTIVITY 3.18

Using clear example, compare computer network devices, network peripherals
and computer peripherals?

1. In an organization there are 20 computers distributed into different offices
and all offices share one printer .The managements wants to build a
computer network that connects all the computers and printer.

i. Identify a topology to use in this situation

ii. Draw arrangement of computers using identified topology

2. Draw a hybrid topology

• Key Unit Competency: To be able to identify concepts of database and differentiate
database models

INTRODUCTORY ACTIVITY

Observe the following diagram showing the collection of files for the school. Answer
to the questions below:

4.1. Definitions of key terms

Activity 4.1 1.

is dealing with student’s information on daily basis. In your interview,
include the following questions:

a. How do you collect data of students?

b. What are the data do you need from the student?

c. Where are you keeping that data?

d. How do you call the set of all information related to students?

e. Have you full information about students

f. With whom else do you share that information?

2. After you have done the interview, write up findings in the form of report
to be presented to the class.

i. Data

Data is commonly referred to as ‘raw’ data – a collection of text, numbers and
symbols, images with no meaning. Data therefore has to be processed, or provided
with a context, before it can have meaning.

ii. Information

Information is the result of processing data, usually by computer. This results in
facts, which enables the processed data to be used in context and have meaning.
Information is data that has meaning.

iii. Database

Database is an organized collection of related data. It is considered to be
organized because the data is stored in categories that are accessible in a logical
manner. A database is a collection of one or more relations, where each relation is a
table made of rows and columns.

Note: An information system is a combination of computer hardware and software
that is designed to create, store, process and present information. The heart of all
information systems is a database.

In general data management consists of following tasks:
Data capture, Data classification, Data storage, Data arranging, Data retrieval, Data
maintenance, Data verification, Data coding, Data editing, Data transcription, Data
transmission.

Application Activity 4.1

Using the following exam results of S5MCE students:

1. KANEZA has 39/40 in Math, 37/40 in C++, 20/20 in ICT and 15/20 in English,

2. CYUSA has 40/40 in C++, 35/40 in Math, 18/20 in ICT, and 17/20 in English

3. KEZA has 35/40 ni Math, 38/40 in C++, 19/20 in ICT and 16/20 in English,

4. NTWARI has 35/40 in Math, 35/40 in C++, 16/20 in ICT and 15/20 in English,

5. MUTESI has 37/40 in Math, 37/40 in C++, 20/20 in ICT and 20/20 in English

a. Organize the students’ marks in a table

b. Calculate total marks

c. Calculate the Calculate the percentage

d. Arrange their marks by descending order

4.2. Different area where database can be applied

Databases touch all aspects of our lives such as:

1. Human resources: to track information about employees

2. Banking: to keep customer information, accounts, and loans, and banking
transactions.

3. Airlines: to keep for reservations and schedule information. Airlines were
among the first to use databases in a geographically distributed manner

4. Universities: to keep student information, course registrations, and grades.

5. Credit card transactions: to keep purchases on credit cards and generation
of monthly statements.

6. Telecommunication: to keep records of calls made, generating monthly
bills, maintaining balances on prepaid calling cards, and storing information

7. Finance: to keep storing information about holdings, sales, and purchases
of financial instruments such as stocks and bonds.

8. Manufacturing: to keep management of supply chain and for tracking
production of items in factories, inventories of items in warehouses / stores,
and orders for items. etc.

Application activities 4.2

1. Research and identify the impact of database in society

2. Present your findings to the class

4.3. Database approaches

Activity 4.2

Mr. Mugabo is managing a shop in our village. All daily sold products are recorded
manually in book note so that he can know how much money he got. Sometimes
he uses to write that the payment is cash or not. However, when it is time to make a
verification of the whole week so that he can buy new products for the shop, he uses
to meet serious problems related to calculations, to know how much sold, how much
remain and who have not reimbursed the depts.

1. How Mr. Mugabo can improve his shop management?

2. Identify approaches of database which are replacing manual database
system;

3. After that replacement of systems where Mugabo will puts some useless
hard copy files?

4.3.1 Traditional File Processing Systems (TFPS) approach

This is an approach which was used earlier, prior to DBMS. With this approach, users
had to write their application programs to store data in form of files on the computer
permanent storage device (Hard Disk). A user must have knowledge of programming
languages but this is not easy for a common computer user, even an experienced
programmer would find it difficult to write a program each time a new database was
to be created. Each application program written by a user had to define and manage
its own data.

Compared to manual management of information, the Traditional File

Simplicity: the design of file processing is more simple than designing
Database

Efficiency: file processing cost less and can be more speed than Database

Customization: you can customize file processing more easily and efficiently
than Database because files are related with the application and it have all the
data needed for that application.

• Separation and Isolation of Data: In file-based approach, data is stored in
separate files, hence it is difficult to access it.

Duplication of Data: Duplication of data means same data being stored more
than once. This can also be termed as data redundancy.

Misuse of storage space: Duplication of data leads to misuse of storage space.
If the storage space is not properly it will have a direct impact on cost. The cost
will increase.

Loss of data integrity: Data integrity means that the data contained in the
database is both accurate and consistent (Data inconsistency means different
copies of the same data will have different values).

Data Dependence: In traditional file processing, the structure of data files is
embedded in the application programs, so any changes to the structure of a
file may require changing all programs that access this file.

Security problems: File based approach is not secured because different files
are stored in different locations.

Application activity 4.3

Located in Nyarugenge District, Lycee de Kigali has 50 teachers and there are
different departments within. There are 3 departments that need information
about those teachers namely Salaries, Restaurant and Dispensary. The information
for salaries is represented as follows:

MUNEZA is from Huye district, Salary is 11000, born on 1/3/1991and his bill is 10000.
UMUTESI was born on 7/9/1992, in Gisagara district, Salary is 11000 and his bill is 15000
MUKANTWARI is from Gatsibo district, she was born on 3/2/1990, Salary is 12000, her bill is 12000.
NYINAWUMUNTU is from Gasabo and born on 3/1/1992 her Salary is 15000 and bill is 11000.
KABALISA is from Musanze district, born on 3/2/1980, Salary is 13000 and bill is 10000

Information for Dispensary is:

MUNEZA from, Huye , Salary is 11000, born on 1/3/1991, bill is 5000.
UMUTESI born on 7/9/1992, from Gisagara, Salary is 11000, bill is 1000
MUKANTWARI from Gatsibo born on 3/2/1990 Salary is 12000, bill is 2000
NYINAWUMUNTU from Gasabo born on 3/1/1992 Salary is 15000, bill is 1000
KABALISA from Musanze born on 3/2/1980 Salary is 13000, bill is 1200

In groups do the following:

a. Analyze how information is organized in 3 departments

departments

c. What do you propose as a solution to minimize the cost of information
management at Lycee de Kigali?

4.3.2 Database Management System (DBMS)

Database Management system (DBMS) is referred to as a software system that
is used to store, access, manage, organize, maintain, modify and delete data from
databases. Some of the most popular software include, Microsoft Access, Oracle,
Microsoft SQL Server, MySQL

MySQL is, one of the most popular database management systems used when there

a. The advantages of database management system

There are many advantages of database management system.

1. Reduce data redundancy: Data redundancy refers to the duplication or
repetition of data. The database system is used to eliminate the problems
of data redundancy and data inconsistency.

2. Data integration: Data integrity means that the data contained in the
database is both accurate and consistent.

3. Data Independence: Data independence means that programs are isolated
from changes in the way the data are structured and stored.

4. Reduce data inconsistency: Actually, data redundancy and data
inconsistency are inter-related. If data redundancy is controlled, then data
inconsistency will also be controlled automatically. Data inconsistency
means different copies of the same data will have different values.

5. Data sharing: Due to the fact that data is centralized, many different users
from different locations can share data.

6. Data recovery after a crash (a break down): DBMS allows to recover data
after a crash. The crash may depend on power failure or hardware failure.

7. Concurrent transaction control: A transaction means a collection of
operations that perform a single action in a database.

8. Increased Data security and safety: DBMS allows data to be highly
protected against unauthorized access.

The disadvantages of the database approach are summarized as follows:

1. Complexity: The provision of the functionality that is expected of a good
DBMS makes the DBMS an extremely complex piece of software. Database
designers, developers, database administrators and end-users must
understand this functionality to take full advantage of it.
Failure to understand the system can lead to bad design decisions, which can
have serious consequences for an organization.

2. Size: The complexity and breadth of functionality makes the DBMS an
extremely large piece of software, occupying many megabytes of disk
space and requiring substantial amounts of memory to run efficiently.

3. Performance: Typically, a File Based system is written for a specific
application, such as invoicing. As a result, performance is generally very
good.

However, the DBMS is written for general purpose, to cater for many applications
rather than just one. The effect is that some applications may not run as fast as
they used to.

4. Higher impact of a failure: The centralization of resources increases
the vulnerability of the system. Since all users and applications rely on
the availability of the DBMS, the failure of any component can bring
operations to a halt.

5. Cost of DBMS: The cost of DBMS varies significantly, depending on
the environment and functionality provided. There is also the regular
maintenance costs.

6. Additional Hardware costs: The disk storage requirements for the DBMS
and the database may necessitate the purchase of additional storage
space.

Furthermore, to achieve the required performance it may be necessary to
purchase a specicalised computer (server), dedicated to running the DBMS.
The procurement of additional hardware results in further expenditure.

7. Cost of Conversion: In some situations, the cost of the DBMS and extra
hardware may be insignificant compared to the cost of converting existing
applications to run on the new DBMS and hardware.

This cost also includes the cost of training staff to use these new systems
and possibly the employment of specialist staff to help with conversion and
running of the system.

This cost is one of the main reasons why some organizations feel tied to their

current systems and cannot switch to modern database technology.

Application activity 4.4

1. Compare Database Management System and traditional File processing system
Check the DBMS existing in computers of the school computer lab. If they are more
than one, discuss the similarities and differences of them.

4.4 Database access levels and users

Activity 4.3

Activity 4.3

Observe and interpret the following figure.

4.4.1. Database access levels

A major purpose of a database system is to provide users with an abstract view
of the data. That is, the system hides certain details of how the data are stored
and maintained. There are three-levels that form the basis of modern database
architectures:

The internal level has an internal schema, which describes the physical storage
structure of the database. The internal schema uses a physical data model and
describes the complete details of data storage and access paths for the database.
The conceptual level has a conceptual schema, which describes the structure of
the whole database for a community of users.

The conceptual schema hides the details of physical storage structures and
concentrates on describing entities, data types, relationships, user operations,
and constraints. Usually, a representational data model is used to describe the

conceptual schema when a database system is implemented. This implementation
conceptual schema is often based on a conceptual schema design in a high-level
data model.

The external or view level: The external view level is closest to the users. It is
concerned with the way the data is viewed by individual users. A user can either
be an application programmer or an end-user. The external level consists of many
different external views of database. At the view level, computer users see a set of
application programs that hide details of the data types.

The purpose of the three-level architecture is to separate the user application and
the physical database. Different users need different views of the same data.

For example users should not have to deal directly with the physical database
storage details. While the database administrator should be able to change the
database storage structure or storage device without affecting other user’s views.

4.4.2 Database users

When considering users of a Database system, there are three broad classes to
consider:

monitoring its use, acquiring software and hardware resources, controlling its use
and monitoring efficiency of operations.

b. The database designer:

Responsible to define the content, the structure, the constraints, and functions or
transactions against the database. They must communicate with the end-users
and understand their needs.

c. The end-user:

End-users, They use the data for queries, reports and some of them update the
database content.

Application Activity 4.5

From the above figure, explain different access level and right form your school
hierarchy such as headmaster, DOS, teachers, students, visitors.

a. Assign each user from the hierarchy what is supposed to do. Example:
Everything happening in your school is hidden from the visitors.

b. What is responsibility of DBA?

4.4.3. Data Independence

Activity 4.4

The modification of an application used to access a database does not modify the
database itself.

In groups, discuss this assertion

.
Data Independence: The ability to modify a scheme definition in one level without
affecting a scheme definition in a higher level is called data independence.
There are two kinds of data independence:

a. Logical data independence

The ability to modify the conceptual scheme without causing application programs
to be rewritten.
Immunity of external schemas to changes in the conceptual schema usually done
when logical structure of database is altered.

b. Physical data independence

The ability to modify the internal scheme without having to change the conceptual
or external schemas. Modifications at this level are usually to improve performance.

Application activity 4.6

1. Discuss about logical independence and physical independence

2. Compare data dependence and data independence in database 4.5.4.
Data models

4.4.4. Database models

Activity 4.5

Search and summarize found information on Data Models focusing on:

a. Common data models

b. Definition of common data models

A data model is a collection of concepts and rules for the description of the structure
of the database. Structure of the database means the data types, the constraints
and the relationships for the description or storage of data respectively.
The most often used data models arenHierarchical model network model and

Relational model

i. Hierarchical Model

The hierarchical model organizes its data using a tree structure. The root of the
tree is the parent followed by child nodes. A child node cannot have more than
one parent, though a parent can have many child nodes.

ii. Network Model

In the network model, entities are organized in a graph, in which some entities
can be accessed through several paths.

iii. Relational Model

In this model, data is organized in two-dimensional tables called relations.
The tables or relation are related to each other.
A relational database is a collection of relational tables.
The following is a graphical representation of entities and their relationships in a
database structure.

Notice that since more than three decades, the most used database model is the
Relational models. This justifies the fact that most of the currently used DBMS are
all relational. They are hence called relational Database Management Systems
(RDBMS).

The database systems in their differences and similarities all serve to manage
databases. The tables bellow present in summary the Database models Time
frame and description, the Database Models Physical Structure, the Database
models Structural Changes, the Database models Relationships, the Database
Examples and the Database models Status Today.

Database models Comparison

Application Activity 4.7

In groups, do a research on Relational Database Management Systems. Present the
report in class using presentation software.

END OF UNIT ASSESSMENT

1. What is the purpose of managing information?

2. Give the difference between File Processing System and Database
Management System approach.

3. Discuss data independence and explain its importance in database
environment.

4. Discuss the uses of databases in business environment.

• INTRODUCTORY ACTIVITY

Consider the Company AMAHORO Ltd with departments like Accounting and Finance,
Human Resource and ICT. Each department has its own employees who are each
identified by Id, First Name, Surname, Salary, telephone number and Address.

Suppose that this Company uses the file approach to keep information of its employees,
where each department has its own file to store necessary information. The payroll file
is managed in Accounting and Finance departments and a record of an employee’s
salary is described by Employee Id, First name, Surname and Salary Amount.

Assume that a new column for the date of recruitment is to be added to the payroll and
there is a request in Accounting and Finance departments to retrieve all the employees’
details whose salaries are greater than 100,000 FRW. One employee finds that his/her
first name was not correctly written on the payroll.

Since each department has own separate file, it is difficulty to the Human Resource
Manager to access all the files and make any modification any time he/she wants.

1. Discuss whether the approach described above is well designed?

2. Describe the difficulties each department may encounter?

3. Discuss and Suggest the CEO of this Company the best and efficient
approach to be used for overcoming all difficulties.

5.1 INTRODUCTION

Sometimes ago, organizations usually stored information in a way which was with
many risks of being lost, damaged, corrupted and not well organized. It was kept

Nowadays, well-designed database arises to overcome those problems and saves the
time in the long run for the user. It is facilitated by a Database Management Systems
(DBMS). The design of such database presents 3 main levels called “Database design
levels”. These levels help to make easy the understanding and the management of a
database. Later on, it will not be very difficult for the software developer to use that
database.

ACTIVITY 5.1

Your school needs to keep information securely of its teachers, students, combinations
and courses. Each teacher is characterized by its identity number, first name, second
name, salary, qualification, address, telephone number and email.
The Combination is identified by its Id and Name. The student identified by its Id, First
Name, Surname, Address, School fees, Contact Number, Combination Id, Class and
Course is identified by the Course Id, Title, Combination,
From the above,

1. Discuss the data types for the attributes identifying entity Teacher,
Combination, Student and Subject.

2. Describe the relationships between entities: Teacher, Combination,
Student and Subject?

5.1.1 The conceptual level

The conceptual levelis concerned with concept(abstract), an idea of what something
is or how it works; something formed in the mind; a mental image.

There exist different models used for the conceptual level to represent all the data
elements likely to belong to the database but the most used is the Entity- Relationship
Model (ERM) It uses the main concepts like entities, attributes and relationships.

An entity represents a real-world object such as an employee or a project and has
attributes that represent properties such as EmpId, FirstName, Surname, Address
and Birthdate. A relationship represents an association or a link among entities.

For example, when an employee works on many projects, a relationship exists
between the employee and each project.

If an employee is identified by EmpId, FirstName, Surname, Address and Birthdate
while a project is identified by its ProjectId and ProjectName, the diagram
representing the Entity Relationship is the following.
5.1.2 The logical level

The logical level makes it possible to create relational structures enabling us to put
into practice the conceptualization by imagining a relational Database Management
System (DBMS). It is characterized by clear and sound reasoning. At this level there
exist different models like network data models and hierarchical data models and
relational model. Currently the mostly used is the Relational model. In the case of
database having Employee and Project entities the relational model is represented
by the following tables.
5.1.3 Physical level

The physical level is concerned with how data will be encoded and stored. It
consists of the practical application (Database Management Systems - DBMS) of
all the preceding theories by using computers together with its software to create
a database. It deals with storage and processing performance, volumetric (time &
space), partitioning and distribution.

The most known development tools to use are MS Access, MySQL (My Structured
Query Language), SQL (Structured Query Language) and NoSQL.
Application Activity 5.1

age, and art style. For each piece of artwork/product, the artist, the production year, its
title, its type of art (e.g., painting, filmmaking, photograph, crafts, sculpture, drawings,
etc), and its price in FRW must be stored. Pieces of artwork are also classified into
groups of various kinds, for example, Rwandan art, 19th-century Art(old testament,
the French art,Haloween,etc), works by Pablo Picasso; a given piece may belong to
more than one group.Each group is described by an id and name.

Finally, galleries keep information about customers. For each customer, galleries keep
that person’s unique identification, full name, and address, total amount of FRW spent
in the gallery, the artists and groups of art that the customers tend to appreciate.

Draw conceptual, logical and physical levels for the above described database.
Example: SCHOOLS Database

• A View for registrar office
Course info (coursid:string,enrollment:integer)

• The conceptual schema:
Students(studid: string, name: string, login:string, age: integer, gpa:real)

Courses(coursid: string, ccoursname:string, courcredits:integer)

• The physical schema:

Relations stored as unordered files.

Index on first column of Students.

5.2. DATABASE DESIGN STEPS

Learning Activity 5.2.

At Groupe Scolaire Kinazi, the management of students’ information is not
computerized. The Headteacher is looking for a solution so that the database of
students can be managed digitally and hence speed up the production of transcripts
and the search of information when they are requested for. If you are given the task to
design that database, how are you going to proceed?

1. Discuss the different steps to use so that you can succeed the
assignment.

2. Discuss the financial savings made by the school when using
computerized application instead of manual system.

The most important thing to do to start designing a database is to think ahead.
When a case that needs a database creation is presented, before to switch on the
computer, it is better to think about the type of information to work with and the
types of questions that the database should answer, what information needs to
be stored and what specifically are the links between them. The next phases are
to verify all requirements specifications, to represent the data with diagram, and
to plan the database, here are three rules of database design: Rule 1-Plan; Rule
2-Plan; Rule3-Plan.

When data is more complex, there are more needs to plan. Even the simplest
database should be thought through on paper before being created in any tool such
as Microsoft Access, SQL, MySQL, etc.

A well-designed database performs well and adapts to future needs by giving users
access to essential information. Poor planning often results in a database that fails

to meet overlooked needs.

In planning the database, regardless of its size and complexity the following basic
steps are used:

1. Investigate the information.

2. Identify the objects.

3. Model the objects.

4. Identify the types of information for each object.

5. Identify the relationships between objects.

6. Database optimization through normalization.

7. Data entry and manipulation

5.2.1. Investigate information

Before creating a database, there is a need of good understanding of the problem
that the database is expected to solve. If the database is to replace the traditional
method, file based approach method, then the existing system will give most of the
information needed.

During investing information, there is a need to work with everyone involved in the
existing system to see what is needed from the new database. Gathering techniques
include collect copies of customer information, management reports, and any other
documents that are part of the existing system, because these will be useful in
designing the database and the interfaces.

5.2.2. Identifying the important entities and their attributes

During the process of gathering/investigating information, the key objects or
entities that will be managed by the database must be identified. The object can be
a tangible thing, such as a person (for example student, employee, and patient) or a
product, or it can be a more intangible item, such as a department in an institution,
a Combination in a school. Each distinct item in the database should have a
corresponding table for which column titles are attributes of the entity

5.2.3. Identifying the Relationship Between entities

One of the strengths of an E-R database is the ability to relate or associate information
about various items in the database.

Isolated types of information can be stored separately, but the database can combine
data when it is required. Identifying the relationship between entities in the design
process requires looking at the entities, determining how they are logically related,
and adding relational columns that establish a link from one table to another.

5.2.4. Modeling the objects

As the objects in the system and their attributes are identified, they are recorded in
a way that represents the system visually. They are recorded using Relational model
and Entity Relational model

5.2.5. Identifying the types of information for each object

After identifying the primary objects/entities in the database as candidates for
tables, the next step is to identify the types of information that must be stored for
each object.

These are the columns in the table of the object.

Fields/columns should be kept simple, the more atomic your fields the more flexible

For example, in a database of names and addresses, you would keep each part of
the person’s name as a separate field.

The columns in a database table contain a few common types of information:

Raw data columns

These columns store tangible pieces of information, such as names.

Categorical columns

These columns group the data and store a limited selection of data such as true/
false, married/single/divorced/widowed, Male/Female, etc.

Identifier columns

These columns provide a mechanism to identify each item stored in the database
table. These columns frequently have an id or number in their name, for example,
EmployeeId, StudentId, PersonIdNo and InvoiceNumber. The identifier column is the
primary component.

Relational or referential columns

These columns establish a link between information in one entity and related
information in another entity.

For example, an entity that tracks sales transactions will generally have a link to the
customer’s entity so that the complete customer information can be associated with
the sales transaction.

5.2.6. Database optimization through normalization

One of the most important step to consider when designing a database is database
definition. If tables are not set up properly, it can cause a lot of headaches down
the road the time of extracting/retrieving required data. Understanding the rules
of normalization enforces redundancy elimination and inconsistent dependency in
database designs.

5.2.7. Data entry and manipulation

The goal of data entry is to create data that are valid and well organized to assure
their quality during extraction. Well stored data leads to data consistency.

Application activity 5.2.

Discuss the benefits of following database design steps?

5.3. RELATIONAL MODEL

Learning Activity 5.3.

Suppose that School wants to develop an information system in which student studies
in one of the combination and learns different subjects. The system will record details
concerning student, combination and subject.

1. Which properties would you expect to find in each student object?

2. Arrange those properties in tabular form of mxn dimension

5.3.1. Introduction

The relational data model was introduced by C. F. Codd in 1970. Currently, it is the
most widely used data model. It describes the world as “a collection of inter-related
relations (or tables).”

a. Relation

A relation, also known as a table or file, is a subset of the Cartesian product of a list
of domains characterized by a name. You can also think of it this way: an attribute is
used to define the record and a record contains a set of attributes.

The steps below outline the logic between a relation and its domains.

1. Given n domains are denoted by D1, D2 Dn

2. And r is a relation defined on these domains

3. hen r C D1×D2×…×Dn

The following are the key component to know when we are talking about relation:
Relation, Tuple, Attribute, Cardinality, Degree, Primary key, Domain

b. Equivalent Database Concepts

• Relation <=> Table

• Tuple <=> Row or record

• Attribute <=> Column or field

• Cardinality <=> Number of rows

• Degree <=> Number of columns

• Primary key <=> Unique identifier

• Domain <=> Pool of legal values

c. Table

Data is stored in rows and columns. Each Row is known as record and the data items
are known as fields. Tables contain data about one type of item, person or event, for
example:

• a table of patients, a table of a student, a table of teacher, a table of books and
a table of doctor’s appointment

For a book the fields could include:

• Title, Author, ISBN, Publication house

Column

A database stores pieces of information or facts in an organized way. The principal
storage units are called columns or fields or attributes. These house the basic
components of data into which your content can be broken down.

Records

Each row represents a group of related data values, such as a customer or an
employee. A row, or record, is also known as a tuple

Cell

The link/intersection between column and record is known as cell. It also needs to
be available so that they can be reconstituted into their whole form, the basis of all

databases.

A simple table below gives us the clearest picture of how records and fields work
together in a database storage project.

d. Null value

In many situations every row and column will contain data, but there cases where it
makes sense for some columns to not contain a value.
In our example StudentId cannot be null because it is unique but Sex can be null
because it is optional field

e. Degree

The degree is the number of attributes in a table. In our example above in Figure 5.4
the degree is 6.

f. Domain

A domain is the original sets of atomic values used to model data. A domain is a set
of acceptable values that a column is allowed to contain.

For example:

• The domain of Marital Status has a set of possibilities: Married, Single, Divorced,
Widowed.

• The domain of Shift has the set of all possible days: {Monday, Tuesday,
Wednesday, Thursday, Friday, Saturday and Sunday}.

• The domain of Salary is the set of all floating-point numbers greater than 0 and
less than 200,000 FRW.

• The domain of First Name and Surname is the set of character strings that
represents names of people.

g. Datatype

Each field in a record has its own data type. The data types in the fields can be text,
alphanumeric, numeric, and Boolean or date/time.

Table 5.1: Datatype example

Application Activity 5.3.

1. Suppose that a hospital wants to develop system which manages
doctors and patients.

Patients are treated in a ward by the doctors assigned to them. Each patient will be
assigned a single doctor. What fields would you expect to find in each record for a
hospital patient and doctor

2. The following table describes information about employees, study it
and answer the following questions :

a. Using correct terminology, identify and describe all the components of
employee table.

b. What is the possible domain for field EmpId?

c. How many records are shown?

d. How many attributes are shown?

e. Explain the datatype for each field.

5.3.2 Queries in design view

Learning activity 5.4.

Microsoft Access is a database management system from Microsoft that deals with
relational model and it is consisted of the following different views:

a. Layout view

b. Backstage view

c. Design view

d. Datasheet view

Which of the view above contains command buttons that execute operations on entire

Data in a Microsoft Access database is stored in various interlinked tables. A database
also has forms for data entry though you could enter data directly in tables and
a table. It also allows filtering so only the required records and fields are seen.

Steps for creating database in Microsoft Access

• Open Microsoft Access

• Click on Blank database in the task pane

• Name your database file (say Company) and click the Create button to create
the database.

Steps for creating a table in Microsoft Access-Design View

1. Open an created database in access DBMS

2. Click on create tab from menu bar

3. In table group click on table design icon

4. Fill field names, data type and their descriptions

Data in an Access table is stored in various fields. Those fields have different properties
such as fieldname, size and data types as shown in the figure below:

Steps for creating relationship between created tables

1. Open a created database in access DBMS

2. Click on database tools tab from menu bar

3. In relationships group click on relationships icon then the relationships
panel will be displayed

4. Select a table name and click on add button

5. Repeat step 4 to all table you want to use

6. Click on design tab from menu bar

7. In tools panel click on edit relationship icon

8. On opened window click on create new button

9. Select the table names and their columns that you want to join

10. Click on ok button

11. Repeat 8, 9, and 10 to all pair table to be joined

After creating a table, enter the data. Note that there are various methods to create
tables in Access, such as by using Table Wizard, Datasheet view or by importing
tables, but this Unit restricts only to Design view.

Steps for creating a query using design view-Query by example

Creation of a query in design view has three rows, one to sort the fields, the other
to specify whether or not to display a field, and the last to specify some criteria to
select the records.

1. Click on Create tab of menu from bar

2. In queries grout click on query Design icon

3. Select tables to use then click on Add button

4. In Query Type group select a query commend to be used, Example Select

5. In query panel select the table names and field names you want to select
in different tables

6. Check in show row ender the select item if you want to display them on
output at run time

7. Rename the created query

8. In Result group of menu bar click on Run icon

After the above steps you will get a table containing the selected items as shown in
the examples below:

Query 1: Company leader wants to display onlyEmpId, Fullname (sorted is ascending
order) and salary for all employees.

1. Select EmpId, EmpId, FullName, Salary and check them

2. Select Sort by Ascending on FullName

Output:

Query2: The CEO wants to see only EmpId and FullNames where Salary is less or
equal to 240000.
Select EmpId, EmpId , FullName and check them
Set criteria and uncheck Salary field

Query 3: The following search condition was entered using a query design view
(Query by example) grid:

What will be displayed?
Output:

5.3.3 Dynamic queries using parameter

A parameter is a piece of information you supply to a query right as you run it.

Creating a parameter query

Creating a parameter is similar to adding a normal criterion to a query:

1. Create a select query, and then open the query Design view.

2. In the Criteria row of the field you want to apply a parameter to, enter the
text that you want to display in the parameter box, enclosed in square
brackets.
For example, [Enter the Doj:]

3. Repeat step 2 for each field you want to add parameters to.
When you run the query, the prompt appears without the square brackets.

Fill in the value you’re looking for, and then click OK.

Specify parameter data types

To specify the data type for parameters in a query:

1. With the query open in Design view, on the Design tab, in the Show/Hide
group, click Parameters.

2. In the Query Parameters box, in the Parameter column, enter the prompt
for each parameter you want to specify a data type for.
Make sure that each parameter matches the prompt that you used in the Criteria
row of the query design grid.

3. In the Data Type column, select the data type for each parameter.

Application Activity 5.4.

The database WORLD is composed of one table called WORLDCITIES Figure 5.14.
1. The query-design view grid below selects all Cities from America where
Population is greater than 8 million.

Figure 5.13 QBE grid to display Name of city located in America having population >8M

Show what would be the output.

2. Copy and Complete the query design view grid below to select and
show Name_of_city where Population is greater than to 13 and Area is
equal to 1590.

5.4. ENTITY-RELATIONSHIP MODEL

5.4.1. Introduction

Learning Activity 5.5.

A School needs to store information about Teacher (identified by TeacherId, FirstName,
Surname, Salary, Qualification, Address, Contact); Combination (identified by
CombinationId, CombinationName),Student (identified by StudentId, FirstName,
Surname, Address, Schoolfees, ContactNumber) and Subject (identified by subjectId,
SubjectTitle).

Discribe the logical relationships between objects Teacher-Student, Teacher-
Combination, Student-Combination and Teacher-Subject??

The entity relationship (ER) data model has existed for over 35 years. It is well suited
to data modelling for use with databases because it is fairly abstract and is easy to
discuss and explain. ER models are readily translated to relations. ER models, also
called an ER schema, are represented by ER diagrams.
ER modelling is based on two concepts:

• Entities, defined as tables that hold specific information (data)

• Relationships, defined as the associations or interactions between entities

5.4.2. Entity Relationship Diagram

The ER diagram is used to represent the conceptual database schema. In ER diagram:
Entity, Attributes and Relationships form the components of ER Diagram and there
are defined symbols and shapes to represent each one of them.

1. Entity

A rectangle represents an entity set.

2. Relationships between Entities
A diamond represents a relationship.

3. Entity Types

• Entity types ->boxes

• Weak entity type -> double box

Entity types are similar to classes; they describe potential objects (entities) that will
appear in the database. Weak entity types describe dependent entities, entities that
depend on other entities for identity.

4. Attribute

An ellipse represents an attribute (Property).

5. Link between attribute and entity set

Lines represent linking of attributes (properties) to entity sets.

5.4.4. Entities and entity sets

An entity set is a set of entities of the same type that share the same properties. A
noun is used to represent an entity set. An entity is an instance of an entity set.

For example, an entity can be:

• Concrete (TEACHER or STUDENT)

• An occurrence (EXAM)

5.4.5. Attributes

A characteristic of an entity, for example First name, Last name and Age. An attribute
is a data item that describes a property of an entity set. Attributes determine, explain,
or categorize an entity set. Attributes have values, which can be of different data
types such as numbers, character strings, dates, images, sounds, and so on. In a
physical model, an attribute is a named column in a table. Each table has a list of
attributes (or columns).

The types of attributes are:

Simple (atomic) attribute – This type of attribute has a single component. It is called
single-valued attribute. For example, the Gender attribute has a single component
with two values.

In the COMPANY database, an example of this would be: Name = {John} ; Age = {23}
Composite attribute – A composite attribute consists of many components.

For example, the Name attribute has the components Last name and First name. So
this would be written as → Name = {KAGABO+Peter}

Address may consist of Province and District, Number, Avenue. So this would be
written as → Address = {KG +‘14’ + ‘Av’}

Single valued attribute – This type of attribute has one value for one entity. For
example, the Title attribute has a single value for each teacher.

Multi-valued attribute – A multi-valued attribute has many values for one entity.

An example of a multivalued attribute from the COMPANY database, as seen in
Figure below, are the degrees of an employee: BSc, MSc., PhD.

Derived attribute – A derived attribute has its value computed from another attribute
or attributes.

A derived attribute is not a part of a table from a database, but is shown for clarity or
included for design purposes even though it adds no semantic information; it also
provides clues for application programmers.

An example of this can be seen in Figure below. Age can be derived from the attribute
Birthdate

In this situation, Birthdate is called a stored attribute, which is physically saved to the
database.

Unstable attributes - This type of attribute have values that always change. For
example, the salary of employee.

Mandatory attributes - Mandatory attributes must have a value. For example, in
most businesses that track personal information, Name is required.

Optional attributes - Optional attributes may have a value or be left null; For

Unique identifier - This type of attribute distinguishes one entity from another.

For example, in a company, you can distinguish between one employee and another
using a EmployeeID.

5.4.6. Keys
An important constraint on an entity is the key. The key is an attribute or a group
of attributes whose values can be used to uniquely identify an individual entity in
an entity set. In the case of Logical Model you use a special approach for unique
identifier.The equivalent concept for unique identifier within Logical Model is a key.

A key is a field or a set of fields that has/have a unique value for each record in
the relation. You need a key to ensure that you do not meet redundancies within a
relation There are several types of keys each having slightly different characteristics:

Super key-is defined as a set of attributes within a table that can uniquely identify
each record within a table. Super Key is a superset of Candidate key.

Candidate key – A candidate key is an attribute or set of attributes that uniquely
identifies a record in a relation. A candidate key is unique and minimal.

It is unique because no two rows in a table may have the same value at any time. It is
minimal because every column is necessary in order to attain uniqueness.

From our Company database example, if the entity is Employee(SerialNo,EmpId,
First Name, Surname, Address, Contact, Birthdate, Salary, Depid), possible candidate
keys are:

EmpId,

• SerialNo

FirstName and Surname – assuming there is no one else in the company with
the same full name

Surname and Depid – assuming two people with the same Surname don’t
work in the same

Department

Composite keys – these keys have multiple attributes.
Using the example from the candidate key section, possible composite keys are:

• First Name and Surname

• Surname and Depid

Primary key – A primary key is one of the candidate keys from a relation. Every
relation must have a primary key. A primary key shall be at least: - Stable. The value
of a primary key must not change or become null throughout the life of the entity.

The primary key is indicated in the ER model by underlining the attribute.

For example, consider an employee record; using the Age field as the primary key
would not be appropriate because the value of the primary key must not change
over time.

It should be Minimal. The primary key should be composed of the minimum number
of fields to ensure the occurrences are unique.

In this case Employee (EmpId, First Name, Surname, Address, Contact, Birthdate,
Salary, Depid), EmpId is primary key

Secondary key

A secondary key is an attribute used strictly for retrieval purposes (can be composite),
for example: Phone and Surname.
Alternate key – An alternate key is any candidate key that is not chosen to be the

primary key. It may become the primary key if the selected primary key is not
appropriate.

Simple keys – these keys have a single attribute.

Foreignkeys – these keys exist usually when there are two or more relations. An attribute
from one relation has to exist in the other(s) relation. A foreign key is a field (or
fields) that points to the primary key of another table. The purpose of the foreign key
is to ensure referential integrity of the data. In other words, only values that are supposed
to appear in the database are permitted
In the Company database example below, Depid is the foreign key
(EmpId, First Name, Surname, Address, Contact, Birthdate, Salary, Depid)

Attributes and Keys

• Key attributes must be unique for each entity

• Keys are used to identify particular entities

• Partial keys are only partially unique used for weak entity types

Entity Types and Attributes

All regular entity types must have a key attribute or set of key attributes, Weak entity
types must have partial keys, Weak entities get part of their key (and part of their
identity) from some related entity.

Nulls

A null is a special symbol, independent of data type, which means either unknown
or inapplicable. It does not mean zero or blank.

Features of null include:

• No data entry

• Not permitted in the primary key

• Should be avoided in other attributes

• It can represent

an unknown attribute value

1. a known, but missing, attribute value

2. a “not applicable” condition

Example of null

Employee Salary table

In this case commission can be left null

Relationship sets

A relationship set is a set of relationships between two or more sets of entities, and
are regularly represented using a verb.

A relationship is an instance of a relationship set and establishes an association
between entities that are related. These relationships represent something important
in the model. Example: an employee works on a project.

A relationship set always exists between two entity sets (or one entity set relating
to itself ). You need to read a relationship set in double sense, from one entity set to
the other.

Relationships representation

Relationships => diamonds
Identifying relationship => double diamond

Relationships indicate a meaningful connection between two entity types,
Relationships may have attributes, but they cannot have key attributes. Identifying
relationships connect a weak entity type to some other entity type indicates where
the weak entity gets a key to complete its own partial key

5.4.7. Degree of a relationship

The degree of a relationship refers to the number of associated entities. The degree of
a relationship can broadly be classified into unary, binary, and ternary relationship.

5.4.7.1. Unary Relationship

The unary relationship is known as recursive relationship.
In the unary relationship the number of associated entities is one. An entity is related
to itself is known as recursive relation.
An example is shown by the following figure:
Roles and Recursive Relations

When an entity set appears in more than one relationship, it is useful to add labels to
the connecting lines. These labels are called roles.
In this example, labels “Husband” and “wife” are referred to as roles.
5.4.7.2 Binary Relationship

In a binary relationship, two entities are involved. Consider the example where each
staff will be assigned to a particular department. Here the two entities are STAFF and
DEPARTMENT.

5.4.7.3. Ternary Relationship

In a ternary relationship, three entities are simultaneously involved. Ternary
relationships are required when binary relationships are not sufficient to accurately
describe the semantics of an association among three entities.

Example

Consider the example of employee assigned a project.
Here we are considering three entities EMPLOYEE, PROJECT, and LOCATION. The
relationship is “assigned-to.” Many employees will be assigned to one project hence
it is an example of one-to-many relationship.

5.4.7.4. Quaternary Relationships

Quaternary relationships involve four entities. The example of quaternary relationship
is “A professor teaches a course to students using slides.” Here the four entities are
PROFESSOR, SLIDES, COURSE, and STUDENT.
The relationships between the entities are “Teaches.

The degree of relationship, which determines how many instances of an entity relate
to a single instance of another entity is called Cardinality.

5.4.8. Classifications or types of Relationships

Based on cardinality, the different types of relationships that can exist between
entities are:

5.4.8.1. One-to one (1:1)

A single instance of an entity can relate to only one instance of the other entity.It
is the relationship of one entity to only one other entity, and vice versa. It should
be rare in any relational database design. In fact, it could indicate that two entities
actually belong in the same table. An example from our Company database is one
employee is associated with one spouse, and one spouse is associated with one
employee.

Other Examples:

• A person can have only one passport.

• The relationship between the President and the country is an example of oneto-
one relationship. For a particular country at a given time, there will be only
one President. In general, a country will not have more than one President at
a given time hence the relationship between the country and the President is
an example of one-to-one relationship.
5.4.8.2. One-to-many (1: M)

An instance of one entity can relate to multiple instance of another instance.

The relationship that associates one record of entity A to more than one record of
entity B is called one-to-many relationship.

Example of one-to-many relationship is a country having states.

For one country there can be more than one state hence it is an example of oneto-
many relationship. Another example of one-to-many relationship is parent–child
relationship. For one parent there can be more than one child. Hence it is an example
of one-to-many relationship.

For Example,

• A class has many students.

• The relationship between EMPLOYEE and DEPARTMENT is an example of
many-to-one relationship. There may be many EMPLOYEES working in one
DEPARTMENT. Hence relationship between EMPLOYEE and DEPARTMENT is
many-to-one relationship.

5.4.8.3. Many-to-One Relationship Type (M: 1)

The relationship between EMPLOYEE and DEPARTMENT is an example of many-to-one
relationship. There may be many EMPLOYEES working in one DEPARTMENT. Hence
relationship between EMPLOYEE and DEPARTMENT is many-to-one relationship

5.4.8.4. Many-to-many (M: M):

Multiple instances of an entity can relate to multiple instances of another entity.
For our company database. The relationship between employee and department
is many-to-many relationship.

Other examples are:

• A customer can purchase more than one book.

• The relationship between TEACHER entity and STUDENT entity is an example
of many-to-many relationship. Many one teacher teaches many students and
one student is taught by many teachers.
Employee and project, many employees can work on many projects

Participation and Cardinality

Participation and cardinality define constraints on relationships; Participation
indicates whether an entity is required to take part in a relationship, Cardinality ratios
and structural constraints place limits on the number of entities that may participate
in a relationship.

Participation Constraints

• Total participation → double or thick line indicates required participation

• Partial participation →thin line indicates optional participation

Participation Constraint

Arrowheads can be used to indicate an upper bound of 1 for participation

Cardinality Ratios: a cardinality ratios specify the maximum number of relationship
instances that an entity may participate in.

Cardinality Ratios: a cardinality ratios specify the maximum number of relationship
instances that an entity may participate in.

Structural Constraints

Structural constraints specify the minimum and maximum number of relationship
instances that an entity may participate in.

An employee must work for exactly 1 department. A department must have at least
4 employees.

Participation and Cardinality

There’s generally numerous ways to express a relationship constraint.

Equivalent Notations

An employee can manage at most one department.
A department must have exactly one manager.

Equivalent Notations

• An employee must work for exactly one department.

• A department must have at least one employee.

Application Activity 5.5

Given an ER diagrams below

Write the degree, cardinality, participation and Constraints of each relationship in
ER diagram

Write the names of all: weak entities, composite attributes, multivalued attributes,
composite keys and Partial Key Attribute, derivative attribute, identity relationship.

Relationships representation

1. Consider a database used to record information about the marks that
students get in the different exams of different subject studying in Math-
Computer Science-Economics combination.

STUDENT entity is described by StudentId, StudentName and School; SUBJECT_
STUDYING is identified by SSId, SSName, SSClass and SSRoom and EXAM entity is
described by EId, EName, ETime and ERoom.

Construct an E-R diagram that models STUDENT, SUBJECT_STUDYING and EXAM
as entities that uses ternary relationship.

5.5. Database optimization through normalization

Learning Activity 5.6.

Let consider the database with table CUSTOMER identified by CustomerName,
Address, TelephoneNumber, CreditLimit, ItemOrdered,Quantity and Price.
This can easily be implemented in a relational database as follow:

However, a customer may order several items and each customer in the
database may order a different number of items. This situation makes it difficult
to implement the data in a relational database, since we do not know how many
order entries to allow.

1. How many order entries our database design would allow every
customer?

2. Is this structure simple?

3. If this database structure is complex, identify the anomalies it has and suggest
the solution to the database designer to make it simple.

5.5.1. Introduction

Another method for designing a relational database is to use a process commonly
known as normalisation. The goal is to generate a set of relation schemas that
allows us to store information without unnecessary redundancy, yet also allows
us to retrieve information easily. The approach is to design schemas that are in an
appropriate normal form. Therefore, normalisation is a part of the database design
process. Normalisation is a series of steps designed to remove repeating groups
and unwanted functional dependencies. Normalisation is a design technique for
constructing a set of table designs from a list of data items. . It is also used to avoid
insertion, deletion and updating anomalies. Therefore it used to improve on existing
table designs.

5.5.2. Normal Forms

Normalization theory defines six normal forms (NF). Each normal form involves a set
of dependency properties that a schema must satisfy and each normal form gives
guarantees about the presence and/or absence of update anomalies. To correct
update anomalies in a database, you must convert tables to various types of normal
forms.

The most common normal forms are First Normal Form (1NF), Second Normal Form
(2NF), Third Normal Form(3NF) and Fourth Normal Form(4NF).

a. First Normal Form

A relation (table) that contains a repeating group (multiple entries for a single record)
is called unnormalised relation. Removing repeating groups is the starting point in
the quest to create tables that are as free of problems as possible. The conversion
to first normal form (lNF) requires splitting the data into two groups. Tables without
repeating group are said to 1NF.

A relation is in first normal form if and only if the domain of each attribute contains
only atomic (indivisible) values, and the value of each attribute contains only a single
value from that domain

Example:

A database has been designed to store data about sellers and the products they
have sold.
The following facts help to define the structure of the database:

• each seller works in a particular shop

• each seller has a unique Surname

• each shop has one or more sellers

• each product which is sold is manufactured by one company only

• each seller can sell any of the products

• the number of products that each seller has sold is recorded

This table is not in 1NF because:

1. SHOPSALES table has repeated group of attributes

(ProductName, Manufacturer)

(ProductName, NumberofProducts),

(NumberofProducts, Manufacturer)

2. each seller has a number of products

3. SurName and ShopName would need to be repeated for each record

The following table is in 1NF because it does not contain repeating groups

b. Second Normal Form (2NF)

For the second normal form, the relation must first be in 1NF. The relation is
automatically in 2NF if, and only if, the Primary Key comprises a single attribute.

To move to 2NF, a table must first be in 1NF.

The database is changed to the following design:

SELLER (SurName, ShopName)

PRODUCTSSOLD (SurName, ProductName, NumberofProducts, Manufacturer)

Table SELLER is in Second Normal Form because attribute ShopName depends on
primary key SurName; the same on PRODUCTSSOLD where NumberofProducts
and Manufacture attributes depends on composite primary key SurName,
ProductName. The link between these two tables is: primary key of SELLER table is
FirstName, links to FirstName in PRODUCTSSOLD table, FirstName in SalesProducts
table is foreign key

c. Third Normal Form (3NF)

To be in third normal form, the relation must be in second normal form. Also
all transitive dependencies must be removed; a non-key attribute may not be
functionally dependent on another non-key attribute.

In our case on table PRODUCTSSOLD, Manufacturer attribute is dependent on
ProductName, which is not the primary key of the PRODUCTSSOLD table therefore
there is no key dependency.

Process for 3NF:

1. Eliminate all dependent attributes in transitive relationship(s) from each of
the tables that have transitive relationship.

2. Create new table(s) with removed dependency.

3. Check new table(s) and modified table(s) to make sure that each table
does not contain contains inappropriate dependencies.

See the three new tables below.

SELLERS (SurName, Shop)

PRODUCTSSOLD (SurName, ProductName, NumberofProducts)

PRODUCTS (ProductName, Manufacturer)

Table: PRODUCTSSOLDM1

d. Boyce-Codd Normal Form (BCNF)

When a table has more than one candidate key, anomalies may result even though
the relation is in 3NF. Boyce-Codd normal form is a special case of 3NF. A relation
is in BCNF if, and only if, every determinant is a candidate key.

Example

Consider the following table STUDENT
The following facts help to define the structure of the database:

1. Each Student may major in several Combinations.

2. For each Combination, a given Student has only one ClassTeacher.

3. Each Combination has several Advisors.

4. Each ClassTeacher advises only one Combination.

5. Each ClassTeacher advises several Students in one Combination.

The functional dependencies for this table are:

1. StudentId, Combination→ClassTeacher

2. ClassTeacher →Combination

Anomalies for this table include:

• Delete→Student deletes ClassTeacher inforamtion

• Insert→a new ClassTeacher needs a Student

Because no single attribute which is a candidate key, primary key can be

StudentId, Combination, Student_id,ClassTeacher.

To reduce STUDENT table to BCNF, there is creation of two tables:

• STUDENTTEACHER (Studentid, ClassTeacher)

• TEACHERCOMBINATION(ClassTeacher, Combinationr)

e. Fourth Normal Form (4NF)

Fourth normal form eliminates independent many to one relationships between
columns.
A relation is in Fourth Normal Form:

• A relation must first be in Boyce-Codd Normal Form.
• Given relation may not contain more than one multivalued attribute.

The multi valued dependency X→Y holds in a relation R if whenever there is two
tuples of R that same in all the attributes of X, then we can swap their Y components
and get two new tuples that are also in R.

Primary key→{StudentId , Subject , Clubs}

• Many StudentId have same Subject.

• Many StudentId have same Clubs.

Thus violates 4NF.
To convert to 4NF, the table STUDENTCLUB is changed to the following design:
STUDENTSUBJECT {StudentId, Subject}

Is this normalised table? If not,
convert it to 1NF, 2NF and 3NF.

2. Consider the following table SUBJECT that contains multivalued
dependency thus it is in 3NF, use it to answer asked questions

i. Identify functional dependencies exist in this tabale above

ii. Eliminate those dependencies.

END UNIT ASSESSMENT

Question 1.

The database below is composed of two tables. Use it to answer asked questions

i. What is primary key for each table and give reasons.

ii. Identify the foreign key in the BOOKS table.

iii. Identify the candidate keys in both tables.

iv. Identify the relationship between BORROWERS and BOOKS tables
and draw the E-R model.

v. Does the BOOKS table exhibit referential integrity? Why or why not?

Question 2.

Write an ER diagram for Banking System. Assume your own entities (minimum 5),
attributes and relation. Mention the cardinality ratio.

Question 3.

A picture gallery owner has decided to set up a database to keep information
about the pictures he has for sale. The database table, PICTURE, will contain the
following fields:

PictureTitle; PictureArtist; PictureDescription; CatalogueNumber; PictureSize (in
MB); PicturePrice; ArrivedDate (date picture arrived at gallery); Status(whether

PictureTitle; PictureArtist; PictureDescription; CatalogueNumber; PictureSize (in MB);
PicturePrice; ArrivedDate (date picture arrived at gallery); Status(whether picture is

i. State what data type you would choose for each field.

ii. State which field you would choose for the primary key.

iii. Complete the query-by-example grid below to select and show the

CatalogueNumber, PictureTitle and PicturePrice of all unsold pictures
by the artist ‘GATOTO’.

• INTRODUCTORY ACTIVITY

The Groupe Scolaire Nderonziza which is located in District Gakenke, Sector Amahoro,
Cell Bwiza and Village Rumuri is a twelve-year basic education school. It has 4 blocks
of 3 equal classrooms each. Each classroom has 10 meters of length and can contain a
maximum of 30 students. Each classroom is labelled with a name made of the name of
block and the name of the level as showed in the next figure.

After analyzing this figure, respond to the following questions.

1. Describe the role of each label of a classroom?

2. Discuss the way of knowing the content of each classroom?

3. If you are asked to describe the entity student, what are its attributes?

4. In C++ Programming language, how are you going to declare the variable
student?

5. Suppose that at the beginning of the next year there are 60 new students
who are enrolled at that school in S4. If the schools need to maintain the
quality of teaching and learning by keeping a maximum of 30 students
per classroom, what will happen for the 30 students who don’t have
space in S4?

6. In C++ programming language, how to create that space?

6.1 Pointers in C++

ACTIVITY 6.1

1. The student called Kayiranga of Computer Science Senior 5 has a class
work and wants to borrow a C++ programming language book and a
computer from his classmate Iradukunda. Kayiranga needs to use those
materials which are on the desk of Iradukunda to submit the work on
Discuss

a. What could Kayiranga do if he takes those materials without informing

b. What could happen to Iradukunda when he comes back?

3. On The list, the students of Senior 5 are arranged in ascending order
according to their names. From one name of a student, how to reach the
next student?

a. How to get to the student number 5 while you are on student number 2?

b. How to get to the student number 8 while you are on student number 15?

6.1.1 Definition of Pointers

A pointer is a variable which contains the address in memory of another variable.
There can be a pointer to any variable type. The unary or monadic operator & gives
the address of a variable’’. The indirection or dereference operator * gives the
contents of an object pointed to by a pointer’’.

C++ gives the power to manipulate the data in the computer’s memory directly. The
space in the memory can be assigned and de-assigned. This is done using pointer
variables. Pointer variables are variables that points to a specific address in the
memory pointed to by another variable.

6.1.2 Dereference operators

The asterisk sign (*) in the cout statements is called the dereference operator. If the
dereference operator is used, the “value pointed by” a pointer is got.

The statement:

cout << *ptr; means to print the content of the memory space pointed by ptr.

6.1.3 Reference operator

The ampersand sign (&) is called the reference operator. If the reference operator
is used, it will get the “address of” a variable. The ptr = &x; means that it stores the
address of the variable x in the pointer ptr.

6.1.4 Declaring pointer variables

A pointer is declared by using the * (asterisk) operator before an identifier. It is
necessary to initialize the pointer before you can use a pointer in for instance a cout
statement. Due to the ability of a pointer to directly refer to the value that it points
to, it becomes necessary to specify in its declaration which data type a pointer is
going to point to. It is not the same thing to point to a char as to point to an int or a
float.

Pointer declaration Syntax:

data_type *pt_name;

Where data_type is the data type of the value that the pointer is intended to point to.

The following are three declarations of pointers and all of them are pointers and will
occupy the same amount of space in memory:

6.1.5 Initialization of Pointer Variable

Pointers can be initialized to point to specific locations at the very moment they are
defined,You need to initialize a pointer by assigning it a valid address.

6.1.6 Graphical representation of pointers for referencing memory allocation.

Consider the following,

int jim,tom,*blaise;
jim = 10;
tom= jim;
blaise = &jim;

The following is graphical representation of the value contained in each variable
after the execution of this, are shown in the following diagram:

First, we have assigned the value 10 to jim (a variable
whose address in memory we have assumed to be 501).
The second statement copied to tom the content of variable jim which is 10. the
third statement copies to blaise not the value contained in jim but a reference to it (its
address, which we have assumed to be 501). The reason is that in this third assignment
operation we have preceded the identifier jim with the reference operator (&), so
we were no longer referring to the value of jim but to its reference (its address in
memory).

1.1.7 Incrementing a Pointer

Incrementing a pointer is generally used in array because we have contiguous
memory in array and we know the contents of next memory location. Incrementing
pointer variable depends upon data type of the Pointer variable
Three Rules should be used to increment pointer.

The following program increments the variable pointer to access each succeeding
element of the array –

#include <iostream>

6.1.8 Decrementing a Pointer

As shown in example below, the program decrementing a pointer, which decreases
its value by the number of bytes of its data type

#include <iostream>
using namespace std;
const int MAX = 3;

int main () {
int var[MAX] = {10, 100, 200};
int *ptr;
// let us have address of the last element in pointer.
ptr = &var[MAX-1];
for (int i = MAX; i > 0; i--) {
cout << “Address of var[“ << i << “] = “;
cout << ptr << endl;
cout << “Value of var[“ << i << “] = “;
cout << *ptr << endl;
// point to the previous location
ptr--;
}
getchar();
return 0;
}

6.1.9 Arrays and pointers

The name of an array is a pointer to the first element in the array.

int a[10];

int *aptr = a;

a // is equivalent to &a[0]

aptr = a // is equivalent to aptr = &a[0];

aptr+5 // is equivalent to &a[5]

*(aptr+5)

// is equivalent to a[5]

Exemple :
#include <iostream>

using namespace std;

int main()
{
float arr[10];

float *ptr;

cout << “Displaying address using arrays: “ << endl;

for (int i = 0; i < 10; ++i)
{
cout << “&arr[“ << i << “] = “ << &arr[i] << endl;
}
// ptr = &arr[0]

ptr = arr;

cout<<”\n Displaying address using pointers: “<< endl;

for (int i = 0; i < 10; ++i)

{ cout << “ptr + “ << i << “ = “<< ptr + i << endl;
}
getchar();

return 0;}

Different pointer ptr is used for displaying the address of array elements arr. Pointers
are the variables that hold address. Not only can pointers store address of a single
variable, it can also store address of cells of an array.

6.1.10 Comparison of pointers

Pointers may be compared by using relational operators, such as ==, <, and >.

The following program incrementing the variable pointer so long as the address to
which it points is either less than or equal to the address of the last element of the
array, which is &var[MAX - 1].

6.1.11 Subtracting pointers

Differencing means subtracting two Pointers. Subtraction gives the Total number of
objects between them. Subtraction indicates “How apart the two Pointers are?”

Example:

#include<iostream>

using namespace std;

int main()

{
int num , *ptr1 ,*ptr2 ;

ptr1 = &num ;

ptr2 = ptr1 + 2 ;

cout << “ the difference of two pointers is: “ << ptr2 - ptr1 << endl;

getchar ();

return 0;

}

6.1.12 Assignment of pointers

In pointer assignment, the pointer is associated with a target. If the target is undefined
or disassociated, the pointer acquires the same status as the target

pointer-object => target ,

6.1.13 Pointers and function in C++

A function pointer is a variable that stores the address of a function that can later be
called through that function pointer.

Example:

#include<iostream>

using namespace std;

void swapping (int *ptr_a, int *ptr_b)

Activity1:

a. What is the pointer in C++

b. Explain the use of Address Operator (&) and operator (*).

Activity 2:

Given the following declarations, which of the following statements are not valid?

int i;

int *pi;

double d;

double *pd;

a. i=&pi; b.*pi=&i; c. pd=&pi; d. pd=i; e. pi=&i;

Activity3:

What is the error in each of the following expressions?

6.2. Memory allocation

ACTIVITY 6.2

Public bonded warehouse known as MAGERWA (Magazin Generaux Rwandais) is a
Rwandan company where all goods from abroad are stored before being distributed in
the country. When an importer brings his/her goods to MAGERWA, he/she is allocated
a space where to put those goods for checking and is charged the space per square
meter (m2) per day. When he/she withdraws his/her goods from MAGERWA, the
occupied space is given to other customers for use.

Discuss: What would happen to the MAGERWA store if all customers failed to withdraw
their goods on time?

6.2.1 Definition

Memory allocation means reserving memory for specific purposes. It is a process
by which computer programs and services are assigned with physical or virtual
memory space, the process of reserving a partial or complete portion of computer
memory for the execution of programs and processes. Once the program has
finished its operation, the memory is released and allocated to another program
or merged within the primary memory. Programs and services are assigned with a
specific memory as per their requirements when they are executed

6.2.2 Dynamic memory allocation in C++

Up to this level, all memories needed in programs were determined before the
program execution by defining the variables where it is reserved for. But there may
be cases where the memory needed in a program can only be determined during
runtime.

When a memory is dynamically allocated, the operating system is asked to reserve
some of that memory for that program’s use. If it can fulfill this request, it will return
the address of that memory to the current application. From that point forward, the
application can use this memory as it wishes. When the application is done with
the memory, it can return the memory back to the operating system to be given to
another program. This allows to obtain more memory when required and release it
when not necessary.

C++ integrates the operators new and delete for allocating dynamic memory. With
the functions malloc, calloc, realloc and free are available in C++ and can also be
used to allocate and deallocate dynamic memory.

A. Operators:

i. Operator new and new[]

Dynamic memory is allocated using operator new. New is followed by a data type
specifier and, if a sequence of more than one element is required, the number of
these are within brackets []. It returns a pointer to the beginning of the new block of
memory allocated.

Its syntax is:
pointer = new type
pointer = new type [number_of_elements]

The first expression is used to allocate memory to contain one single element of
type type. The second one is used to allocate a block (an array) of elements of type
type, where number_of_elements is an integer value representing the amount of
these. For example:

int * mem;
mem= new int[6];

There is a substantial difference between declaring a normal array and allocating
dynamic memory for a block of memory using new. The most important
difference is that the size of a regular array needs to be a constant expression,
and thus its size has to be determined at the moment of designing the program,
before it is run, whereas the dynamic memory allocation performed by new
allows to assign memory during runtime using any variable value as size.
The dynamic memory requested by a program is allocated by the system from the
memory heap (unused memory of the program). However, computer memory is a
limited resource, and it can be exhausted. Therefore, there are no guarantees that
all requests to allocate memory using operator new are going to be granted by the
system.

ii. Operators delete and delete[]

In most cases, memory allocated dynamically is only needed during specific periods
of time within a program; once it is no longer needed, it can be freed so that the
memory becomes available again for other requests of dynamic memory. This is the
purpose of operator delete, whose syntax is:

delete pointer;

delete[] pointer;

The first statement releases the memory of a single element allocated using new,
and the second one releases the memory allocated for arrays of elements using

new and a size in brackets ([]).
The value passed as argument to delete shall be either a pointer to a memory block
previously allocated with new, or a null pointer (in the case of a null pointer, delete
produces no effect).

b. Functions

Malloc (): void* malloc (size_t size);

Allocate memory block. Allocates requested size of bytes of memory and returns
a pointer to the beginning of the block (first byte of allocated space). Simply pass
in how big you want your memory to be (in bytes), and you get a pointer to that
memory back. The content of the newly allocated block of memory is not initialized,
remaining with indeterminate values. If it fails it returns NULL. It is routine used to
allocate a single block of memory.

Calloc (): void* calloc (size_t num, size_t size);

Allocate and zero-initialize array. Allocates space for an array element, initializes to
zero and then returns a pointer to memory. The calloc() takes two integer arguments
and multiplied together to specify how much memory to allocate. This is routine
used to allocate arrays of memory.

Free (): void free (void* ptr);

Deallocate memory block (the previously allocated space). A block of memory
previously allocated by a call to malloc, calloc or realloc is deallocated, making it
available again for further allocations.

Realloc (): void* realloc (void* ptr, size_t size);

Reallocate memory block, Change the size of previously allocated space pointed to
by ptr. The function may move the memory block to a new location (whose address
is returned by the function).

Notice: In the above program:

Malloc () function dynamically allocates initial value of the size maximum 10
characters (e.g the size of HelloWord has 9 characters) otherwise it returns null and
is copied to str variable which has address in memory.

Realloc() function :reallocate the content of str concatenating with .com and change
the size from 10 to 15 but it keeps the existing address which is 0x22ff44.

Free(): the memory size of (10) characters that has been reallocated with realloc () is
released after using free() because it is no longer needed.

6.2.3 Static memory (or Compile Time) allocation

The memory for your variables is allocated when the program starts, the size is fixed
when the program is created

Statically allocated variables have their storage allocated and initialized before main
starts running and are not deallocated until main has terminated. Statically allocated

local variables are not re-initialized on every call to the function in which they are
declared. A statically allocated variable thus has the occasionally useful property of
maintaining its value even when none of the functions that access the variable are
active.

6.2.4 Advantages of dynamic memory allocation over static memory allocation

An advantage is that the program determines how much memory it needs at run time
and allocate exactly the right amount of storage and released when it’s no longer needed.

• Dynamic Memory Allocation

* Memory allocated “on the fly” during run time

* Dynamically allocated space usually placed in a program segment known
as the heap or the free store

* Exact amount of space or number of items does not have to be known by

* For dynamic memory allocation, pointers are crucial

• Static (or Compile Time) Allocation

* Memory for named variables is allocated by the compiler

* Exact size and type of storage must be known at compile time

* For standard array declarations, this is why the size has to be constant

Application activity 6.2

Activity 1:

Explain the memory allocation and compare dynamic memory over static memory
allocation.

6.3 C++ Structures

ACTIVITY 6.3

The company Urukundo Ltd specialized in production of Milk Powder has a group
of 20 employees and its management is not computerized. Each employee is
identified by the attributes first name, second name, age, degree and salary. The
programmer of that company wants to write a program in C++ programming
language that will allow to constitute a file containing the information of each
employee.

1. What should be the data type of each attribute?

2. Is it easy to enter the value of each attribute one by one? What should
be the solution?

3. If employee is considered as a single entity, how will it be declared in
the program?

6.3.1 Introduction to C++ structure

Structure is a collection of variables of different data types under a single name.
These data elements, known as members, can have different types. To store some
information about a student: Name, Age and student ID. Creation of different
variables name, Age, ID needed to store this information separately.

6.3.2 How to declare a structure in C++ programming?

The struct keyword defines a structure type followed by an identifier (name of the
structure).

Data structures can be declared in C++ using the following syntax:

struct type_name {

member_type1 member_name1;

member_type2 member_name2;

member_type3 member_name3;

. } object_names;

Where:

type_name is a name for the structure type, object_name can be a set of valid
identifiers for objects that have the type of this structure. Within braces {}, there is a
list with the data members, each one is specified with a type and a valid identifier as
its name.

6.3.3 Initializing structure in C++ programming

Just like any variable, we can specify the initial value of a structure at the time of its
definition.

Example of Initialization of structure:

6.3.4 Calculate Memory consumption by structure

To generate the program below, padding must be added to the structs to satisfy this
alignment criteria. It creates two structs; both contain 3 values of the same types
and of the same name. It then prints out the sizes of these structs (in bytes).

Note: Output may vary depending on the systems

The C++ standard defines that struct members must be arranged in memory in the
same order that they are defined within their access level. Different types must have
certain memory alignment requirements; long (on a 64-bit platform) uses 8 bytes of
memory and must start at a memory location divisible by 8 char, on the other hand,
only uses 1 byte of memory and can start at any memory address.

6.3.5 Accessing members of a structure

We need to specify both the structure name (name of the variable) and the member
name when accessing information stored in a structure. There are two types of
operators used for accessing members of a structure:

1. Member operator (.) or Dot Operator

structure_variable_name.member_name

For Example:
We can access the member age of employee structure variable employee_one as:
struct employee
{
char name[50];

int age;

float salary;

char department[30];

} employee_one = {“paul”, 25, 150000.5, “ICT”};

int age = employee_one.age;

2. Structure pointer operator (->) or Arrow Operator (->)

Structure pointer operator or Arrow operator is used to access members of structure
using pointer variable. When we have pointer to a structure variable, then we can
access member variable by using pointer variable followed by an arrow operator
and then the name of the member variable.

structure_pointer->member_name;

For example:

6.3.6 Global use of structure

As defined, a structure is a compound data type that contains different members
of different types, structs are simpler to be managed by the programmer and the
compiler,a better example of using a global variable, and a situation where global
variables are completely necessary, is when passing a structure to a function. In
that case, you must declare the structure as global so that all functions can access
variables of that structure type.

6.3.7 Pointer to structure

Just like other variables we can use pointers to access information stored in a
structure. Structures can also be pointed by pointers and store pointers. The rules
are the same as for any fundamental data type. The pointer must be declared as a
pointer to the structure.

6.3.8 Nesting structure

Structures can be nested within other structures in C++ programming. Structures
can also be nested so that a valid element of a structure can also be another structure.
When a structure contains another structure, it is called nested structure. For
example, we have two structures named Address and Student. To make Address
nested to Student, we have to define Address structure before and outside Student
structure and create an object of Address structure inside Student structure.

Syntax for structure within structure or nested structure

struct structure1
{
- - - - - - - - - -
- - - - - - - - - -
};
struct structure2
{
- - - - - - - - - -
- - - - - - - - - -
struct structure1 obj;
};

Example:

6.3.9 Array of structure

Arrays of structure are good for storing information of a single entity. By declaring
an array of structures, you specify the number of reserved structures inside array
brackets when you declare the structure variable.

Example:

Consider learning activity 6.3 example:

#include <iostream>

#include <conio.h>

#include<stdio.h>

#include<string.h>

using namespace std;

struct Employee

Application activity 6.3

1.
a. Define a structure in C++
b. Given a structure definition,
struct Employee {
string emName;
string emSex;
}; Employee Emp;
A member of the structure can be accessed by which one of the following statements?:

a. Employee.emName;

b. Emp.emName;

c. Emp->emName;

2. Store Information of students and Display It Using Structure by creating an
array having 4 elements of structure student. Each of the element stores the
information of a student.

For example, st[0] stores the information of the first student, st[1] for the
second and so on.

3. What is the output of the following program?

END UNIT ASSESSMENT

• Key Unit Competence:

To be able to explain common concepts of Object Oriented Programming (OOP) and
implement them in C++.

INTRODUCTORY ACTIVITY

Human beings can be grouped into males and females. Each of them has two legs, two
hands, two eyes, a nose, a heart, and so on. There are body parts that are common to
males and females, but there are specific body parts for males and not for Females, and
vice versa.
Both Males and Females perform some common functions like walking, eating, seeing,
talking, hearing etc. But there are some specific functions for each group of Human
Beings.

After reading the above, do the following.

1. Categorize human beings into two main groups

2. What are the body parts that all human beings have in common?

3. List the parts that are specific for females and males.

4. What all human beings can do in common? What are specific functions
only for each gender?

5. Based on database concepts, write down the properties of the entities
human being, male and female. Design on papers a Diagram of entities
found in the above scenario.

6. Add to each entity the functions raised in question 3, 4 and 5. Which
entity depends on the other one?

7. Do you need to repeat the properties and functions of human being

8. After considering the question above, design a diagram of the new
entities.

7.1. Introduction to Object Oriented Programming (OOP)

Activity 7.1

Compare the programming paradigms that you have learnt so far.

1. Which one can help you to create a program for the “Introductory
activity”?

2. Search and write an essay on the concepts and principles of that new

7.1.1 Definition of Object Oriented Programming(oop)

Object-oriented programming (OOP) refers to a type of computer programming (software
design) in which programmers define not only the data type of a data structure, but also
the types of operations (functions) that can be applied to the data structure.
In this way, the data structure becomes an object that includes both data and functions. In
addition, programmers can create relationships between one object and another.

7.1.2 Basic Concepts of Object Oriented Programming

The main concepts and principles used within Object Oriented Programming are:

• Objects

• Classes

• Abstraction

• Encapsulation

• Inheritance

• Polymorphism

• Exception Handling

Definitions of OOP concepts

a. Object

An objects is the basic unit of OOP. It is an instance of class, which has data members and
use various member functions to perform tasks.

b. Class

A class is basically a blueprint of an object. It can also be defined as user defined data type
but it also contains functions in it. It declares and defines what data variables the object will
have and what operations can be performed on the class’s object.

c. Encapsulation

Encapsulation means that the internal representation of an object is generally hidden from
view outside of the object’s definition. Typically, only the object’s own methods can directly
inspect or manipulate its fields. It can also be said data binding. Encapsulation is all about
binding the data variables and functions together in class.

d. Abstraction

Data abstraction and encapsulation are closely tied together, because a simple definition
of data abstraction is the development of classes, objects, types in terms of their interfaces
and functionality, instead of their implementation details. Abstraction denotes a model, a
view, or some other focused representation for an actual item.
In C++, classes can provide methods to the outside world to access & use the data variables,
keeping the variables hidden from direct access, or classes can even declare everything
accessible to everyone, or maybe just to the classes inheriting it. This can be done using
access specifiers.

e. Inheritance

Inheritance as the key feature of Object-Oriented Programming is a way to reuse code
of existing objects, or to establish a subtype from an existing object, or both, depending
upon programming language support. In classical inheritance where objects are defined
by classes, classes can inherit attributes and behavior from pre-existing classes called base
classes, super classes, parent classes or ancestor classes. The resulting classes are known as
derived classes, subclasses or child classes. The relationships of classes through inheritance
gives rise to a hierarchy.
The derived class inherits all the features from the base class and can have additional
features of its own.

f. Polymorphism

It is a feature, which lets programmers create functions with same name but different
arguments, which will perform different actions. That means, functions with same name, but
functioning in different ways. Or, it also allows users to redefine a function and provide it with
a completely new definition.

g. Exception Handling

Exception handling is a feature of OOP, to handle unresolved exceptions or errors produced
at runtime (during the running of the program).

Graphically the principles of Object Oriented Paradigm can be represented like this.

One of the principal advantages of Object-Oriented Programming techniques over procedural
programming techniques is that they enable programmers to create modules that do
not need to be changed when a new type of object is added. A programmer can simply
create a new object that inherits many of its features from existing objects. This makes
object-oriented programs easier to modify.
So, Object Oriented Programming has great advantages over other programming styles.

1. Code Reuse and Recycling: Objects created for Object Oriented
Programming can easily be reused in other programs.

2. Data Redundancy: Inheritance is the good feature for data redundancy. If
you need a same functionality in multiple classes, you can write a common
class for the same functionality and inherit that class to sub class.

3. Data hiding: Implementation details are hidden from other modules and
other modules has a clearly defined interface.

4. Design Benefits: Large programs are very difficult to write. Object
Oriented Programming force designers to go through an extensive
planning phase, which makes for better designs with less flaws. In
addition, once a program reaches a certain size, Object Oriented Programs
are actually easier to program than non-Object Oriented ones.

5. Software Maintenance: An Object Oriented Program is much easier to
modify and maintain than a non-Object Oriented Program. So although a
lot of work is spent before the program is written, less work is needed to
maintain it over time.

Application Activity 7.1

1. The following are the principles of OOP: Object, Class, Encapsulation,
inheritance and Polymorphism. Explain them one by one.

2. What are the advantages of OOP?

3. Name the features that are added to standard C++.

7.2 Class definition in C++

Activity 7.2

Observe the C++ program below and answer the following questions:

#include<iostream>

Using namespace std;

class Test

{

int a;

float b;

public:

void number1()

{ a = 2;

return a;}

float number2()

{
b = 3.5;
return b;
}
};

int main()
{

test m1;

cout <<”First number is: “<< m1.number1()<<’\n’;

cout <<”Second number is: “<< m1.number2()<<’\n’;

return0;

}

From the program above, answer the following questions:

1. What are new key words in the above program?

2. Describe the structure of the part starting with the word class.

3. List the data members contained in the class “Test”

4. What are the functions found in that class?

5. What is the role of the variable m1?

7.2.1 Definition of a class

A class is defined in C++ using keyword class followed by the name of class.
The body of class is defined inside the curly brackets and terminated by a semicolon at the
end.

7.2.2 Syntax

Here, the class is named Test. This class has two data members: data_1 and data_2 and two
member functions: function_1() and function_2().
A Class is an expanded concept of data structures, like data structures, it can contain data
members, but it can also contain functions as members. Where class_name is a valid identifier
for the class, object_names is an optional list of names for objects of this class. The body
of the declaration can contain members, which can either be data or function declarations,
and optionally access specifiers.

Classes have the same format as plain data structures, except that they can also include
functions and have these new things called access specifiers (data hiding). An access specifier
is one of the following three keywords: private, public or protected.
Access specifiers are used to identify access rights for the data and member functions of the
class. There are three main types of access specifiers in C++ programming language:

A private member within a class denotes that only members of the same class
have accessibility. The private member is inaccessible from outside the class.

Public members are accessible from outside the class.

A protected access specifier is a stage between private and public access. If
member functions defined in a class are protected, they cannot be accessed
from outside the class but can be accessed from the derived class.
When defining access specifiers, the programmer must use the keywords: private, public or
protected when needed, followed by a colon and then define the data and member functions
under it.

{
private:
int x,y;
public:
void sum()
{
………
………
}
};

In the code above, the member x and y are defined as private access specifiers. The member
function sum is defined as a public access specifier.
General structure for defining a class is:

Generally, in class, all members (data) would be declared as private and the member functions
would be declared as public. If no access specifiers are identified for members of a
class, the members are defaulted to private access (Private is the default access level for
specifiers).

{
int a,b;

public:

void sum()
{
………
………
}
};

In this example, for members a and b of the class AddNumbers there are no access specifiers
identified. This means that by default a and b are private members of class AddNumbers.
You can have functions inside a class. These functions can be either under public or private,
and their syntaxes are the same. For example, if you have a function to display information
of an account called display, and other classes should be able to access that function, the
following line would be added under the public area:

void display (accountno);
And use the following syntax to implement the function:
void BankAccount::display (int accountno)
{
……………;
………….;
}

The computer accesses an object through the use of one of the object’s methods. The
method performs some action to the data in the object and returns this value to the

computer. Classes of objects can also be further grouped into hierarchies, in which objects
of one class can inherit methods from another class. The structure provided in objectoriented
languages makes them very useful for complicated programming tasks.
7.2.3 Defining member functions inside or outside the class definition
Member functions of a class can be defined either inside or outside the class definition.
In both cases, the function body remains the same, however, the function header is
different.

7.2.3 .I Inside the Class

A member function of a class can be defined inside the class. However, when a member
function is defined inside the class, the class name and the scope resolution operator are
not specified in the function header. Moreover, the member functions defined inside a class
definition are by default inline functions.
To understand the concept of defining a member function inside a class, consider this example.

In this example, the member function putdata() is defined inside the class book. Hence,
putdata()is by default an inline function.
Note that the functions defined outside the class can be explicitly made inline by prefixing
the keyword inline before the return type of the function in the function header. For example,
consider the definition of the function getdata().
inline void student ::getdata ()
{
body of the function
}

7.2.3.2 Outside the Class

Defining a member function outside a class requires the function declaration (function prototype)
to be provided inside the class definition. The member function is declared inside
the class like a normal function. This declaration informs the compiler that the function is a
member of the class and that it has been defined outside the class. After a member function
is declared inside the class, it must be defined (outside the class) in the program.

The definition of member function outside the class differs from normal function definition,
as the function name in the function header is preceded by the class name and the scope
resolution operator (: :). The scope resolution operator informs the compiler what class the
member belongs to.

Here is the syntax for defining a member function outside the class:

Return_type class_name :: function_name (parameter_list)
{
// This is the body of the function
}

To understand the concept of defining a member function outside a class, consider this
example.

Example

Let us re-write the program which converts the degree from Fahrenheit to Celsius and displays
the corresponding degrees on the screen. By creating the method outside the class,
we have:

Note that the member functions of the class can access all the data members and other
member functions of the same class (private, public or protected) directly by using their
names. In addition, different classes can use the same function name.

Application Activity 7.2

The below piece of code is for class declaration, analyze it and answer the following questions:

7.3 Object in C++

Activity 7.3

Your District wants to create a program that will help to know its primary and secondary
schools. Create the class “school” with the following attributes and functions:
Decide on the types of attributes

a. Attributes:

1. Name of the school

2. Code of the school

3. Number of student in your school

4. Number of teachers

6. printing the attributes

B (i) Write a program in C++ that reads and prints the list of schools available in your
District.

(ii) complete the table below with the following list:

1. school

2. School name

3. Code of the school

4. Combinations

5. Number of students

6. Number of teachers

8. Print_school()

The first characteristic of an object language is to place at your disposal the objects.
An object can be regarded as an additional structure of information, a type of super-variable.
Indeed, we know that a variable is a place in primary memory, characterized by an address
– a name - and a type (integer, double, character, Boolean, etc).

In a variable, we can store one and only one information.
Even if an indexed variable is used - a table - the various memory spaces thus defined will
store all obligatorily information of the same type.

7.3.1 Definition:

An object is an instantiation of a class. In terms of variables, a class would be the type, and
an object would be the variable. So, an object is a group of variables of various types. It
thus usually gathers tens of very different information from/to each other within the same
structure, thus making this information easier to handle. By analogy with equation of Wirth,
we could say that the equation of the Object Oriented Programming (OOP) is: methods+-
data=objects

With the difference of what occurs with a table, the various variables of the same object
are not indicated by an index, but by a name which is proper for them. In fact, these names
which characterize the various variables within an object are called properties of the object.
As consequence, any property of object obeys strictly the rules which apply to the variables
in any language (type, size, rules of assignment…).
It will be also said that several objects which have the same properties are of the same type,
or for better explanation, of the same class.

Example

let us say that you want to make a program which will record or process the data on the
books in a library or bookshop, take an object of everyday usage: “A book”.
The properties of a book are:
its size (number of the pages), the name of the author, date of publication, printing company,
its price, its name (title), if a person can borrow it or not, etc.
You can easily find the type of each one of these properties:

• The title and the name of author are the properties of the character type.

• The size (a number of pages) and the price are the properties of the numerical
type.
The situation “if one can borrow it from the library or not” is a Boolean property.

7.3.2 Creating single object

When a class is defined, only the specifications for the object is defined, the memory or
storage is not allocated. To use the data and access functions defined in the class, you need
to create objects.

7.3.2.1 Syntax to define Object in C++

className objectVariableName;
You can create objects of Test class (defined in above example) as follows:

Here, two objects o1 and o2 of Test class are created.
In the above class Test, data1 and data2 are data members and function1() and function2()
are member functions

Example: Class and Object

Number: 12
Enter data: 23.3
You entered 23.3
In this program, two data members data1 and data2 and two memberfunctions insertIntegerData()
and insertFloatData() are defined under Test class.
Two objects o1 and o2 of the same class are declared.
The insertIntegerData() function is called for the o1 object using:
o1.insertIntegerData(12);
This sets the value of data1 for object o1 to 12.
Then, the insertFloatData() function for object o2 is called and the return value from the
function is stored in variable secondDataOfObject2 using:
secondDataOfObject2 = o2.insertFloatData();
In this program, data2 of o1 and data1 of o2 are not used and contains garbage value.

7.3.2.2 Creating array of objects

7.3.3. Passing object to function

As it is known, we can pass (give) any type of arguments within the member function which
can have any numbers of arguments. In C++ programming language, it is also possible to
pass an object as an argument within the member function of class.
This is useful, when we want to initialize all data members of an object with another object,
we can pass objects and assign the values of supplied object to the current object. For complex
or large projects, we need to use objects as an argument or parameter.
Syntax:

• KeyUnitCompetency.

To be able to describe a Visual Basic Integrated Development (VB-IDE) and write a program in Visual Basic.

INTRODUCTORY ACTIVITY

ABC hotel provides different services to its customers such as business center, room services, restaurant and others. For the room services, front desk office receives clients and information is collected as shown below:

Observe the above picture and answer the following questions:

1. What do you think of the above figure?

2. Explain why ABC hotel needs to collect data of each client

3. Investigate why the figure hold these words such :Add new ,Display and Exit

4. Which programming language would use to design the above figure?

5. Can you try to design the above figure?

In programming, the above scenario requires specific programming language that enables us to enter data using forms and save the data in database to receive them whether is a need. This unit will enable to build a simple desktop application for a real life situation.

8.1. Understanding Visual Basic.

LEARNING ACTIVITY. 8.1

1. Click on start button, All programs, Microsoft Visual basic 6.0, Microsoft visual basic 6.0. What is the name of the window that has opened?

2. Make double click on standard EXE. What do you observe?

3. Differentiate desktop and web applications.

8.1.0. General introduction

VISUAL BASIC is a high level and Event-driven Programming Language which evolved from the earlier Desk Opening System (DOS) version called BASIC. (BASIC means: Beginners’ All-purpose Symbolic Instruction Code). Visual basic for DOS and Visual Basic for Windows were introduced in 1991 and
evolved through the years to give Visual basic 3.0(in 1993), Visual basic 4.0 (in 1995) Visual basic 5.0 (in 1996) and now we use Visual basic 6.0 version released in 1998.

Visual basic 6.0 has the following advantages:

• It is easier for the user to minimize code writing.

• The user will become more familiar with visual approach for other visual languages.

• It provides Input box and Output box as interactive windows with user.

• It is very easy program language compare with other.

8.1.1. Definition of terms

d. Graphical User Interface.

A graphical user interface (GUI) is an interface through which a user interacts with electronic devices such as computers, hand-held devices and other appliances. GUI representations are manipulated by a pointing device such as a mouse, trackball, stylus, or a finger on a touch screen.

The need for GUI became apparent because the first human/computer text interface was through keyboard text creation by what is called a prompt (or DOS prompt). Commands were typed on a keyboard at the DOS prompt to initiate responses from a computer. The use of these commands and the need for exact spelling made this interface difficult to use and inefficient.

A GUI uses a combination of technologies and devices to provide a platform that user can interact with, for the tasks of gathering and producing information. Graphical user interface (GUI) is different from command line interface (CLI) or command language interpreter as command line interface (CLI) enables users to type commands in a terminal or console window to interact with an operating system. Users respond to a visual prompt by typing a command on a specified line (MLI), and receive a response back from the system. Users type a command or series of commands for each task they want to perform.

e. Desktop application

A desktop application is a computer program that runs locally on a computer device, such as desktop or laptop computer, in contrast to a web application, which is delivered to a local device over the Internet through browser from a remote server. Different user environments can impact whether a desktop or a web application is the best solution for your needs.

Difference between desktop and web applications.

Desktop applications

• They must be developed for and installed on a particular operating system.

• Have strict hardware requirements that must be met to ensure that they function correctly.

• Updates to the applications must be applied by the user directly to their installation, and may require hardware upgrades or other changes in order to work.

Web applications

• A web application is any computer program that performs a specific function by using a web browser.

• The user accesses the application using the web browser and works with resources available over the internet, including storage and CPU processing power.

• This approach allows for “thin clients” (machines with limited hardware capabilities) to provide access to complex applications delivered from a centralized infrastructure.

f. Event oriented programming.

Event oriented programming is a paradigm in which the flow of program is determined by events, such as user actions (mouse clicks, key presses), sensor outputs or messages from other programs is common used in graphical user interfaces and other applications like Web applications, JavaScript, C#.
Other types of programming paradigm are: C, C++
• Procedural programming used by Basic, Fortran and COBAL
• Declarative programming used by Prolog

Event oriented programming using Visual Basic

Visual Basic is Event oriented programming because of the following

• The programmer needs to write code that performs some tasks in response to certain events.

• Has events that occur by mouse clicking and moving or keyboard stokes (Some of the events are load, click, double click, drag and drop, pressing the keys and more.)

• Focus on the use of Graphical User Interface.

• The events usually comply but not limited to the user’s inputs.

8.1.2. The Features of Visual Basic

Visual Basic has the following features:

1. Data Access Features: this allows programmers to develop database front end applications and server side components for most popular database formats including MS SQL and other Databases.

2. Active X Technologies: that allows programmers to use the functionality provided by other applications, such as MS Office and other windows applications.

3. Internet capabilities make it easy to provide access to documents and applications across internet server applications.

4. Your finished application is a true executable (.exe) file that uses a visual Basic Virtual Machine that you can freely distribute.

8.1.3 Standard EXE Visual Basic Application

Using Visual Basic one can develop one of these main projects as indicated in the
screen below:
1. Standard Exe project is a typical application in which can use the database
manipulation.

A standard exe application is one that is created using Standard EXE project. It is the most widely used Project type using VB6. Standard EXE application is normally the most widely used among the available Project types in Visual Basic. Stand-alone

programs have an .EXE file extension. A standard EXE application is normally used
when you want to develop a stand-alone application. Examples include calculators,
text editors, and other similar applications.

8.1.4. Starting VB 6.0

Opening application of visual basic 6.0

On start up, Visual basic 6.0 will display a dialog box, and one can choose to start a new project, open a new existing project, or select a list of recently opened programs.

Application activities (8.1)

1. With examples, discuss the difference between the following:

a. Graphical User Interface and Command User Interface.

b. Desktop application and Online application.

2. State the process followed to start up Visual basic 6.0.

8.2 Visual Basic Standard EXE Integrated Development Environment(VB-IDE)

Learning Activity 8.2

1. Observe the figure and name the objects labeled A, B, C, D, E and F

a) Visual basic Integrated Development Environment describes the interface
and environment that we use to create our applications in VB.

It is called integrated because we can access virtually all of the development tools
that we need from one screen called interface. The IDE is also commonly referred to
as the design environment, or the program.

Project description in standard exe. Project window.

To design a form window in Visual basic integrated development environment, first
install Microsoft visual basic 6.0 into PC, and follow the following in order to use it.
Start>all program> Microsoft visual basic 6.0> Dialog Box >Standard EXE> formwindow
appear.From the New Project window we can select new, existing and recent
project.The Standard EXE Project looks like this:

This is the main IDE window of Visual Basic. The following are components of the standard exe.windows.

8.2.1 Tool Box

Items of tool box are used to design the application interface. These items are
called Controls and are shown in the image below.

8.2.2 Form window

The form window is the window or background, where the user can design his form using various controls from the toolbox

Each standard form has a code window in which the user can write to direct the behavior of a control. You open the code window by double clicking on a form or a control. If you double click a form, you will be taken to a procedure for the form, but once the code window is open, you can go to any procedure for any object on the selected form.

The codes are of two Categories:

Declaration is written before any procedure in the code window.
Statements. The user selects the required event then code statements are written inside these event procedures.

8.2.4 Project explorer

Contains forms related to your application, it also contains code modules and classes.

8.2.5 Properties Window

Properties are the attribute of controls. Every object has properties, for example a Pen, has its Color, Metal Type, Ink Color, Type etc. In the same manner every control in VB has many properties which are applied by using the property fields in property box . Some properties are read only, which means the values of such properties can’t change using code, while others are Read and Write. You can move Property window any side of VB IDE Window, can appeal using tool bar or by Pressing F4.

It is also possible to change the properties at runtime to give special effects such as change of color, shape, animation effect and so on.

8.2.6 Form Layout Window

The Form Layout window is a visual design tool which is used to control the placement of the forms in the windows environment when they are executed especially when you have more than one form in your program, To position a form in the Form Layout window, simply drag the miniature form to the desired location in the window.

This is where you can select actions to perform on all your project files and to access help. When a project is open extra menus of project, build and data, are shown in addition to the default menu selection of File, edit, View, Debug, tools, window and Help.

Application activities 8.2

1. Name five items on VB toolbox.

2. List two boxes that make up Visual Basic IDE?

8.3 Visual basic controls

a) Uses of properties window

Learning activities (8.3.1)

1. Design a form and call it “NDI UMUNYARWANDA” and have the three labels with three textbox. As well as the properties of label are:

Name: lblfirstname, lbllastname, and lblnationarity respectively.

Appearance: run time with 3D effects.

Caption: First Name, last Name and Nationality. Respectively

Font: (font face Bold, font style Time New roman, size 14 and effects)

Forecolor: It returns foreground color of a label

Height: 1000.

Width: 2000

Backcolor: Active border.

Borderstyle: Fixed Single-With border)

Backstyle: Opaque

• And the textbox as

Name: txtfirstname, txtlastname, and txtnationarity respectively.

Caption: Null in all

Font: (font face Bold, font style Time New roman, size 14 and effects)

Height: 730.

Width: 3000

8.3.1 Definition of form.

Form is the shape, visual appearance, or configuration of an object. In a wider sense, the form is the way something is or happens. Form may also refer to: Form (document), a document (printed or electronic) with spaces in which to write or enter data.

8.3.2 How to design a form in Visual Basic

To design a form in visual basic use the controls which are available in the Tool Box in the left side of the project window. Use the following steps for each control that you want to add on the form:

Step 1: In the Tool Box, choose a control that you want andClick on it.

Step 2: Drag and draw a control in the form using mouse.

Step 3: Change state for Specific control like size etc.

8.3.3 properties Window

Definition of Properties Window.

Properties Window is used to change the state of each control using particular properties associated with each control.

How to use Properties Window.

Before writing an event procedure for the control to response to a user’s input, you have to set certain properties for the control to determine its appearance and how it will work with the event procedure. You can set the properties of the controls in the properties window or at runtime.

Consider the following picture

Figure 8.15 above is a typical properties window for a form. You can rename the form caption to any name that you like best. In the properties window, the item appears at the top part is the object currently selected (in Figure 8.15, the object selected is Form1). At the bottom part, the items listed in the left column represent the names of various properties associated with the selected object while the items listed in the right column represent the states of the properties. Properties can be set by highlighting the items in the right column then change them by typing or selecting the options available. For example, in order to change the caption, just highlight Form1 under the name Caption and change it to other names. You may also try to alter the appearance of the form by setting it to 3D or flat. Other things you can do
are to change its foreground and background color, change the font type and font
size, enable or disable minimize and maximize buttons and etc.

Application activity 8.3.1

Q1. Which property used to change state of a control?

a) Design a form using a control.

Learning activities (8.3.2)

Observe the figure below:
Using the toolbox design the above form.

A control: is a tool you use to create objects on a Visual Basic form. You select controls from the toolbox and use the mouse to draw objects on a form. You use most controls to create user interface elements, such as command buttons, image boxes, and list boxes.

• Properties of a control.

Before writing an event procedure for the control to respond to an event, you have to set certain properties for the control to determine its appearance and how it will work with the event procedure. You can set the properties of the controls in the properties window or at design time. Other things you can do are to change its foreground and background color, change the font type and font size, enable or disable minimize and maximize buttons etc. Here are the important points about setting up control properties:

• Caption Property of a control should be clearly defined so that a user knows what to do with control

• Use a meaningful name for property as it is easier to write and read the event procedure and easier to debug or modify the program later.

• One more important property is whether to make the control enabled or not.

• You should also consider making the control visible or invisible at design time, or when should it become visible or invisible.

8.3.4 Common controls used in Visual Basic:

a .Form
Form is used when you start Visual Basic, a default form (Form1) with a standard grid (a window consisting of regularly spaced dots) appears in a pane called the Formwindow. You can use the Form window grid to create the user interface and to line up interface elements.

Steps to create Form

Step 1: Click Project on menu and choose Add form from the list of options

Step 2: Click Form and click Open

Step 3: Set the Properties for a form

Name: Enter the name of the form. It returns the name used to identify form.

Enabled: form controls can be enabled or disabled on initial execution with the enabled property.

Appearance: It sets whether or not object is painted at run time with 3D effects.

Caption: Enter the caption associated with the form. It sets the text displayed as the title of the form.

Backcolor: Choose background color of textbox .It sets the background color used to display textbox.

Borderstyle: Choose border style of the form

Fillcolor: It sets the colour used to fill in shapes, circles and boxes.

Fillstyle: It returns the fill style of a shape

Backstyle: Choose background style; Opaque or transparent

Font: It returns the font of a form.

Scaleheight: It sets the number of units for the vertical measurement of form.

Scaleleft: It returns the horizontal coordinates for the left edge of form.

• Visible shows or hide a control on a form. It sets value that determines whether an object is visible or hidden

The label is a very useful control for Visual Basic, as it is not only used to provide instructions and guides to the users, it can also be used to display outputs. One of its most important properties is Caption. Using the syntax label.Caption, it can display text and numeric data. You can change its caption in the properties window and also at runtime.

The following are the steps to add a label on the form.

Step 1: Click on the label icon on the toolbox

Step 2: Drag and drop a label control in the form

Step 3: Set Properties for label

Name: Enter the name of the label control. It returns the name used to identify object.

Alignment: It returns/sets the alignment of a label

Appearance: It sets whether or not object is painted at run time with 3D effects.

Caption: Enter the caption associated with the label. It sets the text displayed on the form.

Font: It returns the font of object (font face, font style, size and effects)

Forecolor: It returns foreground color of a label

Height: Enter the height of the label.

Backcolor: Choose background color. It sets the background color used to display label.

Borderstyle: Choose border style of the label(None-no border or Fixed Single- With border)

Backstyle: Choose background style; Opaque or transparent

c. Text Box

The text box is the standard control that is used to receive input from the user as
well as to display the output. It can handle string (text) and numeric data but not
images or pictures. String in a text box can be converted to a numeric data by using
the function Val(text).
Step 1: Click on the Textbox icon    on the toolbox

Step 2: Drag and drop a Textbox control in the form

Step 3: Set Properties for Textbox such as Name, alignment, appearance, backcolor etc.

d. Frame

If you want to create a group of controls that work together, you must first create a frame for the controls. (To do this, use Frame, a Visual Basic toolbox control.) Next, place your controls inside the frame so that they can be processed as a group in your program code and moved as a group along with the frame

Step 1: Click on the Frame icon  on the toolbox

Step 2: Drag and drop a Frame control in the form

Step 3: Set Properties for Frame: on this step, you set preferred properties

The Option Box control lets the user selects one of the choices. However, two or more Option Boxes must work together because as one of the Option Boxes is selected, the other Option Boxes will be unselected. In fact, only one Option Box can be selected at one time. In computer terminology we call this ‘mutual exclusion’. Therefore, two option box controls are said to be mutually exclusive of each other. When an option box is selected, its value is set to “True” and when it is unselected; its value is set to “False”.

Step 1: Click on the OptionButton   icon on the toolbox

Step 2: Drag and drop aOptionButton control in the form

Step 3: Set Properties for Option Button

f. Check box control

The Check Box control lets the user to select or unselect an option. When the Check Box is checked, its value is set to 1 and when it is unchecked, the value is set to 0. You can include the statements Check1.Value=1 to mark the Check Box and Check1. Value=0 unmark the Check Box, and use them to initiate certain actions. For example, the program will change the background color of the form to red when the check box is unchecked and it will change to blue when the check box is checked.

Step 1: Click on the CheckBox  icon on the toolbox

Step 2: Drag and drop a CheckBox control in the form

Step 3: Set Properties for CheckBox

g. Command button

Command button is a very important control as it is used to execute commands. It displays an illusion that the button is pressed when the user clicks on it. The most common event associated with the command button is the Click event.

h. List Box
The function of the List Box is to present a list of items where the user can click and select the items from the list. In order to add items to the list, we can use the AddItem method.

List Box contains a list of options from which user can choose. In windows the
Font List box is an example of the use of a list box. The Selected item in a ListBox is

given by the Textproperty. The sorted property determines whether the items in the
list box will be sorted or not.

a) Change property list from properties window: Open the list properties window
and choose list property. Write a list of items to appear in the list box

i. Combo Box

The function of the Combo Box is also to present a list of items where the user can click and select the items from the list. However, the user needs to click on the small arrowhead on the right of the combo box to see the items which are presented in a drop-down list. In order to add items to the list, you can also use the AddItem method.

j. Picture Box

The Picture Box is one of the controls that used to handle graphics. You can load a picture at design phase by clicking on the picture item in the properties window and select the picture from the selected folder. You can also load the picture at runtime using the LoadPicture method. For example, the statement will load the picture grape.gif into the picture box.

Picture Box is a control used to display images on a VB page. The Picture Box control also supports few functionality of generating advanced drawing.

k. Image box

The Image Box is another control that handles images and pictures. It functions almost identically to the picture box. However, there is one major difference, the image in an Image Box is stretchable, which means it can be resized. This feature is not available in the Picture Box. The syntax is as follows:

l. Timer

When we need to perform tasks at regular interval we can use Timer . Open a new project and place a timer object on your form. Then locate a label at the center of theform and adjust the size as shown in the figure below. For such a program a better look will beestablished by sizing your form as a pop up window.

m. File System Controls

File System Controls are set of controls which help us to add file handling capabilities to our program. They are used together to provide an interface for accessing and exploring drives, folders and files. File system controls can be drive list box, directory list box and file list box.

1) Drive List Box: The Drive ListBox is for displaying a list of drives available in
your computer. When you place this control on the form and run the program, you will be able to select different drives from your computer.

2) Directory List Box: is for displaying the list of directories or folders in a selected drive. When you place this control into the form and run the program, you will be able to select different directories from a selected drive in your computer.

3) File List Box: This control displays a list of files in the current folder.
These are important controls even though there are plenty of controls used in VB.

ADO (ActiveX Data Objects)is the preferred method for accessing non-Jet tables. ADO and DAO are interchangeable for most things and you are unlikely to experience real timing differences with the two methods. There are some things that ADO cannot do with an Access database that DAO can do.DAO is native to Jet, and on several operations, it might perform a bit faster on Jet than ADO. DAO will contain some methods and properties that are only relevant to Jet, not other databases.

h. DAO

DAO(Data Access Objects) was the first object-oriented interface that exposed the Microsoft Jet database engine (used by Microsoft Access) and allowed Visual Basic developers to directly connect to Access tables as well as other databases - through Open Database Connectivity (ODBC).

3. Design a form “Rectangle” that contains a round rectangle.

4. What is the most common Event associated with the Command Button?

8.4. Planning and Developing a Visual Basic program.8

8.4.1 The process of Planning and Developing a Visual Basic program

Learning activity 8.4.1
Consider and observe the following form that contains different controls and help a
school to calculate the monthly interest according to the borrowed money per month.

1. What is the role of each control on the form.

2. Which cause the command button named calculate to find and display           the interest

3. What happen if you do not find the simple interest?

4. What can you do if run a program and you are informed that the program contains errors?

Developing a VB program is mainly done in three steps namely setting up user interface, defining the properties, and creating code.

a. Draw the interface

At this step, you will be using the object to design the interface of your application; the controls will be taken from the tool box by dragging it from there to the form designer.

b. Set properties

At this stage, you will be setting up properties for your form and controls. Those properties are set from the properties window.

c. Write the event code.

Coding is to be done in the code window and you get there by double clicking the object you want to code. Now we double click on the form1, the source code Window for the form1 appears:

End Sub

You just have to write your code between two statements. In order to display the
output, you have to add Form1.show

Example 8.4.1: VB application to display the message: “welcome to the world of
programming:”

Form1.show

Print”welcome to the world of programming”

End sub.

Procedure:

• Put the pointer on the form 1, right button, properties, go to name and replace form1 by frmvolumecylinder.

• Go to caption; and replace form1 by Volume of cylinder

• Go now to toolbox, then choose label (3 times) and if toolbox is not there, go to view then choose toolbox

• Click once on the label one, right button; properties and replace label1 name by lblradius and the caption by the “Radius

• Click on the label2, properties and replace the label2 name by lblheight and the caption by “Height”

• Click on label3, properties and replace the name by lblarea and caption by “Volume”.

• Then go to toolbox, choose now the textbox (3 times) starting by the first, go to properties and remove.

• Go to text name and replace the text1, text2 and text3 by txtradius, txtheight and txtvolume respectively.

• Go back to toolbox and choose command buttons (3 times)

• Go to properties and replace names command1, command2 and command3 by cmdcalculate, cmdnew and cmdexit respectively captions by Calculate,Newcalculation and Exit.

Command “Calculate”

Double click on command button “Calculate” to write the code to calculate the
area when you click on it at running time.

Codes:

Private Sub cmdcalculate_Click()
txtvolume.Text = 3.14 * Val(txtradius.Text ^ 2) * Val(txtheight.Text)
End Sub

Command “New Calculation”

Double click on the command New calculation to write the code to let you make other calculation when click on it.

Codes:

Private Sub cmdnew_Click()
txtheight.Text = “”
txtvolume.Text = “”
End Sub

Command “Exit”

And finally Exit command to write the code to end the program when you click
on it.

Codes:

Private Sub cmdexit_Click()
End Sub

Application activity 8.4.1

1. A. Design a form like above using all possible control and its proportional properties.

2. Coding a program.

8.4.2. Debugging Your Code and Handling Errors

Application activities 8.4.2

UMWARI is a student in senior five, once planning and developing a visual basic program but in running stage it does not run correctly.

a. Is it possible to correct it? Explain.

b. Give appropriate term of correct the challenges faces.

c. Identify why program does not runand the possible solutions.

8.4.2 Debugging your Code and Handling Errors

A. Program error: is a result of bad code in some program involved in producing the erroneous result

B. Handling errors

Error handling should be used to process only exceptional situations, despite the fact
that there is nothing to prevent that programmer from using errors as an alternate
form of program control.

These errors can be grouped into three categories:

• Syntax errors

• Run-time errors

• Logic errors

Syntax errors are grammatical errors in the formulation of statements and are picked up by the interpreter while you are typing in the code (providing the syntax checking option - under environment options - is set to yes).

Run-time errors these are errors that cannot be detected until the program is running. The syntax of the statements is correct, but once executed they cause a error situation to arise. Examples of run-time errors are attempted division by zero or trying to access a non-existent object.

Logic errors these are errors that cause the program to behave incorrectly. They generally arise through failure on the part of the programmer to arrive at a correct algorithm for the task. Typical problems might be incorrect ordering of statements, failure to initialise or re-initialise a variable, assignment to an incorrect variable, use of ‘<’ instead of ‘<=’, use of ‘and’ instead of ‘or’, or omission
of a crucial step in the processing. Logic errors may hide in a program even when it appears to work - they may only surface under certain conditions. This is why careful testing is so important.

c. Debugging

Debugging is a process by which you find and resolve errors in your code. To debug code in Visual Basic, consider the ideas suggested below. These techniques can also be applied in different sequences.

• Print the code, if you find it easier to read code on paper instead of softcopy.

• Run the application to find trouble spots:

From the Run menu, choose ‘Start’ to begin running the application. Run until an error stops execution, or halt execution manually when you suspect an error by choosing ‘Break’ from the Run menu. Resolve all compile errors and run-time errors. From the Run menu, choose ‘Continue’ to continue running the application. Once bugs are found try out bug fixes and then make edits by testing individual lines of new or debugged code in the Debug window. Search and replace code

for all occurrences of an error, checking other procedures, forms, or modules with related code. From the Run menu, choose ‘Restart’ to reset application variables and properties and restart the application from the beginning.

Debugging tools.

These are tools designed to help in stopping the execution of a program at specific points, detecting run-time and logic errors and understanding the behavior of errorfree code.

8.4.4 Building an executable file

You can make an executable file (.exe) from Visual Basic using the following procedure.
To make an executable file in Visual Basic

1. From the File menu, choose Make projectname .exe where projectname is the application name for the project.

2. Type a file name, or browse through the directories and select an existing file name to overwrite an existing executable with a newer version.

3. By clicking the Options button, you can also specify a number of versionspecific details about the executable file in the Project Properties dialog box.

4. If you want to modify the version number of the project, set the appropriate Major, Minor, and Revision numbers. Selecting Auto Increment will automatically step the Revision number each time you run the Make projectname .exe command for this project.

5. To specify a new name for the application, under Application, type a new
name in the Title box. If you want to specify a new icon, choose one from
the list.

6. You can also enter version-specific commentary on a variety of issues under the Version Information box (comments, company name, trademark and copyright information, and so on) by selecting a topic from the list box and entering information in the text box.

7. Choose OK to close the Project Properties dialog box, and then choose OK in the Make appname .exe dialog box to compile and link the executable file. You can run the executable file like any other Windows-based application: doubleclick the icon for the executable file.

8.4.5. Deploying a VB Project

The Visual Basic Package and Deployment Wizard makes it easy for you to create the necessary cab files and setup programs for your application. Like other wizards, the Package and Deployment Wizard prompts you for information so that it can create any exact configuration.

There are three ways of starting the Package and Deployment Wizard:

• Run it from within Visual Basic as an add-in. If run the wizard as an add-in, first set the necessary references in the Add-In Manager to load the wizard. When the wizard as an add-in, Visual Basic work with the project currently open. If work with another project, either open that project before starting the add-in, or use the wizard as a stand-alone component.

• As a stand-alone component from outside the development environment. Run the wizards as a stand-alone component, prompted choose the project on which working with.

• Start it in silent mode by launching it from a command prompt. “Running the Wizard in Silent Mode” in this topic for more information. After you start the wizard, a series of screens prompt you for information about your project and let you choose options for the package. Each screen explains how it is
to be used, including which information is optional, and what information must be  entered before move to the next screen. If it display information on screen, press F1 or click the Help button.

Note: Save and compile project before running the Package and Deployment Wizard. In most cases, the Package and Deployment Wizard create a package that is ready for deployment. However, if customize packaging process further or provide functionality not supported by the Package and Deployment Wizard, modify the Setup Toolkit Project.

To start the Package and Deployment Wizard from within Visual Basic

1. Open the project you want to package or deploy using the wizard. Note If you are working in a project group or have multiple projects loaded, make sure that the project you want to package or deploy is the current project before starting the wizard.

2. Use the Add-In Manager to load the Package and Deployment Wizard, if necessary: Select Add-In Manager from the Add-Ins menu, select Package and Deployment Wizard from the list, then click OK.

4. On the main screen, select one of the following options:

• If you want to create a standard package, Internet package, or dependency file for the project, click Package.

• If you want to deploy the project, click Deploy.

• If you want to view, edit, or delete scripts, click Manage Scripts.

For an introduction to these options, see “The Package and Deployment Wizard.”

5. Proceed through the wizard screens.

To start the Package and Deployment Wizard as a stand-alone component

1. If the project you want to package is open, save it and close Visual Basic.

2. Click the Start button, and then click Package and Deployment Wizard from the Visual Basic submenu.

3. In the Project list on the initial screen, choose the project you want to package.

Note You can click Browse if your project is not in the list.

4. On the main screen, select one of the following options:

• If you want to create a standard package, Internet package, or dependency file for the project, click Package.

• If you want to deploy the project, click Deploy.

• If you want to view, edit, or delete scripts, click Manage Scripts.

5. Proceed through the wizard screens.

Running the Wizard in Silent Mode

Using scripts, you may package and deploy your project files in silent mode. In silent mode, the wizard runs without your having to attend it to make choices and move through screens. The wizard packages and deploys your project using the settings contained in a script.

Silent mode is especially useful if you are packaging and deploying as part of a batch process. For example, early in the development of your project, you may use the Package and Deployment Wizard to package your project and deploy it to a test location. You can later create a batch file to perform the same packaging and deployment steps periodically as you update your project.

To package and deploy in silent mode

1. Open MS-DOS prompt.

2. Type the name of the wizard executable, pdcmdln.exe, followed by the path and file name of Visual Basic project, and the appropriate command line arguments.

3. PDCmdLn.exe C:\Project1\Project1.vbp /p “Internet Package”

4. /d Deployment1 /l “C:\Project1\Silent Mode.log”

Note: Can perform packaging and deployment in a single silent session by specifying both the /p and the /d arguments, as shown in the example above. Otherwise, use either /p or /d.

Note Any file or script name that includes spaces should be enclosed in quotation marks, as shown in the example above.

Application activities 8.4.2

1. Describe three types of errors made in Visual basic.

2. Define the term debugging.

3. Design a simple calculator which makes addition, division, multiplication and subtraction of two numbers.

4. Hirwa Eric is a programmer, when he attempts to run his VB code, it generates an error.

a. Explain why this program generate an error?

b. Give the strategies Eric must follow in order to solve this problem.

8.5 WORKING WITH MENUS AND DIALOG BOXES

Learning activities 8.5

Observe the following organization structure of a girls’ school and answer the following questions:

1. As a student of S5 how many levels you pass through in order to reach to head teacher?

2. Why is it necessary to pass at each level?

3. Design the above organizational structure into a VB form window use of menus.

Windows applications provide groups of related commands in Menus. These commands depends on the application, but some-such as Open and Save are frequently found in applications. Menus are intrinsic controls. Visual Basic provides an easy way to create menus with the modal Menu Editor dialog. The below dialog is displayed when the Menu Editor is selected in the Tool Menu. The Menu Editor command is grayed unless the form is visible. And also you can display the Menu Editor window by right clicking on the Form and selecting Menu Editor.

8.5.1 Multiple Document Interface (MDI).

The Multiple Document Interface (MDI) is another class of the form that allows you to open Windows within a parent container window to simplify the exchange of information among documents, all under the same roof.

Applications such as Microsoft office Word and Microsoft office excel are the best examples of MDI, where many documents can be opened simultaneously within the main document.

To use windows applications that can open multiple documents at the same time and allow the user to switch among them with a mouse-click. Each document is displayed in its own window and all document windows have the same behavior.

The main Form, or MDI form, isn’t duplicated, but it acts as a container for all the windows, and it is called the parent Window.

The windows in which the individual documents are displayed are called Child
windows.

An MDI application must have at least two Form, the parent form and one or more child forms.

Each of those forms has certain properties. These can be many child forms contained within the parent form, but there can be only one parent form. The parent form may not contain any controls, while the parent form is open in design mode, the icons on the toolbox are not displayed, but you can’t place any
controls on the form.

To create an MDI application, at least two forms are needed in the application: One is the parent or container form and the second is the child form or the form contained within the parent. A single child is required for the simple MDI Projects.

Procedures:

• Select New project from the file menu

• In the case you already have a form ,then in the properties window set the name property to frmchild and its caption to MDI_Child

• Right-click on the forms folder in the project window

• Click on add from the MDI form to create the MDI Parent form.

• Select MDI form from the Add MDI form dialog

• In the Properties window set the name property to frmMDI and the caption property to MDI_Parent.

• On the project menu, select project1.properties, set the startup object list to

frmMDI. In the Case you omit this; the application will start with the child form.

Select the frmchild from the project Explorer

Set the form’s MDI child property to true in the properties window. This will cause this form, which is the child, to rest inside the MDI Parent container.

• Save project as from the file menu and save the form as MDI.frm and project as MDI.vbp

Menus, which are located on the menu bar of a form, contain a list of related commands. When you click a menu title in a Windows-based program, a list of menu commands should always appear in a well-organized list.

Most menu commands run immediately after they are clicked. For example, when the user clicks the Edit menu Copy command, Windows immediately copies information to the Clipboard. However, if ellipsis points (…) follow the menu command, Visual Basic displays a dialog box that requests more information before the command is carried out.

This section includes the following topics:

• Adding Access and Shortcut Keys

• Modify and reorder existing menus

See the Figure below for Menu editor Window:

To create a list of menu commands on a form

4. Click the form itself (not an object on the form).

5. On the Visual Basic toolbar, click the Menu Editor icon, or select Menu Editor from the Tools menu.

6. In the Caption text box, type the menu caption (the name that will appear on the menu bar), and then press TAB.

7. In the Name text box, type the menu name (the name the menu has in the program code). By convention, programmers use the mnu object name prefix to identify both menus and menu commands.

9. In the Caption text box, type the caption of your first menu command.

10. Press tab, and then type the object name of the command in the Name text box.

11. With this first command highlighted in the menu list box, click the right arrow button in the Menu Editor. In the Menu list box, the command moves one indent (four spaces) to the right. Click the right arrow button in the Menu Editor Dialog box to move items to the right, and click the left arrow button to move items to the left.

The position of list box items determines what they are:

2. To add another menu and menu commands, repeat Steps 3 through 9 in the preceding procedure.

3. When you’re finished entering menus and commands, click OK to close the Menu Editor. (Don’t accidentally click Cancel or all your menu work will be lost.) The Menu Editor closes, and your form appears in the programming environment with the menus you created.

Adding Event Procedures After you add menus to your form, you can use event procedures to process the menu commands. Clicking a menu command on the form in the programming environment displays the event procedure that runs when the menu command is chosen. You’ll learn how to create event procedures that process menu selections in Processing Menu Choices.

8.5.4 Adding Access and Shortcut Keys.

Visual Basic makes it easy to provide access key and shortcut key support for menus

Access and Shortcut Keys

The access key for a command is the letter the user can press to execute the command when the menu is open. The shortcut key is the key combination the user can press to run the command without opening the menu. Here’s a quick look at how to add access and shortcut keys to existing menu items:

• Add an access key to a menu item Start the Menu Editor. Prefix the access key letter in the menu item caption with an ampersand (&).

• Add a shortcut key to a menu command and Start the Menu Editor. Highlight the  command in the menu list box. Pick a key combination from the Shortcut drop-down list box.

Creating Access and Shortcut Keys

You can create access keys and shortcut keys either when you first create your menu commands or at a later time.

File and Clock. Each menu item has an access key ampersand character, and the
Time and Date commands are assigned shortcut keys. See figure below.

Figure 8.39 Menu Editor Window showing how to create shortcut keys

After you place menu items on the menu bar, they become objects in the program. To make the menu objects do meaningful work, you need to write event procedures for them. Typically, menu event procedures:

• Contain program statements that display or process information on a form.

• Modify one or more object properties.

For example, the event procedure for a command named Time might use the Time keyword to display the current system time in a text box. Processing the selected command might require additional information (you might need to open a file on disk, for example). If so, you can display a dialog box to receive user input by using a common dialog box. You’ll learn this technique in the next section.

In a typical Windows application, not all menu commands are available at the same time. In a typical Edit menu, for example, the Paste command is available only when there is data on the Clipboard. When a command is disabled, it appears in dimmed (gray) type on the menu bar. You can disable a menu item by:

• Clearing the Enabled check box for that menu item in the Menu Editor.

• Using program code to set the item’s Enable property to False. (When you’re ready to use the menu command again, set its Enable property to True.).

Application activity 8.5

Design a program which have five menus (Home,Insert,Page Layout, review and View) and sub_menu in home ( File, open and Edit) and the open File option display form1.

You should be able to open the above form using shortcut(Ctrl+F).

• Key Unit Competency

To be able to use variables, operators, expressions and control structures in a Visual Basic program.

INTRODUCTORY ACTIVITY

The Visual Basic program below asks the user to enter the names, year of birth and the sex and displays the following messages: “Good Morning Sir, you are .... years old” if the sex is Male and “Good morning Madam, you are ...years old” Analyze the following VB

source code and answer corresponding questions:

Private Sub Command1_Click()

Dim names, sex As String

Dim year As Integer

names = Text1.Text

sex = Text2.Text

year = Val(Text3.Text)m = 2018 - year

If sex = “Male” Then

Print “Good morning Sir , you are”; m; “ years old “

ElseIf sex = “Female” Then

Print “Good morning Madam ,you are”; m; “ years old “Else

Print sex; “ sex does not exist!”End If

End Sub

1. List the variables used in the source code above

2. What is the type of Visual Basic Data used in this source code?

3. Describe operators used in the source code

4. What is the control structure used in the source code?

5. Draw the corresponding interface and give an output of the above source code

9.1. Types of Visual Basic Data

ACTIVITY 9.1

In every program, a programmer declares variables with their data types.

1. Explain why the declaration of variables is important during the writing of programs

2. What are the data types used in programs?

3. Discuss the storage size and range of values of data types used in programs.There exist many types of variables, but the most used in Visual Basic are:

• An elementary data type, such as Boolean, Long, or Decimal

• A composite data type, such as an array or structure

• An object type, or class, defined either in current application or in another application All the above types are grouped in two major data types: numeric data type and non-numeric data type.

9.1.1 Numeric data types

Numeric data types are types of data that consist of numbers, which can be computed mathematically with various standard operators such as add, minus, multiply, divide among others.

9.1.2 Non-numeric data types

Non- numeric data types are types of data that cannot be manipulated mathematically using standard arithmetic operators. The non- numeric data types comprise of text or string data types, the Date data types, the Boolean data types, Object data type and Variant data type.

Suffixes for literal

Literals are values that you assign to data. In some cases, we need to add a suffix behind a literal so that VB can handle the calculation more accurately. For example, we can use num=1.3089# for a Double.

In some cases, a literal can be forced to a particular data type; for example, when assigning a particularly large integral literal value to a variable of type decimal, the following example produces an error:

Dim myDecimal as Decimal

myDecimal = 100000000000000000000 ‘ This causes a compiler error. The error results from the representation of the literal. The Decimal data type can hold a value this large, but the literal is implicitly represented as a Long, which cannot.To make the previous example work, you can append the D type character to the literal, which causes it to be represented as a Decimal:

Dim MyDecimal AsDecimal = 100000000000000000000DSo, a suffix needs to be added behind a literal so that VB can handle the calculation more accurately. If a suffix is not added behind a literal, it generates a syntax error. For example, num = 2.3807# is used for Double data type. The Table 9.3 below shows Visual Basic Data Types and their suffixes or Appended type char-acter

Note: String literals are normally enclosed within double quotations while date and time literals are enclosed within two # sign. Strings can contain any characters, including num-bers. The following table summarizes the data types with their enclosing characters and appended type charactersTable 9.4: data types with their enclosing characters and appended type characters

APPLICATION ACTIVITY 9.1

1. What would happen if a programmer uses one of VB keywords (reserved words) as a variable identifier?

2. In a program, if a user declares an integer variable and enters a string like “book”, explain the nature of the results produced by such a program

3. Study the following VB source code, draw its corresponding interface and then give an output.

Form1.Show

Name1 = “ UWIHANGANYE”

phone = “ +250783297650”

Jour = #7/29/1996#

BithTime = #7:20:00 PM#

Text1.Text = Name1

Text2.Text = phone

Text3.Text = Jour

Text4.Text = BithTime

End Sub

9.2 Variables

ACTIVITY 9.2

1. Outline different rules of naming a variable in Visual Basic

2. Explain general format of variable declaration

3. Explain general format of variable initialization

4. Draw interface and write a VB program which asks a user for entering a radius of a circle to display the area of a circle after running the program as shown in figure 9.1. Consider pi as the constant whose numeric value 22/7.

A variable is a name assigned to a data storage location. It can also be defined as area allocated by the computer memory to hold data. Variables are used in Visual Basic to store various kinds of data during program execution.

9.2.1 Variable name

In Visual Basic Program, each variable must be given a name. To name a variable in Visual Basic, there is a set of rules to be followed.The rules used in naming variables in Visual Basic are:

• No more than 40 characters

• Variables must include letters, numbers and underscores ( ). No punctuation, spaces or other characters are permitted.

• A variable name must begin with a letter

• The name cannot be a reserved word (words needed by Visual Basic).

For example, End is a reserved word in Visual Basic and therefore should not be used as a variable name.Examples of valid and invalid variable names are displayed in the table below:

9.2.2 Variable declaration

They are three ways for declaration of a variable.

1. Default Declaration

If the variables are not implicitly or explicitly declared, they are assigned the variant (a var-iable that can hold data of any size or format) type by default. The variant data type is a special type used by visual basic that contains numeric, string or date data.For example: the following VB program finds the sum of two given numbers:

Private Sub Command1_Click()

Dim n1, n2, sum As Variant

n1 = Val(Text1.Text)

n2 = Val(Text2.Text)

n3 = n1 + n2Text3.Text = n3

End Sub

2. Implicit Declaration

To implicitly declare a variable, use the corresponding suffix. For example:

declaration way, Visual Basic will take care of ensuring consistency in upper and lower case letters used in variable names.

To explicitly declare a variable, its scope has to be firstly determined. There are four levels of scope are procedural level, static, form and module level, and last global level

These levels of scope progress from the narrowest (block) to the widest (namespace), where narrowest scope means the smallest set of code that can refer to the element without qual-ification.

a) Procedure level

With procedure level, variable are declared using the Dim statement Example:

Dim MyName As String

Dim MyInt As Integer

This is given to variables declared using the Dim reserved word within a block of statemet

Here, the variable can only exist and be used within the If ... Then ... Else statement. It is a local variable visible only inside the block where it has been declared.

b) Procedure level scope, static

In procedure level ,static, variables declared in this manner do not retain their value once a procedure terminate, within a procedure level, static variables are declared using the Dim statement

For example:

Private Sub End_click()

Static age As Integer

Static MyName As string

end sub

Note that

Dim can only exist and be used within the procedure or function. It is a local variable in that procedure or function.

• Procedure level variables declared in this manner do not retain their value once a pro-cedure terminates.

• To make a procedure level variable retain its value upon existing the procedure, replace the Dim keyword with Static

c) Form(module) level scope

The variable is declared in the General Declarations section at the start of the module. Form (module) level variables retain their values and are available to all procedures within that form.

Module level variables are declared in the declarations part of the general object in the form’s (module’s) code window. The Dim keyword is used.

Example1: Dim MyDate as Date

Example 2: a program which requires three numbers entered from keyboard then calcu-lates their sum and average.

Requirements to perform the asked question;Design interface containing five Text box with their corresponding labels and four com-mands representing sum, agerage clear and exit respectively least but not last assign prop-erties to each control and last attach code

VB Source code can look as follows :

d) Global level scope

This is given to variables declared using the public reserved word within a code module. The variable is declared in the General Declarations section at the start of the module. Glob-al level variables retain their value and are available to all procedures within an application.It is advisable to keep all global variables in one module. Use the Global or public keyword.

Examples: Global MyInt as Integer or Public MyInt as Integer
Notice that several variables can be declared in one statement without having to repeat the data type. In the following statements, the variables i, j, and k are declared as type Integer, l and m as Long, and x and y as Single:

Dim i, j, k As Integer
‘All three variables in the preceding statement are declared as Integer.
Dim l, m As Long, x, y As Single
‘In the preceding statement, l and m areLong, x and y are Single.

Variable initialization

Once a variable is declared, it does not have a defined value, hence it cannot be used until it is initialized by assigning it a value.
Thus, variable initialization is the process of providing or assigning value to the variable
Where Variablename is the descriptive name of the variable, = is the assignment operator and value is the value that a variable will contain.

9.2.4 Declaring Constants

constants is value in memory that does not change during program execution. For example, in mathematics, pi is a constant whose numeric value is 22/7.The declaration of a constant goes immediately with its initialization.

Syntax: Const constant name As data type = value

9.3 Scope of a variable

Learning Activity 9.1
As any other programming language, Visual Basic application acts on data stored in variables. Using internet and library textbooks, discuss different scopes of variables.

APPLICATION ACTIVITY 9.2

1. Study the given VB source code of a program that requires a positive integer and displays its factorial. To avoid possible memory overflow, replace the “fact” variable data type with an appropriate data type whose size can hold a large value.

2. Write a VB program that asks to enter a radius of a sphere and display its volume. Declare Pi as a constant variable and assign to it 22/7 value.
3. Write a VB program that requests the user to enter 2 numbers and displays their sum, difference and product.

The scope of a declared element is the set of all code that can refer to it without qualifying its name. It is an area of influence and lifetime for a variable. This means a period of existence dependent on where and how the variable is declared. An element can have scope at one of the following levels:

In Microsoft Visual Basic for Applications, the three scopes available for variables are private, module, and public.

9.3.1 Private (Local) Scope

A local variable with private scope is recognized only within the procedure in which it is declared. A local variable can be declared with a Dim or Static statement.
• When a local variable is declared with the Dim statement, the variable remains in existence only as long as the procedure in which it is declared is running. Usually, when the procedure is finished running, the values of the procedure’s local variables are not preserved, and the memory allocated to those variables is released.
• A local variable declared with the Static statement remains in existant the entire time Visual Basic is running. Local variable retains its value after the module has finished executing.

9.3.2 Module (Global) Scope

A variable that is recognized among all of the procedures on a module sheet is called a “module-level” variable. A module-level variable is available to all of the procedures in that module, but it is not available to procedures in other modules. A module-level variable re-mains in existence while Visual Basic is running until the module in which it is declared is edited. Module-level variables can be declared with a Dim or Private statement at the top of the module above the first procedure definition.

9.3.3 Public scope

Public variables have the broadest scope of all variables. A public variable, like a module-lev-el variable, is declared at the top of the module, above the first procedure definition. A pub-lic variable cannot be declared within a procedure. A public variable is always declared with a “Public” statement. A public variable may be declared in any module sheet.

APPLICATION ACTIVITY 9.3

Write a Visual Basic program which computes the sum and average of the three given integers using keyboard.To achieve this, follow the instructions below:
i. The program uses two different procedures addition () and moyenne ()
ii. Declare the 3 variables as local variables in addition () procedure
iii. Declare sum as global variable to hold the sum calculated by addition() procedure
iv. The moyenne () procedure calculates the average of three given integers and display it.

9.4 Operators and expressions in Visual Basic

ACTIVITY 9.4
1. Enumerate the various operators used in C++ programming language
2. What is the value of the following expression if x=10 and y=5?
3. Evaluate the following expression if A=10, B=5, C=0 and D=22(A AND B)OR(C OR D) AND A

In programming context, an operator is a symbol or a keyword that instructs a compiler to evaluate mathematical or logical expressions.A Visual Basic expression is a combination of operators and operands.
For example, in the expression: energy = mass * light_speed ^2
• Energy, mass ,light_speed and 2 are the operands while
• = is the assignment operator, * is multiplication operator and ^ the exponentiation arithmetic operator.

9.4.1 Arithmetic operators

The most common operators in Visual Basic are the arithmetic operators. Table 9.4 below gives a summary of arithmetic operators supported in Visual Basic.

Note that:
• Parentheses () can change the precedence
• To concatenate two strings, use the & symbol or the + symbol: txtSample.Text=”My country“+“is”+ “Rwanda” myname=”John” & “Mugabo”

9.4.2 Relational (Comparison) operators

Normally, they are used to compare data values and then the result helps to decide what action to take. The result of comparison operation is a Boolean value (True or False).

AND: An expression has a true value if both operands are true, and false value elsewhere
OR: An expression has a true value if at least one of the operand is true and false elsewhere.
Xor: An expression has a true value if both operand are different and has a false value if both operands are the same.
NOT: Negates Boolean operand

The following example of VB program illustrates the Not ,And,Or,and Xor operators

Note that The AndAlso Operator is very similar to the And operator, in that it also performs logical conjunction on two Boolean expressions. The key difference between the two is that AndAlso exhibits short-circuiting behavior. If the first expression in an AndAlso expression evaluates to False, then the second expression is not evaluated because it cannot alter the final result, thus AndAlso returns False.
Similarly, the OrElse Operator performs short-circuiting logical disjunction on two Boolean expressions. If the first expression in an OrElse expression evaluates to, then the second expression is not evaluated because it cannot alter the final result, and OrElse returns True.

9.4.3 Bitwise operators

Bitwise operations evaluate two integral values in binary (base 2) form. They compare the bits at corresponding positions and then assign values based on the comparison. Bitwise operators are similar to logical operators only that they are specifically used to manipulate binary digits.

Example:
Consider the expression below:
x = 5 Or 6
5 in binary form = 1016
in binary form = 110101
And 110 = 100

The bitwise And operator compares the binary representations, one binary position (bit) at a time. If both bits at a given position are 1, then a 1 is placed in that position in the result. If either bit is 0, then a 0 is placed in that position in the result. The result is treated as decimal. The value 100 is the binary representation of 4, so x = 4.
The bitwise Or operator takes a 1 and assigns to the result bit if either or both of the compared bits is 1.

Example: Consider the expression below:
x = 5 Or 6
101 (5 in binary form)
110 (6 in binary form)
111 (The result, in binary form)

The result is treated as decimal. The value 111 is the binary representation of 7, so x =7.
• Bitwise Not takes a single operand and inverts all the bits, including the sign bit, and assigns that value to the result. This means that for signed positive numbers, Not always returns a negative value, and for negative numbers, Not always returns a positive or zero value.

Example: Dim x As Integer
x = Not 5101 (5 in binary form) , its negation is 010The result is treated as decimal. The value 010 is the binary representation of 2, so x =2.
Bitwise Xor assigns a 1 to the result bit if exactly one of the compared bits (not both) is 1.

Example:Dim x As Integer
x = 5 Xor 6101 (5 in binary form)
110 (6 in binary form)
011 (The result, in binary form)The result is treated as decimal. The value 011 is the binary representation of 3, so x =3.

• The AndAlso and OrElse operators do not support bitwise operations.The following example of VB program illustrates the use of bitwise operators

9.4.4 Precedence of operators

When several operations occur in an expression, each part is evaluated and resolved in a predetermined order called operator precedence.
Precedence Rules:
When expressions contain operators from more than one category, they are evaluated ac-cording to the following rules:
• The arithmetic and concatenation operators have greater precedence than the comparison, logical, and bitwise operators.
• All comparison operators have equal precedence, and all have greater pre-cedence than the logical and bitwise operators, but lower precedence than the arithmetic and concatenation operators.
• The logical and bitwise operators have lower precedence than the arithme-tic, concatenation, and comparison operators.
• Operators with equal precedence are evaluated left to right in the order in which they appear in the expression
Just like in BODMAS, the order of precedence can be changed by use of parenthesis.

Note that:
• The string concatenation operator (&) is not an arithmetic operator, but in precedence it is grouped with the arithmetic operators.
• When operators of equal precedence appear together in an expression, for example multiplication and division, the compiler evaluates each opera-tion as it encounters it from left to right. The following example illustrates this.

APPLICATION ACTIVITY 9.4
1. Study the following program and determine the output after its execution

2. Perform bitwise And, Or and Xor on the following variables
a. S = 25, T = 31
b. X = 50, Y = 18

9.5. Decision structures in Visual Basic

Learning Activity 9.5
1. Discuss the use of decision control structures (If...Then, If... Then... Else, Nested If ... Then.... Else ...Statements) in Visual Basic programming
2. Using Visual Basic, write a program that prompts a user to enter a student’s score in Mathematics. If the score is above 45%, the program should display “Pass” otherwise it should display “Fail”

To implement an application in visual basic, you need several coding structures to control the program flow. The control structures are used to control the flow of execution of a pro-gram they are used in a program to repeat a set of operations (looping control structures), and for making decisions according to the conditions when a program is executing (deci-sion control structures). A decision structure will test a condition and then perform opera-tions depending on whether yes or not the condition is met (True or false).

9.5.1 Types of decision control structures

Decision control structures also known as selection control statements are conditional logic used when there is one or more options or alternatives to chose from. There are four types of decision control structures namely if...then, if...then else, nested if ....then else, and select case

A. If ..... Then statement

B. If .....Then ....Else statement
The If...Then...Else selection structure allows the programmer to specify that different ac-tions are to be performed when the condition is True than when the condition is False. If the condition is true, the first part of the if ...then is executed. However if the condition is false the block of the else statements is executed

The syntax of the If ...Then ...Else conditional statement is as follows:

C. Nested If ....Else statement
Nested If...Then...Else statement test for multiple cases by placing If...Then...Else selection structures inside If...Then...Else structures
The syntax of the Nested If ...Else

In using branching statements, be aware that each IF and Else If in a block is tested sequen-tially. The first time an If test is met, the code associated with that condition is executed and the If block is exited. If a later condition is also True, it will never be considered.
Example:
Write a program to read marks (per cent) of university students and put these students into classes according to their marks. Classes with their corresponding marks:
• From 80 to 100: First class honours
• From 70 to 79: Upper second class honours
• From 50 to 69: Lower second class honours
• From 40 to 49: Pass
• Below 40: Fail

Solution:

APPLICATION ACTIVITY 9.5
1. Create a simple program which will ask a user to input a value.
• If the value is 1 it should display the text “The day is Monday”
• If the value is 2 it should display the text “The day is Tuesday”
• Do this for all the days of the week.
• Use the Nested If...Then ...Else structure to achieve the above.
2. Write a VB program that would enable the user to enter student marks in three subjects. The program should calculate mean marks and determine whether the student has passed if the pass mark is 50%
3. Observe the following interfaces and write a visual basic program using various mathematical functions like sqrt, sqr, sin, cos, tan.\

Hint: Once the user enters any value in the first Textbox and selects any option, the output will be displayed in second TextBox, if the user enters a negative number and selects the sqrt option he/she will be informed that the square root of a negative number does not exist and once he or she does not select any option he/she will be informed to select any of available option.

D. Select case statement

Learning Activity 9.6

1. Discuss the use of Select case statement as decision control in Visual Basic programming
2. Create a simple program which will ask a user to input a value.
• If the value is 1 it should display the text “The month is January”
• If the value is 2 it should display the text “The month is February”
• If the value is 3 it should display the text “The month is March”
• If the value is 4 it should display the text “The month is April”
• Do the same for all months of a year
• Use the Select case statement to achieve the above

Select...Case structure is an alternative to nested If...Then...Else for selectively executing a single block of statements from among multiple block of statements. If the “case” matches the condition is selected and all instructions within the matching case are executed. Select...case is more convenient to use than the If...Else...End If.The general format is:

Each possible value of the item is checked using a Case statement followed by one or more Visual Basic statements that will be carried out if there is a match for that value. The final part of the structure is usually a Case Else statement to be executed if none of the above values match. This is useful for informing the user that he /she is out of cases.

Example 1: A Visual Basic program that displays the Grade according to the marks entered by students:

Example 2: Application to assign grade (comment) to students depending upon the marks they’ve got.

APPLICATION ACTIVITY 9.6

1. Write a VB program that displays the comment according to the entered student’s grade

2. Write a VB program that allows a user to enter two floating point number from the keyboard and it requests a user to enter his/her preference in order to perform one operation from (addition, subtraction, multiplication and division) operation’s menu. The program will display the result of an operation.

Interface of your program should be similar to the following:

9.6 Repetition structures

Learing Activity 9.7
3. With an example, explain the use of the following loops in Visual Basic programming:
• Do While Loop
• Do Until.... Loop
• While loop
• For loop
4. Write a program that prints the numbers divisible by 5 and 3 in the range from 1 to 205. Using Do ... Loop While, write an application that prints not divisible by 5 in the range from 1 to 10

Repetitions also known as iterations or loops are structures that allow a statement or group of statements to be carried out repeatedly while some conditions remain true (or for a specified number of times)
They are two basic iteration structures:
a. Pre-test iterations: in these loops, the condition to be met occurs at the beginning of the loop and the code will not run at all if the condition is never met. This can be implemented using: For ... Next, Do While .... Loop, Do Until ... Loop and While ... Wend loop
b.Post –test iterations: in these loops, the condition to be met is at the end of the loop so that the code always runs at least once. This can be implemented using the: Do ... Loop While, Do ... Loop Until
Visual Basic supports two types of loops which are indeterminate loops and determinate loop

9.6.1 Indeterminate loops

These are loops which repeat until a predetermined goal is achieved. Repeating until some initial conditions change. The Indeterminate loops supported in VB are the following:

i. Do While ... Loop

When Visual Basic executes this Do While ... Loop, it first tests condition. If condition is False, it skips past all the statements. If it’s True, Visual Basic executes the statements and then goes back to the Do while statement and tests the condition again. Consequently, the loop can execute any number of times, as long as condition is True. The statements never execute if initially is False.

Example: a visual basic program to find the sum of number from 0 to 100

ii. Do Until ... Loop

Unlike the Do While...Loop and While...end loop structures, the Do Until... Loop structure tests a condition for falsity. Statements in the body of a Do Until...Loop are executed re-peatedly as long as the loop-continuation test evaluates to False. The general format is:

ii. While .... Wend

A While...Wend statement behaves like Do While...Loop statement. It executes a set of VB statements till the condition evaluates to true.

iv. Do ... Loop While

The Do...Loop While statement first executes the statements and then test the condition after each  execution.

The programs executes the statements between Do and Loop While structure in any case. Then it determines whether the number is less than 20. If so, the program again executes the statements between Do and Loop While, else exits the Loop.

v. Do ... Loop Until

The general format is:

Figure 9.21: Loop results

APPLICATION ACTIVITY 9.8

1. By using:
• Do While.... Loop
• While ...Wend loop
• Do ... Loop Until

Write a VB program that computes the sum of even numbers from 0 to 50.2. Write a VB program that displays the product of even numbers and product of odd numbers between 1 to 15 numbers.

9.6.2 Determinate loop

ACTIVITY 9.9
1. Give and explain the syntax of for... Next loop in VB2. Write a program that reads a number from user and displays the table of that number.
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6

. . . . .
2 X 9 = 18
2 X 10 = 20

This loop repeats a set of operations a fixed number of times. The common used terminate loop is For ....next loop.

In this syntax statement, For, To, and Next are required keywords, and the assignment oper-ator is required. First, you replace variable with the name of a numeric variable that keeps track of the current loop count. Next, you replace start and end with numeric values that represent the starting and stopping points for the loop.
The line or lines between the For and Next statements are the instructions that repeat each time the loop executes.For...Next loop structure handles all the details of counter-controlled repetition
Example 1: Suppose you want to print the numbers from 1 to 10.The following lines of codes can be used in procedure.

Example 2: VB application to display the multiplication tables of 5

User interface:

Creating Loops with a Custom Counter

You can create a loop with a counter pattern other than 1, 2, 3, 4, and so on. First, you specify a different start value in the loop. Then, you use the Step keyword to increment the counter at different intervals. In this case the syntax for a For...Next loop looks like the following:
For counter = initial To End Step [Increment]

One or more VB statements

Next [counter]

The arguments counter, start, end, and increment are all numeric. The increment argu-ment can be either positive or negative. If increment is positive, start must be less than or equal to end or the statements in the loop will not execute. If increment is negative, start must be greater than or equal to end for the body of the loop to execute. If step isn’t set, then increment defaults to 1.

The VB source code above prints this sequence of numbers: 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49
Specifying Decimal Values You can also specify decimal values in a loop. For example:
For i = 1 To 2.5
Step 0.1
Print i
Next i
The program above prints this sequence of numbers as follow:

Note that:The exit statement allows you to exit directly from For Loop and Do Loop. Exit For can appear as many times as needed inside a For loop, and Exit Do can appear as many times as needed inside a Do loop (the Exit Do statement works with all versions of the Do Loop syntax).

Sometimes the user might want to get out from the loop before the whole repetitive pro-cess is executed; the command to use is Exit For to exit a For.....Next Loop or Exit Do to exit a Do... Loop, and you can place the Exit For or Exit Do statement within the loop.The exit keyword in loop control statement is used as break Jump control statement in other programming languages to terminate prematurely the loop.

a) Exit For
The format is:
For counter= start To end step (increment)
Statements
Exit for
Statement
Next counter

Nested Loops
• The nested loops are the loops that are placed inside each other.
• The most inner loop will be executed first, then the outer ones.
• Nested loops are very useful when there is a requirement to generate differ-ent kinds of patterns as output.

For Each loop
The For Each loop is a scope that defines a list of statements that are to be repeated for all items specified within a certain collection/array of items.
The For Each loop, as compared to the For loop, can’t be used to iterate from a range of values specified with a starting and ending value.

Syntax of a For Each Loop:

For each variable in Items
Vb codes
Next variable
Where:Variable is the iterating variable which is used to iterate through the elements of the col-lection or array
Items: a collection or array of items
Next: closing statement for the loop. Optionally you can specify the Iterator variable

APPLICATION ACTIVITY 9.9
1. Study the following program in Visual Basic and write its output:

2. Write a VB program to display the following sequence of numbers 100,80,60,40,20,0
3. Write a VB application that prints the numbers divisible by 5 or 3 but not both in the range from 1 to 20

END UNIT ASSESSMENT

1. Write a VB program to calculate the values of the following arithmetic operation if the user inputs two numbers M and N into two separate text boxes
a. M^Nb.
b.M\Nc.
b.M Mod N
2. Build an application to calculate the volume of the cylinder
3. Differentiate nested if to switch case decision control structures
4. Write a VB application that prints the numbers divisible by 5 or 3 in the range from 1 to 20
5. Write a VB program that displays odd numbers between 1 to 30 numbers
6. Design an application to compute the sum of the first “N” natural numbers.
7. Draw an interface and write a VB application to check if a given number is prime or not.

• Key Unit Competency:
to be able to create, build and run a java console program

Introductory activity

1. Explain the following terms in computer programming:

a) Computer Programming           b) Programming language

c) High-level language                 d) Low-level language

2. Discuss the following OOP concepts:

a) Abstraction               c) Encapsulation

b) Polymorphism          d) Inheritance

3. Explain the following concepts in programming

a) Compile and run program

b) Programming Environment        c) Basic Syntax      d) Data Types

d) Variables                                     e) Keywords           f ) Basic Operators

g) Decision Making         h) Loops

10.1. Concepts of Java Programming

Learning Activity 10.1

1. Define a java in Programming language

2. Discuss on invention and advantages of java.

10.1.1. Definition

Java is a computer programming language. It enables programmers to write computer instructions using English-based commands instead of having to write in numeric codes. It is known as a high-level language because it can be read and written easily by humans

10.1.2. Invention

Java is a general purpose, high-level programming language developed by Sun Microsystems. The Java programming language was developed by a small team of engineers, known as the Green Team, who initiated the language in 1991. The Java language was originally called OAK, and at the time it was designed for handheld devices and set-top boxes. OAK was unsuccessful and in 1995 Sun Microsystems changed the name to Java, which has built-in support to create programs with a Graphical User Interface (GUI), utilizes the Internet, creates client-server solutions, and modified the language to take advantage of the burgeoning (developing quickly) World Wide Web. The latest release of the Java Standard Edition is Java SE 8. With the advancement of Java and its widespread popularity, multiple configurations were built to suit various types of platforms. For example: J2EE for Enterprise Applications, J2ME for Mobile Applications. The new J2 versions were renamed as Java SE, Java EE, and Java ME respectively. Java is
guaranteed to be Write Once, Run Anywhere. A variant of Java programs called applets can be embedded inside a web page and execute on the computer that is viewing the page, automatically and in a secure environment.

Application Activity 10.1.

Discuss the difference between Java Programming and C/C++ programming languages in

10.2. Platforms of JAVA Program

Learning Activity 10.2.

Search and discuss about the following in Java Environment:

1. Platform and Platform independent

2. Java Virtual Machine (JVM)

3. Java Runtime Environment (JRE) vs. Java Development Kit (JDK)

10.2.1 JRE & JDK & JVM

The Java platform is the name given to the computing platform from Oracle that helps users to run and develop Java applications. The platform does not just enable a user to run and develop a Java application, but also features a wide variety of tools that can help developers work efficiently with the Java programming language.

The platform consists of two essential pieces of software:

Java Runtime Environment (JRE): Thisis the environment within which
the java virtual machine runs. JRE contains Java virtual Machine (JVM),
class libraries, and other files excluding development tools such as compiler
and debugger. Note: The JRE takes care of running the Java code on
multiple platforms, however as developers, we are interested in writing
pure code in Java which can then be converted into Java byte-code for
mass deployment
Java Development Kit (JDK), which is needed to develop those Java applications and applets( a small dynamic Java program that can be transferred via the Internet and run by a Java-compatible Web browser). If you have installed the JDK, you should know that it comes equipped with a JRE as well. JDK contains everything that JRE has along with development tools Such as compiler debugger etc.

• The Java platform consists of the Java Application Programming Interfaces (APIs) and the Java Virtual Machine (JVM). Java APIs are libraries of compiled code that you can use in your programs.

• Any program uses Java API to print a line of text to the console.

• The console printing capability is provided in the API ready for programmers to use; programmers supply the text to be printed. Java programs are run (or interpreted) by another program called the Java VM, for the native operating system. Any computer system with the Java VM installed
can run Java programs regardless of the computer system on which the
applications were originally developed. For example, a Java program developed on a Personal Computer (PC) with the Windows NT operating system should run equally well without modification on
Macntosh computer running Mac OSx operating system, and vice versa.

Application activity 10.2.

Discuss the difference between JVM vs JRE vs JDK

10.3 Write, Compile and run a java Program

Learning Activity 10.3.

1. Using internet, Search and install step by step the environment of java.

2. Observe and interpret the following picture:

10.3.1 Create a java program

Before writing and running the simple Java program, there is a needto install and to configure
the Java platform. Which is available free of charge from the Java web site.(for example
NetBeans IDE 8.0 or NetBeans IDE 8.2 )
The first application, HelloWorldApp, will simply display the greeting “Hello World!” To create
this program, the following steps must be respected

Create an IDE (Integrated Development Environment) project: Creating an IDE project means creating an environment in which to build and run the applications. Using IDE projects eliminates configuration issues normally associated with developing on the command line. Build or running an application can be done by choosing a single menu item within the IDE.

a) Launch the NetBeans IDE.

• On Microsoft Windows systems, use the NetBeans IDE item in the Start menu.

• On Solaris OS and Linux systems, execute the IDE launcher script by
navigating to the IDE’s bin directory and typing. /netbeans.

• On Mac OS X systems, click the NetBeans IDE application icon.

In the New Project wizard, expand the Java category and select Java Application as shown
in the following figure:

In the Name and Location page of the wizard, do the following (as shown in the figure
below):

• In the Project Name field, type HelloWorldApp.

• In the Create Main Class field, type helloworldapp.HelloWorldApp.

• Then click the button Finish in the figure below.

The project is created and opened in the IDE. In the next figure, there are the main components
of the environment
• The Projects window, which contains a tree view of the components of the project, including source files, libraries that the code depends on, and so on.

• The Source Editor window with a file called HelloWorldApp.java open.

• The Navigator window, used to quickly navigate between elements within the selected class.

Add Code to the Generated Source File: A source file contains code, written in the Java
programming language, that programmers can understand. As part of creating an IDE project,
a skeleton source file is automatically generated and the source file is then modified to add the “Hello World!” message. When this project was created, the Create Main Class checkbox was left selected in the New Project wizard. The IDE has therefore created a skeleton class for the programmer. The «Hello World!» message is added to the skeleton code by replacing the line:
// TODO code application logic here
With the line:

These four lines are a code comment and are not affecting how the program runs. Later
sections of this unit explain the use and format of code comments.
Notice that Java programming is case sensitive. It means that “a” is different from “A”, helloWorldApp
is also different fromHelloWorldApp.

After adding the code, the remaining action is to Save the changes by choosing
File | Save.

The file should look something like the following:

10.4. Compile the Source File into a .class File

The IDE invokes the Java programming language compiler (javac), which takes the source
file and translates its text into instructions that the Java virtual machine can understand. The instructions contained within this file are known as byte codes.To compile the source file, choose Run | Build Project (Hello World App) from the IDE›s main menu. The Output window opens and displays output similar to what is seen in the following figure:

program is successfully compiled. If the build output concludes with the statement BUILD
FAILED, there is probably a syntax error in the code. Errors are reported in the Output window as hyperlinked text. To navigate to the source of an error, double-click such a hyperlink. After fixing the error, once again choose Run | Build Project.

10.5 Running the Program

The IDE invokes the Java application launcher tool(java), which uses the Java virtual machine
to run your application. From the IDE’s menu bar, choose Run | Run Main Project.
The result is displayed in the next figure.

10.5.1 Syntax of a java program
class class_name
{
public static void main(String[] args)
{
// java code goes here
}
}
Explanation of the syntax

i. class : class keyword is used to declare classes in Java

ii. public : It is an access specifier. Public means this function is visible to all.

iii. static : static is again a keyword used to make a function static. To execute a static function you do not have to create an Object of the class. The main() method here is called by JVM, without creating any object for class.

iv. void : It is the return type, meaning this function will not return anything.

v. main : main() method is the most important method in a Java program. This is the method which is executed, hence all the logic must be inside the main() method. If a java class is not having a main() method, it causes compilation error.

vi. String[] args : This represents an array whose type is String and name is args. We will discuss more about array in Java Array section.

Application activity 10.3

1. Type The program prints “Hello World!”, then compile and run it.

2. Add a print statement to display the sentence “How are you?” Compile and run the program again.

3. Add a comment to the program (anywhere), recompile, and run it again. The new comment should not affect the result.

4. Write a program in Java that after compilation and execution will display the messages: “Unity and Peace are the engines of development in Rwanda” and “Rwanda is a Knowledge Based Society”.

10.5.2 Variables and Data types in Java

Learning activity 10.4.

1. Discuss about data type in term of Definition and Classification

2. Using internet search a variable in java and how is declared.

3. Given two integer x= 5; y= 4; write a java program which is calculate and display the sum of these two integers.

The declaration of variables necessitates always specifying their types. Variables cannot exist without types and vice versa. One of the most powerful features of a programming language is the ability to define, declare and to manipulate variables.
For example, String message;
This statement is a declaration, because it declares that the variable named message is of type String. Each variable has a type that determines what kind of values it can store

A. Data type

Data type is a classification of data which tells the compiler or interpreter how
the programmer intends to use the data. Most programming languages support
various types of data, for example: real, integer or Boolean.

Classification of Java Data type

i. Primitive Java Data Types

There are eight primitive data types supported by Java and are predefined by the language
and named by a keyword. They are presented in the following table.

ii. Reference Data types or Objects

Reference variables are created using defined constructors of the classes. They are used to
access objects. These variables are declared to be of a specific type that cannot be changed.
For example, employee, puppy, etc.

• Class objects and various types of array variables come under reference data type.

• Default value of any reference variable is null.

• A reference variable can be used to refer any object of the declared type or any compatible type.

Example: Animal animal = new Animal(“giraffe”);

B. Variable in Java

A variable is a storage location (like a house, a pigeon hole, a letter box) that stores a piece
of data for processing. It is called variable because you can change the value stored inside.
More precisely, a variable is a named storage location, that stores a value of a particular
data type.

The syntax for declaration of variable is as follow:
data_type variable_name;

Examples

To declare an integer variable named x, simply type:
int x
String message = “Hello!”;
int hour = 11;
int minute = 59;
Normally, the used names for variables should help to guess what will be the different values
to assign to them.
Example
String firstName, lastName;
int hour, minute;
Sometimes a variable is initialized by assigned to it for the first time value before it can be used or it a variable can be assigned assign a value later, as in the previous example. It is also possible to declare and initialize on the same line.

Printing variables

The value of a variable can be displayed by using the functions print or println. The following
statements declare a variable named firstLine, assign it the value “Hello, again!”, and

The output of this program is: The current time is 11:59.

Application activity 10.4

Write a program where you declare the variables firstname, lastname, age, level
and com bination. This program should display like this: John Ntwali is 18
years old and in senior 5 of MPC

10.5.3 Types of Variables in Java

Learning activity 10.5

1. Is a variable declared visible always in all parts of the program? Explain
why and give the different types.

In terms of visibility of variables in a program, there are three types of in Java namely local variable, instance variable and class variable.
1. Local Variables

This type of variable has the following characteristics:
• Local variables are declared in methods, constructors, or blocks.

Local variables are created when the method, constructor or block is entered and the variable will be destroyed once it exits the method, constructor, or block.

• Access modifiers cannot be used for local variables.

• Local variables are visible only within the declared method, constructor, or block.

• Local variables are implemented at stack level internally.

• There is no default value for local variables, so local variables should be declared and an initial value should be assigned before the first use. Example: Here, age is a local variable. This is defined inside pupAge() method and its scope is limited to only this method.

2. Instance Variables

The variables defined within a class or method is called instance variables because each instance
of the class (that is, each object of the class) contains its own copy of these variables. Thus, the data for one object is separate and unique from the data for another. An instance variable can be declared public or private or default (no modifier).To avoid that the variable’s value is changed out-side its class, it should be declared as private. Public variables can be accessed and changed from outside of the class. The syntax is shown below given below:

private int doors;

Whereby:

“private” is an access modifier
“int” is data type
doors is an identifier
These variables belong to the instance of a class, thus an object. And every instance of thatclass (object) has it’s own copy of that variable. Changes made to the variable don’t reflect in other instances of that class.

3. Class or static variables

These are also known as static member variables and there›s only one copy of that variable that is shared with all instances of that class. If changes are made to that variable, all other instances will see the effect of the changes.
Public class Product{
Public static int Barcode;
}

10.5.4 Java keywords

Keywords are words that have already been defined for Java compiler. They have special meaning for the compiler. Java Keywords must be in your information because you cannot use them as a variable, class or a method name. Java keywords are categorized as datatypes and access modifiers

A. Data types

All predefined datatypes in java are keywords eg. int, char, bool, double, float, and String

B. Java access modifiers

Modifiers are keywords that are added to change meaning of a definition. In Java, modifiers are categorized into two types,

• Access control modifier

• Non Access Modifier

1) Access control modifier

Java language has four access modifiers to control access levels for classes, variable methods
and constructors.

• Default : Default has scope only inside the same package

• Public : Public has scope that is visible everywhere

• Protected : Protected has scope within the package and all sub classes

• Private : Private has scope only within the classes

2) Non-access Modifier

Non-access modifiers do not change the accessibility of variables and methods, but they do
provide them special properties. Non-access modifiers are of 5 types,

• Final

• Static

• Transient

• Synchronized

• Volatile
1) Final: Final modifier is used to declare a field as final i.e. it prevents its content from being modified. Final field must be initialized when it is declared. Final keyword can be used with a variable, a method or a class.

2) Static Modifier: Static Modifiers are used to create class variable and class methods which can be accessed without instance of a class.

3) Synchronized modifier: When a method is synchronized it can be accessed by only one thread at a time.

4) Volatile modifier: Volatile modifier tells the compiler that the volatile variable can be changed unexpectedly by other parts of the program. Volatile variables are used in case of multithreading program. volatile keyword cannot be used with a method or a class. It canbe only used with a variable.

5) Transient modifier: When an instance variable is declared as transient, then its value
doesn’t persist when an object is serialized

10.5.6 Java Expressions

Expressions are essential building blocks of any Java program, usually created to produce
a new value, although sometimes an expression simply assigns a value to a variable.
Expressions are built using values, variables, operators and method calls.

Types of Expressions

While an expression frequently produces a result, it doesn’t always. There are three types of
expressions in Java:

• Those that produce a value, i.e. the result of (1 + 1), Expressions that produce a value use a wide range of Java arithmetic, comparison or conditional operators.
For example, arithmetic operators include +, *, /, <, >, ++ and %.

• Those that assign a variable, for example v = 10

• Those that have no result but might have a “side effect” because an expression can include a wide range of elements such as method invocations or increment operators that modify the state (i.e. memory) of a program. Example: This program here contains plenty of expressions

Application Activity 10.5

Look at the following three groups of statements and predict the outputs

10.6. Elements of Java source file

Learning Activity 10.6.

1. Refer to the numbers in above figure; explain the different parts of this program.

2. Following the above figure, write a program with a class that has more than one property.

• Unit11: OOP AND JAVA

Key Unit Competency: To be able to use objects to manipulate data in Java program

Introductory Activity

Observe the above picture and answer the following questions.

1. Briefly, discuss the object oriented programming paradigm.

2. Find defined classes.

3. What are the data members for each class?

4. What are the member functions for each class?

5. What do you understand by instance of a class?

6. Create 2 instances of student class

7. Using Java, declare Student class in Java?

11.1. Classes vs Objects in Java

Learning Activity 11.1

Write the above program in your computer and run it. After analyzing the result, answer the following questions:

1. Give the output of the program?

2. What are new keywords in the above program?

3. Describe the structure of the part starting with the word class.

4. List the data members contained in the class “student”

5. What are the functions found in the above program?

6. What is the role played by the keyword new in the above program?

11.1.1 Class in Java

a. Definition

A class is an entity that determines how an object will behave and what the object will contain. In other words, it is a blueprint or a set of instruction to build a specific type of object or a class is a group of objects which have common properties.

b.  Syntax to declare a class:

c.  General form of a class

A class is declared by the use of the class keyword. A simplified general form of a class definition is shown here:

11.1.2. Object in Java

An object is nothing but a self-contained component which consists of methods and properties to make a particular type of data useful. Object determines the behavior of the class. From a programming point of view, an object can be a data structure, a variable or a function. It has a memory location allocated. The object is designed as class hierarchies.

a.  Syntax of an object

ClassName ReferenceVariable = new ClassName();

b.  Reference variable

An object can be accessed only through a reference variable. A reference variable is declared to be of a specific type and that type can never be changed.

Reference variables can be declared as static variables, instance variables, method parameters, or local variables. A reference variable that is declared as final can’t never be reassigned to refer to a different object. The data within the object can be modified, but the reference variable cannot be changed.

• Object initialization through reference Variable:

Initializing simply means storing data into object Example 1: Below is the example where class student is created, new keyword and the reference variable are used

Example:  We can also create multiple objects and store information in it through reference variable

• Object initialization through method in Java Language

Two objects of Student class are going to be created and initialized with the value by invoking the insertRecord method. The state (data) of the objects are displayed by invoking the displayInformation() method.

Example: The use of method in Java program

Example: Example that maintains the records of Rectangle class.

Application Activity 11.1

1. What do you understand by object instantiation?

2. What is the difference between a class and an object?

3. What is the role of a method in java program?

4. Discuss why main () method is public, static and void in java?

5. What is meant by the terms instance variable and instance method?

11. 2 Constructor in Java

Learning activity 11.2

Write the above program in your computer and run it. After analyzing the result, answer the following questions:

1. What is the output of the above program?

2. Discuss the difference between class district and the function district ()?

3. Why the function district () does not have a return type?

11.2.1. Understanding constructor in Java

a.  Definition

A constructor is a special method of a class that initializes an object of that type. A constructor is an instance method that usually has the same name as the class and can be used to set the values of the members of an object, either to default or to user-defined values

A Constructor is a special type of method which is used to initialize the object. It is called constructor because it constructs the values at the time of object creation. It is not necessary to write a constructor for a class. It is because java compiler creates a default constructor if the class doesn’t have any.

Every time an object is created using new () keyword, at least one constructor is called. It is called a default constructor.

There are two (2) ways of creating a constructor: explicit and implicit: • Explicit means that the constructor is created by the programmer. • Implicit means that the creation of a constructor was done by the Java Virtual Machine or the tool, not the Programmer.
Java will provide default constructor implicitly even if the programmer doesn’t write the code for constructor. It is called default constructor. The explicit is opposite to this implicit which means that the programmer has to write a constructor. Example: The program below maintains records of employees.

• ##### Key Unit Competency: to be able to use stream, reader and writer in java

Introductory activity

Teacher Ntwari prepared examination at the District level and he saved the examination in My Documents folder under File name” district Examination”. One of the questions is to calculate the following quadratic equation x2-7x=0

1. Explain the path that should be used to access the file contents.

2. Solve the above quadratic equations using java programming language.

3. How many variables needed to solve the above quadratic equation if you need to run it with java programming language?

12.1. Introduction to IO Streams

Learning activity 12.1

1. Discuss the steps to be followed if you are requested to write a program that will calculate and display the sum of 10 numbers that you need to provide during the execution of the program.

The term stream refers to a sequence of values from any input source of data (key-board, file, port, and so on), or to any output destination for data (screen, file, port, and so on).

They are,

1. Byte Stream : It provides a convenient means for handling input and output of byte.

2. Character Stream : It provides a convenient means for handling input and output of characters.

12.1.1.Definition of Input Stream

The Input Stream is an abstract class that describes stream input. In Java programming language the Input Stream is used to read data from a source.

This class defines several methods among which include read() that reads byte of data

12.1.2.Definition of Output Stream

Output stream is an abstract class that describes stream output. In Java programming language, the Output Stream is used for writing data to a destination.This class defines several methods among which include write() that reads byte of data

12.1.3 Role of I/O Stream

IO Streams provide convenient ways of handling data input and output in a java program. While writing java programs, three IO objects are provided implicitly for performing data Input and Output.

They are;

• System.in (input stream)

• System.out (output stream for normal results)

• System.err (output stream for error messages)Generally System.in is connected to the keyboard and inputs character data*, and System.out and System.err are connected to the monitor and output character data.

Application activity 12.1

1. What is a stream and what are the types of Streams and classes of the Streams?

2. Differentiate the following terms:

a. System.in and System. out

b. output stream and input stream

12.2. Input Stream, Output Stream and File Stream

Learning activity 12.2

From the previous lessons in this unit, we have learned the standard I0 stream in Java. Write and Discuss in groups the source code program allows user to calculate area of any given triangle if base and height that are entered through the keyboard and print the area

The goal of Input Stream and Output Stream is to abstract different ways to input and output: whether the stream is a file, a web page, or the screen shouldn’t matter. All that matters is that information is received from the stream (or send information into that stream.)

12.2.1 Output Stream

Java application uses an output stream to write data to a destination, it may be a file, an array, peripheral device or socket.

Code of Printing “WELCOME WORLD” without advancing to a new line

System.out.print(“ WELCOME WORLD”);

Code of Printing “WELCOME WORLD “ and advance to a new line.

System.out.println(“ WELCOME WORLD”);

12.2.2. Input Stream

Java application uses an input stream to read data from a source, it may be data, a file, and an array. There are different input stream classes that can be applied to input data from user.

• scanner()

• DataInputSteam()

a. Using Scanner class.

Java has a number of predefined classes which can be used. Predefined classes are organized in the form of packages. A Package can be defined as a grouping of related types (classes, interfaces, enumerations and annotations) providing access protection and namespace management.

In Java, data can be input with the help of the Scanner class. This Scanner class is found in java.util package. So, to use the Scanner class, java.util package needs to be included first in the program. Apackage is included in a program with the help of import keyword. The java.util.Scanner class or the entire java.util package are then imported.

The advantage of using Scanner class is that it provides convenient methods for capturing primitives (nextInt(), nextFloat(), ...) from input devices whereas its disadvantage is that reading methods are not synchronized .

To import a class or a package, one of the following lines should be added to the very be-ginning of the code.

import java.util.Scanner; // This will import just the Scanner class

import java.util.*; // This will import the entire java.util package

After importing, the following statement will be valid when written in the program.

Scanner k = new Scanner (System.in);Scanner k, here K is declared as an object of Scanner class. System.in within the round brackets tells Java that this will be System Input i.e. input will be given to the system.

The main purpose of the Scanner class is to parse primitive types and strings using regular expressions, however it can also be used to read input from the user in the command line. Here is an example:

Example 1: a program that asks to enter numbers from the keyboard and displays those numbers on the screen

n= s1.nextInt(); s1.nextInt() will take integer input from the user and it assigns it to n. . So, this statement will be like n = 14; when user entered 14.

Similarly, values of other data types can be also input . Same as nextInt() is used to input an integer value, other methods s in table 12.1 will be used to input those values.

Java Buffered Reader class is used to read the text from a character-based input stream. It can be used to read data line by line by read Line() method. It makes the performance fast. It inherits Reader class.

System.out.println(“Your name is: “ + name);

In the above example, the readLine() method reads a line of text from the command line.

Advantages: The input is buffered for efficient reading and its disadvantage is that the wrapping code is hard to remember.

Example of program using Buffered Reader

Notice that a “keyboard object” for reading from the console keyboard can therefore be instantiated as follows:

The intermediate variable inStreamcould be eliminated and it can be done in one step like this:

c. Data Input Stream

InputStream uses read Line() method of DataInputStream to read data from the keyboard. Java InputStreams are used for reading byte based data, one byte at a time.

The following example describes how to use datainputstream wtih different data types

Example 1

Example 2

Explanations:

The readLine() method of DataInputStream reads a line at a time and returns a string, irrespective of what the line contains. Depending on the input value, the string is to be parsed into an int or double etc. This is extra work in the keyboard reading when compared to C/C++. In C/C++, parsing is done implicitly by %d, %f, etc.

What is “System.in”?

“ in” is an object of “ InputStream” class defined in System class (like “out” is an object of PrintStream class defined in System class). It is declared as static and final object. The in ob-ject is connected implicitly to the “ standard input stream” of the underlying OS.

DataInputStream dis = new DataInputStream(System.in);

System.in is a byte stream which is automatically connected to the keyboard reading mech-anism of operating system. It is chained to DataInputStream to facilitate the reading of user input with its readLine() method.

Like System.in is connected to the keyboard mechanism of OS, the System.out is connected to the standard output mechanism of OS.

Application Activity 12.2

1. Write a java program that allows the user to enter three integers and that displays their sum

2. Write a java program asking the user to enter a number and print its factorial.

3. Write a java program that allows the user to enter the age of KARENZI, SINGIZWA and MPORE and print the youngest ( use Scanner , input stream and console)

12.3 File Streams

a. 1 File Input Stream

This File Input Stream is used for reading data from the files. Objects can be created using the keyword new and there are several types of constructors available.

The following constructor takes a file name as a string to create an input stream object to read the file:

InputStreamf=newFileInputStream(“C:/java/hello”);

The following constructor takes a file object to create an inputstream object to read the file.

First a file object using File()methods created as follows:

Filef=newFile(“C:/java/hello”);

InputStreamf=newFileInputStream(f );

Once Input Stream object i s in hand, then there is a list of helper methods which can be used to read from the stream or to do other operations on the stream.

Methods used for file Input Stream

1. public void close() throws IO Exception{}: This method closes the file output-stream. Releases any system resources associated with The file. Throws an IO Exception

2. protected void finalize()throws IO Exception{}: This method cleans up the connection to the file. It ensures that the close method of this file output stream is called when there are no more references to this stream. It throws an 10 Exception.

3. public intread(intr)throws IO Exception{}: This method reads the specified byte of data from the InputStream and returns the next byte of data and-1will be returned if it is end of file.

4. public intread(byte[]r)throws IO Exception{}: This method reads r.length bytes from the inputstream into an array. I t r eturns the total number of bytes read. If end of file -1 will be returned.

5. Public int available() throws IO Exception{}: Gives the number of bytes that can be read from this file input stream. It returns an integer.

12.3.1 File Output Stream:

File Output Stream is used to create a file and write data into it. The stream would create a file, if it doesn’t already exist, before opening it for output.

a. File output stream constructors

The following constructor takes a file name as a string to create an output stream object to write the file:

OutputStream f=new FileOutputStream(“C:/java/hello”)

The following constructor takes a file object to create an outputstream object to write the file. First, a file object using File()method is created as follows:

Filef=newFile(“C:/java/hello”);

OutputStream f=newFileOutputStream(f );

Once the OutputStream object is in hand,then there is a list of helper methods,which can be used to write to stream or to do other operations on the stream.

b. File output stream methods

1. public void close() throws IO Exception{}: This method closes the file output stream. Releases any system resources associated with the file.Throws an IO Exception.

2. protected void finalize()throws IO Exception{}: This method cleans up the connection to the file. Ensures that the close method of this file output stream is called

• File: 1