Friday, 26 June 2020

कैसे पता चलेगा कि मेरी कुंडलिनी जागृत है?

1) जब आपको दिव्य दर्शन, सुगन्ध, स्वाद, श्रवण और किसी के आपको छूने की अनुभुति हो ।

2) जब आपको परमात्मा की तरफ से सन्देश मिलने लगे ।

3) जब मूलाधार चक्र मे स्पंदन होने लगे ।

4) जब आपके रौंगटे खड़े होने लगे ।

5) जब गहन साधना के दौरान आपकी श्वास चलते चलते रूक जाये ।

6) जब आपको अपनी रीढ की हड्डी मे नीचे से ऊपर तक सिरहन होने लगे ।

7) जब आप अकारण ही आनंदित रहने लगे ।

8) जब स्वतः ही आपके मुख से ओम का उच्चारण होने लगे ।

9) जब आपकी आँखे भूमध्य मे थिर होकर शाम्भवी मुद्रा लगने लगे

10) जब आपको शरीर के विभिन्न भागो मे विधुत के झटके लगने की अनुभूति होने लगे ।

11) जब ध्यान के दौरान आपकी बंद पलके जोर लगाने पर भी ना खुले ।

12) जब सभी संदेह दूर हो जाये और आपको सभी अध्यात्मिक ग्रंथों का मर्म समझ आने लगे ।

13) जब ध्यान के दौरान आपको अपना शरीर हवा से भी हल्का महसूस होने लगे ।

14) जब संकट काल व मुसीबत के समय मे भी आपका मन व्यग्र या विचलित ना हो ।

15) जब आप किसी भी कठिन कार्य को बिना थके घंटो तक करते चले जाये ।

16) जब आपको हर समय एक खुमारी या नशे जैसी स्थिति रहने लगे और होश भी पुरा रहे ।

17) जब आप की कही बाते सत्य सिद्ध होने लगे ।

तब जाने की आप की सोई शक्ती जाग रही है ।

5 Techniques to improve your Programming Skills

The ever-evolving technical sphere has forced developers to up skill themselves in order to stay in demand in the job market. If you do not work on upgrading your programming skills, there are chances that you are out-of-demand in next 2 years.

       Everyone knows that learning and practicing is the key to improving programming skills. Every programmer does that but unfortunately, only a few succeed. Here, we are disclosing some bullet-proof techniques to bring you on the path of learning and improving so as to build a long-lasting career in the IT industry.

1. Start a home project

       The best way to brush up your skills is to start a home project, just for fun. As a developer, you need to go through the whole SDLC process and what can be better than starting a fresh project from scratch. Start with a simple project and take it to the next level once the previous goal is completed. This will not only improve your technical skills but also help you enhance your analytical powers, decision-making, and critical thinking.

2. Participate in competitions

       Another best way to check on your skills is to compete in hackathons, coding contests, and quizzes. This way, you get to know your weaknesses and can better work on the skills that you lack. Participation in contests also improves your team-player, communication, and presentation skills.

3. Get up-to-date with the latest technologies

       How would you up skill yourself if you are not aware of what is new in the industry? So, keep yourself updated with the latest technologies emerging every now and then. Here are some tips to help you update yourself -

·         Subscribe to tech-related magazines, blogs, and newsletters

·         Keep your software updated

·         Regularly browse through the internet for the latest news from the technical sphere

·         Re-read the programming books in their latest editions

4. Contribute to GitHub-like repository

       For boosting up your up skilling process, what you can do is to contribute your software code to GitHub or other such websites. Here, you get to encounter different types of real-world problem and get a chance to provide solutions. Through contribution, you not only earn a name in the software developer community but learn a lot about how the software industry works.

5. Work on a freelance project

       Yes, working on a freelancing project is another effective method to help you improve your programming skills. When working on such projects, you deal with a real client and have a lot of scope to explore new horizons with the use of cutting-edge technologies. This helps you broaden your skill set along with earning some extra money.

Basic Terms Every Beginner Programmer Must Know

Programming is evolving with every passing day and we are becoming more and more dependent on it. Because of that a lot of entrepreneurs, as well as job opportunities, are emerging in this field. According to a recent research, Millions of people learn programming every year. If you are a beginner programmer this article is for you as these are the top 15 terms you would come across during your learning curve.

1. Variable:

Variable is a scalar location paired with an identifier, basically it is an address to a memory location where we store any data and identifier being the type of data that is integer, String, Character, Array type, object type and much more. They are the building blocks of any program or software because they help in providing the dynamic approach.

2. Data types:

The data type in simple language is the classification of data which helps in telling the compiler or the interpreter what the programmer intends to use the data and what type of data will be stored in the Variables and accordingly allocates the size. Data types may vary from language to language but some of them are int (Integer Type), char (Character Type), Boolean (True-False Type) and many more.

3. Constants:

Constant is quite similar to a variable the only difference being is its value is constant that is unchangeable throughout the code which is not the case with variables as they may vary from their initialization values. There are various specific realizations of the general notion of a constant, with subtle distinctions that are often overlooked. The most significant are: compile-time (statically-valued) constants, run-time (dynamically-valued) constants.

4. Pseudocode:

As a beginner you will hear this word quite often as this is considered as the best practice to reach a goal, it basically is the layout of the code in a simple mix of English language and your preferred programming language which covers all the important points of how the code will work and how it would be implemented.

5. Conditionals:

As you begin you will be introduced with the conditionals these are basically he conditional statements which tell program what to do in different cases, they play a major role in providing dynamic approach to a program and are present in a huge number in any big code as program should not work in a defined manner but should be interactive to be used by the users. One can find an example of if-else switch cases all around the net, it basic working includes if this choice is true to do this if not then do this.

For e.g.

// pseudo code
if ( ThisArticle ==”Awesome”) 
print (“comment what you liked”) 
else
print (“comment the feedback”)

6. Loops or iterations:

Suppose we want a block of code to repeat for number of times or till when a condition is matched, to write the same line again and again would not only make are code bigger and bulky but will also make it unreadable for this situations we are provided with loops, they repeat a specific block of code until some condition is reached. Most used iterations are for loop, while loop, do while loop.

7. Functions / Methods:

In programming, we often come across situations where we have to use a code which we have implemented before instead of writing that code again we could just move it under a name and call that name whenever we need that code to be implemented. This supports the modular approach which every programmer should adopt. Functions are an integrated part of any programming language and are quite useful and are recommended for usage.

8. Data Structures:

Data structures are the specialized way of organizing and storing data. Some basic data structures include arrays, and some more complex ones are record, tree, list, stack, queue and much more. Any data structure is designed to organize data to suit a specific purpose so that it can be accessed and worked with in appropriate ways. In computer programming, a data structure may be selected or designed to store data for the purpose of working on it with various algorithms.

9. Object:

An object can be a variable, a data structure, a function is basically a value in a memory referenced by an identifier. In high-level languages with multiple classes, objects may have initialized to refer to those classes which form a variable with a data type of that class and let us use all features of object-oriented programming to fullest. An important concept for objects is the design pattern. A design pattern provides a reusable template to address a common problem.

10. Scope:

For any variable, object defined there is scope which tells about the validity of their usability, the variables and objects are valid only inside a piece of code unless globally, scope is beneficial for memory management as it helps in freeing space as when code moves out of that block the memory interlinked with that block is released. Scopes are of two types local and global.

11. Algorithms:

An algorithm is a step by step overview of how to solve a class of problems. Algorithms can perform calculation, data processing and automated reasoning tasks. As an effective method, an algorithm can be expressed within a finite amount of space and time and in a well-defined formal language for calculating a function.

12. IDE:

IDE or the Integrated Development Environment is one of the most important components of a coder’s life as it provides essential comprehensive facilities to programmers for software development. Truthfully there are no best IDE choices would vary from one to other, so I provide you with the selection of best on basis of most popular choices.

An IDE normally consists of a source code editor, build automation tools, debugger but is not limited only to them. IDE is more than any of these features as it provides a power to connect all of them at one place, besides it, almost all best IDEs have intelligent code auto-completion which suggests what would be possible syntax you are trying to write at real-time.

13. API:

API stands for application programming Interface; it is a set of some predefined protocols and tools which helps in developing a good application software. In simple terms, API is a set of clearly defined methods which helps in communication between various components. An API is usually related to a software library. The API describes and prescribes the expected behaviour (a specification) while the library is an actual implementation of this set of rules. A single API can have multiple implementations (or none, being abstract) in the form of different libraries that share the same programming interface.

14. Modularity:

Modularity is the phenomenon of reusing the code or dividing the code in modules instead of writing it in one full block, this is considered as a good practice as this not only allows reusability of code but as well as lets making changes into some specific section of code without affecting other sections. Object-oriented programming is a way to support modularity by dividing works into classes.

15. Compiled and interpreted Languages:

Compiled languages are the programming languages which needs to be compiled before the usage i.e., your code needs to be built into a binary file application and that file is made to run and checked for error at the compile time, this error includes incorrect syntax, improper usage of statements and much more. Example of such languages: C. CPP, Java, Swift, etc. 

Interpreted languages are the programming languages which need not be compiled before execution rather they are interpreted on the host machine reading the code directly, and providing instructions to the system on how to execute the program. Example of such languages: PHP, Python, JS, etc.

Saturday, 20 June 2020

Python vs R, which is good for Machine Learning..?

If you want to build a machine learning project and are stuck between choosing the right programming language to build it, you know you have come to the right place. This blog will not only help you understand the difference between the two languages namely: Python and R; but also help you know which language has an edge over one another in multiple aspects. So without wasting a single moment, let’s dive into it!


R and Python both have identical features and are highly popular tools among data scientists. Around 69% of developers use Python for machine learning, as compared to 24% of the developers using R. Both are open-source and therefore are free in the market. However, Python is structured to be a widely-used programming language while R is created for statistical analysis.

AI and data analysis are two territories where open source has become nearly the true permit for inventive new instruments. Both the Python and R dialects have created strong environments of open-source devices and libraries that help data scientists of any aptitude level, all the more effectively performing scientific work.

The differentiation between machine learning and data analysis is comparatively fluid, however, the primary thought is that machine learning organizes prescient exactness over model interpret ability, while data analysis underlines interpret ability and factual surmising. Python, being increasingly worried about prescient exactness, has built up positive notoriety in machine learning. R, as a language for a factual deduction and statically inference, has made its name in data analysis.

That doesn’t mean to categorize either of the languages into one class — Python can be utilized adequately as a data analysis instrument, and R has enough adaptability to accomplish some great work in machine learning. There is a vast number of bundles for the two dialects that look to reproduce the usefulness of the other. Python has libraries to help its ability for measurable induction and R has bundles to improve its predictive precision.

The following section will talk about the two languages in detail, that will significantly help you to choose the most appropriate programming language for your project.

Python

The Python programming language was created in the late 80s and assumes an essential job of driving the internal framework of Google.


Python includes enthusiastic designers and now it’s been applied in the broadly utilized uses of YouTube, Instagram, Quora, and Dropbox. Python has comprehensively been used over the IT business and grants basic exertion of coordinated effort inside development groups. Thus, if you need a versatile and multi-reason programming language with a supporting gigantic system of designers close by the extendable AI packages then Python is a top pick.

Advantages of Python

● General-purpose language — Python is viewed as a superior decision if your venture requests something other than measurements and statistics. For example — designing a functional website.

● Smooth Learning Curve — Python is anything but difficult to learn and effectively available which empowers you to locate the gifted designers on a quicker premise.

● The bulk of Important libraries — Python boasts of innumerable libraries for assembling and controlling the data. Take an event of Scikit-realize which includes devices for data mining and examination to help the unimaginable AI comfort using Python. Another group called Pandas gives engineers unrivalled structures and information assessment gadgets that help to decrease the improvement time. If your advancement group requests one of the significant functionalities of R, at that point RPy2 is the one to go for.

● Better Integration — Generally, in any designing condition, the Python incorporates superior to R. In this way, whether or not the designers endeavour to misuse a lower-level language like C, C++, or Java, it by and large gives better joining various segments together with Python wrapper. Also, a python-based stack is not hard to consolidate the rest of the job needing to be done by data researchers by bringing it effectively into creation.

Boosts Productivity — The punctuation of Python is particularly understandable and like other programming dialects, anyway remarkably comparable to R. Along these lines, it ensures high productivity of the development groups.

 Disadvantages of Python:

The absence of a common repository and the absence of choices for some R libraries. Due to dynamic composing, in some cases, it is entangled to scan for certain capacities and to follow shortcomings associated with the erroneous task of various kinds of data to similar factors.

R Programming Language

R was created by statisticians and fundamentally for the analysts in which any engineer can foresee the equivalent by taking a gander at its syntax.


As the language contains scientific calculations associated with machine learning which is derived from statistics, choosing R becomes the right decision to one who needs to increase a superior comprehension of the fundamental subtleties and fabricate inventively. If your task is intensely founded on insights, at that point R can be considered as a brilliant decision for narrowing down your undertakings which requires a one-time jump into the datasets. For example — if you like to examine a corpus of content by deconstructing sections into words or expressions to recognize their examples then R is the best decision.

Advantages of R

Suitable for Analysis — If the data examination or representation is at the core of your venture then R can be considered as the best decision as it permits fast prototyping and works with the datasets to configuration AI/machine learning models.

The bulk of useful libraries and tools — Similar to Python, R contains different bundles that help to improve the presentation of the machine learning ventures. For example — Caret supports the AI capacities of the R with its uncommon arrangement of capacities which assists with making prescient models productively. R designers gain advantage from the propelled data analysis bundles which spread the pre-and post-demonstrating stages which are aimed at explicit assignments like model approval or information representation.

● Suitable for exploratory work — If you require any exploratory work in measurable models toward the starting phases of your undertaking then R makes it simpler to keep in touch with them as the engineers simply need to include a couple of lines of code.

Disadvantages of R: 

  • Difficult to learn and easy to code badly. Weak typing is dangerous, functions have a fierce habit of returning an unexpected type of object.
  • Specificity in comparison with other languages such as vector indexation begins with one instead of zero.
  • The syntax for solving some problems is not all that obvious. Due to a large number of libraries, the documentation of some less popular ones cannot be considered complete.

Conclusion:

Concerning Machine Learning, both Python and R have their points of interest with the broad accessibility of bundles. When you ace both the dialects, you can make the better of the two universes because most of the basic errands related to one of these dialects are possible in both.

On the other hand, you can utilize Python for the beginning times of data aggression and afterward feed the information into R, which applies the all-around tried, upgraded measurable examination schedules incorporated with the language.

 

Wednesday, 17 June 2020

4 Ways to make extra money as a programmer

Programming is one of the most interesting career paths. There are plenty of jobs available for skilled programmers. But if you have a little extra time, you can make extra money as a programmer.

1. Freelancing
Freelancing is one of the best ways programmers can make money. Freelance project listing portals have plenty of projects to choose from. However, freelancing requires a lot of discipline and effort. You need to invest time in finding clients and projects. The biggest advantage is that you can start freelancing next to your permanent jobs.

2. Coding contests
There are dedicated platforms for developers to participate in contests and win real prize money. TechGig Code Gladiators is one of the biggest annual coding competitions with hundreds of thousands of participants. You get to work on real projects and network with like-minded people in this mega event.

3. Online courses
If you are an expert in any programming language, framework, or tool, you can also look at creating course content. Teaching people online is one of the best things that have emerged over the last few years. It benefits both, students and teachers. Experts having knowledge of JavaScript and Python have the highest demand on e-learning platforms.

4. YouTube/Podcast
Some developers like to share knowledge through audiovisual format. YouTube is the best way to share content. You can create videos about programming languages, frameworks, tools, and related content. If you don't like to be in front of the camera, you can record your content and start a podcast channel. Most podcasts are free to listen, but you can make money by charging sponsors. Many podcasters are on Patreon, a platform where people pay a monthly amount to support the work and unlock exclusive access to the content.

Tuesday, 16 June 2020

Strategies to overcome Programmer’s Block

          Have you ever been in a psychological situation when you are unable to write any code, the deadline of project seems out of reach, and whatever you code appears to be not right? This condition is called Programmer’s Block or Coder’s Block and it is quite normal among developers to go through this phase. Often, it goes away automatically in most of the cases, in a few hours.


          Unfortunately, many-a-times, a programmer does not have a few hours to spare on programmer’s block to pass. When working on a crucial project, a little delay even by a minute can be very costly. Thus, we need a way out of the programmer’s block as soon as possible. Well, worry not. We have come up with 4 proven strategies to resolve the problem and get you out of the mental block. Let’s start!

1.    Revisit your goals

    The major reason behind the programmer’s block is the loss of sight of what you are doing. You get confused of what you are doing and why. The best way to overcome this problem is to revisit the project documents and read the project goals again. This will clarify your vision about the project and help you give a fresh start to the work.

2.    Take a break

           Continuous work on screen can be tiring and cause you a coder’s block. If this kind of situation arises, what you can do is break the cycle. Stop programming, take a break, walk around, and get involved in a random conversation that is completely no-related to your work. This will calm your brain muscles down and help you recover the block sooner than expected.

3.    Fix your approach

          Applying a wrong approach is another big reason behind programmer’s block because a bad approach gets you stuck at places several times. You want to minimize resources while maximizing productivity but a wrong move can lead you to a no-productivity zone. Thus, if you find yourself stuck in such mental block, change your approach. Look at the problem from a fresh perspective and come up with a new approach. The best way is to break down your problem into manageable pieces and apply multiple approaches on different chunks to increase productivity.

4.    Ask for help

          Yes, sometimes you can get a programmer’s block because you do not know how to go ahead with your program. There is no shame in accepting that you are not the know-it-all. Turn your programmer’s block into an opportunity of learning something new. You can ask for help from colleagues, fellow team members, your project manager, and even the internet. There are several online communities and forums to help you resolve your problem. You just ask for help and people will surely like to help you. This thing is true in a case when you have a mental block because of some personal problem in life.


Introduction to Computer Assisted Learning (CAL)

What Is It All About?

Computer assisted learning is the future, and that future is now. Education, as a process and discipline, is mainly concerned with imparting knowledge, methods of teaching, and providing/maintaining a conductive learning environment as opposed to informal education and other means of socialization. Computer assisted learning (CAL), as the name implies, is the use of electronic devices/computers to provide educational instruction and to learn.


Computer assisted learning can be used in virtually all fields of education, ranging from TV/DVD play-learn program for kindergarten kids to teaching quadruple bypass surgery techniques in medicine. CAL is developed by combining knowledge from all fields of education/learning, human computer interaction (HCI) and cognition.

Today, classical education methods are rapidly being replaced with virtual education, online school, and distance learning systems. Boosted by improved visualization and data transmission technologies, it is now quite easy to create computer software programs that display and analyse graphic multidimensional data for human interpretation. This has become an integral part of education and is frequently used to develop and make attractive presentations in subjects that are difficult for students to understand without proper illustration.

With due regard to this work, we will simply define computer assisted learning as the tutoring, learning, and interacting process facilitated through the use of computers. The main edge/advantage that CAL has over education methods is interaction. Computers can stimulate and arouse the active interest of students during the learning process at multiple levels. For example, on one level, it facilitates the interest of students in the learning material or the content being taught (for example a DVD tutorial on how to handle spreading fire). On a higher level, computers can facilitate live/active teaching interaction between the students and the tutor or among the students themselves and moderated by the tutor. The concept of human interaction with computers has been on since the introduction of household electronic devices in the late 1980s. However, this only began to happen in the last decade due to aggressive mobile technology revolution and Internet that promotes inexpensive and reliable communication across the globe.

Computer assisted learning (CAL) is also known as computer assisted instruction (CAI). By playing and using materials stored on DVDs, mobile phones, and other web-based resources, learning becomes more attractive and dynamic, and offers the students entertaining avenues to showcase their listening and learning skills. It boosts the students’ confidence in solving the tasks they are assigned and therefore improves the quality of what they have learnt.

Ever since the CAL programs were introduced as a modern teaching method, as opposed to the traditional teacher-centered classroom system, a growing number of concerns have been raised about the efficiencies of the CAL teaching method. Sometimes, teachers do show anxiety about CAL because they fear the computers could take over their jobs. Secondly, most of the technologies used in CAL are new and therefore teachers need training to become familiar with the new technology. Teachers are required to test run the system before the class begins and to anticipate and fix technical glitches that might occur during the class. If the generation gap is taken into consideration, the teachers who volunteer to use the CAL program have to adjust their orientation and competence to what could seem a completely new teaching system.

Computer Assisted Learning Terminologies

Below are some of the terms and acronyms used in the field of Computer assisted learning, though the terms may vary according to domain or specificity.

Terminology

Meaning

CBT

Computer Based Training/Test

CAI

Computer Assisted Instruction

CAL

Computer Assisted Learning

WBT

Web Based Training/Tutorial

CALL

Computer Assisted Language Learning

WBI

Web Based Instruction

The use of computer information technology and networks is becoming indispensable in almost every profession. Recent changes in education concepts as well as new business and technical innovations are all computer-centered. As a result, educational institutions have to modify their curriculum and teaching methods to be computer-compliant.

The basic goal of CAL is to stimulate and develop the assimilation/learning capacity of students, increase the effectiveness and productivity teachers with the help of computer based technology and update students’ knowledge to current trends as most of the concepts outside the last decade are gradually getting out of date. Computer technology should therefore be an integrated part of the education system. Another objective of CAL is to develop easily understandable and attractive tutorials and demonstrations of the field they are employed in.

Computer Assisted Learning Assessment Tools

Multiple Choice Questions: Mainly used for computer based tests, this type of exercise is used to assess a student’s understanding of things they have been taught. It is used for CBTs.

Fill-in the Gap: Also used for CBTs, the student is required to type text in gaps/spaces where some of the words are missing. The student has to provide suitable words to solve the exercise. The test can be easily done within a few minutes and can be created with inexpensive software such as Hot Potato.

Find the Answers: In this test, the student(s) are given questions and they have to looks for the answer on their own in e-libraries or using the Internet. The answers may be submitted to the teacher in various required submission formats.

Scrabble/Crossword Puzzles: Crossword puzzles are mainly used in computer assisted language learning or at the basic education level. They can be created from the vocabulary that students have just been learning and the game can be played during leisure hours.

Online Interactive Chat: Group chats can be a good learning avenue for students and teachers to share ideas online through text or speech. It is pretty easy to set up a group chat server using a social media tool. However, it can sometimes be difficult to moderate and it can become boring if there are only few users online in the chat room. When run with tasks and suitable groups of students (age groups, interests, etc.) chats can result into exciting communication, especially when post chat task are issued in the end in the instructor.

Drills: Real life scenario drills can be computer simulated to prepare the students for real on-field challenges. Drills can be carried out using software programs specially formulated for the purpose. Computer simulated drills can be expensive to organize, particularly when special equipment are required and also require high level of computer skill.

Web Quest: A Web Quest is an exercise where the students are required to provide answers to questions on issues mostly found on the web. Web Quest is meant to develop the student’s skill on using/analyzing provided information rather than looking for it. In this case, the teacher will provide the students with the needed internet links to the exercise.

Adventure Games: These are computer simulated role-plays where the student is presented with a situation that he/she has to deal with and pass. The student has to be fast in analyzing the game and inputting the result either as text, by manipulating the game’s controls, or by clicking on certain options. At the end of the game, the program gives feedback on the player’s performance.

Listening Exercises: For these exercises, the computer replaces the tape recorder. The computer is connected to a sound system. Students are required to listen attentively to an audio recording being played from the computer. Podcasts, audio CD/DVD, audio streams, etc., are often used. This exercise is used to promote listening skills in students. It can be followed immediately with multiple choice exercises if the students have grasped the content.

Visualization Tools for CAL

Visualization is an important aspect of CAL. Seeing is believing; that is, students grasp what they are taught better when the lecture is properly illustrated for them to see. 3D objects can easily be created and refined using 2D plots. Traditional tools for visual demonstration such as photographs, sketches, maps, and renderings are now grossly inadequate for teaching a subject/course that requires attention to detail. The new visualization tools include 3D computer models, video demonstration, animations, colored computer maps, etc.

Today, visual CAL tools are used in a wide range of disciplines to illustrate and demonstrate important concepts, for presentation as well as for teaching purposes. The visualization hardware should be portable, while the software should be able to run on most computers with minimal configuration. The teaching technique should be flexible for the students to visualize the demonstration comfortably. The students/user should be able to adjust the viewing angle and to expand/retract certain parts of the concept being viewed.

The most popular software tool for developing visual programs is JAVA. With JAVA, one can easily write and build software that can run on different platforms without much modification. JAVA can be combined with HTML and VRML to create portable and interactive web-based applications.

Conversion of Analog Materials To Digital Materials

Below are some older recording formats and the digital formats they can be converted to:

Classic Format

Digital Format

Cassette tape

CD, MP3

VHS

CD, DVD

Paper books

e-books

Journals

Blog, website

Library

e-library

Correcting Electronic Exercises

When students submit an assignment in electronic form, it would be lazy for the teacher just to print it out on paper and comment/mark it with red ink. It would be better if the teacher inserts red flagged comments into the submitted texts text using a word processor or other dedicated programs to perform e-correction/commenting.

Advantages of CAL

CAL provides many advantages to the education sector. These include

Self-Paced/ Self-Directed Learning: Since the students have greater control over the CAL process, they can decide on their pace of learning. Students can study as fast or as slowly as they like through a course. If they want to repeat some task or review some material again, they can do so as many times as they choose. They can also skip over a topic if they already know about it. This saves time and makes teaching more efficient. Similarly, students can choose what they want to learn and in what order, as students have different learning styles and strategies.

This offers a solution to the issue of slow and fast learners. With CAL, each student can study at his/her own pace. The slow learners will not feel frustrated if they are unable to keep up with the others since they can always review the lesson when it is opportune to study. While managing their own learning pace, students become more responsible and more aware of the implications of the learning style/strategy they choose to adopt. Web-based adaptive educational systems (WAES), for example, adapt to the student, and provide different levels of data, assessment, and feedback for the student’s perusal.

Improved Computer Skill: By interacting often with computers, students who are not computer-literate will be compelled to develop/improve their computer skills and it also gives them a sense of collaboration when two or more students have to share a computer. As their computer competence gets better, the students will be encouraged to use computers more in doing their work.

Visualization: Naturally, a student becomes more alert when a computer-based learning/test is going on. There is a sense of anticipation that makes the student more attentive when learning the lesson. Students are better motivated visually by multimedia materials and listening is supported by seeing. This boosts students’ natural way of learning.

Learning Efficiency: With CAL, students are better able to pick up concepts or skills faster and with less effort and also retain what they have learned longer. Consequently they would require less teacher time.

Sensory Stimulation: Humans are multi-sensory beings as we can receive and process information. According to Fletcher (1990), people remember 20% of what they hear, 40% of what they have seen and heard and 75% of what they see, hear and do. Since the computer can stimulate the various human senses and present data in a different media can spice up the learning process. Computers encourage learning as they promote enthusiasm and provide stimulating environment.

Communication Development: Chats and videoconference help in the development of writing, speaking, and communication skills. They provide speaking practice through debates and opinion chats. Sometimes, this does not involve the teacher’s formal assessment.

Content/Lesson-Centered: Unlike a traditional class that is teacher-centered, the computer-based class shifts the student’s attention from the teacher to the lesson/content being taught. The student benefits from a lesson-centered teaching approach. Students give direct attention to the computer(s) in front of them, which makes them feel more comfortable with their lesson.

Enthusiasm: Generally speaking, the use of computer technology in education makes the class more appealing and interesting. It maintains students’ attention and stimulates their motivation to actively participate in the class.

Impediments of CAL

The first time computers are introduced into the teaching process, the students may not be familiar with what is going to be presented before them and this may result in general anxiety. If the students (particularly older students) are not computer-literate, computer anxiety is another issue the teacher will have to deal with. In this environment, it would take considerable time before students become comfortably adapted to CAL.

With a computer-based self-assessment class where students have to be left on their own, they may become overwhelmed by the amount of data they are handling. As a result of this, excessive use of multimedia relays should be avoided at the first introduction of CAL and the teacher has to place more emphasis on the content being taught because often the students’ attention is focused on the computer.

There is also an undesirable state when the students become so excited with what they are seeing on the computer that they hardly pay attention to what is being taught. They may get fascinated by the multimedia images to the point that, at the end of the class, they wouldn’t have grasped the core concepts of the lesson or just half-heartedly do their follow the lecture as their mind is “far away.” The younger the students, the more likely this will happen.

Agreed that providing attractive presentations is an integral part of CAL, the most important objective of the lecture is that the students learn and understand what is being taught; otherwise, the introduction of computers into the learning process will not be effective. The teacher should try to maintain equilibrium in student-computer interaction. The teacher should regularly check the students to make sure they are learning by asking questions on what is being taught. Though the computer may stimulate students’ interest and make them understand a course better, it is the teachers’ duty to ensure that students learn and can expressively demonstrate what they have learnt confidently.

Conclusion

The impediments associated with computer assisted learning are not related to the computer programs, but how to teach with them. The snag with CAL is chiefly the low-level pedagogic (methods and activities of teaching) strategies of teaching/learning with ICT systems. A thorough pedagogical review should be initiated to provide guidelines on the use of computer technology in classes.

To overcome computer anxiety, the use of computers should be encouraged among students and teachers and practical computer skill classes should be infused in the educational curriculum. Depending on the resources available, post-nursery/primary computer should be made mandatory in order to speed up the level of computer literacy among all students.

References

*Ioana Iacob: The Effectiveness of Computer Assisted Classes for English as a Second Language; “Tibiscus” University of Timişoara, România. Annals. Computer Science Series. 7th Tome 1st Fasc. – 2009.

*Leonardo Da Vinci Language Competences: Introduction To Computer Assisted Language Learningwww.languages.dk

*Ramazan Basturk: The Effectiveness of Computer-Assisted Instruction in Teaching Introductory StatisticsEducational Technology & Society, 8 (2), 170-178. 2005

*Sıtkı Külür: New Possibilities For The Photogrammetry Education In Turkey; Istanbul Technical University, Civil Engineering Faculty, Commission VI, Working Group VI/2