C allows the manipulation of bits, bytes and addresses- the basic elements with which the computer functions. Another good point about C is its portability which makes it possible to adapt software written for one type of computer to another. C was created, influenced, and field tested by working programmers. The end result is that C gives the programmer what the programmer wants. C offers the speed of assembly language and the extensibility of FORTH, but few of the restrictions of Pascal and Modula-2. C++ is an enhanced version of the C language. C++ includes everything that is part of C and adds support for object-oriented programming (OOP). In addition, C++ also contains many improvements and features that make it a “better C”, independent of object oriented programming. C++ is actually an extensible language since we can define new types in such a way that they act just like the predefined types which are part of the standard language.
Do you want to learn how create blazing fast programs, be organized about developing a software project, write C/C++ code that will keep the people who maintain it very happy, learn how to ace an interview in either of these languages since you’ll know them so well, and understand how to properly debug your code when you inevitably run into problems? Then this might be the crash course for you.
This course is a fast-paced introduction to the C and C++ programming languages, both of which are useful for classes, research, and jobs. Focus will be placed on practical knowledge, especially best practices, the powerful advantages C/C++ can offer, and modern features of C++. Students will come away with an understanding of when and why you might want to use C/C++ over another language, how both “low-level” and more abstracted programming can help you, and how to best develop your own software projects in these languages.
An introduction to the languages of C and C++, and topics you need to know in order to be an effective programmer in them. These include the syntax, compilers, debugging, working on C/C++ projects, object-oriented programming in C++, the power of generic programming, writing a compiled library, memory management, modern best practices, and other powerful tools available (such as threading / parallelism, new features of C++11, and optimization techniques).
It’s most efficient for the staff if everyone uses the same environment:
- Athena command-line
- Compiling: gcc, g++
- Debugging: gdb, valgrind
- Editing: nano, pico, vim, or emacs
You can mimic that environment on your own computer: