What makes C++ so good?

Answer by Harsh Kothari:

1: Stronger Type Checking – the use of classes, inheritance & automatic type conversions mostly eliminates the need for the abominable void* of C.

2: Type safe linkage – you can’t accidentally call a routine from another
module with the wrong type and/or number of arguments – even if your header files get out of date.

3: A complex data type is provided. It includes all the standard arithmetic operations, implemented as operators, not function calls.

4: User-defined operators and function overloading are supported. When you design a data type you can specify which operators & functions are provided.

5: You can use class libraries to provide robust new data types which can be made exceptionally easy to use.

For example, the Rogue Wave ‘math.h++’ class library implements general multi-dimensional arrays which can be manipulated with high-level operations
and an intuitive syntax:

DComplexArray a(10,10); // Construct a 10×10 complex array
cin >> a; // read it in from standard input
DComplexArray b = inverse(a); // Calculate the inverse
cout << b; // write out the inverse
cout << variance(b.diagonal()); // write out the variance of the diagonal
elements of b

6: You can define automatic type conversions to convert between data types.
For example, the Rogue Wave library provides a conversion from a double array
to a complex array.

DoubleVec a(10, 0.0, 1.0); // Construct a double vector in initialised to
DComplexVec z = a; // Construct a complex vector initialised to
cout << a; // write them out
cout << z;
cout << cos(z)*exp(DComplex(0,1)*a);

7: Provides inline functions which combine the efficiency of using macros
with the safety of using functions – simply prepend the word ‘inline’ in
front of the function – if the compiler can inline it, it will.

inline Double
(const DoubleVec&amp; v)
Double theSum = 0;
for (int i = 0; i < v.length(); i++) {
if (v[i] > 0) {
theSum += v[i];
return theSum;

8: C++ Compiles most ANSI C code directly and can call compiled C code
directly, so you don’t even have to learn anything new at all!

9: You don’t have to put all of your declarations at the top of each block
in C++.
This means
that you can organise your code into logically related ‘paragraphs’ complete
with their necessary declarations. This makes code much more maintainable –
you can easily move sections of code around, taking the necessary
declarations along at the same time. If you use the const modifier you can
also ensure that variables whose value should not change after it is first
calculated do not do so.

Double x,y; // Declare two variables
cin >> x >> y; // read in their values
const Double sqrtX = sqrt(x); // Calculate the square roots
const Double sqrtY = sqrt(y);
cout << sqrt(sqrtX+sqrtY);
sqrtX = 42; // Will give an error…

10: Classes provide extensible types, promoting code reuse. This can
result in major savings in the amount of code written. I saw a recent
article which stated that the new Taligent operating system, which is written
in C++, consists of 250,000 lines of code, whereas WindowsNT, written in C,
was said to consist of 4,000,000 lines of code.

View Answer on Quora

GTU IDP/UDP Guidelines

Here I am showing you general guideline for final year GTU Project. It is very useful information for final year GTU students. After General Guidelines I show you Department vise guidelines. For any query or doubt comment at bottom of the post.
File:Gujarat Technological University logo.JPG

IDP = Industry Defined Project

UDP = User Defined Project 

General guidelines

  1. Semester 7th, teaching scheme is 0-0-4, with 4 credits worth of 150 marks

(Out of 150 marks, 50 marks are to be given for Problem Definition. The college, through internal evaluation, will assess the Industry Defined problems, submitted by students during the first week of the seventh semester. The remaining 100 marks are for the practical exam, to be conducted by the University.)

2.   Semester 8th, teaching scheme for the project is 0-0-8 or 0-0-12 with 8 or 12 credits, depending upon the branch. During the 8th semester, the project will carry 400 marks. (For EC 18 credits)


  • The format for problem definition may be specified by dept. /college. The common form for the problem definition can be downloaded from GTU website. (Click here)
  • In the 8th Semester out of 400 marks 300 marks are for the practical exam by the University and 100 marks are for Internal Practical exam.

3.  Each final year Project will be a Major Project. It will be divided into two Semesters of work.


  1. Each defined project needs to be from Industry/Research organization/Govt.organization/socio-technical issues.
  2. Project identification should be based on “Shodh-Yatra” carried out by the students after completion of B.E Semester 6th Examination but before starting of the 7thSemester.
  3. Problem definition for the project needs to be submitted by every student in the first week of the 7th Semester to his/her college.
  4. Each definition will be evaluated in the beginning of the 7th semester itself by the College.
  5. Every College should send all the Problem Definitions in the specified format to GTU before 15th August, 2011.


You may contact your Udisha Club Co-ordinator/Faculty /Department/Principal or Chairman of your Sankul for arranging “Shodh-Yatra” to the industries.

Guidelines for the students

  1. The students are required to identify their problem during the summer of 2011 and they are required to follow all the rules and instructions issued by department, for safety and other requirements.
  2. Each student or student group would work under the guidance of the Faculty from the College. In case any problem/other issue arises for the smooth progress of IDP discovery/Practical Training, it should be immediately brought to the notice of theUdisha Club Co-ordinator /Faculty /Department/Principal or Chairman of your Sankul.
  3. The students are required to submit the Problem Definition (in the specified format) to their Head of the Department in their College during the first week of the 7th semester.

Evaluation Scheme

Click for more information of evaluation scheme.

FAQ for Final Year Project

  • The final year project is divided into two semesters(7th & 8th) which should be based upon a real-life problem of an industry1.
  • If a faculty member, using his experience, gives a problem to a student for his/ her final year project, the student can use the problem to write the IDP. However the IDPproposal, will have to be submitted in the required format.
  • The students will scout for the Industry Defined Project(IDP) before commencement of the first semester of the final academic year. Within two weeks of commencement of academic session, the student will take review inputs from the faculty member, who is to be his Guide for the project. He will then submit a report on the problem to the HOD. The IDP is mandatory for all branches.
  • The final year project will be designed to develop a better product or a better process.
  • The number of students per group for a project has to be decided by the colleges.
  • Any student can go to any industry in or outside his Sankul. (25 GTU InnovationSankuls have been established across the State).
  • The students can take inter-disciplinary projects during the final year after consultation with the corresponding Guide in respective colleges.
  • The pre-final year students may seek the help of Udisha Club Patrons / Co-ordinatorsfor assignment to an appropriate industry.
  • The pre-final year students have to contact the corresponding Udisha Club Members and Departmental Coordinators of their college for any necessary assistance for scouting IDP. The Principals of the colleges are required to coordinate with SankulCo-Chairman(Academic) for any assistance. The Sankul Co-Chairmen of eachSankul may have established linked with the industry clusters in the region.
  • The students can choose an industry not mentioned in the list provided for reference by GTU Innovation Council .
  • The students have to mention the name of the industry / source of the industry defined project while submitting the project definition immediately after commencement of the academic session during the first semester of the Final Year. (In some cases, the industry may jointly mentor and evaluate the progress of the project during the academic year).
  • GTU Innovation Council will award for the best 3000 (1000 each in degree Engineering, Dip Engg and Masters) problems/project definitions.
  • Those students who have already undergone the training or industrial visit can define a project definition from the respective industries, based on the training or industrial visit.

The detailed format for industry defined project scouting is posted at the GTU website. A Department may modify the format for all its students. The students will have to submit the problem / project definition to the concerned college in soft copy. The problem definition should have content as per the given guidelines including details of previous attempt to solve such problems / projects and the proposed ways to solve the problem / process by the concerned student or the team of students in particular college while developing it in his/her final year.

Department vise IDP – UDP Info

Click  here as per your Branch.

If you have any query or doubt comment here.

Computer-IT IDP/UDP Guidelines

7th Semester = 4 credit

8th Semester = 12 credit

In the 7th Semester 50 marks are to be given for Problem Definition which is to be given in a specified format. The format may be specified by dept. /college. The common form for the problem definition can be downloaded from GTU website.

Guidelines for the Students:

  1. The students are required to identify their problem during the summer of 2011 and they are required to follow all the rules and instructions issued by department, for safety and other requirements.
  2. Each student or student group would work under the guidance of the Faculty from the College. In case any problem/other issue arises for the smooth progress of IDP discovery/Practical Training, it should be immediately brought to the notice of the Udisha club co-ordinator/Faculty /Department/Principal or Chairman of your Sankul.
  3. The students are required to submit the Problem Definition (in the specified format) to their Head of the Department in their College during the first week of the 7th semester.
  4. Problem is to be located from industry floor and then it has to be developed in 7th and 8th semester in college with possible periodic inputs from concerned industries. Both the project parts are single major project. Student has complete work in College premise only under supervision of College teacher along with Other Subjects/Course as per Teaching Scheme
  5. Any student can pick an industry in any Sankul as per his/her feasibility. He/she is allowed to choose any particular industry and interdisciplinary projects are allowed inside same college. Student has complete work in College premise only under supervision of College teacher along with Other Subjects/Course as per Teaching Scheme
  6. The project is mandatory for each branch. Sankuls are not boundary for choosing an IDP. Any students can be linked to anywhere.
  7. The project work will be in-house industry project, where student need to implement project related to any domain of industry like education, legal, manufacturing, design, pharmaceutical, Ecommerce, etc.
  8. Students are required to get approval of project definition from the department.
  9. After approval of project definition students are required to report their project work weekly to respective internal guide.
  10. Maximum 4 students can allow working in particular project group.
  11. Students have to submit project with following listed documents after the approval of their project definition. Format for same will be provided by department.
    1. Project Synopsis
    2. Software Requirement Specification
    3. SPMP
    4. Final Project Report
    5. Company certificate
    6. Project Setup file with Source code
    7. Project Presentation (PPT)

Branch vise IDP/UDP Guidelines

Click  here as per your Branch.

Mechanical Engineering

7th Semester = 4 credit

8th Semester = 8 credit

This shall consist of work carried out by a student during the period of final & pre final semester with the main purpose of developing the ability of applying the knowledge gained in the undergraduate studies to some practical problems. A student is required to carry out project work related to Mechanical Engineering under the supervision / guidance of faculty member.

The project may be based on any of the following suggested list:

  • Design, analysis and/or fabrication
  • Experimentation
  • Product design and development,
  • Design and development of laboratory equipments/test rigs,
  • Developing computer programmes/software,
  • Industry based project
  • Industry need based basic survey or Testing or Analysis etc.The student can undertake project single handed or in a group of not more than four students.Preliminary literature review, objective, methodology and scope of project work undertaken will be presented in form of report for end semester certificate from Head of department for examination.


Electrical Engineering

7th Semester = 4 credit

8th Semester = 8 credit

The project consists of two parts. The stage-I and stage-II. The student is supposed to carry out stage-I in 7th semester and stage-II in 8th semester. The stage-I has two parts. The first part is pre-project and the other part electrical product survey. The electrical product survey is to be carried out only in 7th semester.

PART-I (Pre-project) (1 hour per week)

This is the main project of students. This part of the project is to be continued in 7th and 8th semester. In the 7th semester, the preliminary work of the project is to be carried out. Group of students will work for the project assigned or selected by the students, under the guidance of some faculty member.

PART-II (Electrical Product Survey) (1 hour per week)
(Only in 7th Semester)

AIM: To make students understand and have exposure to various electrical items/goods/materials which are available in the market. Students should acquire the knowledge of available standard ratings of the materials/goods/items etc as the case may be.

At department level the group of 4-5 students will survey the market by personal visit to vendors, dealers, manufactures etc. as the case may be. Preferably the same group members will work for both parts of project. So that it is easier at the time of evaluation by external examiners. Students are expected to do survey of any one category of items/materials out of the following suggested but not limited to list of categories of electrical items/goods/materials.

  • Types of fuses
  • Insulating materials and insulators
  • Cables
  • Switches (all types of switches, changeover switch)
  • Switchgears (ELCB, MCB, MCCB, ACB etc)
  • Rotating machines for industrial purpose
  • Electrical home appliances and rotating machines for residential purpose
  • Batteries (all types)
  • Transformers
  • Semi-conductor devices
  • Luminaries and light sources
  • Electrical components like resistors, inductors and capacitors
  • Capacitors (DC and AC capacitors, capacitors for power factor corrections, capacitors for induction furnaces etc)
  • Electrical connectors
  • Grounding grid elements like grounding rod, grounding pipe, etc
  • Instruments sensors and transducers
  • Electrical meters
  • Electrical machines accessories

The group of students so formed is supposed to study/survey the total range of the electrical items/goods/material assigned to them. And prepare a report for the same. Students can take help of internet if required but it is discouraged that the complete report is prepared from the various resource material available on the internet.

At the department level, co-ordination of all groups should be done. The group/groups of students can select the category of electrical material/goods of their own choice.

The report of electrical product survey must include:

  • Catalogues
  • Pictures of the concerned items
  • Working principle if applicable
  • Some of the basic information viz. prices, specifications etc.

Finally, a presentation should be given by the concerned group of students in front of the faculty members of the department. Duration of the presentation should be half-hour per group. The report electrical product survey and pre- project should be merged to prepare a comprehensive report.

Various Electronics Development Boards

A Development Board is an amalgamation of hardware and software. It is nothing but a printed circuit board containing a microcontroller or microprocessor with other peripherals as hardware and support packages in the form of toolchains , operating system to make up the software part.

Here I introduce you various Development Boards. So decide your needs, choose appropriate system and start making some good stuff and become Electronic Geek. Most important thing for final year engineering student, if you are planning to do project on embedded system, micro controllers , microprocessors this things are very helpful to you. It is also useful when some other project is needed microprocessor or micro controller. If you have any suggestion or query comment below the post. 

1. Arduino


Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.

The hardware consists of a simple open hardware design for the Arduino board with an Atmel AVR processor and on-board input/output support. The software consists of a standard programming language compiler and the boot loader that runs on the board.  The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino projects can be stand-alone or they can communicate with software running on a computer (e.g. Flash, Processing, MaxMSP).

The boards can be built by hand or purchased pre assembled; the software can be downloaded for free. The hardware reference designs (CAD files) are available under an open-source license, you are free to adapt them to your needs. The Arduino project received an honorary mention in the Digital Communities category at the 2006 Prix Ars Electronica. 

2. Teensy

The Teensy is a complete USB-based microcontoller development system, in a very small footprint! All programming is done via the USB port. No special programmer is needed, only a standard “Mini-B” USB cable and a PC or Macintosh with a USB port. This is the latest version, 2.0.

  • USB can be any type of device
  • AVR processor, 16 MHz
  • Single pushbutton programming
  • Easy to use Teensy Loader application
  • Free software development tools
  • Works with Mac OS X, Linux & Windows
  • Tiny size, perfect for many projects
  • Available with pins for solder less breadboard

3. MSP430 Launchpad

TI’s Launchpad board is definitely a bargain. For your money, you get a set of 16-bit MSP430 processors, a mini-USB debugger and programming interface, and a set of Windows IDEs to choose from  and cost just $ 4.30.

The LaunchPad is an easy-to-use, affordable, and scalable introduction to the world of microcontrollers and the MSP430 family.

  • Easy-to-use – LaunchPad includes all of the hardware and software needed to get started. Open source projects and code examples help users get up and running quickly.
  • Affordable – For $4.30, the LaunchPad includes a development board, 2 programmable MSP430 microcontrollers, mini-USB cable, PCB connectors for expandability, external crystal for increased clock accuracy, and free & downloadable software integrated development environments (IDEs) – everything you need to get started today.
  • Scalable – The LaunchPad is a simple introduction to the MSP430 microcontroller family. As application requirements change, programs developed on the LaunchPad can be migrated to higher end MSP430 devices.

4. STM32

The STMicroelectronics STM32 Value line Discovery Kit is a quick and inexpensive way to discover STM32 32-bit microcontrollers (MCUs). The STMicroelectronics STM32 Value Line Discovery Kit is based on the STM32 Value line and includes a quick-start evaluation board with ST-LINK debugger / programmer that is delivered with IDE from Keil, IAR, and Atollic. The debugger can debug Discovery kit applications or other target board applications. This low-cost STMicroelectronics evaluation kit will satisfy hobbyists, first-time developers, and students.  This is even capable of running an RTOS if you’re trying to do a lot of things at once. Cost of this board is just $ 12.

The unparalleled and large range of STM32 devices, based on an industry-standard core and accompanied by a vast choice of tools and software, makes this family of products the ideal choice, both for small projects and for entire platform decisions.

5. Raspberry Pi

Raspberry Pi model B

The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.

The Raspberry Pi is a single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools. The design is based on a Broadcom BCM2835 system on a chip (SoC), which includes an ARM1176JZF-S 700 MHzprocessor, VideoCore IV GPU, and 256 megabytes of RAM. The design does not include a built-in hard disk or solid-state drive, instead relying on an SD card for booting and long-term storage. The Foundation’s goal is to offer two versions, priced at US$ 25 and US$ 35 (plus local taxes). The Foundation started accepting orders for the higher priced model on 29 February 2012.

6. BeagleBoard

The BeagleBoard is a low-power open source hardware single-board computer produced by Texas Instruments in association with Digi-Key. The BeagleBoard was also designed with open source software development in mind, and as a way of demonstrating the Texas Instrument’s OMAP3530 system-on-a-chip. The board was developed by a small team of engineers as an educational board that could be used in colleges around the world to teach open source hardware and open source software capabilities. It is also sold to the public under the Creative Commons share-alike license.

The OMAP3530 includes an ARM Cortex-A8 CPU, a TMS320C64x+ DSP for accelerated video and audio decoding, and an Imagination Technologies PowerVR SGX530 GPU to provide accelerated 2D and 3D rendering that supports OpenGL ES 2.0.

A single SD/MMC card slot supporting SDIO, a USB On-The-Go port, an RS-232 serial connection, a JTAG connection, and two stereo 3.5 mm jacks for audio in/out are provided. Android, Ubuntu, Symbion capability, 256 Mb Flash Memory and 256 Mb RAM.

7. PandaBoard

The PandaBoard is a low-power, low-cost single-board computer development platform based on the Texas Instruments OMAP4430 system on a chip (SoC). The board has been available to the public at the subsidized price of US $174 since 27 October 2010. It is a community supported development platform.

The PandaBoard ES is a newer version based on the OMAP4460 SoC, with the CPU and GPU running at higher clock rates. The board has been available to the public at the subsidized price of US $182 since 16 November 2011. Like its predecessor, it is a community supported development platform.

The OMAP4430 SoC on the PandaBoard features a dual-core 1 GHz ARM Cortex-A9 MPCore CPU, a 304 MHz PowerVR SGX540 GPU, a C64x DSP, and 1 GB of DDR2 SDRAM. The PandaBoard ES uses a newer SoC, with a dual-core 1.2 GHz CPU and 384 MHz GPU. Primary persistent storage is via an SD Card slot allowing SDHC cards up to 32 GB to be used. Linux kernel , Android, Ubuntu compatibility, integrated SGX540 graphics processor and provides 1080p HDMI output are features of this PandaBoard.


This are amazing things to work on. It also saves time. No need for tedious soldering work and also come with guarantee warrantee features. Very easy to implement and very easy to make some cool stuff and projects. So start using it and don’t forget to do comment.