Cloud Based Education

Is a “Cloud based” educational system a real possibility, or the mere dream of a utopian future? In hid TED talk, educator and activist, Suguta Mitra asserts his optimistic vision of access to learning for all. His enthusiasm for a global cloud based education is not without experiential foundation. Mitra relates how his experiments of placing computer terminals in remote locations with the particular intention of engaging children with the machines, lead to some astonishing discoveries and insights about the nature of learning.

Mitra started by placing a computer terminal in a slum neighborhood in Delhi. He wanted to see how the local children, most living in poverty with no exposure to technology, would respond to an essentially alien device. The children he found in the city were fast adaptors, mastering the computer in a few months. Some attributed this to the urban atmosphere in Delhi were the kids were probably instructed by a local technologist. Mitra was not convinced. Determined to prove his findings, he next placed a computer 100 miles outside Delhi in the remote village where most of the population did not even speak English. Again he did not instruct the children, shrugging off questions with responses like “well, it is.” Months passed and when he came back he found the children playing games. They were irritated with him “you left this machine here with instructions in English so we had to learn English,’ they said. They also requested a faster processor and a better mouse.

In the final level of this experiment, Mitra decided to leave a computer loaded with esoteric explanations of DNA all in a non-English speaking Tamil town. “It has lots of important information on it,” he told the curious local children. He had no expectation they would be able to decipher any of the scientific content. Months later he again returned and it seemed his anticipated result of no progress was indeed the case. “We study it every day,” the children said, “We know nothing.” Mitra was ready to accept this failure and then, a small girl piped up in broken English “Yes, except for the fact a broken DNA strand leads to disease, we have learned nothing.”

In continuing cases Mitra found the same results. He also discovered the children learned more with some interaction with an adult. These adults, however, did not take on a formal teaching role, but instead acted in what he describes as the “granny approach;” standing behind the children and asking questions like ‘OH, what is that?” “What do you think it means?” He even employed a whole retinue of English grandmothers to interact with village children via the internet.

The implications Mitra’s experiments have for the use of the Cloud as a provider of knowledge, and the educational process itself are remarkable. In the past citizens were educated in many basic clerical skills, reading, writing etc., which in many ways have been replaced by machines. The population of the future will be more focused in understanding and interpreting information, rather than more rudimentary tasks. With the simple access to information an abundance of true thinkers can be developed.

How to start Your Career in Software Testing

In the expansive realm of software development, the role of a software tester is crucial. These professionals ensure that software applications are functioning correctly, meeting quality standards, and are free from glitches and errors before they are released to the end-users. If you’re considering delving into the world of software testing, you’re stepping into a field that’s in high demand and offers a promising career path. Here’s a comprehensive guide on how to embark on your journey and establish a successful career in software testing.

Understanding the Basics of Software Testing:
It’s crucial to understand the foundations of software testing before launching into a career in this field. Software testing involves examining software applications to detect defects or malfunctions. Testers analyze software requirements, design test cases, execute tests, and report defects. They play a pivotal role in ensuring the reliability, functionality, and performance of software products.

Acquiring the Necessary Skills:
To excel in software testing, you’ll need to develop a diverse set of skills. These include:

Analytical Skills: Testers need to be highly analytical in order to break down complicated software systems, spot possible problems, and create efficient testing plans.
Technical Proficiency: A solid understanding of programming languages, databases, and testing tools is indispensable for software testers. Proficiency in tools like Selenium, JIRA, and TestRail can significantly enhance your testing capabilities.
Attention to Detail: Software testing demands meticulous attention to detail to uncover even the most subtle defects. Testers must possess a keen eye for spotting anomalies and inconsistencies within software applications.
Communication Skills: Effective communication is essential for conveying test results, collaborating with development teams, and articulating technical concepts to non-technical stakeholders.
Problem-Solving Abilities: Testers encounter various challenges during the testing process. The ability to troubleshoot issues, think critically, and devise innovative solutions is invaluable in this field.
Educational Pathways:
A career in software testing may not always require a formal degree, but obtaining the necessary academic credentials can increase your employability and give you a strong foundation. Take into consideration enrolling in quality assurance, software engineering, or computer science degree programs or certification courses. Additionally, you can acquire the skills and information required to succeed in this area by enrolling in specific courses in software testing methodologies and tools. Comprehensive programs designed to satisfy industry demands are offered by Software Testing Training in Delhi, Noida, Agra, Vadodara, Mumbai, and many other Indian cities. These programs give participants practical experience and insights into the newest trends and approaches.

Gaining Practical Experience:
Practical experience is crucial when working in the software testing industry. Seek internships, co-op programs, or entry-level positions to gain practical exposure to testing methodologies, tools, and industry practices. Embrace every opportunity to work on real-world projects, collaborate with experienced testers, and hone your skills in test planning, execution, and reporting.

Building a Strong Portfolio:
As you gain experience in software testing, compile a portfolio showcasing your projects, achievements, and contributions. Include details about the types of testing you’ve performed, the tools and methodologies you’ve utilized, and the impact of your testing efforts on software quality. A well-curated portfolio serves as tangible evidence of your capabilities and can significantly bolster your job prospects.

Networking and Professional Development:
Networking plays a vital role in advancing your career in software testing. Join industry forums, attend conferences, and connect with seasoned professionals in the field. Engage in knowledge-sharing activities, participate in discussions, and stay abreast of the latest trends and developments in software testing. Additionally, consider obtaining certifications such as ISTQB (International Software Testing Qualifications Board) to demonstrate your expertise and commitment to professional growth.

Job Search Strategies:
When embarking on your job search in software testing, cast a wide net and explore diverse employment opportunities. Look for openings in software development companies, IT consulting firms, quality assurance departments, and software testing service providers. Tailor your resume to highlight your relevant skills and experiences, and customize your cover letter for each application to demonstrate your enthusiasm and fit for the role.

Continual Learning and Adaptation:
The field of software testing is dynamic and constantly evolving. Embrace a mindset of continual learning and adaptation to stay relevant in the industry. Keep abreast of emerging technologies, testing methodologies, and industry best practices. Pursue advanced certifications, attend workshops, and engage in online courses to expand your knowledge and skill set.

Conclusion:
Embarking on a career in software testing offers a wealth of opportunities for growth, learning, and professional fulfillment. By acquiring the necessary skills, gaining practical experience, building a strong portfolio, and networking with industry peers, you can pave the way for a successful and rewarding career in this dynamic field. Remember to stay curious, embrace challenges, and remain dedicated to honing your craft as a software tester. With perseverance and determination, you can embark on a fulfilling journey towards becoming a seasoned and sought-after testing professional.

Literature review and proposal as PL/SQL Developer

Literature review
It is vital to choose the right programming language that helps the programmer carry out transaction processing and the one that supports procedural constructs, and robust error handling (Wichmann, 1995). That programming language also needs to incorporated variable declarations and general high performance. The PL/SQL programming language has database basis, and it is also an application development language that supplements the SQL programming language with standard programming feature. It is the superset of SQL programming language. The features that this programming language adds to SQL include block structure, flow control statements and loops, customized error handling, structured data and variables and constant types (Feuerstein & Pribyl, 2014). It makes it possible for the one programming to store the compiled code into the database directly. With that possibility, the any number of users and applications can share the same functions and procedures. As a matter of fact, once the loading of the code takes place onto the memory, multiple users can use the same code simultaneously.

The users can also define triggers to enable the database execute them automatically in response to the specified events (Sharma et al., 2011). Pl/SQL is an exclusive product from Oracle Corporation and not an industry standard. The language helps in bringing efficiency to programming because if the user compiles it prior to runtime, there is high efficiency ensured in that code or program. It groups its statements into some units that we can refer to as block just like any other programming languages groups the statements into some units (Gupta, 2012). Those blocks can be anonymous or named as subprograms of procedures. There is the usage of a function in an expression, and it returns a valued top the expression before the invoking of a standalone statement. It then passes the value to the calling program using parameters only. It is also possible to nest those subprograms into one another and then into larger units known as packages. The daily responsibilities of a PL/SQL programming entail writing programs, queries, and functions so as to manipulate the structure and data of a database.

There is also a responsibility of querying databases and then generating reports that is vital to the decision-making process of an organizations or any business (Parker & Ottawa, 2006). PL/SQL ensures that those tasks take place in the required manner so as to deliver a high-quality code that lead to the delivery of high-quality reports or queries. Pl/SQL development takes place on the Oracle database, and the developers may also work with MySQL and the Microsoft SQL Servers, or any other database system (Hellstrom, 2015). It requires the SQL developer to have a thorough knowledge of SQL programming analytics ability and a strong logic. The software development arena requires that the developers report to the managers and the software development team leads. Because of that, it is a requirement that a PL/SQL developer handles the successful delivery of the development projects for software as well as support the production development. Those are the responsibilities that I will ensure that they take place while working in the i5 Tech Company as highlighted in my introduction and methodology.

The PL/SQL developer requires having active participation in software design and solutions while ensuring that he/she develops the company systems forward to deliver a high quality managed solution. PL/SQL language offers to the developer elements that are imperative to the software or application development task (Gupta, 2012). One of the elements includes organized code management packages that serve the purpose of making the locating of the code easy as well as its understanding and reuse. There is also the easy of top-down application design. That is because a separation between the public interface and the implementation if a crucial feature required for any package. That ensures that the programmer can code and compile a package with the absence of the body. When there is such vital separation of the public interface and the body, there is the possibility of developing an application in a modular fashion and not face bottlenecks. The bottlenecks arise due to incomplete implementation details in the code or application.

Both the bottom-up and the top-down development approaches are strategies that are useful for the processing of information and knowledge ordering (Dell Corporation, 2006). These tasks are vital in many areas such as software, scientific theories, humanistic, management, and organization. The top-down approach to PL/SQL development also known as decomposition, it is vital in breaking a system down to gain more understanding of the same regarding its compositional structure. In this approach, there is formulating of a system, making specifications although there is no detailing of any first-level subsystems. There is then the refining of the system into greater detail, and sometimes this may take place in many additional levels until the developers reduce the system into its base elements (Wile, 2002). It mean than the PL/SQL language helps in the reduction of the complexity of the task of development as in the case of bottom-up approach. The latter approach is where there is the piercing together of systems to form a more complex system meant for making g the original system be a subsystem of the emergent one.

The other powerful element of the PL/SQL is what the programmers call painless implementation changes because the language helps to eliminate the havoc or making changes to the subprograms. In many of the programming languages, making changes to a subprogram creates havoc with the other programs that might be referring it. With PL/SQL, there are no changes required in the dependent objects if only the there is the changing of the code in the package body (Tutorialspoint.com, n.d). It is also possible to ensure security and maintainability in the code when using this application language. It makes it possible to specify which of the items, types and subprograms that is private or public. Also, the ability to have in a package some private portions makes it impossible to access them publically. That is essential as it helps in protecting the integrity of that package as well as simplifying the maintenance.

PL/SQL also incorporates session-wide persistence of the public variables. That means the package public cursors, as well as the variables only, persist as long as the session is not over. They let the programmer to maintain the data across many transactions without the need for storing it in the database. They help in the storage of the values that have session-wide relevance like the debug/trace options. Better performance in PL/SQL language is possible through the loading of the package into the memory after the invocation of the packaged subprogram for the first time (Urman et al., 2004). There no disk I/O operations required for later calls to the subprograms that are in the package. All this translates to better performance than the SQL itself and other application programming languages.

Proposal
In the i5 Tech Company where I will be carrying out my research as an intern, I will have involvement in many tasks as highlighted in my introduction and methodology. Those tasks will relate to the PL/SQL development as I will be working as a PL/SQL developer in this company. I will have involvement in vital projects development with this language in question and in all those tasks I will be interacting with various teams of experts so as to understand what is in the requirement of me. Other tasks I will be in the requirement to carry them out alone while others I will be working with other teams or groups of professional for the purpose of quality and accountability. All those tasks have a division into five iterations including orientation, training, gathering and understanding the user requirements, coding, and testing and implementation. Those iterations have an explanation in the following paragraphs.

Orientation
The orientation session is where I will have the explanation of how the organization works, its structure, models of operation, management, working procedures and guidelines among others. I will have to know the limits of my duties and conduct so as not to have trouble in failing to adhere to the company rules and regulations regarding conduct and internship responsibilities. There will also be the issuance of the intern card that I will be using to identify myself as a legally taking my internship in the company.

Training
In the training phase where will be the task of helping me to know the areas that I will be handling during my internship in the company wherein, I will be taking my internship. There will be through training on the PL/ASQL coding principles and the rules that I ought to follow to ensure that I am in line with the international standards of coding in this language. There will be an assessment at the end of the training to test my understanding of the basics in taught during the training session as this will determine the project that company will assign to me.

Gathering and understanding user requirement
During the session of gathering and understanding the user requirements, I will have involvement in meeting and interacting with various end users of the application to have development. That will be helpful to me as I will understand the requirements clearly so as to code in light of those requirements. The development team will have to verify the data after analysis before giving me a go-ahead with the development. The company will assign to me one of the PL/SQL developers and one of the project development team members to help with the consultation services.

Coding
In the coding phase, I will begin the process of developing the required application that is the actual project development. It is the phase where I will have much work. It will require me to have regular contact with my supervisors so that I will carry it out in the required way and deliver unit within the specified time and quality.

Testing and implementation
In the testing and implementation phase, there will be the testing of the developed application for errors. The task will have performance in collaboration with the project development team and after the testing there will be the implementation of the developed application. It will be the last iteration in the company.