What is Programming?

In this blog post, we will decipher the term “programming” and understand its usage and many other related terms.

Understanding Programming in layman terms

Programming is a way to “instruct the computer to perform various tasks”.
Confusing? Let us understand the definition deeply.
“Instruct the computer”: this basically means that you provide the computer a set of instructions that are written in a language that the computer can understand. The instructions could be of various types. For example:
  • Adding 2 numbers,
  • Rounding off a number, etc.
Just like we humans can understand a few languages (English, Spanish, Mandarin, French, etc.), so is the case with computers. Computers understand instructions that are written in a specific syntactical form called a programming language.
“Perform various tasks”: the tasks could be simple ones like we discussed above (adding 2 numbers, rounding off a number) or complex ones which may involve a sequence of multiple instructions. For example:
  • Calculating simple interest, given principal, rate and time.
  • Calculating the average return on a stock over the last 5 years.
The above 2 tasks require complex calculation. They cannot usually be expressed in simple instructions like adding 2 numbers, etc.
Hence, in summary, Programming is a way to tell computers to do a specific task.

Why should you bother about coding?

You must be wondering – why does one need a computer for adding or rounding off numbers? Or even for simple interest calculation? After all, even an 8th standard kid can easily do such things even over large numbers. What is programming used for? What benefits do computers offer?
Well, computers offer so many benefits:
  • Computers are fast: computers are amazingly fast. If you know how to properly utilize the power of Computer programming, you can do wonders with it. For a typical computer of today’s time, an addition of 2 numbers which could be as big as a billion each takes hardly a nanosecond. Read again – nanosecond! That means that in 1 second, a computer can perform about a billion additions. Can any human ever do that? Forget a billion additions a second, typical human can’t even do 10 additions per second. So, computers offer great speed.
  • Computers are cheap: if you were a stock market analyst and you had to monitor the data of say 1000 stocks so that you can quickly trade them. Imagine the hassle that would create if you were to do it manually! It is just impractical. While you are performing your calculation on the stock’s performance, the price may change. The other alternative is to hire people so that you can monitor more stocks in parallel. That means your cost goes up significantly. Not to mention about the trouble you will face if some of your employees commit a calculation error in the process. You may end up losing money! Contrast that with the case where you use a computer. Computers can process a huge amount of information quickly and reliably. 1000 stocks are nothing for computers of the 21st century.
  • Computers can work 24×7: Computers can work 24×7 without getting exhausted. So, if you have a task that is big enough, you can without worries allocate it to a computer by programming it and sleep peacefully.

What is Programming Language?

As mentioned above, Computers understand instructions that are written in a specific syntactical form called a programming language. A programming language provides a way for a programmer to express a task so that it could be understood and executed by a Computer. Refer our another blog-post “What is programming language?” to know more about programming languages. Some of the popular Programming languages are Python, C, C++, Java, etc.

Why should you learn Computer Programming?

Now, after knowing so many things about programming, the big question to be answered is – Why should you learn Computer Programming? Let us understand why:
  • Programming is fun: Using Programming, you can create your own games, your personal blog/profile page, a social networking site like Facebook, a search engine like Google or an e-commerce platform like Amazon! Won’t that be fun? Imagine creating your own game and putting it on Play Store and getting thousands and thousands of downloads!
  • The backbone of a Technology Company: The backbones of today’s technology companies like Google, Facebook, Microsoft, Apple, Amazon, and many others, are giant computer programs written by a collaboration of thousands of skilled programmers. If you have the right business acumen, knowing programming can help you create the next big tech company.
  • Pretty good salary: Computer Programmers are paid extremely well almost all across the world. Top programmers in the Silicon Valley make millions of dollars every year. Quite a few companies offer starting salaries as high as $100,000 per year.

  • a = 54
    b = a ** 8
    print b
    
    Save the file on your desktop as my_first_program.py
    Now, do one of the following depending on your operating system:
    • Windows: open command prompt and type python my_first_program.py
    • Ubuntu/Mac OSX: open terminal and type python my_first_program.py
    When you press enter, what do you see on the screen? Almost instantly after you press the enter key, you will see the following:
    72301961339136
    
    What’s that? That’s 548, computed by your computer in the blink of an eye! A typical human will take minutes if not seconds to get the result. You see the power of a Computer?
    Congratulations, you’ve written your first program. Let us understand how it works.
    a = 54
    
    We are declaring here that we have a “placeholder” called as a to which we assign the value 54.
    b = a ** 8
    
    Here, we are declaring another placeholder called as b to which we assign the value a ** 8. Here, the value of a is 54. So, effectively we are computing 54 ** 8. What is **? The ** operator is the “power” operator. a ** b means ab.
    print b
    
    Finally, after the computation is done, we want to display the result on the screen. For this, we have used the print statement which essentially throws the result on your screen.
    So, that was about the very basics of Computer programming. Hope you enjoyed reading it. Computer Programming is a huge field and there is a lot to explore further. Keep learning and keep exploring. Please feel free to post your doubts in the comments section. Please don’t worry if you feel that your doubt maybe silly. Every question/doubt is important. There’s no such thing as a stupid question.

Some face recognition tools even use artificial intelligence (AI) to identify faces partially hidden by sunglasses, cap, beard or face masks.
  • Face detection algorithms are prone to making errors and often show gender and racial bias
  • Governments should ensure that while surveillance tools are used to weed out criminals and terrorists, the data of citizens is not misused by officials.
At a busy public square covered by surveillance cameras, a fleet of police cars screech to a halt. Cops rush out of their vehicles, accost a man and hurriedly cuff him. The reason: their face recognition system has identified him as a terrorist whose image the police had in their database. Even until a few years ago, one would have thought this was a scene from the HBO series Person of Interest. Not any longer. Police officials in several countries today have the technology to do this.
Some face recognition tools even use artificial intelligence (AI) to identify faces partially hidden by sunglasses, cap, beard or face masks. But these technologies are still a work in progress and prone to making mistakes. This was one reason, along with privacy concerns, that led cities like San Francisco and Oakland to ban the use of face recognition in surveillance cameras by public agencies.
“Banning the use of technologies such as facial recognition in cities such as San Francisco, Oakland, and Somerville is an excellent step forward to help fight crime. Research has shown, over and over, that facial recognition technology does not work reliably, and it is more likely to misidentify women and people of colour. Banning this technology helps the police to not waste valuable time chasing the wrong people," said Eva Galperin, director of cybersecurity at the Electronic Frontier Foundation and technical adviser for the Freedom of the Press Foundation.
An independent review of London Metropolitan police’s face recognition based surveillance system by academics from the University of Essex in July 2019 revealed that in 81% of the cases, the system erroneously flagged people who were not wanted for anything.
Further, many of these AI systems have repeatedly shown gender and racial bias. A case in point is the 2018 study led by MIT Media Labs, which found that gender classification systems sold by IBM, Microsoft and Face++ were 34.4% more prone to make errors in case of darker-skinned females than lighter-skinned males. A May 2019 study by Georgetown Law Center on Privacy and Technology, pointed out that police are using flawed data to run facial recognition searches.
In many cases where police departments didn’t have actual images of a suspect, they turned to artist sketches, celebrity doppelgangers or software-generated images, despite several studies showing that they don’t give accurate results and can lead to false matches.
Consider this example as a case in point. Early this month at the DefCon 2019 cybersecurity conference in Las Vegas, hacker and fashion designer Kate Rose demonstrated how clothes with random vehicle license plate numbers printed on them could be used to trick automatic license plate readers (ALPRs) and inject junk data into their systems. Rose’s new clothing line-up showed that these systems are not fool-proof yet. ALPRs are computer-controlled camera systems that use image recognition software to read license numbers and catalogue them to determine a car’s whereabouts in case of a police investigation.
For those concerned about the use of face and image recognition technologies by surveillance cameras, Rose’s clothing lineup can come in handy. Researchers at Pittsburgh’s Carnegie Mellon University, too, have developed a unique set of eyeglasses with large frames that can obscure about 6.5% of the pixels in any image of a face and managed to fool face recognition tools by Face++.
A joint research from 2018 involving Fudan University in China, the Chinese University of Hong Kong and Indiana University showed how a simple sports cap fitted with tiny infrared LEDs can be used to fool computer vision by projecting dots of light onto the wearer’s face in 70% of the test runs. The light dots were invisible to human eyes.
Hyphen Labs is building anti-surveillance clothing called HyperFace, which uses false faces based on ideal algorithmic representations of a human face to fool cameras. It works by reducing the confidence score of the true face by redirecting more attention to the nearby false face regions.
Then there is CV Dazzle, which shows how unique hairstyling and makeup can be used to disrupt facial symmetry and provide camouflage against surveillance cameras. They claim how by using light colours on dark skin and dark colours on light skin, partially obscuring eyes using hair, and obscuring elliptical shape head, anyone can make themselves unrecognizable to face detection algorithms.
On their part, governments should ensure that while surveillance tools are used to weed out criminals and terrorists, the data of citizens is not misused by officials for personal or political vendetta. This is easier said than done.

  • The chip consumes 310W of power, which is less than what was originally expected figure of 350W
  • Huawei is essentially promising faster AI computing but at lower and efficient power consumption rates with the new chip
  • After a year of development, the Huawei Ascend 910 AI (Artificial Intelligence) computing chip for data centers is finally being made available commercially. The company announced the chip today along with an AI computing framework called MindSpore. The chip, according to Huawei, is the world’s fastest AI processor.
    "Ascend 910 performs much better than we expected. Without a doubt, it has more computing power than any other AI processor in the world," said Eric Xu, Huawei's Rotating Chairman.
    That puts Huawei in contention against giants in the chip industry in the data center space, like Qualcomm, Intel, Nvidia and even Microsoft. Qualcomm, for instance, announced its entry into the data center AI chip space in April this year. While the company is yet to announce its actual chip, at the time, it said the Cloud A1 100 (the name of Qualcomm’s chip) will be 50 times more powerful in processing AI workloads as compared to its flagship mobile chipset.
  • On the other hand, Nvidia already has a lead on these companies, by repurposing its graphics processing units (GPUs) for use in data centers. Its competitor in the GPU space, AMD, has done the same by announcing 7nm chips recently. In an interview with Mint earlier, Mark Papermaster, CTO, AMD said, “Data centres today are limited by power. In the data centre and the cloud, you will see a doubling of performance (of server racks) with the same amount of power that you were spending before."
    Huawei shared some impressive numbers for how powerful its new chip is, but more importantly, the chip apparently takes 310W of power which is less than what was originally expected. The company’s original specs for the chip projected 350W power consumption from the Ascend 910 chip. This is important because higher power consumption also increase the cooling costs for a data centre, which are already through the roof when it comes to AI computing.
  • So, Huawei is essentially promising faster AI computing but at lower and efficient power consumption rates. On paper, this does sound like a win-win for the company. But we will have to wait for companies like Microsoft, Qualcomm and more to unveil their solutions for the same to see where the Ascend 910 really stands in the long run.