FYP 14021 Secondary school educational content for computer

advertisement
FYP 14021
Secondary school educational
content for computer foundation
Final Report - Individual
by Tao Ka Wai (UID: 3035009902)
Introduction
Project Background
Junior secondary students take computer lessons in schools regularly according to
the general education curriculum. These lessons provide students chances to learn
about computers and be prepared for the fast changing information world. Students
learn about tasks which computer can do and ways to use computers for solving
daily problems. They also learn the impacts of computer on society and other
aspects.
The teaching of computer in secondary schools has been changing with the trend
of computer technology. Under the current curriculum, task-oriented approach
has been adopted for computer subject. Students have to tackle practical tasks
besides taking written examinations. This enables students to practice which
computer software or applications they have learned.
Students gain knowledge about computer with the use of software and
applications. This provides opportunity for educational software and application
development on computer subject explicitly.
The development of modern technology on mobile has become more and more
significant. Smart phones, tablet computers and other mobile devices are popular
nowadays. One can access to different kinds of information with the browser
installed in them similar to that in a personal computer. More importantly, they
can enjoy the usage of smart devices with the application software, "mobile
application", installed. Mobile application are computer programs designed to run
on mobile devices. They are usually available through application distribution
platforms like App Store and Google Play. Users can download and install
application in their devices easily. The wide range of categories of application
have attracted vast number of downloads. The categories of application varies
from weather information, games, banking, ticket-purchases and much more.
One of the categories offered is education. The application in this category provide
the usage of learning in smart devices. Users can learn in a casual way. They can
learn at anytime and anywhere after having the application downloaded. This
provides an alternative way of learning in a computing environment.
Combine the opportunity for educational application development on
computer subject with popular mobile application creates room for
computer-learning application for junior secondary students.
The introduction of computer concept is the best-suited scope for this
computer-learning application. It serves as a basis for computer learning to any
aspects about computer for junior secondary students. Students can explore and
discover the interesting parts of computer concepts in a casual way. They can learn
and reinforce their knowledge for further computer learning.
With smaller screen sizes than personal computers, smart devices take input from
users mainly via simple tapping, dragging and dropping. This creates grounds for
student to access the content of application in a interactive way. Students can
enjoy and keep up with the process of learning easily.
The computer-learning application can be served as assistant for teachers in
teaching computer concepts. It can be used as a after-school support for computer
concepts lessons. Students can have practices on what they learnt for better
understanding. With the popularity of mobile application nowadays, the
interactive computer-learning application can help promote computer learning in
secondary school.
Project Objective
The project aims to design and develop interesting content on mobile devices for
introduction of computer concepts to junior secondary students. The objectives
of the projects are to:




Raise students' interest to learn computer concept;
Provide platform for students to learn in a casual way;
Assist teachers to teach computer concept; and
Promote computer-learning in secondary schools.
Computer concepts are basis for computer learning. Having good understanding of
these concepts is great advantages for students to admire and enjoy the fast growing
computer technology in the modern world. To help junior secondary students to
have such an understanding, interesting content at introductory level is helpful for
them to start exploring and discovering and therefore raise their interest to learn
computer concepts.
Provide platform for students to learn in a casual way can be achieved by the use of
mobile devices. Learning on mobile devices like smart phones and computer tablets
are different from that on regular lessons. One can learn freely with a mobile
device. The learning is flexible to fit with one's free time without any constraint on
location. More importantly, users can control their own learning progress. They can
adjust their learning processes by themselves. This mode of learning is encouraging
and poses no stress. Students can enjoy the process of learning easily.
For regular computer concepts lessons in school, teaching materials other than
textbooks are used. Computer software and application are used in class to draw
attention from students. The interesting mobile content developed can be served
as assistant for teacher as well as after-school support to reinforce what they
learnt. Students can keep up with the process of learning and therefore teachers
can maintain the general learning progress of classes.
Every student, and every one, can access the interesting content with mobile devices.
Junior students can learn in an alternative way while senior students can study again
for better understanding relaxingly. Everyone in secondary school can enjoy the
content with fun easily. This helps promote computer learning in secondary school.
Requirement
Requirement is comprised of two parts, the definition of scope of application
content and the range of platform supported.
The content of application focuses on the introduction of computer concepts.
Therefore the content should not be too advanced or introducing concepts that are
not technical. However, it should not be too basic that students who always access
to the Internet may possibly know about. The key is to select topics that are
fundamental for secondary student to understand basic computer concepts and
introduce these topics in way that reveal the complexity of these concepts
interestingly. In this way, student who are not interested in computer can have an
opportunity to explore computer while student who are interested in computer can
have access to acquire concrete basis for learning advanced concepts.
With an overall review of the syllabuses of computer subjects in secondary schools,
the scope of application content lays on the fundamental and basic computer
concepts including binary system and processor simulation. These concepts are
chosen as they give raise to many other computer concepts. They are concepts that
anyone interested in computer should have known. Understanding these concepts
will let anyone appreciate how wonderful that the great and complex constructions
of computers are developed from some very simple and easy ideas.
Binary is chosen as it is the very first concept computer is about. It is what computer
do. It is what computer use. It is how computer work. The concept itself is simple. It
is the real life example of binary numeric system. Though it is mathematical, the
calculation involved in computing is not as technical as that in mathematics. It is the
wide range of usage and implementation in every small and edgy parts in computer
that amazed us. Among these usage and implements, several are chosen as the
application content. They are chosen as they are less technical compared to others
and they show the binary concept in a clean and tidy way. Clean and tidy means that
their usage or implementation do not involve much other concepts. This is to avoid
distracting student from binary and to focus the concepts we want students to
understand. These includes how computer handle integers and characters and how
computer do calculations.
One important binary concept will also be introduced. That is, why computers use
binary numbers. For many students, they possibly know that computing uses binary
digits one and zero. However, this is almost what they know about the relationship
between binary digits and computer. Why computer use binary turns out to be a
very good question to let students view computer at a different angle. This question
encourage students to think as a computer designer instead of a computer user.
They shifts from having experience of using computer to why the experience is being
so. This is a question that can give student new experiences on thinking as well.
Therefore, it has to be in the scope of content.
For processor simulation, the father of computer and Turing machine have to be
introduced. It is until around 2012, we finally have the opportunity to know more
about Alan Turing and his achievements in computing. This is because many of his
achievement were political involved and thus kept under wraps. Turing was not a
man that many textbook would possibly describe about like Newton. In fact, he
seems to be a mysterious man to junior secondary student. They may not know
about him and that he was the father of computer. With Turing machine, Turing
was the first man to model computing and algorithm, which constitutes modern
computers. He is such an important and inspirational person to be introduced to
students with his Turing machine. Therefore, they has to be in the scope of
content. Relevant topics like software, computer virus and CPU have to be
included as well.
The content is defined with the aim to let students get a concrete foundation on
fundamentals. It is hoped that they learn ways to understand conceptual
knowledge on machines, and by this learning, they could have better skills to
understand other advanced concepts easily. This gives grounds for further
development on computer learning.
This application has to support both Android and web browsing. Android has to be
supported as this application aims to be an Android application. This is so to let
more students have the application downloaded in their smart phones. In Hong
Kong, students with smart phones supporting Android is more that that with smart
phone not supporting Android. Therefore, in order to maximized the number of
student having compatible devices to potentially download the application, the
application has to be an Android one. Web browsing is supported for students
who do not have access to Android. It is so to provide opportunity for them to
access the material without having Android devices.
Cross-platform is supported to make the material available to more users. It is
supported to give flexibility to the use of the material as well. Users can use the
devices or the way which they want to access the content most for learning.
Contribution of project
The contribution of project are:
 Creating a computer-learning application;
 Introducing fundamental concepts;
 Provide a basis for computer learning;
 Assisting teachers in teaching;
 Support computer-learning after school;




Give students new experiences of learning;
Reinforce knowledge for further computer learning;
Explore interesting parts of computer
Create ground for students to learn casually


Create ground for students to learn interactively;
Promote computer learning in secondary schools
In this project, I am responsible for the application construction. This is to create the
solution and connect all the SDK and other necessaries for app development. I am
responsible for application icon designing and implementing in the solution. I am also
responsible for selecting appropriate computer learning materials for both topic
binary and processor and deliver them organized to the application. I am responsible
for the design and development of all the interactive parts for the topic binary. I am
also responsible to make the necessary pages like content page and reference page
in the application .
Project Background and Literature Review
What is available now
The Internet contains huge amount of information. Thousands of results can be
searched simply by typing a key word to a powerful search engine. This shows that
huge amount of information are always available online. Material of computer
learning could be found easily on surfing the net.
If we type "computer learning" in a search engine, numerous results will be displayed.
By clicking onto the links, we can access the material and possibly learn something
about what we typed. It seems that we have numerous access towards learning
computer.
Moreover, it is easy for Hong Kong people to get online. Smart devices are common
nowadays. Many of us have a smart device which allow getting online easily via Wi-Fi
or 3G or higher standard of networking towards the Internet. It is the fact that we
can get online at anytime and anywhere, provided that the smart device is receiving
signals for online. Combining this with the numerous accesses provided by Internet,
it seems that we can learn much about computer freely with our devices.
What are their shortcomings
However, this is not what we always experienced. Instead, we always encounter
difficulties when we try to learn computer in the above way.
When we get onto the linked site though powerful search engines, it is always the
case that the content is too difficult or too simple. If it is too difficult, the topic gets
deeper and the concept gets more complex. Technical terms may appear and we
have to search for their meanings. We have to understand them in order to
understand the content. This turns complicated when we are in fact trying to
understand another technical term. Much effort and time are needed to understand
the original content. If it is too simple, the topic becomes a few sentences or even a
sentence describing the topics that students would possibly have known. The
content turns out to be something obvious and we gain nothing through it. The
learning process becomes an unnecessary revision process. We may have to get onto
another linked website to find what we really want and then , unfortunately, this
process may repeat and cause loss of effort and time.
Another problem is the use of mobile devices. Though mobile devices are enabled
with the net surfing function, it is not the most tailor-made form of information
access they contained. That is , surfing the net is just a function of smart devices and
that smart devices can show information in a more tailor-made way.
For example, if we want to go for a movie, given a personal computer, we may go on
a cinema website to check for its timetable. It is always the practice to open a web
browser and type in the website. Then pressing the key "enter" will get that website
onto the web browser we have opened. Information of the website is shown within
the browser. On the other hand, if we want to check the timetable of a movie in a
cinema by a smart device, we seldom go on the cinema website. Instead, we open
the cinema application in our smart device to do the checking. Web browser turns to
a kind of ways to get onto the Internet in smart devices. They are no longer the main
access to the Internet as they are in personal computers. Application shares the
access and turns out to be the more tailor-made and convenient access to
information than web browsers in smart devices.
The reason to do the project
The confusing results given by search engine and the popular use of application
combined gives the opportunity for a mobile application for computer learning. This
mobile application can be powerful if it could give the appropriate material towards
users via mobile device conveniently.
Appropriate material here means the material which bottom out from very technical
material but are comprised of basic material which have been known for junior
secondary students in Hong Kong. It is important to have junior secondary student in
Hong Kong as the targeted group. This target determines which material should be
used and which should not. It also determines which kinds of material is very
technical and which kinds are basic ones. The target gives us the guidelines to select
appropriate material.
The popular use of application is seen easily in public areas. For example, people use
application to chat with friends, to check movie timetable and to play games while
travelling by means of public transport. They can access the application material
whenever they want. This gives a great advantage for education. Students can access
to learn or to do revision with the appropriate material. They may open the
application when they are taking buses or trains to kill time. They may read the
materials when they are free for reading. This handy application allow them to have
it installed and get accessed anytime. It is not only for students who are interested in
computer and want to know about computer. It is also for students who are only
interested with new experience of application using. They may install the application
for different reasons. Then they may open it and read it when they want to
experience a new application usage. It is hoped that they feel nice about the usage
and that they do not delete the application right away. Once the application is not
deleted then it is on the devices and student may access it whenever he is free.
It is this kind of learning that makes the project interesting. Students nowadays are
always busy. This includes junior secondary students. They may have tight schedule
after school and during weekends. They may not have the time to develop interest in
computer learning. Learning though an application would give student access to first
know more about computer with flexibility. As it is not demanding, it poses no
pressure on students. Therefore students would not refuse to use this application.
Instead, they may get interested by occasionally reading the materials freely. It is
hoped that they could learn computer by accessing this application with interest.
Why this project is desirable
This project provides a chance to develop an interactive application to junior
secondary students. It is desirable as application have becoming more and more
popular nowadays. Developing application has become a trend followed by the
popularity of smart devices. Various industry has leading application developed. As
for education, variety of application have been developed for language learning and
skills learning. Now, computer learning has become a hot field to be developed.
In fact, there are vast number of tutorials teaching computer and its concepts on the
Internet. These tutorials usually aimed to be viewed by the public or professionals.
Therefore, these tutorials may or may not be suitable for junior secondary students.
Content provided to them has to be refined to cope with the learning of computer in
school as well. This is to avoid redundancy and focus on key fundamental topics. For
example, if the student has learnt the concept of software recently, it would be
helpful to introduce him Turing machine and Alan Turing to let him have a larger
picture on the concept as well as the development of computer and software. This
project is desirable as it is developing application with content which best-suit the
learning of junior secondary students and technique to best-suit the usage of mobile
device.
Project Methodology
This project to be implemented with three main parts, namely the structural part,
the content part and the interactive part.
The structural part means how the application is structured. It is aimed to generate a
stable application. The content part means the computer learning content to be
delivered to students via the application. It is mainly constituted by text, images and
graphics to present concepts involved in a neat and tidy way. The interactive part is
the practical representation of concepts. It is aimed to have animations in to facilitate
the thorough usage of the concept to be leant. That is, to let students have hand on
experiences to make use of the concept learnt.
Structural part
The structure application is divided into two main parts. The underneath part is the
application construction and the top part is the application output.
The application construction is implemented with Microsoft Visual Studio 2010
Express for Web. Microsoft is selected as it is commonly used. Express version is used
as it is free. Web version is used as the application has to support not only mobile
devices usage but the material has to be viewed in web browsers to meet the cross
platform requirement. Android SDK, Java SDK and ANT SDK are installed to facilitate
the construction. The construction is built with C#.
Settings on the application are implemented in particularly 2 files:
"project.properites" and "AndroidManifest.xml".
The" target=android-21" means that the target version for installation is 21. It is set
to 21 as 21 is the latest version of Android. Setting the target version to the latest
version can ensure the application can be installed in devices having the latest
version of Android. This means nothing to devices having older versions of Android.
The "minSdkVersion" indicates the oldest version of Android supported. Combine
with "targetSdkVersion", this app can be installed in devices with Android version 9
to 21. The "supports-screens" indicated the types of devices supported with respect
to their screen sizes. As this application is to be viewed both on screens of mobile
devices and monitor of computers, all sizes of screens are set to be supported.
The "user-permission" means the permission that has to be granted from users
before installation. This will be shown as notice to users before users download the
application. One permission is set needed only for this application. That is
"access_network_state". That means the application will access to check for the
network state of the device. It is set to serve one single purpose. That is, to cope with
auto update from play store if necessary . The "screenOrientation" sets the
orientation of screen once the application is loaded. It is set to landscape to allow
wider display for text, images and graphics.
The application layout part constitutes files to be displayed to users. Html files are
used to suit the web viewing purpose. Each html contains a page to be displayed.
Each html has hyperlinks towards other pages. Version of html is selected to be 5 to
facilitate the mobile purpose. Html5 is much flexible and suitable for mobile
application development than version 4.1.
<!DOCTYPE html> indicates this is html5. The "viewport" is set by
"width=device-width" and "user-scalable=no" to permit no scaling from fingers
positions by users. This is to prevent any unwanted finger gestures from disturbing
the application. Inside the tag <body>, <section> is used. It is a new tag in html5. It
helps define sections in the html document like headers, content and footers
Open sources jQuery and nativeDroid-master are used. Their CSS files are added to
html file to implement a better interface of the page that html file contains.
Content part
The content part is comprised of 3 elements, namely the topic "binary", the topic
"processor" and the necessary pages.
The topic "binary" includes 9 parts. They are:
 what is binary,
 why computer use binary,
 what does bit, byte, MB, GB means,



how computers handle integers,
how computers do calculations,
how computers handle characters,



what is hexadecimal,
what is analog and digital, and
how computers communicate with external storage.
The topic "processor" includes 6 parts. They are:
 what is processor,
 who is father of computer,
 what is Turing machine,
 what is software,


what is operating systems, and
what is computer virus, worm and Trojan horse.
These question are implemented as appropriate material for junior secondary
students as they are fundamentals of the topics with respect to the scope of
computer lessons defined by Education Bureau. They are simple but detailed version
of computer concepts taught to senior secondary students. Questions is used as the
title of the page. This is to attract students who have similar questions or feel curious
about the questions to tap or click into the page to look for answer.
The question are place in a order following the logic of step by step. That is, after
reading the page of the first question, students could possibly figure out the answer
of the first question. If there is any questions in the mind of student after getting the
answer of the first answer, it would possibly be the next question. Then student
would read the page for next question and the process repeats until all pages for
questions are read. At that moment, student may have even more questions in his
mind than the time he starts reading the first question. However, he gains knowledge
though reading these pages. He acquires the fundamental concepts. He practices the
way to have questions in mind and ability to read thought for answers. With these
skills, student is now able to learn from technical concepts about computing via
professional tutorials in the Internet.
Necessary pages includes the entry page, the content page, the "about this app"
page which tells the purpose of this application to users by text, and the "list of
reference" page which contains all the hyperlinks included in this application.
Each part of topics as well as each necessary pages is implemented as a page
contained in html file. Html file is to contain the content material to be display. The
CSS file is introduced to decorate and better the outfit of the html file. The following
is an example of a paired html and CSS. The "common.css" is added to
"binary3.html" inside the <head> tag as a style sheet.
Interactive part
The interactive part is the most important part among all the three parts. If this
interactive part is missed, this app is just a handy website to be carried around by
mobile device. The interactive part places the difference between a pure website and
an application on mobile devices.
To smoothly execute these interactive parts, ranges of free software are used. This
includes jQuery 1.9.1, jQuery-mobile 1.4.2, nativeDroid-master and Farbtastic Color
Picker 1.2.
All the interactive parts implemented can be viewed as html5 animations as they
written in html5 with the purpose of interactions with the use of html, CSS and
JavaScript files. The implementation of interactive part in this app serves a purpose.
They are useful but not just visual effects. There are three kinds of implementations:
content page, helpful animations and full screen animations.
Content page
The first one is the content page. This interactive part aims to ease the selection of
pages to users. That is, to divide the content into sub-contents contained in tabs.
Then by tapping or clicking on a tab, the corresponding sub-content is shown instead
of the whole content.
The reason to use this implementation is that the content itself is lengthy to be
shown. In fact, with the topic "binary" and "processor", the content has already had
16 entries. Imagine that these entries are placed from top to bottom, the content
page would be too long. Moreover, dividing into sub-content with meaningful tab
names helps the selection of pages to users. They can first tap on the tab which
expressed the common feature in its sub-content, and then tap on the entry that
want to read in the sub-content displayed.
To implement this, codes is added in the "app.html":
The division <div class="tabs"> serves as the wrapper wrapping <ul class="tab-links">
and <div class="tab-content">.
The <ul class="tab-links"> is an ordered list containing the 4 tabs to be tapped for
switching between the 4 sub-contents. Each element in the list is linked to the
corresponding sub-content by sub-content's id. The first element is the active tab,
thus the page will display the sub-content corresponds to the first element when the
html is loaded.
The <div class="tab-content"> is a division that contains the 4 sub-contents each
wrapped by <div> tags with id. As the <div> with id as "tab1" is active, the page will
display the sub-content contained in it when loaded. The sub-content will be in the
form of an ordered list.
To enable the change of sub-content, codes are added in corresponding app.js:
jQuery is used to enable smooth animation. Now once a tab is click, the sub-content
being displayed is hided and the sub-content corresponds to the tab clicked is shown.
The class "active" is removed from the list-element the sub-content displayed
corresponds to. The class "active" is now added to the list-element the tab clicked.
Tapping do the same trick as jQuery is powerful to handle the tapping events on
mobile devices as clicking automatically.
"fadeIn(400)" here is to enable a fading effect when the sub-contents switches. This
is to notify clearly to the user that the sub-content has been changed.
To visualize the tabs and change of sub-contents, codes are added in corresponding
app.css:
With "float: left;", all tabs are horizontally displayed with no order-list decorations.
That is, all tabs are placed from left to right horizontally as a corner-rounded
rectangles separated by space. When a mouse cursor is placed on a tab or a tab is
clicked, the color of rectangle and that of text inside the rectangle changes to
simulate the change of sub-contents displayed.
Helpful animations
The second part is implemented along reading the text of pages containing questions
of "binary" or "processor". These animation aims to better the understanding of the
text near the animation of users. They are placed to help users understand the flow
or the concept discussed on that page. There are altogether 6 animations of this kind
in the application.
Binary addition
The first one is to assist the learning of binary addition. As a junior secondary student,
they know addition well in decimal. The addition in binary is in fact a part within the
addition in decimal that they could handle well. However, they may not be familiar
with addition with purely one and zero. The animation is implemented to let users
understand the calculation step by step. That is, when two binary numbers are added,
user first see the addition of their ones, the places value, and then user can see the
addition of their twos, the places value, and so forth until addition completes. This
shows the steps of addition clearly to students.
To start with , codes are added to the corresponding html file:
Here a table is used to showcase the addition process. The sum is absent but a
button is at the ones, place value. When the button is clicked, the function
"myFunction()" will be called.
To give sum of the ones, place value, by clicking the "see sun" button, codes are
added to the "binary5.js":
When the "see sum" button is clicked, the ones of the sum is shown and the button
at the twos is with text "see sum" as that happens to the button at the ones. This
process repeats on button at twos and buttons at four like that on button at ones and
buttons on twos. Finally, when the button at fours is clicked, the fours of the sum is
shown and the some text is displayed under the table to conclude and signify the end
of this addition process to users.
As secondary student, they must know that addition starts from smallest place value.
However, to avoid misunderstanding, codes are added to CSS with the help of jQeury
and nativeDroid-master to hide these two buttons:
The imported style sheets help turn the appearance of button to a flat rectangle with
color #99cc00. The table is decorated in a way that all columns in the row for sum is
with same background color as the color of button . Now the overall appearance is
that the whole row intended to show sum is decorate with color #99cc00 with text
"see sum" at the ones, place value. Nothing special and clickable is visually appeared
at the twos and fours.
Binary addition with carrier
The second animation is a modified version of the first one. It is to handle binary
addition with carrier.
The implementation on html is very similar to that on the first animation except the
introduction of 2 <div>s with id as "carrier1" and "carrier2":
The main difference between the first and second animation lies on the
implementation of JavaScript:
When the "see sum" button at twos is clicked, the cell containing the fours of the
latter binary number has its text changed. The change constitutes the addition of a
"1". This number is subscribed and appear as an carrier drew as in ordinary
additions.
To let users aware of the carrier, codes are added to CSS:
These give the carrier a thicker and sharp-colored appearance. Note that tag <b> is
not supported in html5. Therefore bold has to be done with CSS.
Use 2's complement step-by-step
The third animation is to show steps to use two's complement for a negative number.
It aims to find the negative number in binary representation using two's complement
with a given value. In fact, the steps are displayed as text on the page. This animation
is to show users how the steps work with an example. As the transformation is really
simple but the steps can caught easily forgotten. It is hoped that student recognize
and remember these steps by having the experience of transforming to negative
number though clicking.
The animation is implemented in html as follows:
The table shows that exactly four steps are needed for transformation. User is invited
to click on the top button to see the first step.
The implementation on JavaScript is that clicking a bottom always show the step in
that button and invite user to click on the next button.
The implementation on CSS makes the rows of table having different colors. These
colors are highly contrasted to signify the uniqueness of each steps:
Character handling in computer
This animation aims to demonstrate what happen while a character is input to the
computer and displayed. Three buttons are displayed for user to click on. Each
button is labeled with a character. Once a button is clicked, the processes happened
in computer on handling character input is displayed in the form of table below the
buttons. This includes what computer receive in ON-OFF format, what computer
store in numbers as well as how monitor display the correct character. When user
click on another button, process of the character labeled on the another button are
shown. That of the previous click is removed.
The implementation on html is as follows: Only the first row contains text and images
for clicking. Other rows are empty to carry information about computer processing
character once a character is clicked. They are standby.
To display the process once a button is clicked, codes are added to JavaScript file:
Information about the process is displayed by replacing the html in elements with
several ids. They are replaced in a way that html codes are delivered as text through
JavaScript. The html codes delivered are then used as html codes by the html file
receiving them. For example, several rows in html file is with no columns. When user
click on any button, the html file receives html codes in the form of text. This
additional html codes are placed inside the rows tag. Therefore, rows with columns
are displayed.
The appearance of table is well-constructed by corresponding CSS file:
Increase in hexadecimal, decimal and binary
This animation aims to show that hexadecimal advance place-column slowly. This is
to show that why hexadecimal is used to help using binary. In the animation, a table
containing three cells showing, with the same value, the hexadecimal representation,
the decimal representation and the binary representation. To order to make the
slowly advance property significant, each representation is with a increment button
and decrement button. When an increment button is clicked, all representations will
advance their values by 1. While giving more clicks, it is easily observed than binary
representation has the greatest length, followed by decimal representation.
Hexadecimal representation always has the shortest representation among the three.
Moreover, the rate of length increased with respect to value increased can also be
observed. This show users binary representation grows in length very quickly while
hexadecimal representation grows very slowly in length.
When an decrement button is clicked, all representations will decrement their values
by 1. While giving more clicks, it is easily observed than binary representation has
the greatest length, followed by decimal representation. Hexadecimal representation
always has the shortest representation among the three. Moreover, the rate of
length reduced with respect to value reduced can also be observed. This show users
binary representation reduces in length very quickly while hexadecimal
representation reduces very slowly in length.
The html implements the layout as follows. The value to be represented is set as 0.
Therefore, every click start at 0. This gives a fair demonstration on comparing the
rate of advancing and reducing place-column with respect to advancing value to be
represented.
The JavaScript file handles the increment by using the decimal representation as the
key. Every time a click is received, the decimal representation is advanced by 1. Then
the decimal representation is used to transform to binary representation. This
transformed representation then replace the current binary representation. The
same process is done on hexadecimal. The decimal representation advanced is used
to transform to hexadecimal representation. This transformed representation then
replace the current hexadecimal representation.
Decimal representation is selected to be the key as it is easy to deal with. Functions
of transforming decimal to binary and hexadecimal are both well-defined for use.
The code in CSS is implemented to turn the row containing representations to have
black-colored background. This is to make the appearance of textbox containing
representations less obvious. A number can be typed into the textbox to get its
corresponding representations. However, the focus of this animation is about the
effect on representation on advancing the value. It is better to keep users focus on
the representations and the increment and decrement buttons.
Color picker
This animation aims to show users application of hexadecimal usage in computer. A
colorful wheel with a square inside is shown with text box at it right hand side. When
user click on any point on the wheel, the color at that point will be shown in the
square with colors lighter and darker than it as a gradual pattern. The textbox always
shown the hexadecimal representation of the color clicked. User can click on the
square or the wheel to see hexadecimal representation of color interested. The free
software, Farbtastic color picker, is used to complete this animation .
The html corresponds to the color picker is as follows. The default color selected is
#123456. Thus a the square inside the wheel will be showing this color with colors
lighter and darker than this color. The textbox will be showing "#123456'.
The JavaScript and CSS files supporting this animation are provided by Farbtastic.
They are complicated but yet understandable. To get color picker loaded when the
page is loaded. The following is added to the corresponding JavaScript file to initiate
the picker.
Full screen animations
There are 2 full screen animation in this app. They are, as the name, animations that
have to be well-presented in a detailed way. Unlike the helpful animations, they are
not to help student to understand concepts. Instead, they are used to provide
experience for students to use the concepts. Both of them make use of the new
elements in html5, canvas, to draw graphics, numbers, characters on screens.
Binary-to-decimal convertor
As it named, this animation aims to let students make use of the binary concept
learnt. The animation follows the content part question: how computer handle
integers. On the page for the question, the concept of place value is introduced. That
the places are two to the zero power ("ones place"), two to the one power ("twos
place"), two to the second power ("fours place"), two to the third power ("eights
place") and so on. The animation is linked on that page. Therefore this animation is
to let student practice the conversion from binary to decimal. The animation
provides conversion from a 10-bit binary number to a decimal number. By tapping on
the bits, 1 will change to 0 and 0 will change to 1, a new 10-bit string will be
produced and its decimal representation will be shown immediately. This is a
responsive animation. Place values of bits will be shown to briefly explain how the
conversion is done.
HTML, CSS and JavaScript are used to produce this animation. However, the HTML
and CSS are thin while the JavaScript is fat. That is, most of the code handle is passed
to JavaScript.
HTML corresponds to this animation is as follows.
The element <canvas> is added to allow drawings on screen. If the browser the user
is using does not support this tag, the text "Your browser does not support the
HTML5 canvas tag. " will be shown. This is to handle the situation that, a user may
feel confused or think that there is something wrong in the app, when a user is using
browser which does not support this tag. This sentence easily handles his concern.
CSS corresponds to this animation is as follows.
Properties of canvas is defined by its id. The canvas is set to have the screen width as
its width. That is , the canvas makes full use of the screen. This is to provide
maximum space for drawing elements by JavaScript.
The JavaScript file corresponds to this animation is structured in the following. First,
draw the elements needed. For this animation, a big square is needed to show the
decimal representations, ten small squares are needed to show the each binary digit.
An instruction and equal sign are also needed. The default value is 0000000000 for
binary for than of decimal is 0. Place values of bits are needed as well. All these
numbers have to be drawn.
To have a better handling on pixels for height and weight, the width of window, that
of a browser or that of a screen, is used to create a unit for height and weight. All
above are drawn with this unit initially for better element control. Refinement on
these elements are made to later to present them precisely.
Here is the parts of setting units and drawing the instruction, the result-box (the big
square) and the equal sign.
The following is the drawing of 10 small boxes, the 10-bit binary number and theirs
correspondent place value. They are drawn with a looping that increase the width
coordinate uniformly to give the outfit that 10 boxes, with the corresponding bit, are
placed one by one towards right clearly. Place value is generated by dividing it by to 2
in every loop. This suits the binary place value properties. Precision is made for clear
and tidy visual effect. Colors of boxes are alternated by four to do the same purpose.
Next, it is to handle triggering events. Click and touch are enabled. An array is set to
store the binary number. This is the code involved.
When an event is triggered, finding the position of cursor or finger will tell which
small box to be updated. This includes:
 change the bit from 0 to 1 or to 1 from 0,




update the array,
change of color of place value correspondent,
check if there is an need of "+" sign and add "+" if needed,
get the bid box updated.
This is the part of the code getting mouse/ finger position and then do checking on
which small box to update with respect to coordinates. The variable x, y represent
the world coordinates of mouse position. They are reduced by canvas size to
transform back to local coordinates.
This is the code for a small box to be updated if user tap/ click on its zero. That for
clicking one is very similar.
This is the code for add "+" sign. All "+"s are removed every time an event is
triggered. Then add "+" needed with the updated array for binary digits.
Finally, it is to get the box boxes updated. The codes are shown as follows. Precisions
have been refined. This is made because of the value. The value ranges from 1 to 4
digits. However, the size of big box remains the same for every case. Therefore, to
keep the value centered in the big box, refinement like changing font size and text
width coordinates had to be made.
Decimal-to-binary convertor
Similar to the binary-to-decimal convertor, this animation aims to let students make
use of the binary concept learnt. It follows question: how computer handle integers
and linked on that page too.
This animation displays the conversion from a 3-digit decimal number to 10-bit
binary number. Users can tap on sections on three clocks, which represent the three
digit in decimal, to create a decimal number. The 10-bit binary representation will be
shown immediately on 10 linear small boxes. This is a responsive animation. Place
values of bits will be shown. Moreover, a notice board will be displayed at the right of
the clocks to briefly explain how the conversion is done. The explanation is of
subtraction to the largest place value smaller than the decimal number. The
subtraction continues until the difference is zero. For example, if "10" is tapped for
conversion, The small boxes will show 0000001010. The notice board will shown
"10-8 = 2" and "2-2 = 0".
HTML, CSS and JavaScript are used to produce this animation. Similar to the
binary-to-decimal convertor, most of the code handle is passed to JavaScript.
Therefore, the HTML and CSS are thin while the JavaScript is fat.
The HTML and CSS implementation are exactly the same as the binary-to-decimal
convertor. Similarly, they are implemented to handle concerns from user using
html5-unsupported browser and maximize the space for drawing to screen
respectively. Here are the codes.
For the JavaScript, it is constructed as follows.
First, draw the elements needed. They are 3 clocks which each has 0 -9 printed
evenly from each other near the circumference of it, 10 small boxes each which a bit
and corresponding place value, a dash board briefly showing the conversion by
subtraction equations and an equal sign. Similarly, this convertor uses unit created by
the width f window to handle pixels for height and width for better control.
Refinement are made to later for precision. Here are the codes for the clocks.
The code above only draw a circle unless function drawClock() is called. Three
functions are called in drawClock(). They are drawFace(), drawSector() and
drawNumber() and they are called following this order. drawFace() return a circle
with a colored concentric circle labeled 0 inside. drawSector return a circle with a
colored concentric circle labeled 0 inside and 10 sectors with alternate sector colored.
drawNumber() return a circle with a colored concentric circle labeled 0 inside and 10
sectors with alternate sector colored and sectors labeled from 0 to 9.
In drawSector(), the "arcsector" is defined as "Math.PI*(2*1/10)". It is divided by 10
so as to generate 10 sectors, which each labeled by 1 number from 0 to 9. IN
drawNumbers(), the loop condition"(num = 0; num < 10; num++)" is set to have 10
loops. This is to cope with "ang = num * Math.PI/5;". In this way, the number 0 to 9 is
to be labeled evenly within the clock.
Elements other than clocks are drawn similarly as the binary-to-decimal convertor
does. Next, the event handler. "Mousedown" and" touchend" are events to be
handled for click and tap by users. Cursor and finger position are checked with
respect to coordinates. Here, Pythagorean theorem is used to check whether the
position of click or tap is within the clocks.
The three clocks, from left to right, represent the hundreds, tens and ones in a
decimal number. The default value of decimal number to be converted is zero.
Therefore three zeros are placed in centers of the three clocks. Once an event is
triggered, that is a tap or click on number in sectors, position of click and tap will be
taken. Then the following will be done immediately following the order:
 check which clock is clicked/ tapped,
 check which number is clicked/ tapped,
 place that number in the center of the clock clicked/ tapped,
 update the variable containing the decimal value,




calculate the corresponding binary representation ,
update the small boxes bits ,
update the place values for small boxes, and
update the dashboard.
Here is the code for updating the dashboard. Minuend, subtrahend and difference
are first drawn with background colored rectangles. Then "-" and "=" signs are drawn
to complete the update.
Results
The result of the project is an interactive Android computer learning application
containing detailed information to fundamental questions of basic concepts, binary
and processor, for junior secondary school students with the technique of HTML5.
This application can be installed in smart devices with version of Android 9 onwards
( that is Android 2.3 onwards for platform). It is handy and convenient. It is with
appropriate difficulty to junior secondary students.
The interactive part is important in this application. Here are the results of their
implementation. They are examples of using the animations. Desirable result is
granted.
Content page
When Binary button is pressed, only content related to binary is shown. This is so for
Processor, Fun and About respectively.
Helpful animations
Binary addition
When the "see sum" button in the upper diagram below is clicked, the sum of
addition for the ones are shown and a "see sum" button appears, which resulted as
the lower diagram.
Binary addition with carrier
When the "see sum" button in the upper diagram below is clicked, the sum of
addition for the tens are shown. A carrier and a "see sum" button appears, which
resulted as the lower diagram.
Character handling in computer
When the page is loaded, the upper diagram below is shown. By clicking the "B"
button, the lower diagram is shown. It is with details about how the computer
receive the input of the character "B" as well as the handling and display of it.
When a further click to done to button "O", the details about how the computer
receive the input of the character "B" and the handling and display of it change to
the details about how the computer receive the input of the character "O" and the
handling and display of it. The diagram below is the resultant diagram.
Increase in hexadecimal, decimal and binary
When the page is loaded, the upper diagram below is shown.
By clicking the "+" button inside the hexadecimal named, the numbers in all three
columns are incremented. After clicking that "+" button for 14 times, "e" is shown in
the hexadecimal named, "14" is shown in the decimal named and "1110" is shown in
the binary named. This result is shown in the lower diagram.
When a further click to done to button "-" in the binary named, the numbers in all
three columns are decremented. After clicking that "-" button for 5 times, "9" is
shown in the hexadecimal named, "9" is shown in the decimal named and "1001" is
shown in the binary named. The diagram below is the resultant diagram.
Color picker
When the page is loaded, the upper diagram below is shown.
By clicking a on the wheel, the color range shown in the square inside the wheel
changes and the hexadecimal representation of the color clicked is shown in the
textbox at its right. This result is shown in the lower diagram.
Full Screen animations
Binary-to-decimal convertor
When the page is loaded, this diagram below is shown. The values are all zeros with
place value dimmed.
By tapping onto the third small box, the digit in the box changes to 1. The place value
4 is lighted and raised. The result box becomes 4.
By tapping onto the forth small box, the digit in the box changes to 1. The place value
8 is lighted and raised. The result box becomes 12. A "+" sign appears between the 8
and 4.
By tapping onto the fifth small box, the digit in the box changes to 1. The place value
16 is lighted and raised. The result box becomes 28. A "+" sign appears between the
16 and 8.
By tapping onto the forth small box, the digit in the box changes to 0. The place value
8 is dimmed and dropped. The result box becomes 20. The "+" sign between the 16
and 8 vanished.
Decimal-to-binary convertor
When the page is loaded, this diagram below is shown. The values are all zeros with
place value dimmed.
By tapping onto the number 2 in the purple clock, the digit in the clock changes to 2.
The small boxes and dashboard are updated.
By tapping onto the number 5 in the blue clock, the digit in the clock changes to 5.
The small boxes and dashboard are updated.
By tapping onto the number 5 in the red clock, the digit in the clock changes to 5.
The small boxes and dashboard are updated.
By tapping onto the number 2 in the blue clock, the digit in the clock changes to 2.
The small boxes and dashboard are updated.
Conclusion and Future Works
Computer is an important and hot issue all around the world nowadays. From
personal computers to notebooks, now we have smart tablets and smart phone. The
access of information turns to be very easy with a few taps on the handy and
convenient smart phones. People start to use mobile devices they had as their
extensions particularly in social means. Web browsing no longer the main reason for
getting online. Connecting with friends takes the place instead. To ease
communications, mobile applications for social purpose such as Instagram and
WhatsApp are widely used. User simply makes a few taps to share, to view and to
chat with others. This kind of information access is turning to be more common and
popular with its ease.
Following the trend, many authorities and companies have their own mobile
applications. Information is delivered to clients and customers via these application.
Mobile application becomes one of the most popular data access to people. With its
great influence, many people including students enjoy the casual and handy
experience with their smart devices. These devices are called smart as they are made
to cope with our usage on them. They are so smart to make the usage on them
simple and easy. The smarter the device is, the less we have to do. Now we see that
how much we are going to rely on computers. In fact, we cannot pose no reliance on
computers. Therefore if we want to be a wise user of technology, it is important for
us to learn computer. Junior secondary studies would be a good start overall.
Reference
1.
2.
3.
4.
5.
6.
7.
8.
What is binary code, the history behind it and popular uses. (n.d.). Retrieved
April 19, 2015, from http://binarytranslator.com/what-is-binary.php
Why Computers Use Binary. (n.d.). Retrieved April 19, 2015, from
http://nookkin.com/articles/computer-science/why-computers-use-binary.ndoc
Basic Gates and Functions. (n.d.). Retrieved April 19, 2015, from
http://www.ee.surrey.ac.uk/Projects/CAL/digital-logic/gatesfunc/index.html
Megabytes, Gigabytes, Terabytes... What Are They? (n.d.). Retrieved April 19,
2015, from http://www.whatsabyte.com/
Data In The Computer. (n.d.). Retrieved April 19, 2015, from
http://homepage.cs.uri.edu/book/binary_data/binary_data.htm
Understanding Binary and Hex numbers. (n.d.). Retrieved April 19, 2015, from
http://www.codemastershawn.com/library/tutorial/hex.bin.numbers.php
Analog vs. Digital. (n.d.). Retrieved April 19, 2015, from
https://learn.sparkfun.com/tutorials/analog-vs-digital
(n.d.). Retrieved April 19, 2015, from
http://www.bbc.co.uk/education/guides/zjfgjxs/revision/3
9.
Binary Lesson 12 - One's Complement and Two's Complement. (2014, October
13). Retrieved April 19, 2015, from
https://delightlylinux.wordpress.com/2014/10/13/binary-lesson-12-ones-compl
ement-and-twos-complement/
10. UTF-8. (n.d.). Retrieved April 19, 2015, from http://everything2.com/title/UTF-8
11. Binary Lesson 10 - Binary Subtraction: Longhand. (2014, September 22).
Retrieved April 19, 2015, from
https://delightlylinux.wordpress.com/2014/09/22/binary-lesson-10-binary-subt
raction/
12. Android App Development in HTML5 using Visual Studio 2012 Express for Web.
(n.d.). Retrieved April 19, 2015, from
http://social.technet.microsoft.com/wiki/contents/articles/22813.android-appdevelopment-in-html5-using-visual-studio-2012-express-for-web.aspx
13. Quick no-nonsense guide to installing Apache Ant. (n.d.). Retrieved April 19,
2015, from https://www.youtube.com/watch?v=XJmndRfb1TU
14. How To Install APK File On Android Emulator. (n.d.). Retrieved April 19, 2015,
from https://www.youtube.com/watch?v=HVysAukOpCA
15. (n.d.). Retrieved April 19, 2015, from
http://www.bbc.co.uk/education/subjects/z34k7ty
16. Create an app icon using Photoshop in 20 easy steps. (2012, November 21).
Retrieved April 19, 2015, from
http://99designs.com/designer-blog/2012/11/21/create-an-app-icon-using-pho
toshop-in-20-easy-steps/
17. Icon Slayer. (n.d.). Retrieved April 19, 2015, from
http://www.gieson.com/Library/projects/utilities/icon_slayer/#.VNcg7vmUfzF
18. JQuery Mobile: Demos and Documentation. (n.d.). Retrieved April 19, 2015,
from http://demos.jquerymobile.com/1.2.1/
19. Detect and Set the iPhone & iPad's Viewport Orientation Using JavaScript, CSS
and Meta Tags. (n.d.). Retrieved April 19, 2015, from
http://www.htmlgoodies.com/beyond/webmaster/toolbox/article.php/388959
1/Detect-and-Set-the-iPhone--iPads-Viewport-Orientation-Using-JavaScript-CSSand-Meta-Tags.htm
20. Manuel Ignacio López Quintero. (n.d.). Retrieved April 19, 2015, from
http://miloq.blogspot.hk/2011/05/coordinates-mouse-click-canvas.html
21. Touch Event Handling in JavaScript. (n.d.). Retrieved April 19, 2015, from
http://tutorials.jenkov.com/responsive-mobile-friendly-web-design/touch-event
s-in-javascript.html#handling-taps
22. Android force orientation. (n.d.). Retrieved April 19, 2015, from
23.
24.
25.
26.
http://developer.appcelerator.com/question/40001/android-force-orientation
Circles, text and getImageData. (n.d.). Retrieved April 19, 2015, from
http://codepen.io/rachsmith/pen/fBoiD
Simonsarris.com. (n.d.). Retrieved April 19, 2015, from
http://simonsarris.com/blog/510-making-html5-canvas-useful
HTML canvas arc() Method. (n.d.). Retrieved April 19, 2015, from
http://www.w3schools.com/tags/canvas_arc.asp
From circle to pie chart, with JavaScript and Canvas. (n.d.). Retrieved April 19,
2015, from http://www.scriptol.com/html5/canvas/circle.php
27. Detect if user clicks inside a circle. (n.d.). Retrieved April 19, 2015, from
http://stackoverflow.com/questions/16792841/detect-if-user-clicks-inside-a-circ
le
28. If mouse is inside circle sector? (n.d.). Retrieved April 19, 2015, from
http://stackoverflow.com/questions/23712191/if-mouse-is-inside-circle-sector
29. Smooth dragging – extending our simple dragging example | Rectangle World –
HTML5 Canvas and JavaScript: Tutorials and Experiments. (n.d.). Retrieved April
19, 2015, from http://rectangleworld.com/blog/archives/74
30. How to make a rectangle with rounded corners in Canvas. (n.d.). Retrieved April
19, 2015, from http://www.scriptol.com/html5/canvas/rounded-rectangle.php
31. Complete List of Emoji. (n.d.). Retrieved April 19, 2015, from
32.
33.
34.
35.
http://www.fileformat.info/info/emoji/list.htm
Software. (n.d.). Retrieved April 19, 2015, from
http://en.wikipedia.org/wiki/Software
Computer Operating Systems. (n.d.). Retrieved April 19, 2015, from
http://www.computerhope.com/os.htm
Computer virus. (n.d.). Retrieved April 19, 2015, from
http://en.wikipedia.org/wiki/Computer_virus
Turn a picture to Black & White online. (n.d.). Retrieved April 19, 2015, from
http://convertimage.net/online-photo-effects/black-and-white-photo-fx.asp?i=2
0150414-161733-flltr
36. (n.d.). Retrieved April 19, 2015, from
http://studio.code.org/unplugged/unplug1.pdf
37. Hanson, G., & Barwick, S. (n.d.). Retrieved April 19, 2015, from
http://www.wisegeek.com/what-is-a-digital-computer.htm
38. Binary Code. (n.d.). Retrieved April 19, 2015, from
http://soundandlight-cdplayer.weebly.com/binary-code.html
39. Data In The Computer. (n.d.). Retrieved April 19, 2015, from
http://homepage.cs.uri.edu/book/binary_data/binary_data.htm
40. What is flash memory ? - Definition from WhatIs.com. (n.d.). Retrieved April 19,
2015, from http://searchstorage.techtarget.com/definition/flash-memory
41. Online CS Modules: The Central Processing Unit. (n.d.). Retrieved April 19, 2015,
from http://courses.cs.vt.edu/csonline/MachineArchitecture/Lessons/CPU/
42. Microprocessor Tutorial. (n.d.). Retrieved April 19, 2015, from
http://www.eastaughs.fsnet.co.uk/cpu/execution-fetch.htm
43. The Alan Turing Internet Scrapbook. (n.d.). Retrieved April 19, 2015, from
http://www.turing.org.uk/
44. Why Alan Turing is the father of computer science. (n.d.). Retrieved April 19,
2015, from
http://www.techradar.com/news/world-of-tech/why-alan-turing-is-the-father-o
f-computer-science-1252107
45. The Imitation Game. (n.d.). Retrieved April 19, 2015, from
http://en.wikipedia.org/wiki/The_Imitation_Game
46. What is a Turing Machine? (n.d.). Retrieved April 19, 2015, from
http://www.i-programmer.info/babbages-bag/23-turing-machines.html
47. Computer Laboratory. (n.d.). Retrieved April 19, 2015, from
https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/turing-machine/one.ht
ml
Download