Вы находитесь на странице: 1из 57

15CS390L - INDUSTRIAL TRAINING

REPORT

on

Learning Python Applications Development


for Industrial Projects
Submitted by
NISCHAL .R [RA1711003020787]

During the Period


10.06.2019 to 19.06.2019
at

INFOGRO TECHNOLOGIES

VADAPALANI, CHENNAI, TAMILNADU 600026

Department of Computer Science & Engineering


Faculty of Engineering and Technology

SRM INSTITUTE OF SCIENCE AND TECHNOLOGY


Ramapuram Campus.
SRM INSTITUTE OF SCIENCE AND
TECHNOLOGY
(Under Section 3 of UGC Act, 1956)

BONAFIDE CERTIFICATE

Certified that this Industrial Training report is the bonafide work of NISCHAL.R
[RA1711003020787], who undertook industrial training at INFOGRO
TECHNOLOGIES during the period of 10.06.2019 to 19.06.2019.

RAJKUMAR Dr. N. Kannan


M.E.,Ph.D B.E., M.E.,Ph.D.

Professor Professor and Head of the Department

Department of Computer Science Department of Computer Science

and Engineering and Engineering

SRM INSTITUTE OF SCIENCE AND SRM INSTITUTE OF SCIENCE AND

TECHNOLOGY TECHNOLOGY

Ramapuram Campus Ramapuram Campus

Submitted for the university practical examination held on at SRM INSTITUTE OF

SCIENCE AND TECHNOLOGY, Ramapuram Campus, Chennai-89

-------------------------- -------------------------
Examiner - 1 Examiner-2

ii
ABSTRACT

This report describes the industrial training I had done at INFOGRO TECHNOLOGIES,
CHENNAI. They are those very few start-up companies that has got a humble beginning and
would go that extra mile for the perfection. They strive to make a difference in their offerings by
ensuring that quality and punctuality in the products they deliver. I had attended Summer
Training on Learning Python Applications Development for Industrial Projects. Try working
with them to know what binds our code to our products! They follow an agile methodology to
engineer a project which is more efficient and with less bugs. They also help the students in
training in making us understand python programming language and further machine learning
with their core team. Their approach towards project is like the care a mother has towards her
child and they treat the customers in the same. I chose this as a course for training because
Python is a general purpose and high-level programming language. You can use Python for
developing desktop GUI applications, websites and web applications. Also, Python, as a high-
level programming language, allows you to focus on core functionality of the application by
taking care of common programming tasks. The summer training program focuses on basics of
python programming along with its applications in many aspects of software development. The
program curriculum and their applications would be covered in depth. The program is structured
in Lucite way such that students of different skills will be able to uplift themselves. The program
contents are covered in three modules:

Core Python Introduction, Modes of Operation, Variables, Strings handling, Operators and
Operands in python, Python Lists, Python Dictionary, Python Functions, Python Modules and
Packages, Class and Objects, Multi-Threading, File Handling, Exception Handling, python
Regular Expressions etc. Advance Python Database Communication, Web Scrapping, Web
Development Frameworks, GUI Programming, Machine Learning using Python, etc.
Industrial Applications for Project Development Web Application, Data Analytics, Internet of
Things.

iii
CONTENTS

CHAPTER NO. TITLE PAGE NO.

SUMMER TRAINING 07

1.1.Brief on Training attended 07

1.2.Abstract on Training attended 09

1 1.3.Certificate by the Company 11

1.4.Introduction to Project 12

1.5.Tools & Technology used 21

1.6.Importance of the project 23

1.7.Results and Discussion 25

ANALYSIS 27

2.1. Survey on Dream Company 27


2
2.2. Survey on Current project in Dream Company 29

2.3. Identification of skill demand in Dream Company 35

PLATFORM/LANGUAGE/FRAMEWORK/TOOLS 37

3.1. History 37

3.2. Features 38
3
3.3. Concepts 39

3.4. Applications 45

3.5.Future Scope 51

4 Conclusion

iv
LIST OF FIGURES

FIG.NO FIGURE NAME PAGE NO.


1.1 Training INFOGRO 07
1.3 Training Completion Certificate 11
1.4 Project Fig(2)Specs 13
1.4 Project Fig(3)Data Cleaning 14
1.4 .Project Fig(4)CPU benchmark 15
1.4 Project Fig(5)CPU GPU Regression 18
1.4 Project Fig(6)Price predict Graph 19
1.4 Project Fig(7)KNN Algo 21
1.4 Project Fig(8)Django 22
1.4 Project Fig(9)Designmmodo 23
2.1 Fig Google Logo 25
2.2 Fig (10) Google Robots 29
2.2 Fig(11) Google Self Drive Car 30
2.2 Fig(12) Google Smartphones 32
2.2 Fig(13) Google IO Mapping 33
3.3 Concepts Fig(14)Code 44
3.3 Concepts Fig(15) Python Numpy1 46
3.3 Concepts Fig(16) Python Numpy2 47
3.3 Concepts Fig(17) Python Matplot 48
3.3 Concepts Fig(18) Python Matplot2 49
3.3 Concepts Fig(19) Python Pandas 51
3.3 Concepts Fig(20) Python Opencv 53

v
CHAPTER – 1 SUMMER TRAINING

Fig.-1 : Infogro Technolgies logo.

About Infogro Technologies:

This report describes the internship I had spent in Infogro Technologies, Chennai. Infogro Technologies
is going through a renaissance, a redefinition of its philosophy in software field and its business values. The
one thing that is constant, however, is its belief in people and technology. A belief that is strengthened by
the passion of its team, a passion for people and the passion to drive technology beyond its limits. Infogro
Technologies is an amalgamation of best practices and competencies brought in by leading professionals on
some of the most renowned names of the Corporate World. Knowledge drives us. Over the past decades,
Infogro info tech has provided specialized Knowledge Services to a wide range of industry verticals. This
puts us in a unique position where we are able to not only deliver cutting edge solutions but also help build
in-house competencies of our Clients, be it in the Knowledge Services domain or a part of our Enterprise
Services. At Infogro info tech, we believe in relationships, in being strategic partners rather than solution
providers, giving special focus to processes and quality. Our client repertoire is therefore amongst the
Who’s Who of the industry, returning to us for quality solutions, each time, every time. Infogro info tech is
where we successfully marry Knowledge with Technology to deliver Real Business Benefits to all our
Clients. Infogro info tech is where Knowledge Meets Business. Infogro Technologies, offers Implant
Training in Chennai for BE & BTech (CSE | IT | ECE | EEE | Mech | Civil | ICE | E&I | Aero | Mechatronics
| Bio-medical), BCA, MCA, MBA, BBA, B. Com & M. Com, B.Sc., M.Sc. Students. The students who
wishes to join Implant training in Chennai will involve with real-time hands on project development and
commercial skills for experience an extended period. The Students purpose can be for acquire knowledge in
a field, obtain a job with good salary, keen to learn and absorb latest technologies, industrial experience, and
proficient networking skills. Implant training in Chennai Programs are premeditated with an effort on the
area of interest of the intern and based on department. In Plant Training in Infogro will be of full hands-on
sessions, Students will be made to work separately. Trainers at Infogro Technologies are real-time Software
/ IT professionals worked in leading MNCs like, CTS, Wipro, TCS, Infosys, Accenture and Mindtree. It is
carefully researched and prepared by high end technological professionals from MNC’s to meet the
vi
demands of Software industry. After completing the Inplant Training in Chennai at Infogro Technologies,
students will be familiar with the software processes, Software development process followed in IT
industry. Below are some of the insights of our, Inplant Training for CSE students – programmed. Inplant
Training in Chennai for CSE students – This programme provides a practical exposure for the students on
the latest and trending technologies. Below are some of the Top jobs in the IT Industry.
Software Developers – Good in Machine Learning and Artificial Intelligence programming Web
Application Developer – Web Designers Information Security Analyst – Security Specialist Network
Engineers / Analyst Blockchain Administrators Infogro Technologies, Implant Training in Chennai for CSE
students – enhances and enable the students for the above said skills / job roles from basics to Advanced. A
more comprehensive list of tasks to which Social Networking commonly refers, may include web
engineering, web design, web content development, client liaison, client-side/server-side scripting, web
server and network security configuration, and e-commerce development.

vi
i
Abstract on Training Attended:

Today Indian IT industry contributes 9.5% of the country’s GDP and employs 3.7 million people across
the world. The technologies used for IT services changes very fast. Recently, most of the IT products
incorporate Artificial intelligence (AI), Machine learning techniques and thus, final products become
smarter. Now days, IT industries frequently uses python programming language for application of
Artificial intelligence, Machine learning based techniques. The python programming language is popular
among developers due to its fewer lines of code and rich libraries for scientific computing, data analytics,
image processing, cryptography, etc. The python programming language provides an extra edge over
other programming languages such as C, C++ and Java for its diversified and hassle-free coding
capabilities such as in gaming, web frameworks, language development, prototyping, graphic design
applications, etc. The summer training program focuses on basics of python programming along with its
applications in many aspects of software development. The program curriculum and their applications
would be covered in depth. The program is structured in Lucite way such that students of different skills
will be able to uplift themselves.
The program contents are covered in three modules:

Core Python Python Introduction, Modes of Operation, Variables, Strings handling, Operators and
Operands in python, Python Lists, Python Dictionary, Python Functions, Python Modules and Packages,
Class and Objects, Multi-Threading, File Handling, Exception Handling, python Regular Expressions
etc.
Advance Python Database Communication, Web Scrapping, Web Development Frameworks, GUI
Programming, Machine Learning using Python, etc.
Industrial Applications for Project Development Web Application, Data Analytics, Internet of Things
(IoT), etc.

8
OBJECTIVE OF THE TRAINING PROGRAM –

The objective of the program is to train our undergraduate, postgraduate and research
students of fundamental computer background so that they become ready to cope demands of
software industry. Recently, a survey report published in one of the leading newspapers in India
claiming that 95% of engineers in the country are not fit to take up software development jobs.
The adoptability of software developers with fast changes in technologies is the key reason for
such huge gap. Our effort to give exposure on python programming is on the way to fulfil this gap.
The training program assists students to develop their mini and micro projects. The students can
learn and practice the industry skills and prepare themselves for job prospects. The objective of
LPADIP training program toward the many skill development programs currently run by Central
and state government of India such as Pradhan Mantri Kaushal Vikas Yojana (PMKVY), skill
India, etc.

Learning Python Applications Development for Industrial Projects (LPADIP-2019)

This summer training programme is a programme with industrial applications


development projects.
The Project initiates from 10th of June to 19th of
June2019. The major sectors covered are: -
 Core Python Python Introduction, Modes of Operation, Variables, Strings handling,
Operators and Operands in python, Python Lists, Python Dictionary, Python Functions,
Python Modules and Packages, Class and Objects, Multi-Threading, File Handling,
Exception Handling, python Regular Expressions etc.

 Advance Python Database Communication, Web Scrapping, Web Development


Frameworks, GUI Programming, Machine Learning using Python, etc.

 Industrial Applications for Project Development Web Application, Data Analytics, Internet
of Things (IoT), etc.

9
Certificate:

Fig. 1.3 Traning Completion Certificate

10
Introduction to Project:

Laptop has become one of the most important and most used items in our daily life.
But I am sure that you have struggled to choose the personal laptop that fits your needs?
With the overwhelming amount of specifications and brands on the market right now, it
becomes difficult for laptop makers to sell their products and for customer to pick their
work/personal laptop.

Why should we care about this problem? In 2019, estimable of 166 million units of
laptop were sold and shipped in 2019 (International Data Corporation). The average selling price
for a laptop sits at around 629 U.S. Dollars. The global laptop market size is calculated to be
around 100 billion dollars and with an anticipated market size of 108.9 billion by 2025,
according to a study by Grand View Research. The demand for laptop will continue to rise in
demand as increasing in urbanization, growing spending capacities of consumers and upsurge in
demand for technologically advanced products. As laptops are selling across the world, people
and manufacturers alike will have be to knowledgeable and competitive.

Project Motivation:

1. Quantify what quantity quality of a laptop contribute the most across the 3 categories
of laptop.
2. Discover laptop trend across different brands, type, and performances.
3. Predict laptop prices base on quantity quality such as ram space, storage amount and
type, CPU and GPU relative performance, brand, type, and screen size.
4. KNN Recommendation System - laptop recommendation based on specifications.

11
What and where is the data?
Web Scraping
The amount of scraping needed to scrape the target market are insurmountable. In
order to simplify the analysis and data collections, I decided to focus mainly on three
category of laptop data to gather: Personal, Business, and Gaming. For the machining
learning perspective, I scrape my training datasets from Newegg and Best Buy, and my test
datasets from B&H Photo video.

From this website, I scrape every specification and the price for the three categories
of laptop from all three of these websites. Specifications from the lap ranges from their screen
size to their refresh rate to their CPU. Fig 1 shows the field of data I scrape from Newegg,
Best buy, and B&H Video. In total, there were around 10 datasets from the three websites
and each of the datasets was around 1000 rows and 40 columns.

Fig.2 A sample of laptop Specification

12
Data Cleaning:

As expected, datasets from different website has different formatting and columns name
for the data. For example, in the Newegg datasets (Fig.2), there are a total of 38 columns and
6000 rows. To simplify the cleaning process, I combine the personal, business, and gaming
laptop datasets from the same website into one data frame.

(Fig.3): - Data Cleaning

First, I take a look at the total number of missing values and fill some missing value
based on logical principles. For instance, I replace all missing SSD and HDD with zero,
because some computers don’t have an SSD or HDD. In addition, the majority of personal
computers does not contain a dedicated graphic card, therefore, I replace those with 0 and
will compare them in a different category. After filling in as many missing values as I can, I
remove all columns with more than 10% missing values, shown in Fig.3.

13
Then, I remove all row with null CPU, RAM, and 0 total storage capacity, because no
computer can run with a CPU, storage and RAM. These randomly missing data are most
likely either due to new product where specs are not available yet or employee never post
the specs according to the posting guidelines.

Next, I check the type of variable in each column and almost all columns are string
object. Thus, the cleaning process begins, I converted every column that has a number, such as
the weight, storage, dimension, screen size and etc into quantitative variables.

Computer algorithm has a hard time understanding words such as intel 9720X and
Nvidia GTX1080. So what’s next is convert cpu and gpu string into quantitative figure. To
convert gpu and cpu into standard benchmark data,I scrape cpubenchmark.net/ and
videocardbenchmark.net/ to get all of the respective benchmark number. (Shown in Fig.4)

Fig.4: - A sample of the CPU benchmark score

I use Knuth-Morris-Pratt string search algorithm to maximum efficiency of the search


algorithm and manage to convert around 99% of the CPU and GPU column into actual
benchmarks. With this step completed, some visualizations are created using python's Seaborn
package.

14
Data Visualization and Trend Discussion

Brand Price Trend

The brand trend for the three different type of laptop: business, personal, and gaming.

For business laptop, Apple and Lenovo have the highest mean and median price.
It is not surprising due to the fact, that Lenovo owns ThinkPad’s and apple have their 13.3-
and 15-inches MacBook Pro line. As for the Dell, HP and Acer, these three brands have
much lower average laptop price, which makes sense, since these three companies are
known for cheaper and has a much more traditional laptop feel and design.

For gaming style laptop, it is no surprise, in the year 2019, Razer, Gigabyte and
Alienware have the highest mean and median price in the gaming category. Razor blade
laptop and Alienware have dominated the high-end gaming laptop market for years. There
are many outliers in this category of laptop, for example, MSI, ASUS, Razer, and Gigabyte
all have that one series of super high-end laptop that are created for that one of a kind
customers.

For personal laptop, again, luxurious brand laptop such as Razer, Gigabyte,
Alienware, Apple, and MSI are amount the top 5 of the highest mean and median price laptops.
While austere personal laptop is majority controlled by brands such as HP, Huawei, Lenovo,
Dell, Asus and Acer.

Screen Size Frequency

In 2019, the prefer screen size is 15.6 inch for all three type of laptop. It is not a
surprise to see no gaming laptop below 15.6 inches, since gaming below the 15.6 inches ruining
the gaming experiences. Also, there are very few business laptops that around 15.6 inches,
because portability is a high valued specification in work environment. Finally, for the laptop
listed in 2019, there are very few that are below the screen size of 13.3 inches.

15
CPU and GPU regression graph vs Weight

Weight and performance of a laptop are one of most important specification customers
looks for. As one can expect, the heavier the laptop, the performance of CPU and GPU also
increases. More space and weight mean faster and better hardware. However, in 2019, high-
end laptop is no longer as constricted as before, there are many high-speed CPU available
for between the 2 to 4 lbs. (SUPER LIGHT) On the other hand, if one is looking at the
GPU, there are still a limitation on 2019's technology. If you looking for high geared GPU,
the lowest weight is around 4 lbs. As expected, laptop graphics card takes precious space and
other additional hardware, such as fans, to properly function. Thus, the weight
limitation for high end graphics process unit laptop in 2019 are around 4 lbs.

16
CPU and GPU regression graph vs Price Trend

It is obvious that CPU and GPU benchmark would increases as price of the laptop
increases, but the less obvious part is that you can get highly performance CPU and GPU focus
laptop around the 1000 dollar range. This is a prime example of Moore's Exponential Growth
Law. Around 8 years ago, a 3000 dollars laptop would only get a CPU and GPU of benchmark
around 2500 and 2000. In 2019, one can expect a CPU and GPU benchmark around 21000 and
19000, respectively. Around a 10X increase in just 8 years.

Fig.5 :- CPU & GPU regression Graph

17
Use Machine Learning to predict price and build a recommendation

Price Prediction and Model Accuracy

I want to see if laptop from Newegg and Bestbuy can accurately predict price of laptop
from B&H VideoPhoto. Before a linear model can be use, I first dummify some of the variables
and created custom featuring engineering to reduce complexity of the model. Then, I normalize
all variables with a skewness greater than 0.15. Then I split the data into training and test set,
using Newegg and Bestbuy laptop as the training set, and using B&H VideoPhoto as another. I
want to see if it is possible for the model to predict laptop prices across website.

Fig.6 Price Prediction Graph

The left image was the residual plot from using Ridge Linear Regression after
parameter tuning using grid search cross validation, it receives an r^2 of 0.69.

The right image was the residual plot from using XBGboosting Regression Classifier,
after some parameter tuning using grid search 5-fold cross validation, it receives a model score
of 0.79 on the testing data.

From these two-residual plots of these two models, one can see that there are a couple
outliers that completely throw the both models completely off. However, overall both models

18
perform fairly decent and further suggest that all three websites has very similar prices
laptop.

K-Nearest Neighbour Recommender

With the linear model, we were able to predict the price of the computer-based on its
spec. The next thing that interests me was to build a recommendation system based using a K-
Nearest K Nearest Neighbors model. K-nearest neighbors which rely on euclidean distance
requires data to be scale.

I use Min Max Scalers to scale my dataset before putting it in the KNN model.
Key points on Min-Max Scalers:
 We subtract the min from all values and marking a scale from Min to Max.

 Divide it by the difference between Min and Max


 Result is that our values will go from zero to 1
 Downside is that we will have lower standard deviations and it suppresses the effect
of outliers

From the picture below, I was able to create a recommendation based on the user input.
In this case, I was looking for an 15.6inch MSI gaming laptop with a certain price and specs.
From the KNN algorithm, the 10 closest laptops from this specs were chosen.

19
Fig.7 :- KNN Algorithm

I check the recommendations and well, it works! It recommended my current laptop that I
research for a few weeks to get. To my surprise, despite such simple approach, the recommender
does pick up the difference between different laptop specs.

Tools and Technology Used


What is Django?
Django is a free and open source web application framework written in Python. A
framework is nothing more than a collection of modules that make development easier. They are
grouped together, and allow you to create applications or websites from an existing source, instead
of from scratch.

This is how websites - even simple ones designed by a single person - can still include
advanced functionality like authentication support, management and admin panels, contact forms,
comment boxes, file upload support, and more. In other words, if you were creating a website from
scratch you would need to develop these components yourself. By using a framework instead,

20
these components are already built, you just need to configure them properly to match your site.

The official project site describes Django as "a high-level Python Web framework that encourages
rapid development and clean, pragmatic design. Built by experienced developers, it takes care of
much of the hassle of Web development, so you can focus on writing your app without needing to
reinvent the wheel. It’s free and open source."

Fig.8 Django Framework

Django offers a big collection of modules which you can use in your own projects. Primarily,
frameworks exist to save developers a lot of wasted time and headaches and Django is no different.

You might also be interested in learning that Django was created with front-end developers in
mind. "Django’s template language is designed to feel comfortable and easy-to-learn to those used
to working with HTML, like designers and front-end developers. But it is also flexible and highly
extensible, allowing developers to augment the template language as needed."

What is Designmodo?
Basically, DesignModo is the application for front-end Website Development for the developers. It
creates websites and email builders designed for developers and non-tech users, in addition to services such
as the Designmodo Market and Designmodo Jobs.

21
Fig.9 Design Modo

Designmodo also provides articles, tutorials and industry news about trends and
techniques. The website is visited by professionals from small- to large-sized companies and is
used as a reference by many design and coding schools.

What is AWS?

Amazon Web Services (AWS) is a cloud service from Amazon, which provides services
in the form of building blocks, these building blocks can be used to create and deploy any type of
application in the cloud.

These services or building blocks are designed to work with each other, and result in applications
which are sophisticated and highly scalable.

22
Each type of service in this “What is AWS” blog, is categorized under a domain, the few domains
which are widely used are:

 Compute
 Storage
 Database
 Migration
 Network and Content Delivery
 Management Tools
 Security & Identity Compliance
 Messaging

The Compute domain includes services related to compute workloads, it includes the following
services:

 EC2 (Elastic Compute Cloud)


 Lambda
 Elastic Beanstalk
 Amazon LightSail

The Storage domain includes services related data storage, it includes the following services:

 S3 (Simple Storage Service)


 Elastic Block Store
 Amazon Glacier
 AWS Snowball

The Database domain is used for database related workloads, it includes the following services:

 Amazon Aurora
 Amazon RDS
 Amazon DynamoDB
 Amazon RedShift

23
The Migration domain is used for transferring data to or from the AWS Infrastructure, it includes
the following services:

 AWS database Migration Service


 AWS SnowBall

The Networking and Content Delivery domain is used for isolating your network infrastructure,
and content delivery is used for faster delivery of content. It includes the following services:

 Amazon Route 53
 AWS CloudFront

The Management Tools domain consists of services which are used to manage other services in
AWS, it includes the following services:

 AWS CloudWatch
 AWS CloudFomation
 AWS CloudTrail

The Security & Identity, Compliance domain consist of services which are used to manage to
authenticate and provide security to your AWS resources. It consists of the following services:

 AWS IAM
 AWS KMS
 AWS Shield

The Messaging domain consists of services which are used for queuing, notifying or emailing
messages. It consists of the following domains:

 Amazon SQS
 Amazon SNS
 Amazon SES
 Amazon Pinpoint

24
Result and Disscussion

The Application was created to predict the price for your laptop using machine learning
algorithm. The recommended laptop will be given to the user who gave the desired specs to the
system. The price would be displayed to the user as he clicks the Find Button.

Future Work
In the interest of further analysing other factors that increase/decrease laptop price and
understand review affect on laptop price, it would be of interest to:

1. Scrape the average rating and review summary of each laptop and use sentimental
analysis to rank each of the laptop.
2. Create more feature engineering relating different specification, such as whether the
laptop contain a USB-C port or what version of Bluetooth support.
3. Use and test different type of scaler on the data-set and understand its affect on the
model prediction.

25
CHAPTER – 2
ANALYSIS

About Dream Company:

Fig: Google Logo

Google LLC is an American multinational technology company that specializes in


Internet-related services and products, which include online advertising technologies, search
engine, cloud computing, software, and hardware. It is considered one of the Big Four technology
companies, alongside Amazon, Apple, and Facebook.[10][11]
Google was founded in September 1998 by Larry Page and Sergey Brin while they were
Ph.D. students at Stanford University in California. Together they own about 14 percent of its
shares and control 56 percent of the stockholder voting power through super voting stock. They
incorporated Google as a California privately held company on September 4, 1998, in California.
Google was then reincorporated in Delaware on October 22, 2002.[12] An initial public offering
(IPO) took place on August 19, 2004, and Google moved to its headquarters in Mountain View,
California, nicknamed the Googleplex. In August 2015, Google announced plans to reorganize its
various interests as a conglomerate called Alphabet Inc. Google is Alphabet's leading subsidiary
and will continue to be the umbrella company for Alphabet's Internet interests. Sundar Pichai was
appointed CEO of Google, replacing Larry Page who became the CEO of Alphabet.
The company's rapid growth since incorporation has triggered a chain of products,
acquisitions, and partnerships beyond Google's core search engine (Google Search). It offers

26
services designed for work and productivity (Google Docs, Google Sheets, and Google Slides),
email (Gmail), scheduling and time management (Google Calendar), cloud storage (Google
Drive), instant messaging and video chat (Duo, Hangouts), language translation (Google
Translate), mapping and navigation (Google Maps, Waze, Google Earth, Street View), video
sharing (YouTube), note-taking (Google Keep), and photo organizing and editing (Google
Photos). The company leads the development of the Android mobile operating system, the Google
Chrome web browser, and Chrome OS, a lightweight operating system based on the Chrome
browser. Google has moved increasingly into hardware; from 2010 to 2015, it partnered with major
electronics manufacturers in the production of its Nexus devices, and it released multiple hardware
products in October 2016, including the Google Pixel smartphone, Google Home smart
speaker, Google Wifi mesh wireless router, and Google Daydream virtual reality headset. Google
has also experimented with becoming an Internet carrier (Google Fiber, Google Fi, and Google
Station).
Google.com is the most visited website in the world.[14] Several other Google services also
figure in the top 100 most visited websites, including YouTube and Blogger. Google was the most
valuable brand in the world as of 2017,[15] but has received significant criticism involving issues
such as privacy concerns, tax avoidance, antitrust, censorship, and search neutrality.
Google's mission statement is "to organize the world's information and make it universally
accessible and useful". The company's unofficial slogan "Don't be evil" was removed from the
company's code of conduct around May 2018, but reinstated by July 31, 2018.
As a company, Google's mission is “To organize the world's information and make it
universally accessible and useful.” Google dominates 75% of the U.S. online search market. Every
month millions of unique users perform billions of searches
"Don't be evil" is a phrase used in Google's corporate code of conduct, which it also
formerly preceded as a motto. Following Google's corporate restructuring under the conglomerate
Alphabet Inc. in October 2015, Alphabet took "Do the right thing" as its motto, also forming the
opening of its corporate code of conduct.

27
Survey on Current project in Dream Company:

1. Robotics

Google appears to be building a robot army, and I’m not even kidding when I wrote that.
Google first dabbled in robotics for their driverless cars. But later on, it acquired at least 8
robotics companies, including Boston Dynamics which is known to build Pentagon-funded
advanced robots. Here’s a recently released video of Spot created by Boston Dynamics.

Fig.10:- Google Robots

As of this writing Google has been successfully awarded the patent to “control robot
armies“. They have also patented building robots with personalities. And they are doing a lot
more behind the scenes. Should we be worried? Well…

Google is actually pushing for flawless autonomous machines which could interact with
each other, download updates from their server, and many more things. Think of Google’s self-
driving cars with the ability to communicate with each other while on the road, predicting routes,
avoiding collisions, managing traffic on their own

28
And then there’s these robots with personalities, which is a bit on the creepy side because
it could mimic the dead. Alright, to be fair, these robots will “carry” transferable personalities by
people who have passed on. Perhaps this can be helpful in easing the grief of people who have
suffered a sudden and heavy loss?

2. Self-Driving Cars

The stir about electric and autonomous cars has been around for a couple of years now. Big
names like Volkswagen, Mercedes, Tesla, General Motors, and Google (of all companies) are
pushing for driverless cars.

The goal everyone is aiming for is to solve the long-standing issue of people on the road.
Yes, we are a danger to ourselves. Google’s self-driving cars have been involved in 11 minor
accidents in the last 6 years, and none of them were reportedly caused by the car’s own fault.

Fig.11: - Google self-driving cars


By introducing autonomous cars on roads, cars which can compute faster than a hundred
sober minds combined, road-related accidents may see a significant drop. Driverless cars will also
significantly help those who do not have the capacity to drive, either because of health reasons,
disabilities or old age.’

29
Space Exploration

3. Space Exploration – Lunar XPRIZE

The buzz about going to space has been in a hype, every since Richard Branson of
Virgin Airlines and Elon Musk of Tesla and Space-X joined the space race. Google too has
its eyes set on going back to space. In fact, Google has leased a NASA airfield for 60 years
for a cost of $1.16 billion , with a promise to upgrade its facilities and help educate people
about the importance of space exploration.The plan was to go back to the moon, for good.
And how are they going to do this? Via the Lunar XPRIZE and with the help of privately
funded organizations. Basically, Google is offering a cash reward of $20 million to
whoever accomplishes three things: land a robot on the surface of the Moon, make it move
at least 500 meters on, above, or below the surface of the Moon, and finally send back
HDTV streams to Earth for us to enjoy.

Smartphones

4. Project Ara – Modular Phones

Tired of replacing your phone every six months or two years because of wear and tear or
outdated technologies? That may be why you have been excited about Project Ara ever since it
was announced. The concept is simple: treat a phone like it is a lego toy. Assemble the phone
according to the parts you need enhanced.

For instance if you are a photographer, you could focus on upgrading your camera or lens,
or if you are a music lover, you can aim for better speakers and audio quality or longer-lasting
batteries for uninterrupted listening time. Instead of buying a phone that may not have the feature
you are interested in most, have more control with a Project Ara phone.

30
Fig.12: - Google Smartphones

Project Ara not only lets you “upgrade” the hardware you need most, it also ensures that
you don’t have to change your whole smartphone just because one part is broken, which is
essentially what forces most of us to change our phones in the first place anyways.

5. Project Tango – 3D Mapping

Project Tango aims to bring spatial awareness of the world around us to handheld devices.
We can navigate to any corner of the world, and yet our devices don’t know the difference between
up and down, left and right, or what’s beyond the horizon, since these devices “see” the world in
2D.

With Project Tango, mapping the world in real-time won’t be a problem. Imagine entering
a building and as you walk inside it, your smartphone maps everything. The ceiling, floor, walls,
and objects on your path.

31
Fig.13:- Google 3D Mapping

To get an idea of what we can use this technology for, we will let the magic of movie
science show you. Here’s a clip from the movie Prometheus where it shows exactly what Project
Tango can be used for.

Health

6. Calico – Immortality

Calico is a research and development company that was founded by Google Inc. and Arthur
D. Levinson. Its focus is on aging and how to slow it, along with how to counteract age-related
diseases such as cancer and neurodegeneration via new therapies and treatments. Not everyone is
as supportive of what Calico is doing however. In a reddit Ask Me Anything, Bill Gates criticized
the timing of Calico’s objectives: to deal with it right now while we are still trying to find ways to
eradicate malaria and tuberculosis “seems pretty egocentric.“

32
7. Google Contact Lens

The main purpose of Google’s smart contact lens is to help monitor sugar levels on
diabetics. It may seem like a small deal but if you suffer from diabetes, you will need to get give
repeated blood samples for analysis of your blood sugar levels. This means a lot of finger pricking
to draw blood up to the surface.

With the smart contact lens blood glucose levels can be measured through tears, thereby
allowing the blood-letting method to be skipped altogether.

The idea is to have glitter-thin microchips and an antenna smaller than the human hair
embedded in soft contact lens material. With round-the-clock monitoring, the smart contact lens,
in the future, can also warn the wearer if glucose levels are above or below the normal range.

33
Identification of skill demand in Dream Company:

Google is the most desirable employer on Earth.Engineers are the rock stars there - and
they're paid according to their respective qualifications
Interns start at $70,000 to $90,000 salaries, while software engineers pull in $118,000 and senior
softwar engineers make an average of $152,985.

With stiff competition like that, your skillset must really stand out. Knowing the skills that
the company is looking for in applicants will be a great kick-off point if you want to join the
workforces at Google. You can highlight them in your resume as well as let them shine during the
interviews. Of course, you should remember checking off these points does not guarantee a job at
Google, or any other software development company for that matter.
Designers

 UI design

 Graphic design

 Web design

 Photoshop

 Illustrator

 Information architecture

 Art direction
Software engineers

 С++, С and С#

 Java

 Principles of software engineering

 Python

 Javascript

 Agile methodologies

34
 SQL

Product managers

 Project manager

 Leadership

 Customer service

 Cloud computing

 Product marketing

 Strategy
Data scientists

 Project management

 SQL

 Machine learning

 Data analysis

 Python

 Data mini

35
CHAPTER – 3
PLATFORM/LANGUAGE/FRAMEWORK/TOOLS

History of Python:-
Python was developed in 1980 by Guido van Rossum at the National Research Institute for
Mathematics and Computer Science in the Netherlands as a successor of ABC language capable
of exception handling and interfacing. Python features a dynamic type system and automatic
memory management. It supports multiple programming paradigms, including object-oriented,
imperative, functional and procedural, and has a large and comprehensive standard library.
Van Rossum picked the name Python for the new language from a TV show, Monty Python's
Flying Circus.
In December 1989 the creator developed the 1st python interpreter as a hobby and then on 16
October 2000, Python 2.0 was released with many new features.

“...In December 1989, I was looking for a "hobby" programming project that would keep
me occupied during the week around Christmas. My office ... would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for the new scripting
language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C
hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and
a big fan of Monty Python's Flying Circus) — Guido van Rossum

Features
Python is a multi-paradigm programming language. Object-oriented
programming and structured programming are fully supported, and many of its features
support functional programming and aspect-oriented programming (including
by metaprogramming and metaobjects (magic methods)). Many other paradigms are supported
via extensions, including design by contract and logic programming.

36
Python uses dynamic typing, and a combination of reference counting and a cycle-detecting
garbage collector for memory management. It also features dynamic name resolution (late
binding), which binds method and variable names during program execution.
Python's design offers some support for functional programming in the Lisp tradition. It
has filter , map , and reduce functions; list comprehensions, dictionaries, sets

and generator expressions.

The standard library has two modules (itertools and functools) that implement functional tools
borrowed from Haskell and Standard ML.
The language's core philosophy is summarized in the document The Zen of Python (PEP 20),
which includes aphorisms such as:

 Beautiful is better than ugly.


 Explicit is better than implicit.
 Simple is better than complex.
 Complex is better than complicated.
 Readability counts.

Rather than having all of its functionality built into its core, Python was designed to be
highly extensible. This compact modularity has made it particularly popular as a means of
adding programmable interfaces to existing applications. Van Rossum's vision of a small core
language with a large standard library and easily extensible interpreter stemmed from his
frustrations with ABC, which espoused the opposite approach.
Python's developers strive to avoid premature optimization, and reject patches to non-
critical parts of the CPython reference implementation that would offer marginal increases in
speed at the cost of clarity. When speed is important, a Python programmer can move time-
critical functions to extension modules written in languages such as C, or use PyPy, a just-in-
time compiler. Cython is also available, which translates a Python script into C and makes direct
C-level API calls into the Python interpreter.
Python strives for a simpler, less-cluttered syntax and grammar while giving developers a
choice in their coding methodology. In contrast to Perl's "there is more than one way to do it"

37
motto, Python embraces a "there should be one—and preferably only one—obvious way to do it"
design philosophy. Alex Martelli, a Fellow at the Python Software Foundation and Python book
author, writes that "To describe something as 'clever' is not considered a compliment in the
Python culture."
An important goal of Python's developers is keeping it fun to use. This is reflected in the
language's name—a tribute to the British comedy group Monty Python —and in occasionally
playful approaches to tutorials and reference materials, such as examples that refer to spam and
eggs (from a famous Monty Python sketch) instead of the standard foo and bar.
A common neologism in the Python community is pythonic, which can have a wide range
of meanings related to program style.
To say that code is pythonic is to say that it uses Python idioms well, that it is natural or
shows fluency in the language, that it conforms with Python's minimalist philosophy and
emphasis on readability.
In contrast, code that is difficult to understand or reads like a rough transcription from
another programming language is called unpythonic.
Python is a dynamic, high level, free open source and interpreted programming
language. It supports object-oriented programming as well as procedural oriented programming.
In Python, we don’t need to declare the type of variable because it is a dynamic typed language.
For example, x=10
here x can be anything such as String, int etc.

There are many features in Python, some of which are discussed below –

Easy to code:
Python is high level programming language.Python is very easy to learn language as compared
to other language like c, c#, java script, java etc.It is very easy to code in python language and
anybody can learn python basic in few hours or days.It is also developer-friendly language.

38
3.2.2 Free and Open Source:
Python language is freely available at official website and you can download it from the given
download link below click on the Download Python kyeword.
Download Python
Since, it is open-source, this means that source code is also available to the public.So you can
download it as, use it as well as share it.
3.3.3. Object-Oriented Language:
One of the key features of python is Object-Oriented programming.Python supports object
oriented language and concepts of classes, objects encapsulation etc.
GUI Programming Support:
Graphical Users interfaces can be made using a module such as PyQt5, PyQt4, wxPython or Tk
in python.
PyQt5 is the most popular option for creating graphical apps with Python.
High-Level Language:
Python is a high-level language.When we write programs in python, we do not need to remember
the system architecture, nor do we need to manage the memory.
Extensible feature:
Python is a Extensible language.we can write our some python code into c or c++ language and
also we can compile that code in c/c++ language.
Python is Portable language:
Python language is also a portable language.for example, if we have python code for windows
and if we want to run this code on other platform such as Linux, Unix and Mac then we do not
need to change it, we can run this code on any platform.
Python is Integrated language:
Python is also an Integrated language because we can easily integrated python with other
language like c, c++ etc.
Interpreted Language:
Python is an Interpreted Language. because python code is executed line by line at a time. like
other language c, c++, java etc there is no need to compile python code this makes it easier to
debug our code.The source code of python is converted into an immediate form called bytecode.

39
Large Standard Library
Python has a large standard library which provides rich set of module and functions so you do
not have to write your own code for every single thing.There are many libraries present in
python for such as regular expressions, unit-testing, web browsers etc.
Dynamically Typed Language:
Python is dynamically-typed language. That means the type (for example- int, double, long etc)
for a variable is decided at run time not in advance.because of this feature we don’t need to
specify the type of variable.
Concepts:
Python Programming Language – Looking to step into the world ofprogramming? Or do
you want to explore new languages? Python programming is often one of the first picks for both,
because it is both easy to pick up and has vast capabilities. Python Programming language uses a
simple object-oriented programming approach and very efficient high-level data structures. Python
Programming also uses very simple and concise syntax and dynamic typing. If you want a
language for rapid application building and scripting in several areas, you would be hard-pressed
to find a better alternative than Python.
One of the key benefits of Python Programming is its interpretive nature. The Python interpreter
and standard library are available in binary or source form from the Python website, and can run
seamlessly on all major operating systems. Python Programming language is also freely-
distributable, and the same site even has tips and other third-party tools, programs, modules and
more documentation.
The Python interpreter can be easily extended with new data types or functions in C++, C or any
other language callable from C. The Python Programming language works as an extension for
customizable applications. What makes this language so easy to learn is the fact that it uses
English keywords rather than punctuation, and it has fewer syntax constructions than other
programming languages.

40
Data Structures in Python

LISTS-

Ordered collection ofdata.


SupportssimilarslicingandindexingfunctionalitiesasinthecaseofStrings.
They aremutable.
Advantage of a list over a conventional array

• Listshavenosizeortypeconstraints(nosettingrestrictions beforehand).
• They can contain different object types.
• Wecandeleteelementsfromalistbyusing Dellist_name[index_val]
 Example-
• my_list = ['one', 'two','three',4,5]
• len(my_list) wouldoutput 5.

Dictionary-

Lists are sequences but the dictionaries are mappings.


They are mappings betweena unique key and a value pair.
These mappings may not retain order.
Constructing adictionary.
Accessing object from a dictionary.
Nesting Dictionaries.
Basic DictionaryMethods.

41
Basic Syntax

o d={} empty dictionary will be generated and assign keys and values to it, like d[‘animal’] = ‘Dog’
o d = {'K1':'V1', 'K2’:’V2'}
o d['K1'] outputs'V1‘

Tuples-

Immutable in nature, i.e they cannot be changed.


No typerestriction
Indexingandslicing,everything'ssamelikethatinstringsandlists.
Constructing tuples.
Basic tuplemethods.
Immutability.
When to use tuples?
Wecanusetuplestopresentthingsthatshouldn’tchange,suchasdaysof the week, or dates on a calendar, etc.

Sets-

Asetcontainsuniqueandunorderedelementsandwecanconstructthem by using a set() function.


Convert a list into Set-
l=[1,2,3,4,1,1,2,3,6,7]
k =set(l)
k becomes{1,2,3,4,6,7}
Basic Syntax-
x=set()
x.add(1)
x = {1}
x.add(1)
This would make no change in x now

42
File Handling inPython-

Pythontoosupportsfilehandlingandallowsuserstohandlefilesi.e.,toreadand writefiles, alongwith


many other file handling options, to operate on files. The conceptoffilehandlinghasstretchedovervarious
other languages, but the implementation is either complicated or lengthy, but alike other concepts of
Python, this concept here is also easy and short. Python treats file differently as text or binary and this is
important.Eachlineofcodeincludesasequenceof characters and they form text file. Each line of a file is
terminated with a special character, called the EOL or End of Line characters like comma {,} or newline
character. It ends thecurrentlineandtells theinterpreter anew onehas begun. Let’s start with Reading and
Writingfiles.
Weuseopen()functioninPythontoopenafileinreadorwritemode.As explainedabove,open()
willreturnafileobject.Toreturnafileobjectweuse open () function along with two arguments, that accepts
file name and the mode, whether to read or write. So, the syntax being: open(filename, mode). There are
threekindsofmode,thatPythonprovidesandhowfilescanbeopened:

• “ r “, for reading.
• “ w “, for writing.

• “ a “, for appending.

• “ r+ “, for both reading and writing

Fig.14: - Code inpytho

44
It readthewordsfrom101.txt fileandprinttheallwords whicharepresentin the file and also tell that word
occurringhow manytimes.

45
Use ofNumpy-

NumPy isaPythonpackage.Itstandsfor'NumericalPython'.Itisalibrary consistingofmultidimensionalarray


objectsandacollectionofroutinesfor processing ofarray.
Numeric, the ancestor of NumPy, was developed by Jim Hugunin. Another package Numarray was also
developed,havingsomeadditionalfunctionalities.In 2005,TravisOliphantcreatedNumPypackagebyincorporatingthe
featuresof NumarrayintoNumericpackage.Therearemanycontributorstothisopensource project.

Operations using NumPy

Using NumPy, a developer can perform the following operations −

Mathematical and logical operations on arrays.

Fouriertransformsandroutinesforshapemanipulation.

Operations related to linear algebra. NumPy has in-built functions for linear algebra and random number
generation.
Simple program to create a matrix-

Firstofallweimportnumpypackagethenusingthiswetakeinputinnumpy function as a list then we create a matrix

Fig.15: - Python Numpy1


Thereismanymorefunctioncanbeperformbyusingthislikethattakesinvalue of the given value,printa zero matrix etc.
wealsotakeanyimageintheformof array.

46
Fig.16: - Python Numpy2

Use of Matplotlib-

Matplotlib is a library for making 2D plots of arrays in Python. Although it has its originsinemulatingtheMATLAB
graphics commands, it is independent of MATLAB, and can be used in a Pythonic, object-orientedway. Although
Matplotlib is written primarily in pure Python,it makes heavy use of NumPy and other extension code to provide
goodperformanceevenforlargearrays.
Matplotlib is designed with the philosophy that you should be able to create simple plots with just a few
commands,orjustone!Ifyouwanttoseea
histogramofyourdata,youshouldn’tneedtoinstantiateobjects,callmethods, set properties, and so on; it should just
work.
These are some example of matplotlib

47
Fig.17: - Python Matplot library 1

48
Fig.18: - Python Matplot library !

49
Use of Pandas-

Pandas is an open-source, BSD-licensed Python library providing high- performance,easy-to-usedata


structuresanddataanalysistoolsforthePython programming language. PythonwithPandas is usedinawiderangeof
fields including academic and commercial domains including finance, economics, Statistics, analytics,etc.
Pandasisanopen-sourcePythonLibraryprovidinghigh-performancedata manipulationandanalysistoolusing
itspowerfuldatastructures.Thename Pandas is derived from the word Panel Data – an Econometrics
from Multidimensional data.
Key Features of Pandas-

• Fastandefficient DataFrameobjectwithdefaultandcustomized indexing.

• Toolsforloadingdataintoin-memorydataobjectsfromdifferentfile formats.

• Data alignment and integrated handling of missingdata.

• Reshaping and pivoting of date sets.

• Label-basedslicing,indexingandsubsettingoflargedatasets.

• Columns from a data structure can be deleted or inserted.

• Group by data for aggregation and transformations. Pandas deals with the
followingthreedatastructures−
Series
DataFrame
Panel
ThesedatastructuresarebuiltontopofNumpyarray,whichmeanstheyare fast.

50
Fig.19: - Python pandas

51
Use of OpenCV-

`OpenCV was started at Intel in 1999 by Gary Bradsky and thefirst release came out in 2000. Vadim Pisarevsky joined
GaryBradskytomanageIntel’sRussian softwareOpenCVteam.In2005,OpenCVwasusedonStanley,thevehiclewho
won2005DARPAGrandChallenge.Lateritsactivedevelopmentcontinuedunder the support of Willow Garage, with
Gary Bradsky and Vadim Pisarevsky leading the project. Right now, OpenCV supports a lot of algorithms related to
Computer Vision and Machine Learninganditis expandingday-by-day.
BelowisthelistofcontributorswhosubmittedtutorialstoOpenCV-Python.

-Alexander Mordvintsev (GSoC-2013 mentor)

-Abid Rahman K. (GSoC-2013 intern)

52
Use the function-

cv2.imread() to read an image. The image should be in the working directory or a full path of image
should be given.
Second argument is a flag which specifies the way image should be read.

• cv2.IMREAD_COLOR:Loadsacolorimage.Anytransparencyofimagewill be neglected. It
is the default flag.
• cv2.IMREAD_GRAYSCALE :Loadsimageingrayscale mode

• cv2.IMREAD_UNCHANGED:Loadsimageassuchincludingalphachannel

Use the functioncv2.imshow() to display an image in a window.The window automatically fits to the image
size.

This program change image from colour to black&white

Fig.20: - Python OpenCv

53
Applications

Python is a high-level general purpose programming language that offers multiple


paradigms like object-orientation, and structural and functional programming for software
development. It works on cross-platform operating systems and can be used across to develop a
wide range of applications including those intended for image processing, text processing, web,
and enterprise level using scientific, numeric and data from network. BitTorrent, YouTube,
Dropbox, Deluge, Cinema 4D and Bazaar are a few globally-used applications based on Python.

Applications of Python

GUI-Based Desktop Applications:

Python has simple syntax, modular architecture, rich text processing tools and the ability to
work on multiple operating systems which make it a desirable choice for developing desktop-based
applications. There are various GUI toolkits like wxPython, PyQt or PyGtk available which help
developers create highly functional Graphical User Interface (GUI). The various applications
developed using Python includes:

 Image Processing and Graphic Design Applications:

Python has been used to make 2D imaging software such as Inkscape, GIMP, Paint
Shop Pro and Scribus. Further, 3D animation packages, like Blender, 3ds Max, Cinema
4D, Houdini, Lightwave and Maya, also use Python in variable proportions.

 Scientific and Computational Applications:

The higher speeds, productivity and availability of tools, such as Scientific Python
and Numeric Python, have resulted in Python becoming an integral part of applications
involved in computation and processing of scientific data. 3D modeling software, such
as FreeCAD, and finite element method software, such as Abaqus, are coded in Python.

Language Development:

Python’s design and module architecture has influenced development of numerous


languages. Boo language uses an object model, syntax and indentation, similar to Python. Further,
syntax of languages like Apple’s Swift, CoffeeScript, Cobra, and OCaml all share similarity with
Python.

Prototyping:

54
Besides being quick and easy to learn, Python also has the open source advantage of being
free with the support of a large community. This makes it the preferred choice for prototype
development. Further, the agility, extensibility and scalability and ease of refactoring code
associated with Python allow faster development from initial prototype.

Since its origin in 1989, Python has grown to become part of a plethora of web-based, desktop-
based, graphic design, scientific, and computational applications. With Python available for
Windows, Mac OS X and Linux / UNIX, it offers ease of development for enterprises.
Additionally, the latest release Python 3.4.3 builds on the existing strengths of the language, with
drastic improvement in Unicode support, among other new features.

55
Future Scope of Python Programming

Did you know that there exists one very major data analytical tool which is has been a major
part of the globally recognised search engine, Google? It is the Python programming language
which has come to assume a very major position in the world of data analytics. Since its beginning,
Python has been an integral part of Google’s mainframe and it continues to grow with it and evolves
at the same time. Even today, Google’s major engineer professionals use Python and their HR team
is always on the lookout for more professionals who are adept in working with this data analytical
tool. This means just one thing, that Python programming is definitely here to stay. Since its
inception and initial application, it has drawn in crowds of admirers both among the general masses
as well as the various Linux communities. Python is a high-level comprehensive programming tool
that is mostly associated with users belonging to the Linux community. It happens to be an open
source language, which means that it is free to be downloaded and usually functions as a support to
all the other leading programming languages. The main attribute of this tool is that it can write
object-oriented codes which are both functional and imperative in design.

The main aim while designing this language was to provide an independent platform as well
as code readability. These very features make Python both logical and adaptable as well as very
easy to understand. It has been described as one of the most organized and standard languages used
by many users. Portability across multiple platforms and its remarkable attributes make it a
promising career opportunity for all aspirants. In a recent survey conducted by the Linux Journal,
it was voted as one of the most sought after and favourite programming languages, placing it in the
competition with other languages as JAVA and C++.

This tool is being used worldwide in a wide range of workplace environments. Apart from
being considered a pre-requisite for all Linux based jobs, it is being used as a part of corporate skills
as well as educational settings. There are so many data aspirants who are being attracted majorly to
this data analytical tool. Many choose to get professionally trained through various professional
training institutes, to help them get into their career of choice. There are even institutes like

Imarticus Learning which offer a number of comprehensive courses to train professionals in Python
programming.

This versatile, robust and comprehensive programming language is used by many top brand
firms like Google, Disney and Red Hat, which is a clear indicator of its popularity. It has even
secured a spot in the top ten data analytical tools of the industry list so far, which is affirmative of
its bright future in terms of career opportunities. The fact that this tool can be used across multiple
platforms and is both flexible and adaptable, makes it a crowd favourite as well as a tool which will
survive for long in this industry.

56
CHAPTER-4
CONCLUSION

I believe the trial has shown conclusively that it is both possible and desirable to use Python
as the principal teaching language:

 it is Free (as in both cost and source code).


 it is trivial to install on a Windows PC allowing students to take their interest further. For
many the hurdle of installing a Pascal or C compiler on a Windows machine is either too
expensive or too complicated;
 it is a flexible tool that allows both the teaching of traditional procedural programming
and modern OOP; It can be used to teach a large number of transferable skills;
 it is a real-world programming language that can be and is used in academia and the
commercial world;
 it appears to be quicker to learn and, in combination with its many libraries, this offers
the possibility of more rapid student development allowing the course to be made more
challenging and varied;
 and most importantly, its clean syntax offers increased understanding and enjoyment for
students;

Python should be used as the first-year teaching language. If used it will be possible to teach
students more programming and less of the peculiarities of a particular language. Teaching a
mid-level language like C in just one day is inadvisable. Too much time must be spent teaching
C and not enough time teaching generic skills to students with no programming experience.

The use of Python as the first-year language is not a dead-end. I have tried to emphasise that
Python allows the teaching of widely applicable programming concepts. Its use in no way
precludes the use of C in a more advanced course.

In fact students who go on to use C in later years will have a better grounding in concepts from their
introduction to programming than they might have from a C-based introduction. I believe that more
students will go on to advanced programming if introduced using Python because introducing
programming using C will frustrate and scare off a large number of students.
In conclusion, Python offers the optimum compromise of teachability and applicability

57
58

Вам также может понравиться