CX 1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

````

SIX WEEKS SUMMER TRAINING REPORT

ON

C++ (OBJECT ORIENTED PROGRMMING):- E-BOX

School of Computer Science and Engineering

Lovely Professional University, Phagwara

(MAY- JUNE 2020)

DECLARATION
I hereby declare that I have completed my six weeks summer training at E-box (online) from
MAY 15 to JUNE 30, 2020 under the guidance of E-box faculty. I have declared that I have
worked with full dedication during these six weeks of training and my learning outcomes
fulfil the requirements of training for the award of degree of Intermediate C++. Lovely
Professional University, Phagwara.

YOGESH KUMAR

11806193

Date: 30-june, 2020

ACKNOWLEDGEMENT
It is my pleasure to be indebted to various people, who directly or indirectly helped me to
learn this course and who influenced my thinking, behaviour and acts during study.

I express my sincere gratitude to Mr. Gaurav Sir (Head of Department of Computer


science school) for providing me an opportunity to undergo summer training at E-Box.

I am thankful to the instructors of this course for his support and cooperation provided to
me during the summer training.

I also extend my sincere appreciation to mentors who provided their valuable suggestions
and precious time for helping me out in completing my course.

I perceive as this opportunity as a big milestone in my career development. I will strive


to use gained skills and knowledge in the best viable way, and I will continue to work on their
improvement, to attain desired career objectives. Hope to continue cooperation with all of
you in the future.

YOGESH KUMAR
TABLE OF CONTENT

1. Introduction
2. Technology Learnt
3. Reason for choosing this Technology
4. Learning outcome from training / technology learnt
5. Overview
6. Bibliography
INTRODUCTION

E-Box is an online education platform focused to improve the technical skills of students. It
has diverse courses like web/mobile development, digital marketing, and product design,
business management. Coursera uses interactive lessons, knowledge check questions and try-
it-yourself activity to make students more clear about the concepts that are being taught.

E-box has a long history of offering education in C++.

A regular degree from a university takes around 4 years to complete. A regular degree also
has a few core courses, some electives, and some open-ended projects. Regular degrees
provide certification to signal that the student is ready to work in a field.

The latest programs are the Artificial Intelligence Engineer and Robotics. I enrolled in the C+
+ because I wanted a good foundation before moving onto the advanced ones.

The C++ for c programmers is made up of 12 chapters. Each chapter has knowledge check
and Try-it-yourself activities for practice. The knowledge check has bits and graphical
interaction depending on the lesson. Coursera provides the outline of the course from the
dashboard.

Each chapter is about a particular part of C++. How a complete system is organised by
memory allocation, resource management and scheduling the processes as per their priority.
And for completing the course you need to get a passing grade which is 80 percent and if you
get passing grade you can download the certificate.

In the summer training I studied about the c++ programming language in an online
organization named E-Box. In this courser organization a professor named Ira Pohl from
university of California taught the c++ programming language. In the training there were
different videos regarding different topics which are taught to us by the professor regarding
c++. In the training we were given a brief description about c++ and the conversion of c
programming to c++. I also learnt the advantages of c++, type safe input/output. In this I
learnt about the pointers and reference types, class and its scope, input output operations.OOP
concepts etc. The total learning about the c++ language and its outcomes are briefly described
in further report.

In 1979, Bjarne Stroustrup, a Danish computer scientist, began work on "C with Classes", the
predecessor to C++. The motivation for creating a new language originated from Stroustrup's
experience in programming for his Ph.D. thesis. Stroustrup found that Simula had features
that were very helpful for large software development, but the language was too slow for
practical use, while BCPL was fast but too low-level to be suitable for large software
development. When Stroustrup started working in AT&T Bell Labs, he had the problem of
analyzing the UNIX kernel with respect to distributed computing. Remembering his Ph.D.
experience, Stroustrup set out to enhance the C language with Simula-like features.[11] C was
chosen because it was general-purpose, fast, portable and widely used. As well as C and
Simula's influences, other languages also influenced C++, including ALGOL
68, Ada, CLU and ML.

Initially, Stroustrup's "C with Classes" added features to the C compiler, Cpre,
including classes, derived classes, strong typing, inlining and default arguments.

In 1983, "C with Classes" was renamed to "C++" ( ++ being the increment operator in C),
adding new features that included virtual functions, function name and operator overloading,
references, constants, type-safe free-store memory allocation (new/delete), improved type

checking, and BCPL style single-line comments with two forward slashes ( // ). Furthermore,
it included the development of a standalone compiler for C++, Cfront.

In 1985, the first edition of The C++ Programming Language was released, which became
the definitive reference for the language, as there was not yet an official standard. [13] The first
commercial implementation of C++ was released in October of the same year.[10]

In 1989, C++ 2.0 was released, followed by the updated second edition of The C++
Programming Language in 1991.[14] New features in 2.0 included multiple inheritance,
abstract classes, static member functions, const member functions, and protected members. In
1990, The Annotated C++ Reference Manual was published. This work became the basis for
the future standard. Later feature additions included templates, exceptions, namespaces,
new casts, and a boolean type.
After the 2.0 update, C++ evolved relatively slowly until, in 2011, the C++11 standard was
released, adding numerous new features, enlarging the standard library further, and providing
more facilities to C++ programmers. After a minor C++14 update released in December
2014, various new additions were introduced in C++17, and further changes planned for
2020.

As of 2017, C++ remains the third most popular programming language, behind Java and C.

On January 3, 2018, Stroustrup was announced as the 2018 winner of the Charles Stark
Draper Prize for Engineering, which comes with $500,000, "for conceptualizing and
developing the C++ programming language.

Technology Learnt

C++:
Field of Application:

As a middle-level language, C combines benefits of both low machine level languages and
high-level developer friendly languages. Further, it is fast, structured, portable and has a rich
library. These features make C a general purpose programming language, and hence, it finds
application across every domain in programming world.

A super set of C, C++ is an object-oriented programming language and incorporates all the
features offered by C. C++ started its journey as C with classes. Gradually, it has evolved and
despite the popularity of other programming languages like C# and Java, C, C++ holds its
own as one of the most widely used languages for scripting. In applications, C++ is
ubiquitous.
Real-World Applications of C++

1. Games:

C++ overrides the complexities of 3D games, optimizes resource management and facilitates
multiplayer with networking. The language is extremely fast, allows procedural programming
for CPU intensive functions and provides greater control over hardware, because of which it
has been widely used in development of gaming engines. For instance, the science fiction
game Doom 3 is cited as an example of a game that used C++ well and the Unreal Engine, a
suite of game development tools, is written in C++.

2. Graphic User Interface (GUI) based applications:

Many highly used applications, such as Image Ready, Adobe Premier, Photoshop and
Illustrator, are scripted in C++.

3. Web Browsers:

With the introduction of specialized languages such as PHP and Java, the adoption of C++ is
limited for scripting of websites and web applications. However, where speed and reliability
are required, C++ is still preferred. For instance, a part of Google’s back-end is coded in C++,
and the rendering engine of a few open source projects, such as web browser Mozilla Firefox
and email client Mozilla Thunderbird, are also scripted in the programming language.

4. Advance Computations and Graphics:

C++ provides the means for building applications requiring real-time physical simulations,
high-performance image processing, and mobile sensor applications. Maya 3D software, used
for integrated 3D modelling, visual effects and animation, is coded in C++.
5. Database Software:

C++ and C have been used for scripting Myself, one of the most popular database
management software. The software forms the backbone of a variety of database-based
enterprises, such as Google, Wikipedia, Yahoo and YouTube etc.

6. Operating Systems:

C++ forms an integral part of many of the prevalent operating systems including Apple’s OS
X and various versions of Microsoft Windows, and the erstwhile Sembilan mobile OS.

7. Enterprise Software:

C++ finds a purpose in banking and trading enterprise applications, such as those deployed
by Bloomberg and Reuters. It is also used in development of advanced software, such as
flight simulators and radar processing.

8. Medical and Engineering Applications:

Many advanced medical equipments, such as MRI machines, use C++ language for scripting
their software. It is also part of engineering applications, such as high-end CAD/CAM
systems.

9. Compilers:

A host of compilers including Apple C++, Bloodshed Dev-C++, Clang C++ and MINGW
make use of C++ language. C and its successor C++ are leveraged for diverse software and
platform development requirements, from operating systems to graphic designing
applications. Further, these languages have assisted in the development of new languages for
special purposes like C#, Java, PHP, Virology etc.
Scope of C++:

C++ is used when we require maximum performance, reliability for our product. That’s why
it is used by big giants like Google, Facebook, Amazon etc.
The reason C++ is such fast is because it directly runs on the hardware of the system rather
than any virtual machine in case of Java.

You can refer to this awesome language as Hulk. When it is in normal form of Bruce Banner
it behaves normally with no extra capabilities just getting work done somehow. But when it
gets into its full potential it smashes everything and put all other programming languages in
shame by its performance.

So for example, using C++ for a web-server that just hosts contact information about you is
just

an overkill. And I don’t need to tell how difficult it will be to write your server-side code in
C++.

1. C++ is designed to be a statically typed, general-purpose language that is as efficient

and portable as C

2. C++ is designed to directly and comprehensively support multiple programming styles

(procedural programming, data abstraction, object-oriented programming, and generic

programming)

3. C++ is designed to give the programmer choice, even if this makes it possible for the

programmer to choose incorrectly

4. C++ is designed to be as compatible with C as possible, therefore providing a smooth

transition from C

5. C++ avoids features that are platform specific or not general purpose

6. C++ does not incur overhead for features that are not used

7. C++ is designed to function without a sophisticated programming environment.


8. There is Stronger Type Checking in C++.

9. All the OOPS features in C++ like Abstraction, Encapsulation, Inheritance etc makes it
more worthy and useful for programmers.

10. C++ supports and allows user defined operators (i.e Operator Overloading) and function
overloading is also supported in it.

11. Exception Handling is there in C++.

12. The Concept of Virtual functions and also Constructors and Destructors for Objects.

13. Inline Functions in C++ instead of Macros in C language. Inline functions make complete
function body act like Macro, safely.

14. Variables can be declared anywhere in the program in C++, but must be declared before
they are used.

Here is the list where C++ crushes every other language.

1. Operating Systems
2. Compilers
3. Game Development
4. Server Side Programming

You can use Python and C++ in conjunction with one another. For Example you build an
app with Python, but it runs slowly so you rewrite performance intensive sections in C+
+, which speeds up the execution of the app by a factor of *%.

It also works the other way. If you write a program in C++ and some sections are outside
your skills or time allotment, you can write sections in Python and use them in a C++
app.
There's also a way to write C++ within Python, and Python within C++. without having
to create separate executables or scripts.
Reason for choosing this technology:
C proved very useful in running applications coded in assembly language because of its
strengths like a simple compiler, lower access levels of memory, lower run time support
and an efficient constructing language that was in sync with the hardware instructions.
Another of its credits is that it is a highly portable (compatible with a variety of OS &
Platforms) with very minimal source code changes required. Thus it has enabled remote
operations & independence from the hardware. C is also compliant to a variety of
standards, making it work with everything.

C++ is known as a mid-level language. Due to the fact that the C++ comprises of both
high-level and low-level language features. Some of the adjectives used to describe C++
are static typed, free-form, multi-paradigm and supporting procedural programming.

The C++ Programming Language, an important reference to the language in the absence of
an official standard. This was followed by the release of the C++ 2.0 in 1989 with features
like multiple inheritance, abstract classes, static member functions, const member
functions and protected members. Features like templates, exceptions, namespaces, new
casts and Boolean type were added post 1990.

 C++ is a highly portable language and is often the language of choice for multi-
device, multi-platform app development.

 C++ is an object-oriented programming language and includes classes, inheritance,


polymorphism, data abstraction and encapsulation.

 C++ has a rich function library.

 C++ allows exception handling, and function overloading which are not possible
in C.

 C++ is a powerful, efficient and fast language. It finds a wide range of applications
– from GUI applications to 3D graphics for games to real-time mathematical
simulations.
 C++ supports operator overloading and type conversion

 In C++ we can use Generics

 In STL library, there are many advanced data structures that are predefined

 It provides Boolean data type

As we know that, as a middle level language, C combines benefits of both low machine
language and high level developer friendly languages. Further, it is fast, structured, portable
and has a rich library. These features make C a general purpose programming language, and
hence it finds the application across every domain in the programming world. Some real
world applications are like……

1. Operating Systems

2. Development of new languages

3. Graphics and games

4. Web browsers

5. Database software

6. Compilers

And etc………

So, I chose this technology as my summer training subject as it has so much scope in the
future also.

Learning outcome from training / technology learnt:


C++ Programming is intended for software engineers, systems analysts, program managers
and user support personnel who wish to learn the C++ programming language.C++ is an
object-oriented programming language and incorporates all the features offered by C. C++
started its journey as C with classes. Gradually, it has evolved and despite the popularity of
other programming languages like C# and Java, C, C++ holds its own as one of the most
widely used languages for scripting. In applications, C++ is ubiquitous.

C++ overrides the complexities of 3D games, optimizes resource management and facilitates
multiplayer with networking. The language is extremely fast, allows procedural programming
for CPU intensive functions and provides greater control over hardware, because of which it
has been widely used in development of gaming engines. For instance, the science fiction
game Doom 3 is cited as an example of a game that used C++ well and the Unreal Engine, a
suite of game development tools, is written in C++.

Many highly used applications, such as Image Ready, Adobe Premier, Photoshop and
Illustrator, are scripted in C++.

With the introduction of specialized languages such as PHP and Java, the adoption of C++ is
limited for scripting of websites and web applications. However, where speed and reliability
are required, C++ is still preferred. For instance, a part of Google’s back-end is coded in C++,
and the rendering engine of a few open source projects, such as web browser Mozilla Firefox
and email client Mozilla Thunderbird, are also scripted in the programming language.

C++ provides the means for building applications requiring real-time physical simulations,
high-performance image processing, and mobile sensor applications. Maya 3D software, used
for integrated 3D modeling, visual effects and animation, is coded in C++.Every graphic in
animation is developed in c++ with visual effects.

C++ and C have been used for scripting MySQL, one of the most popular database
management software. The software forms the backbone of a variety of database-based
enterprises, such as Google, Wikipedia, Yahoo and YouTube etc.

C++ forms an integral part of many of the prevalent operating systems including Apple’s OS
X and various versions of Microsoft Windows, and the erstwhile Symbian mobile OS.

C++ finds a purpose in banking and trading enterprise applications, such as those deployed
by Bloomberg and Reuters. It is also used in development of advanced software, such as
flight simulators and radar processing.

Many advanced medical equipments, such as MRI machines, use C++ language for scripting
their software. It is also part of engineering applications, such as high-end CAD/CAM
systems. Most of the major applications of adobe systems are developed in C++
programming language. These applications include Adobe Photoshop and Image Ready,
Illustrator and Adobe Premier. They’ve released a lot of open-source code in the past, always
in C++, and their developers have been active in the C++ community.

A host of compilers including Apple C++, Bloodshed Dev-C++, Clang C++ and MINGW
make use of C++ language. C and its successor C++ are leveraged for diverse software and
platform development requirements, from operating systems to graphic designing
applications. Further, these languages have assisted in the development of new languages for
special purposes like C#, Java, PHP, Verilog etc.
Overview:
1. C++ is a statically typed, compiled, general-purpose, case-sensitive, free-form
programming language that supports procedural, object-oriented, and generic
programming.
2. C++ is regarded as a middle-level language, as it comprises a combination of both
high-level and low-level language features.

3. C++ was developed by Bjarne Stroustrup starting in 1979 at Bell Labs in Murray
Hill, New Jersey, as an enhancement to the C language and originally named C with
Classes but later it was renamed C++ in 1983.

4. C++ is a superset of C, and that virtually any legal C program is a legal C++
program.

5. Note − A programming language is said to use static typing when type checking is
performed during compile-time as opposed to run-time.

Bibliography:
https://www.quora.com/Is-learning-C++-still-worthwhile-to-learn
https://www.invensis.net/blog/it/applications-of-c-c-plus-plus-in-the-real-world/
https://www.geeksforgeeks.org/c-plus-plus/
https://www.tutorialspoint.com/cplusplus/
https://en.wikipedia.org/wiki/C%2B%2B

You might also like