Friday, 26 February 2016

Benefits of Having technology in education

1. Preparing Students for the Future
First and foremost your job as an educator is to prepare your students for the future. Well in order to do so you need to incorporate mobile technology in the classroom. Working with mobile devices will not only be a part of their everyday lives as adults, but it will also be vital part of many career paths. Knowing how to appropriately use mobile devices is an important aspect in this increasingly connected world. In order to properly prepare your students for the future as they transition into the workforce, incorporating mobile technology in the classroom is key

2. Up-to-date learning

The old days of looking for information in encyclopedias are long gone. Having mobile devices in the classroom allows students instant access to the latest news, information, statistics, etc. Virtually every question they have is at their fingertips, keeping them connected with what’s going on around them and ensuring they are always well informed with the most up-to-date information.

3. Alternative to textbooks

Many textbooks are not the most relevant sources of information. Today’s generation has grown accustomed to instant, updated information. Textbooks can’t provide students with the latest information like a mobile devices can. Also, having digital textbooks on their mobile devices keeps students more organized and gives them easy access to their materials. No one likes lugging around big textbooks. Many digital textbooks are constantly updated and often more vivid, helpful, creative, and a lot cheaper than those old heavy books.

4. Learning goes outside of the classroom

By allowing mobile devices in school you can expand learning outside of the classroom. Students will not only have access to information during computer lab time (which is also becoming extinct). They can look up information from anywhere on campus. Collaboration will increase as students can use these devices as research tools during projects and group work.
Plus students love technology so they are likely to be excited about it and continue learning outside of school hours. Having those learning apps, digital textbooks, etc. on mobile devices allows them to get in extra studying and learning in during downtime. They can carry their books and notes with them at all times and have instant access to materials. If students are really excited and engaged in learning inside of the classroom, they are likely to continue learning outside of the classroom and they can do so with mobile technology.

Software Role in computers

While just about everyone uses a computer in some way, shape or form on a daily basis, there are relatively few people who understand how vitally important computer software is to the usefulness and functionality of even simple devices. From very basic items such as a digital watch, to handy innovations in cell phones, to the grand super computing behemoths that manage things such as space shuttle launches, none of these machines could function without the programming that gives them life. 

Essentially all programs and applications for computers are a set of instructions designed to create particular outcomes. A computer program is a collection of these instructions that have a common purpose. A collection of related programs to carry out coordinated computing tasks is referred to as a package. 

One great example of a package of software programs would be an application that handles accounting related tasks. Such a package would have a number of modules, or independent programs, that function together to comprise a complete package. 

For instance, the accounting package might contain a bookkeeping program, an audit program, a data base management program, a tax preparation program, a time tracking and billing program or any number of other related programs. In many cases each of these kinds of accounting programs could stand alone, but they become much more powerful when they operate together as a complete package. 

These kinds of packages that contain various modules, or programs, have become very popular because the data is shared between the various programs. This reduces the need to re-enter data and eliminates tasks of exporting and importing information from one program to the other. This not only saves time but it also significantly reduces the possibility of errors, because even when data is not re-keyed there are numerous possibilities for data to become corrupt when going through exporting and importing functions. 

All computers operate with what is known as system software, or the operating system. This programming provides the very basic instructions for how the computer interacts with the user and how the various programs and packages operate. 

Windows is the most commonly used personal computer operating system, with the Macintosh OS X operating system being the next most common system. Other operating systems include Linux and Unix, which are often used in more high-end computing situations. 

If you have computer work that needs to be done, then there are at least three components in play. The hardware is the first component which is actually what most people think of when talking about computers. The hardware includes the "box," the monitor, the keyboard, the mouse and any other physical components.

The operating system software is the second of the three components. Which operating system that runs on your computer will have a great deal to do with which programs you are able to operate and also will make a difference in how easy or difficult it is to use the computer overall. While Windows computers are more prevalent, many people say that the Macintosh computers are more user friendly because of the operating system.

Basic C trains You to Write Efficient Code

C is one of, if not the, most widely used programming languages. There are a few reasons for this. As noted programmer and writer Joel Spolsky says, C is to programming as learning basic anatomy is to a medical doctor. C is a "machine level" language, so you'll learn how a program interacts with the hardware and learn the fundamentals of programming at the lowest—hardware—level (C is the foundation for Linux/GNU). You learn things like debugging programs, memory management, and how computers work that you don't get from higher level languages like Java—all while prepping you to code efficiently for other languages. C is the "grandfather" of many other higher level languages, including Java, C#, and JavaScript.

That said, coding in C is stricter and has a steeper learning curve than other languages, and if you're not planning on working on programs that interface with the hardware (tap into device drivers, for example, or operating system extensions), learning C will add to your education time, perhaps unnecessarily. Stack Overflow has a good discussion on C versus Java as a first language, with most people pointing towards C. However, personally, although I'm glad I was exposed to C, I don't think it's a very beginner-friendly language. It'll teach you discipline, but you'll have to learn an awful lot before you can make anything useful. Also, because it's so strict you might end up frustrated like this:

10 qualities of The Perfect programmer

Every quality of a perfect programmer has a range depending on the specific problem and context. There is no absolutely perfect programmer for all the problems (at least on this planet). And the perfect programmer for particular problem should have


  1. Intellect– can understand the problem, translate and express ideas in clear and readable code, has analytical and logical mind (range: building programs for narrow well defined requests to conquering freaking complex problems in elegant way)
  2. Personality – has right mixture of personal traits (detail-oriented vs. creative, flexible vs. disciplined, sociable vs. independent)
  3. Expertise – knowledge and experience for solving client’s problems in the specific context with chosen technologies (range: a specialist in one technology to a veteran programmer with broad experience in different domains and platforms)
  4. Motivation – cares about work, shows enthusiasm, interest and love for programming (range: from working for money only to implementing interesting ideas in spare time without pay)
  5. Maturity – knows and uses sound software development principles, practices and approaches as agile, design and architecture patterns, domain-driven design, unit testing, refactoring (range: from an enthusiastic amateur to a black belt guru, who can invent new approaches on the go)
  6. Pragmatism – understands what is possible, loves simplicity and avoids over-engineering; understands business goals, keeps touch with reality and focus on what should be done (range: from a spontaneous artist to a self-driven pragmatic achiever)
  7. Cooperation – listens, accepts that other people could have better ideas, supports team goals without hidden agenda, shares ideas and knowledge and coach others (range: from idea challenger to a team coach)
  8. Communication – effectively communicates and exchanges ideas, supports knowledge and decisions about the system with clear explanations, justifications and answers (range: from a quiet introvert to a system evangelist)
  9. Potential – has professional goals, good learning skills, curiosity, adaptability and performs constant self correction (range: from person who reached his limits to the future programming star)
  10. Vision – sees the big picture, understands context, trends and people, aligns actions with team and company implicit goals, contributes into building shared vision for the software system (range: from interested in programming only to entrepreneurial visionary)

Why we need software testing

This information contributes towards reducing the ambiguity about the system. For example, when deciding whether to release a product, the decision makers would need to know the state of the product including aspects such as the conformance of the product to requirements, the usability of the product, any known risks, the product’s compliance to any applicable regulations, etc.
Software testing enables making objective assessments regarding the degree of conformance of the system to stated requirements and specifications.
Testing verifies that the system meets the different requirements including, functional, performance, reliability, security, usability and so on. This verification is done to ensure that we are building the system right.
In addition, testing validates that the system being developed is what the user needs. In essence, validation is performed to ensure that we are building the right system. Apart from helping make decisions, the information from software testing helps with risk management.
Software testing contributes to improving the quality of the product. You would notice that we have not mentioned anything about defects/bugs up until now.
While finding defects / bugs is one of the purposes of software testing, it is not the sole purpose. It is important for software testing to verify and validate that the product meets the stated requirements / specifications.
Quality improvements help the organization to reduce post release costs of support and service, while generating customer good will that could translate into greater revenue opportunities.

Utility software and Device drivers

Utility Software
Utility software helps to manage, maintain and control computer resources. Operating systems typically contain the necessary tools for this, but separate utility programs can provide improved functionality. Utility software is often somewhat technical and targeted at users with a solid knowledge of computers. If you use a computer mostly for e-mail, some Internet browsing and typing up a report, you may not have much need for these utilities. However, if you are an avid computer user, these utilities can help make sure your computer stays in tip-top shape.
Examples of utility programs are antivirus software, backup software and disk tools. Let's look at each of these in a bit more detail.
Antivirus software, as the name suggests, helps to protect a computer system from viruses and other harmful programs. A computer virus is a computer program that can cause damage to a computer's software, hardware or data. It is referred to as a virus because it has the capability to replicate itself and hide inside other computer files.
One of the most common ways to get a virus is to download a file from the Internet. Antivirus software scans your online activity to make sure you are not downloading infected files. New viruses are coming out all the time, so antivirus software needs to be updated very frequently.
Backup software helps in the creation of a backup of the files on your computer. Most computer systems use a hard disk drive for storage. While these are generally very robust, they can fail or crash, resulting in costly data loss. Backup software helps you copy the most important files to another storage device, such as an external hard disk. You can also make an exact copy of your hard disk.
Increasingly, backup software uses cloud storage to create backups. This typically means you pay a fee to use the storage space of a third party and use their backup software to manage which files are going to be backed up.
Disk tools include a range of different tools to manage hard disk drives and other storage devices. This includes utilities to scan the hard disks for any potential problems, disk cleaners to remove any unnecessary files, and disk defragmenters to re-organize file fragments on a hard disk drive to increase performance. Disk tools are important because a failure of a hard disk drive can have disastrous consequences. Keeping disks running efficiently is an important part of overall computer maintenance.

Device Drivers

device driver is a computer program that controls a particular device that is connected to your computer. Typical devices are keyboards, printers, scanners, digital cameras and external storage devices. Each of these need a driver in order to work properly.
Device drivers act as a translator between the operating system of the computer and the device connected to it. For many types of devices, the necessary drivers are built into the operating system. When you plug in a device, the operating system starts looking for the right driver, installs it and you are ready to start using the device. This is referred to as plug-and-play and is much preferred over having to manually install the correct drivers.
There are so many different devices, however, that not all of them are built into the operating system. As an alternative, the operating system can look online to find the right driver to install. Many hardware devices, however, come with the necessary drivers. For example, if you buy a printer, it may come with a CD that typically will include the correct driver. The advantage of this is that the hardware manufacturer can make sure you have the right driver for the printer.

Application software

Application software is a subclass of computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform.

This should be contrasted with system software which is involved in integrating a computer's various capabilities, but typically does not directly apply them in the performance of tasks that benefit the user.
In this context the term application refers to both the application software and its implementation.
A simple, if imperfect analogy in the world of hardware would be the relationship of an electric light bulb (an application) to an electric power generation plant (a system).
The power plant merely generates electricity, not itself of any real use until harnessed to an application like the electric light that performs a service that benefits the user.
Typical examples of software applications are word processors, spreadsheets, and media players.
Multiple applications bundled together as a package are sometimes referred to as an application suite.
Some might bundle together a word processor, a spreadsheet, and several other discrete applications.
The separate applications in a suite usually have a user interface that has some commonality making it easier for the user to learn and use each application.
And often they may have some capability to interact with each other in ways beneficial to the user.
For example, a spreadsheet might be able to be embedded in a word processor document even though it had been created in the separate spreadsheet application.
User-written software tailors systems to meet the user's specific needs.
User-written software include spreadsheet templates, word processor macros, scientific simulations, graphics and animation scripts.
Even email filters are a kind of user software.
Users create this software themselves and often overlook how important it is.