0% found this document useful (0 votes)
70 views

Third Year Project Report: Department of Software Engineering Microlink Information Technology College

This document is a third year project report submitted by 5 students at Microlink Information Technology College for their degree in software engineering. It describes the development of an application called "Application That Helps Kids Learn Programming" (AHKLP). The report includes chapters covering the system requirements specification, system design, system implementation and testing, and conclusions. It provides details on the project scope, user interface design, sample code, and responsibilities of the group members. The project aimed to create an application to help kids learn programming concepts through a visual interface.

Uploaded by

Alexo MK
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views

Third Year Project Report: Department of Software Engineering Microlink Information Technology College

This document is a third year project report submitted by 5 students at Microlink Information Technology College for their degree in software engineering. It describes the development of an application called "Application That Helps Kids Learn Programming" (AHKLP). The report includes chapters covering the system requirements specification, system design, system implementation and testing, and conclusions. It provides details on the project scope, user interface design, sample code, and responsibilities of the group members. The project aimed to create an application to help kids learn programming concepts through a visual interface.

Uploaded by

Alexo MK
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 40

THIRD YEAR PROJECT REPORT

APPLICATION THAT HELPS KIDS LEARN


PROGRAMMING (AHKLP)

Submitted in partial fulfillment of the requirements

for the award of Degree of third year in software engineering

SI.NO Student Name IDNO

1 Abel Tsegay mde/8442/16

2 Fuhad Mehammed mde/7702/16

3 Mohammed Hassen mde/8162/16

4 T/Mariam Yirga mde/8482/16

5 Muhammed Nuru mdr/1021/16

Project Advisor:
Alemu Weldu

DEPARTMENT OF SOFTWARE ENGINEERING MICROLINK


INFORMATION TECHNOLOGY COLLEGE

July-2019
-
1
-3
MICROLINK INFORMATION TECHNOLOGY COLLEGE

DEPARTMENT OF SOFTWARE ENGINEERING

BONAFIDE CERTIFICATE

This is to certify that the Report on Third Year Project work titled Application That Help Kids Learn
Programming (AHKLP) is a bonafide record of the work done by group 6 students listed below

SI.NO Student Name IDNO

1 Abel Tsegay mde/8442/16

2 Fuhad Mehammed mde/7702/16

3 Mohammed Hassen mde/8162/16

4 T/Mariam Yirga mde/8482/16

5 Muhammed Nuru mdr/1021/16

Studying Third year Software Engineering at Microlink Information Technology College during the
academic year 2019-28.

Signature of Advisor Signature of HOD

________________________ ________________________

External Examiner 1 External Examiner 2

Name: ________________________ Name: ________________________

Signature: _____________________ Signature: ______________________


-
1
-3
Project Viva – voce held on ________________________

List of figures...............................................................................................................................................v
List of tables................................................................................................................................................vi
ACKNOWLEDGEMENT................................................................................................................................vii
Abstract.....................................................................................................................................................viii
CHAPTER ONE..........................................................................................................................................- 1 -
1.1. Systems Requirements Specification.......................................................................................- 1 -
1.1.1. Introduction.....................................................................................................................- 1 -
1.1.1.2. Introduction About The Project...................................................................................- 1 -
1.1.2. Purpose and Scope..........................................................................................................- 2 -
1.2. The Overall Description...........................................................................................................- 3 -
1.2.1. Description of The New System................................................................................- 3 -
1.2.2. Constraints and Assumptions..........................................................................................- 3 -
1.3. Specific Requirement...............................................................................................................- 4 -
1.3.1. Functional Requirement..................................................................................................- 4 -
1.3.2. Non-Functional Requirement..........................................................................................- 4 -
1.3.3. System Requirement.......................................................................................................- 4 -
CHAPTER TWO.........................................................................................................................................- 5 -
2.1. System Design.............................................................................................................................- 5 -
2.1.1. Introduction.....................................................................................................................- 5 -
2.1.2. UML Diagram.................................................................................................................- 6 -
2.1.3. Access Control and Security...........................................................................................- 22 -
2.1.4. User Interface Design....................................................................................................- 22 -
CHAPTER THREE....................................................................................................................................- 24 -
3.1. System Implementation and Testing.....................................................................................- 24 -
3.1.1. Objectives of Implementation.......................................................................................- 24 -
3.1.2. Constrains on Implementation......................................................................................- 24 -
3.2. Testing by Requirements.......................................................................................................- 24 -
3.2.1. Correctness:...................................................................................................................- 24 -
-
1
-3
3.2.2. Performance:.................................................................................................................- 24 -
3.2.3. Reliability:......................................................................................................................- 25 -
3.2.4. Error Handling:...............................................................................................................- 25 -
3.3. Testing by Scope....................................................................................................................- 25 -
3.3.1. Unit Testing....................................................................................................................- 25 -
3.3.2. Integration and System Testing.....................................................................................- 25 -
3.4. Sample Codes and Sample Output Screens...........................................................................- 26 -
3.5. Installation.............................................................................................................................- 29 -
3.6. Group Members and responsibilities.....................................................................................- 30 -
CHAPTER FORE......................................................................................................................................- 31 -
4.1 Conclusion and Recommendation.........................................................................................- 31 -
4.2. Bibliography...........................................................................................................................- 32 -

-
1
-3
List of figures

Figure 1- Main Form use case diagram......................................................................................- 9 -


Figure 2- C++ Form use case diagram......................................................................................- 10 -
Figure 3- Java Form use case diagram......................................................................................- 11 -
Figure 4- C# Form use case diagram........................................................................................- 12 -
Figure 5- Android Form use case diagram................................................................................- 13 -
Figure 6- User class diagram....................................................................................................- 14 -
Figure 7- Main Form Activity diagram.....................................................................................- 15 -
Figure 8- C++ Form Activity diagram......................................................................................- 16 -
Figure 9- Java Form Activity diagram......................................................................................- 17 -
Figure 10- C# Form Activity diagram......................................................................................- 18 -
Figure 11- Android Form Activity diagram..............................................................................- 19 -
Figure 12- Sequence diagram for Main Form...........................................................................- 20 -
Figure 13- Sequence diagram for Other Forms........................................................................- 21 -
Figure 14- user interface for Main Form..................................................................................- 22 -
Figure 15- user interface for Other Forms................................................................................- 23 -
Figure 16- output screen for Main Form...................................................................................- 27 -
Figure 17- output screen for Other Forms................................................................................- 29 -
-
1
-3
List of tables

Table 1- use case Scenario to Main Form...............................................................................- 6 -


Table 2-use case scenario C++ Form.......................................................................................- 6 -
Table 3- use case scenario java Form......................................................................................- 7 -
Table 4- use case scenario C# Form........................................................................................- 7 -
Table 5- use case scenario Android Form...............................................................................- 8 -
Table 6- showing group members and responsibilities........................................................- 30 -

-
1
-3
ACKNOWLEDGEMENT

First and foremost we would like to thank our advisor Alemu Weldu for his guidance and
assistance on this project. We also would like to thank Microlink information technology college
software department stuff members for their encouragement and support, without them this project
won’t be possible.

-
1
-3
Abstract

This is a report on project called Application That Helps Kids Learn Programming (AHKLP)
that helps kids to know the meaning of programming , how can we use it and what does it uses for.
The report outlines the purpose and goal of the project, the requirements and implementation of the
project.

The main aim is to help kids to have at least to know what programming is, what is used for and
how they can use it in order to have a carrier in the programming world .

The main requirement of the project is to produce an application that solves a lot of problems and
with a lot of features. The application is designed in a way that be easy for later extensions and
improvement.

The project design would be provided using UML as it is implemented using C sharp with a lot of
API’s that allowed as to implement the project. Use cases, Use case diagrams, class diagrams and
class tables are provided.

-
1
-3
CHAPTER ONE

1.1.Systems Requirements Specification

1.1.1. Introduction

1.1.1.1. Introduction about the organization

Existing elementary and KG’s Schools in our community do not provide as much instruction for
their students in the technology sector as some of the programming and scripting language courses.
So the Students do not have enough knowledge of what the courses are and what does they used for,
in this case every if the children’s are asked what they want to be in their future almost all of their
answers are some of them are want to be an engineer, some want to be a doctor and some are want to
be a pilot. But in this century technology is dominating so in this case the schools are not provide
enough information about technology materials in order to integrate their students with the globe of
technology.

1.1.1.2. Introduction About The Project

Our project is an Application That Help Kids Learn Programming (AHKLP) can help kids to
`know at least what programming is, and what it used for.

AHKLP is a desktop application and its main task is to help kids what programming is all
about. And the application provides the basic components of each programming language and it
defined them through the options like giving descriptions and with the other option that can be giving
sound help to the definition that is written in the form of description.

As the name implies the application main task is to integrate kids with the knowledge of how
programming works and how to use it properly to do some task. and finally we want to involve
programming in kids wish that they could be programmers.
1.1.2. Purpose and Scope

1.1.2.1. Purpose

The purpose of this project is to give introduction for kids about what programming is

and how they can use it.

This Application allows doing multiple tasks : such as

 defining the programming key words


 describing the key words with the help of sound(voice)
 introducing programming language
 entertainment

The main aim of this project is to develop an application that could solve learning

programming language much easier for kids and to involve in kids wish that they could

aim to learn it.

1.1.2.2. Scope of Study

The scope of the project to help kids learn programming language in a simple and easiest way so
that they wish they could have some carrier with it when they grow up.

1.1.2.3. Abbreviations

 AHKLP – Application That Help Kids Learn Programming


 RAM – Random Access Memory
 GB – Giga Byte
 OS - Operating System
1.2.The Overall Description

1.2.1. Description of The New System

The new system can be stated as a desktop application that help kids learn programming. the
application main tasks are introducing programming language using the basic keys and their
definitions in a simple and much easier way.

1.2.2. Constraints and Assumptions

The constraint of the project can be shortage of time and lack of resources, the assumption can be
to finish the project on time and also to build a better software in every angle faster, easy, simple and
friendly software.
1.3. Specific Requirement

1.3.1. Functional Requirement

 Introducing programming language


 Defining key words
 Describing key words using sound(voice)

1.3.2. Non-Functional Requirement

 Gives inspiration to kids


 Gives them to consider what they want to be for their future
 User friendly
 Maintainability

1.3.3. System Requirement

1.3.3.1. Software Requirement Platforms

 Windows OS

1.3.3.2. Minimum Hardware Requirement

 Processor with Intel Pentium 4


 1 GB of RAM
 1 GB of free space
CHAPTER TWO

2.1. System Design

2.1.1. Introduction

2.1.1.1. Objectives and Scope of Design

The main object of this design document is to provide a description of the design of the
Software fully enough to allow team members understand and implement it accordingly. This
software design document provides information necessary to understand the software details land
how it needs to be built.

2.1.1.2. Major Constraints on design

Hence the application under design is complicated; the major constraint was to sum up and
minimize the application as much as possible. Time was the second major constraints.
2.1.2. UML Diagram

2.1.2.1. Use Case scenario

Use Case Scenario for Main Form

Use cae Prefer Programming Options

A use case that allows user to prefer programming


Description
options

Actor User

Pre Condition the user should open the application

1.user prefer programming languages on programming


Basic Flow options panel interface
2.user Clicks on programming options panel
Displays key words and functions on the right side and
Post Condition
descriptions with sound mark on left side

Table 1- use case Scenario to Main Form

Use case Scenario C++ Form

Use case C++ programming language

a use case that allows to access c++ programming


Description
language

Actor User

Pre Condition User prefer or click on C++ button

1.user click on left side buttons for Functions or


keywords
Basic Flow
2.user clicks sound mark on the down corner for
sound description
displays basic functions and keywords description on
Post Condition
the middle panel

Table 2-use case scenario C++ Form


Use Case Scenario Java Form

Use case Java Programming Language

A use case that allows to access Java programming


Description
language

Actor User

Pre Condition User prefer or Click Java button

1.user clicks on left side buttons for functions or key


words description
Basic Flow
2.user clicks sound mark on down corner for sound
description
displays basic Functions or keywords description on
Post Condition
the middle panel

Table 3- use case scenario java Form

Use Case Scenario for C# Form

Use case C# programming language

A use that allows to access C# programming


Description
language

Actor User

Pre Condition user prefer or Clicks on C# button

1.user clicks on the left side buttons by prefer lists of


function or key words
Basic Flow
2.user clicks sound mark on down corner for sound
description
displays basic function or key words description on
Post Condition
the middle

Table 4- use case scenario C# Form


Use Case Scenario for Android Form

Use case Android programmin language

a use case that allows to access android


Description
programming language

Actor User

Pre Condition User prefer or clicks Android button

1.user clicks on left side buttons by prefer functions


and key words
Basic Flow
2.user clicks sound mark on down corner for sound
description
displays description of the functions on middle
Post Condition
panel

Table 5- use case scenario android Form


2.1.2.2. Use Case Diagram

Main Form Use Case Diagram

MainForm

Open C++ Form

Open Java Form

User
Open C# Form

Open Android Form

Figure 1- Main Form use case diagram


C++ Form Use Case Diagram

Figure 2- C++ Form use case diagram


Java Form Use Case Diagram

Figure 3- Java Form use case diagram


C# Form Use Case Diagram

Figure 4- C# Form use case diagram


Android Form Use Case Diagram

Figure 5- Android Form use case diagram


2.1.2.3. Class Diagram

Figure 6- User class diagram


2.1.2.4. Activity Diagram

Activity Diagram for case of Main Form

Figure 7- Main Form Activity diagram


Activity Diagram for case of C++ Form

Figure 8- C++ Form Activity diagram


Activity Diagram for case of Java Form

Figure 9- Java Form Activity diagram


Activity Diagram for case of C# Form

Figure 10- C# Form Activity diagram


Activity Diagram for case of Android Form

Figure 11- Android Form Activity diagram


2.1.2.5. Sequence Diagram

Sequence diagram for Main Form

Figure 12- Sequence diagram for Main Form


Sequence diagram for Other Forms

Figure 13- Sequence diagram for Other Forms


2.1.3. Access Control and Security

The application could be deployed to the end users as a standalone java program that’s archived
as a jar file. Given the nature of java programs running on a virtual machine without the direct
interaction with the machine the security risks are minimal. The whole control and responsibility lies
with the end users.

2.1.4. User Interface Design

We choose simplest, familiar and easy interface for the application.

2.1.4.1. User interface for Main Form

Figure 14- user interface for Main Form


2.1.4.2. User interface for Other Forms

Figure 15- user interface for Other Forms


CHAPTER THREE

3.1. System Implementation and Testing

3.1.1. Objectives of Implementation

The main objective of this implementation documentation is to provide a basic documentation of


how the Application That Help Kids Learn Programming application was implemented and to be used
for debugging and testing it. It is useful for further development in the future if the project proves to
be successful.

3.1.2. Constrains on Implementation

As AHKLP application acts as desktop app that used by kids, then main constraint was to provide
a proper and very formal words that the kids will understand. And the second thing is that choosing
coloring for the user interface of the application, since the users of this app are kids and if they do not
like the interface well they may not be interested on what the application is holding. And some of
kids could have difficulties of reading.

3.2. Testing by Requirements

3.2.1. Correctness:

The desktop application gives the proper and very formal words that the kids will not confuse and
understand it so easily. And in case if some kids are struggling reading the words they can use to
listen by pressing the speaker button.

3.2.2. Performance:

Hence the application is a desktop application and follows a sequence of clicking and perform
very easy tasks the application is very well in terms of performance.
3.2.3. Reliability:

Hence the application is implemented fully in C#, powerful C# exceptions and error handling
techniques allowed the application to be reliable in case of any which could disrupt the application or
error that could completely close the application.

3.2.4. Error Handling:

Since the application maintains forms and manages them really smoothly when its transforming
from one Main form in to other forms it provides you the current form and when we terminate the
current form it return us to main form. So this checking feature prevents the app from crashes that
lead to fatal error. In case any exception raised at run time they get handling using C# exception
handling mechanism.

3.3. Testing by Scope

3.3.1. Unit Testing

The following modules where tested

 The transformation module were tested by trying with Main form and other forms.
 The description module was tested for correctly obeying commands send from the
options.

3.3.2. Integration and System Testing

The following overall features where tested

 The transformation sender feature was tested for correctly parsing from one form in to
another form.

 The transformation receiver feature was tested for receiving and drawing received image
of the form in the screen

 The description setter was tested for correctly parsing in to its giving provided space to
be displayed.
 The description viewer was tested for correctly obeying to receive and display its
contents that needed to be displayed.

 The sound provider was tested for correctly functionality that is provided from
description viewer in the form of text.

3.4. Sample Codes and Sample Output Screens

3.4.1. Sample code and output screen for Main Form

public frmMain()
{
InitializeComponent();
}
[DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]
public extern static void ReleaseCapture();

[DllImport("user32.DLL", EntryPoint = "SendMessage")]


public extern static void SendMessage(System.IntPtr h, int x, int y, int m);

private void panel3_Click(object sender, EventArgs e)


{
WindowState = FormWindowState.Minimized;

private void panel2_Click(object sender, EventArgs e)


{
Application.Exit();
}

private void panel3_MouseHover(object sender, EventArgs e)


{
panel3.BackColor = Color.DarkGray;
}

private void panel3_MouseLeave(object sender, EventArgs e)


{
panel3.BackColor = Color.Teal;
}

private void panel2_MouseHover(object sender, EventArgs e)


{
panel2.BackColor = Color.DarkGray;
}

private void panel2_MouseLeave(object sender, EventArgs e)


{
panel2.BackColor = Color.Teal;
}

private void panel1_MouseDown(object sender, MouseEventArgs e)


{
ReleaseCapture();
SendMessage(this.Handle, 0x112, 0xf012, 0);
}

private void label1_MouseDown(object sender, MouseEventArgs e)


{
ReleaseCapture();
SendMessage(this.Handle, 0x112, 0xf012, 0);
}

private void flowLayoutPanel1_MouseHover(object sender, EventArgs e)


{
flowLayoutPanel1.BackColor = Color.DarkGray;
}

private void flowLayoutPanel1_MouseLeave(object sender, EventArgs e)


{
flowLayoutPanel1.BackColor = Color.Teal;
}

Figure 16- output screen for Main Form


3.4.2. Sample Code For C++ form

public Cplus()
{
InitializeComponent();
Sidepanel2.Height = button6.Height;
Sidepanel2.Top = button6.Top;
}

[DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]


public extern static void ReleaseCapture();

[DllImport("user32.DLL", EntryPoint = "SendMessage")]

public extern static void SendMessage(System.IntPtr h, int x, int y, int m);

private void panel8_Click(object sender, EventArgs e)


{
WindowState = FormWindowState.Minimized;
}

private void panel8_MouseHover(object sender, EventArgs e)


{
panel8.BackColor = Color.DarkGray;
}

private void panel8_MouseLeave(object sender, EventArgs e)


{
panel8.BackColor = Color.Teal;
}

private void flowLayoutPanel1_Click(object sender, EventArgs e)


{
frmMain frm = new frmMain();
frm.Show();
this.Hide();
}

private void flowLayoutPanel1_MouseHover(object sender, EventArgs e)


{
flowLayoutPanel1.BackColor = Color.DarkGray;

private void flowLayoutPanel1_MouseLeave(object sender, EventArgs e)


{
flowLayoutPanel1.BackColor = Color.Teal;
}

private void panel2_MouseDown(object sender, MouseEventArgs e)


{
ReleaseCapture();
SendMessage(this.Handle, 0x112, 0xf012, 0);
}
private void label1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, 0x112, 0xf012, 0);
}

private void button6_Click(object sender, EventArgs e)


{
Sidepanel2.Height = button6.Height;
Sidepanel2.Top = button6.Top;

Figure 17- output screen for Other Forms

3.5. Installation

The application will be deployed with in a zipped file as a runnable. We’ll not create a Windows
OS application installer because we want the application to run on available OS that support .
3.6. Group Members and responsibilities

No Name Id Responsibility
1 Abel Tsegay 8442/16 Implementation, Testing and design
coordinator
2 Fuhad Mehammed 7702/16 Implementation, Testing and design
coordinator
3 Mohammed Hassen 8162/16 Chairman and Testing coordinator

4 Tesfamariam Yirga 8482/16 Chairman and Testing coordinator

5 Abrham berhe 8209/16 Design coordinator

6 Muhammed Nuru 1021/16 Design coordinator

Table 6- showing group members and responsibilities


CHAPTER FORE

4.1 Conclusion and Recommendation

We have come to turns in what we could do to achieve our main goal that is creating an
application that help kids to know what is programming, how does it work and what does it used for.
And our work could help kids at least to be interested and wish to know more about programming and
finally to be a programmers.

We recommend feature developments to work on improving the application by adding more


future like brief knowledge about programming, game puzzles to entertaining kids, while they learn
it. And we are unable to do much of improving through time constraint, but this app can be
improved with gaming concept like drag and drop puzzling, input output game and so on with
programming languages like android, java API’s.
4.2. Bibliography

1. www.tutorialspoint.com
2. www.csharpaccadamy.com
3. www.youtube.com
4. www.google.com

You might also like